mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-07 07:04:09 +00:00
r=dougt, sr/a=waterson Support for a MOZILLA_HOME dir to specify pref location
This commit is contained in:
parent
82456f3916
commit
407f3c54a9
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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];
|
||||
|
@ -106,6 +106,7 @@ class NS_COM nsSpecialSystemDirectory : public nsFileSpec
|
||||
, OS2_SystemDirectory = 501
|
||||
, OS2_OS2Directory = 502
|
||||
, OS2_DesktopDirectory = 503
|
||||
, OS2_HomeDirectory = 504
|
||||
};
|
||||
|
||||
//nsSpecialSystemDirectory();
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user