From 2fcc57627145354abdfe95f6caa59c13bcb44797 Mon Sep 17 00:00:00 2001 From: "mkaply%us.ibm.com" Date: Fri, 1 Sep 2000 22:53:55 +0000 Subject: [PATCH] #51105 r=dougt, a=brendan Missing OS/2 support for HOME dir --- xpcom/io/nsDirectoryService.cpp | 11 ++++++++++- xpcom/io/nsDirectoryService.h | 1 + xpcom/io/nsDirectoryServiceDefs.h | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/xpcom/io/nsDirectoryService.cpp b/xpcom/io/nsDirectoryService.cpp index cd17a373449b..7cf74ffcbf25 100644 --- a/xpcom/io/nsDirectoryService.cpp +++ b/xpcom/io/nsDirectoryService.cpp @@ -77,7 +77,7 @@ // define home directory // For Windows platform, We are choosing Appdata folder as HOME #ifdef XP_OS2 -#define HOME_DIR NS_OS2_DIR +#define HOME_DIR NS_OS2_HOME_DIR #elif defined (XP_PC) #define HOME_DIR NS_WIN_APPDATA_DIR #elif defined (XP_MAC) @@ -288,6 +288,7 @@ nsIAtom* nsDirectoryService::sHomeDirectory = nsnull; #elif defined (XP_OS2) nsIAtom* nsDirectoryService::sSystemDirectory = nsnull; nsIAtom* nsDirectoryService::sOS2Directory = nsnull; +nsIAtom* nsDirectoryService::sHomeDirectory = nsnull; nsIAtom* nsDirectoryService::sDesktopDirectory = nsnull; #elif defined (XP_PC) nsIAtom* nsDirectoryService::sSystemDirectory = nsnull; @@ -388,6 +389,7 @@ nsDirectoryService::Init(const char *productName) #elif defined (XP_OS2) nsDirectoryService::sSystemDirectory = NS_NewAtom(NS_OS_SYSTEM_DIR); nsDirectoryService::sOS2Directory = NS_NewAtom(NS_OS2_DIR); + nsDirectoryService::sHomeDirectory = NS_NewAtom(NS_OS2_HOME_DIR); nsDirectoryService::sDesktopDirectory = NS_NewAtom(NS_OS2_DESKTOP_DIR); #elif defined (XP_PC) nsDirectoryService::sSystemDirectory = NS_NewAtom(NS_OS_SYSTEM_DIR); @@ -468,6 +470,7 @@ nsDirectoryService::~nsDirectoryService() #elif defined (XP_OS2) NS_IF_RELEASE(nsDirectoryService::sSystemDirectory); NS_IF_RELEASE(nsDirectoryService::sOS2Directory); + NS_IF_RELEASE(nsDirectoryService::sHomeDirectory); NS_IF_RELEASE(nsDirectoryService::sDesktopDirectory); #elif defined (XP_PC) NS_IF_RELEASE(nsDirectoryService::sSystemDirectory); @@ -863,6 +866,12 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret nsSpecialSystemDirectory fileSpec(nsSpecialSystemDirectory::OS2_OS2Directory); rv = NS_FileSpecToIFile(&fileSpec, getter_AddRefs(localFile)); } + else if (inAtom == nsDirectoryService::sHomeDirectory) + { + /* for now, set the "Home" directory to point to be the */ + /* current process directory */ + rv = GetCurrentProcessDirectory(getter_AddRefs(localFile)); + } else if (inAtom == nsDirectoryService::sDesktopDirectory) { nsSpecialSystemDirectory fileSpec(nsSpecialSystemDirectory::OS2_DesktopDirectory); diff --git a/xpcom/io/nsDirectoryService.h b/xpcom/io/nsDirectoryService.h index 9bee600c95f1..a8e15dfc5dde 100644 --- a/xpcom/io/nsDirectoryService.h +++ b/xpcom/io/nsDirectoryService.h @@ -90,6 +90,7 @@ private: #elif defined (XP_OS2) static nsIAtom *sSystemDirectory; static nsIAtom *sOS2Directory; + static nsIAtom *sHomeDirectory; static nsIAtom *sDesktopDirectory; #elif defined (XP_PC) static nsIAtom *sSystemDirectory; diff --git a/xpcom/io/nsDirectoryServiceDefs.h b/xpcom/io/nsDirectoryServiceDefs.h index 5406273f5a5b..81537025c1b7 100755 --- a/xpcom/io/nsDirectoryServiceDefs.h +++ b/xpcom/io/nsDirectoryServiceDefs.h @@ -67,6 +67,7 @@ #define NS_MAC_HOME_DIR "Home" #elif defined (XP_OS2) #define NS_OS2_DIR "0S2Dir" + #define NS_OS2_HOME_DIR "Home" #define NS_OS2_DESKTOP_DIR "Desk" #elif defined (XP_PC) #define NS_WIN_WINDOWS_DIR "WinD"