r=dougt, sr/a=waterson
Support for a MOZILLA_HOME dir to specify pref location


git-svn-id: svn://10.0.0.236/trunk@82154 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mkaply%us.ibm.com
2000-11-01 20:04:59 +00:00
parent e328afc597
commit ed7010e799
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

@@ -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();