r=dougt, sr/a=waterson
Support for a MOZILLA_HOME dir to specify pref location
This commit is contained in:
mkaply%us.ibm.com 2000-11-01 20:04:59 +00:00
parent 82456f3916
commit 407f3c54a9
6 changed files with 20 additions and 7 deletions

View File

@ -329,7 +329,7 @@ static nsresult GetDefaultUserProfileRoot(nsILocalFile **aLocalFile)
#elif defined(XP_OS2)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
if (NS_FAILED(rv)) return rv;
rv = directoryService->Get(NS_OS2_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
rv = directoryService->Get(NS_OS2_HOME_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
if (NS_FAILED(rv)) return rv;
#elif defined(XP_PC)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);

View File

@ -329,7 +329,7 @@ static nsresult GetDefaultUserProfileRoot(nsILocalFile **aLocalFile)
#elif defined(XP_OS2)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
if (NS_FAILED(rv)) return rv;
rv = directoryService->Get(NS_OS2_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
rv = directoryService->Get(NS_OS2_HOME_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
if (NS_FAILED(rv)) return rv;
#elif defined(XP_PC)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);

View File

@ -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)
@ -907,9 +907,8 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret
}
else if (inAtom == nsDirectoryService::sHomeDirectory)
{
/* for now, set the "Home" directory to point to be the */
/* current process directory */
rv = GetCurrentProcessDirectory(getter_AddRefs(localFile));
nsSpecialSystemDirectory fileSpec(nsSpecialSystemDirectory::OS2_HomeDirectory);
rv = NS_FileSpecToIFile(&fileSpec, getter_AddRefs(localFile));
}
else if (inAtom == nsDirectoryService::sDesktopDirectory)
{

View File

@ -43,6 +43,7 @@
#include <os2.h>
#include <stdlib.h>
#include <stdio.h>
#include "prenv.h"
#elif defined(XP_UNIX)
#include <unistd.h>
#include <stdlib.h>
@ -856,6 +857,18 @@ void nsSpecialSystemDirectory::operator = (SystemDirectories aSystemSystemDirect
break;
}
case OS2_HomeDirectory:
{
char *tPath = PR_GetEnv("MOZILLA_HOME");
/* If MOZILLA_HOME is not set, use GetCurrentProcessDirectory */
/* To ensure we get a long filename system */
if (!tPath || PL_strlen(tPath) == 0)
GetCurrentProcessDirectory(*this);
else
*this = tPath;
break;
}
case OS2_DesktopDirectory:
{
char szPath[CCHMAXPATH + 1];

View File

@ -106,6 +106,7 @@ class NS_COM nsSpecialSystemDirectory : public nsFileSpec
, OS2_SystemDirectory = 501
, OS2_OS2Directory = 502
, OS2_DesktopDirectory = 503
, OS2_HomeDirectory = 504
};
//nsSpecialSystemDirectory();

View File

@ -763,7 +763,7 @@ static nsresult InitializeProfileService(nsICmdLineService *cmdLineArgs)
PRBool exists = PR_FALSE;
#ifdef XP_OS2
rv = NS_GetSpecialDirectory(NS_OS2_DIR, getter_AddRefs(parentDir));
rv = NS_GetSpecialDirectory(NS_OS2_HOME_DIR, getter_AddRefs(parentDir));
if (NS_SUCCEEDED(rv))
rv = parentDir->Exists(&exists);