Bug 74247 - Fizzilla should use $HOME/Library/Mozilla to store profiles. r=pinkerton/sr=sfraser/a=asa

This commit is contained in:
ccarlen%netscape.com 2001-06-14 01:24:22 +00:00
Родитель d52f557406
Коммит fdd2288a50
6 изменённых файлов: 38 добавлений и 1 удалений

Просмотреть файл

@ -35,6 +35,7 @@
#include <Folders.h>
#include <Script.h>
#include <Processes.h>
#include <Gestalt.h>
#include "nsILocalFileMac.h"
#endif
#if defined(XP_OS2)
@ -254,7 +255,11 @@ NS_METHOD nsAppFileLocationProvider::GetProductDirectory(nsILocalFile **aLocalFi
#if defined(XP_MAC)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
if (NS_FAILED(rv)) return rv;
rv = directoryService->Get(NS_MAC_DOCUMENTS_DIR, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
OSErr err;
long response;
err = ::Gestalt(gestaltSystemVersion, &response);
const char *prop = (!err && response >= 0x00001000) ? NS_MAC_USER_LIB_DIR : NS_MAC_DOCUMENTS_DIR;
rv = directoryService->Get(prop, NS_GET_IID(nsILocalFile), getter_AddRefs(localDir));
if (NS_FAILED(rv)) return rv;
#elif defined(XP_OS2)
NS_WITH_SERVICE(nsIProperties, directoryService, NS_DIRECTORY_SERVICE_CONTRACTID, &rv);

Просмотреть файл

@ -302,6 +302,7 @@ nsIAtom* nsDirectoryService::sDocumentsDirectory = nsnull;
nsIAtom* nsDirectoryService::sInternetSearchDirectory = nsnull;
nsIAtom* nsDirectoryService::sHomeDirectory = nsnull;
nsIAtom* nsDirectoryService::sDefaultDownloadDirectory = nsnull;
nsIAtom* nsDirectoryService::sUserLibDirectory = nsnull;
#elif defined (XP_WIN)
nsIAtom* nsDirectoryService::sSystemDirectory = nsnull;
nsIAtom* nsDirectoryService::sWindowsDirectory = nsnull;
@ -400,6 +401,7 @@ nsDirectoryService::Init()
nsDirectoryService::sInternetSearchDirectory = NS_NewAtom(NS_MAC_INTERNET_SEARCH_DIR);
nsDirectoryService::sHomeDirectory = NS_NewAtom(NS_MAC_HOME_DIR);
nsDirectoryService::sDefaultDownloadDirectory = NS_NewAtom(NS_MAC_DEFAULT_DOWNLOAD_DIR);
nsDirectoryService::sUserLibDirectory = NS_NewAtom(NS_MAC_USER_LIB_DIR);
#elif defined (XP_WIN)
nsDirectoryService::sSystemDirectory = NS_NewAtom(NS_OS_SYSTEM_DIR);
nsDirectoryService::sWindowsDirectory = NS_NewAtom(NS_WIN_WINDOWS_DIR);
@ -479,6 +481,7 @@ nsDirectoryService::~nsDirectoryService()
NS_IF_RELEASE(nsDirectoryService::sDocumentsDirectory);
NS_IF_RELEASE(nsDirectoryService::sInternetSearchDirectory);
NS_IF_RELEASE(nsDirectoryService::sHomeDirectory);
NS_IF_RELEASE(nsDirectoryService::sUserLibDirectory);
#elif defined (XP_WIN)
NS_IF_RELEASE(nsDirectoryService::sSystemDirectory);
NS_IF_RELEASE(nsDirectoryService::sWindowsDirectory);
@ -817,6 +820,11 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret
{
nsSpecialSystemDirectory fileSpec(nsSpecialSystemDirectory::Mac_DefaultDownloadDirectory);
rv = NS_FileSpecToIFile(&fileSpec, getter_AddRefs(localFile));
}
else if (inAtom == nsDirectoryService::sUserLibDirectory)
{
nsSpecialSystemDirectory fileSpec(nsSpecialSystemDirectory::Mac_UserLibDirectory);
rv = NS_FileSpecToIFile(&fileSpec, getter_AddRefs(localFile));
}
#elif defined (XP_WIN)
else if (inAtom == nsDirectoryService::sSystemDirectory)

Просмотреть файл

@ -82,6 +82,7 @@ private:
static nsIAtom *sInternetSearchDirectory;
static nsIAtom *sHomeDirectory;
static nsIAtom *sDefaultDownloadDirectory;
static nsIAtom *sUserLibDirectory;
#elif defined (XP_WIN)
static nsIAtom *sSystemDirectory;
static nsIAtom *sWindowsDirectory;

Просмотреть файл

@ -65,6 +65,7 @@
#define NS_MAC_INTERNET_SEARCH_DIR "ISrch"
#define NS_MAC_HOME_DIR "Home"
#define NS_MAC_DEFAULT_DOWNLOAD_DIR "DfltDwnld"
#define NS_MAC_USER_LIB_DIR "ULibDir" // Only available under OS X
#elif defined (XP_WIN)
#define NS_WIN_WINDOWS_DIR "WinD"
#define NS_WIN_HOME_DIR "Home"

Просмотреть файл

@ -69,6 +69,14 @@
#include "nsHashtable.h"
#include "prlog.h"
#if defined (XP_MAC) && UNIVERSAL_INTERFACES_VERSION < 0x0340
enum {
kUserDomain = -32763,
kDomainLibraryFolderType = FOUR_CHAR_CODE('dlib')
};
#endif
class SystemDirectoriesKey : public nsHashKey {
public:
@ -599,6 +607,19 @@ void nsSpecialSystemDirectory::operator = (SystemDirectories aSystemSystemDirect
case Mac_DefaultDownloadDirectory:
*this = kDefaultDownloadFolderType;
break;
case Mac_UserLibDirectory:
{
OSErr err;
short vRefNum;
long dirID;
err = ::FindFolder(kUserDomain, kDomainLibraryFolderType, true, &vRefNum, &dirID);
if (!err) {
err = ::FSMakeFSSpec(vRefNum, dirID, "\p", &mSpec);
}
mError = NS_FILE_RESULT(err);
break;
}
#endif
#if defined (XP_WIN)

Просмотреть файл

@ -70,6 +70,7 @@ class NS_COM nsSpecialSystemDirectory : public nsFileSpec
, Mac_DocumentsDirectory = 111
, Mac_InternetSearchDirectory = 112
, Mac_DefaultDownloadDirectory = 113
, Mac_UserLibDirectory = 114
, Win_SystemDirectory = 201
, Win_WindowsDirectory = 202