From d7086a1fcb77545df690621998f4dd2e2e1b41ba Mon Sep 17 00:00:00 2001 From: "mkaply%us.ibm.com" Date: Thu, 25 May 2000 14:33:17 +0000 Subject: [PATCH] # 37239 r = rjc, a = brendan OS/2 bringup continues on M16 - Adding an XP_OS2 only path --- rdf/datasource/src/nsFileSystemDataSource.cpp | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rdf/datasource/src/nsFileSystemDataSource.cpp b/rdf/datasource/src/nsFileSystemDataSource.cpp index eba19e4ec5c6..544d5656386e 100644 --- a/rdf/datasource/src/nsFileSystemDataSource.cpp +++ b/rdf/datasource/src/nsFileSystemDataSource.cpp @@ -1008,6 +1008,32 @@ FileSystemDataSource::GetVolumeList(nsISimpleEnumerator** aResult) volumes->AppendElement(vol); #endif +#ifdef XP_OS2 + ULONG ulDriveNo = 0; + ULONG ulDriveMap = 0; + char *url; + + rv = DosQueryCurrentDisk(&ulDriveNo, &ulDriveMap); + if (NS_FAILED(rv)) + return rv; + + for (int volNum = 0; volNum < 26; volNum++) + { + if (((ulDriveMap << (31 - volNum)) >> 31)) + { + if (nsnull != (url = PR_smprintf("file:///%c|/", volNum + 'A'))) + { + rv = gRDFService->GetResource(url, getter_AddRefs(vol)); + PR_Free(url); + + if (NS_FAILED(rv)) return rv; + volumes->AppendElement(vol); + } + } + + } +#endif + nsISimpleEnumerator* result = new nsArrayEnumerator(volumes); if (! result) return NS_ERROR_OUT_OF_MEMORY;