From 24feadaaeda2e391925de89f1c0c52df3f500d91 Mon Sep 17 00:00:00 2001 From: "darin%netscape.com" Date: Tue, 7 May 2002 23:07:19 +0000 Subject: [PATCH] fixes bug 142870 "nsIFile should use UCS-2 instead of UTF-8" r=dougt sr=alecf git-svn-id: svn://10.0.0.236/trunk@121010 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/caps/src/nsScriptSecurityManager.cpp | 4 +- mozilla/chrome/src/nsChromeRegistry.cpp | 16 +- .../html/content/src/nsHTMLInputElement.cpp | 10 +- .../xul/document/src/nsXULPrototypeCache.cpp | 6 +- mozilla/docshell/base/nsDefaultURIFixup.cpp | 2 +- .../source/CAppFileLocationProvider.cpp | 18 +- .../src/mac/nsPrintingPromptServiceX.cpp | 4 +- .../src/nsWebBrowserPersist.cpp | 4 +- .../tests/mfcembed/MostRecentUrls.cpp | 2 +- .../mfcembed/winEmbedFileLocProvider.cpp | 22 +-- .../inspector/base/src/inFileSearch.cpp | 15 +- .../pref/autoconfig/src/nsAutoConfig.cpp | 4 +- .../pref/autoconfig/src/nsReadConfig.cpp | 6 +- mozilla/extensions/wallet/src/wallet.cpp | 2 +- .../xmlterm/base/mozXMLTermSession.cpp | 2 +- .../xpconnect/loader/mozJSComponentLoader.cpp | 4 +- mozilla/layout/forms/nsFileControlFrame.cpp | 11 +- .../html/forms/src/nsFileControlFrame.cpp | 11 +- mozilla/layout/html/tests/ParseCSS.cpp | 2 +- mozilla/mailnews/absync/src/nsAbSync.cpp | 4 +- .../addrbook/src/nsAbLDAPReplicationData.cpp | 4 +- .../mailnews/addrbook/src/nsAddressBook.cpp | 2 +- .../base/search/src/nsMsgFilterService.cpp | 4 +- mozilla/mailnews/base/src/nsMessenger.cpp | 9 +- .../mailnews/base/src/nsMessengerMigrator.cpp | 2 +- .../mailnews/base/src/nsMsgMailSession.cpp | 4 +- mozilla/mailnews/base/util/nsMsgDBFolder.cpp | 2 +- .../mailnews/imap/src/nsImapMailFolder.cpp | 4 +- .../import/comm4x/src/nsComm4xProfile.cpp | 4 +- .../mailnews/local/src/nsNoIncomingServer.cpp | 2 +- mozilla/mailnews/local/src/nsParseMailbox.cpp | 2 +- .../mapi/mapihook/src/msgMapiHook.cpp | 41 ++--- .../mapi/mapihook/src/nsMapiRegistryUtils.cpp | 8 +- mozilla/modules/libpref/src/nsPrefBranch.cpp | 2 +- mozilla/modules/libpref/src/nsPrefService.cpp | 6 +- .../modules/libpref/src/nsSafeSaveFile.cpp | 20 +-- mozilla/modules/libpref/src/nsSafeSaveFile.h | 2 +- .../src/nsMPFileLocProvider.cpp | 32 ++-- .../plugin/base/src/nsPluginHostImpl.cpp | 16 +- mozilla/netwerk/base/public/nsNetUtil.h | 2 +- mozilla/netwerk/base/src/nsFileStreams.cpp | 7 +- .../netwerk/cache/src/nsDiskCacheDevice.cpp | 16 +- mozilla/netwerk/cache/src/nsDiskCacheMap.cpp | 2 +- .../protocol/about/src/nsAboutBloat.cpp | 4 +- mozilla/netwerk/test/TestFileInput2.cpp | 8 +- mozilla/netwerk/test/TestFileTransport.cpp | 4 +- .../pref-migrator/src/nsPrefMigration.cpp | 10 +- mozilla/profile/src/nsProfile.cpp | 66 ++++---- mozilla/profile/src/nsProfileAccess.cpp | 18 +- mozilla/rdf/chrome/src/nsChromeRegistry.cpp | 16 +- .../datasource/src/nsFileSystemDataSource.cpp | 10 +- .../security/manager/ssl/src/nsPKCS12Blob.cpp | 8 +- .../exthandler/mac/nsOSHelperAppService.cpp | 2 +- .../exthandler/nsExternalHelperAppService.cpp | 50 +++--- .../exthandler/nsExternalHelperAppService.h | 6 +- .../exthandler/os2/nsOSHelperAppService.cpp | 2 +- .../exthandler/unix/nsOSHelperAppService.cpp | 10 +- .../exthandler/win/nsOSHelperAppService.cpp | 2 +- mozilla/widget/src/windows/nsWindow.cpp | 9 +- mozilla/xpcom/build/nsXPComInit.cpp | 2 +- .../components/nsNativeComponentLoader.cpp | 4 +- .../xpcom/io/nsAppFileLocationProvider.cpp | 28 ++-- mozilla/xpcom/io/nsDirectoryService.cpp | 4 +- mozilla/xpcom/io/nsFastLoadFile.cpp | 6 +- mozilla/xpcom/io/nsFastLoadService.cpp | 6 +- mozilla/xpcom/io/nsIFile.idl | 22 +-- mozilla/xpcom/io/nsILocalFile.idl | 21 ++- mozilla/xpcom/io/nsLocalFileCommon.cpp | 155 +++--------------- mozilla/xpcom/io/nsLocalFileMac.cpp | 71 +++----- mozilla/xpcom/io/nsLocalFileMac.h | 9 - mozilla/xpcom/io/nsLocalFileOS2.cpp | 100 ++++++----- mozilla/xpcom/io/nsLocalFileOS2.h | 9 - mozilla/xpcom/io/nsLocalFileUnix.cpp | 150 +++++++++-------- mozilla/xpcom/io/nsLocalFileUnix.h | 23 --- mozilla/xpcom/io/nsLocalFileWin.cpp | 81 ++++----- mozilla/xpcom/io/nsLocalFileWin.h | 7 - .../xptinfo/src/xptiInterfaceInfoManager.cpp | 20 +-- .../reflect/xptinfo/src/xptiManifest.cpp | 14 +- .../reflect/xptinfo/src/xptiWorkingSet.cpp | 2 +- mozilla/xpcom/tests/nsIFileTest.cpp | 2 +- mozilla/xpfe/bootstrap/nsAppRunner.cpp | 4 +- .../src/nsDownloadManager.cpp | 4 +- .../components/filepicker/src/nsFileView.cpp | 12 +- .../search/src/nsInternetSearchService.cpp | 13 +- .../components/xfer/src/nsStreamTransfer.cpp | 10 +- mozilla/xpinstall/src/ScheduledTasks.cpp | 4 +- mozilla/xpinstall/src/nsInstall.cpp | 13 +- mozilla/xpinstall/src/nsInstallFile.cpp | 7 +- mozilla/xpinstall/src/nsInstallFileOpItem.cpp | 34 ++-- mozilla/xpinstall/src/nsInstallFolder.cpp | 31 ++-- mozilla/xpinstall/src/nsInstallPatch.cpp | 34 ++-- mozilla/xpinstall/src/nsJSFile.cpp | 12 +- mozilla/xpinstall/src/nsRegisterItem.cpp | 4 +- mozilla/xpinstall/src/nsSoftwareUpdate.cpp | 4 +- mozilla/xpinstall/src/nsXPInstallManager.cpp | 2 +- 95 files changed, 627 insertions(+), 864 deletions(-) diff --git a/mozilla/caps/src/nsScriptSecurityManager.cpp b/mozilla/caps/src/nsScriptSecurityManager.cpp index 57b0f49ad2b..41d8596fc74 100644 --- a/mozilla/caps/src/nsScriptSecurityManager.cpp +++ b/mozilla/caps/src/nsScriptSecurityManager.cpp @@ -1869,10 +1869,10 @@ nsScriptSecurityManager::SetCanEnableCapability(const char* certificateID, if (NS_FAILED(rv)) return NS_ERROR_FAILURE; #ifdef XP_MAC // On Mac, this file will be located in the Essential Files folder - systemCertFile->Append(NS_LITERAL_CSTRING("Essential Files")); + systemCertFile->AppendNative(NS_LITERAL_CSTRING("Essential Files")); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; #endif - systemCertFile->Append(NS_LITERAL_CSTRING("systemSignature.jar")); + systemCertFile->AppendNative(NS_LITERAL_CSTRING("systemSignature.jar")); if (NS_FAILED(rv)) return NS_ERROR_FAILURE; nsCOMPtr systemCertZip; rv = nsComponentManager::CreateInstance(kZipReaderCID, nsnull, diff --git a/mozilla/chrome/src/nsChromeRegistry.cpp b/mozilla/chrome/src/nsChromeRegistry.cpp index dfe08ce3f91..b3ba31d94d1 100644 --- a/mozilla/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/chrome/src/nsChromeRegistry.cpp @@ -2603,15 +2603,15 @@ nsChromeRegistry::GetProfileRoot(nsCString& aFileURL) getter_AddRefs(defaultUserChromeFile)); if (NS_FAILED(rv)) return(rv); - defaultUserContentFile->Append(NS_LITERAL_CSTRING("chrome")); - defaultUserContentFile->Append(NS_LITERAL_CSTRING("userContent.css")); - defaultUserChromeFile->Append(NS_LITERAL_CSTRING("chrome")); - defaultUserChromeFile->Append(NS_LITERAL_CSTRING("userChrome.css")); + defaultUserContentFile->AppendNative(NS_LITERAL_CSTRING("chrome")); + defaultUserContentFile->AppendNative(NS_LITERAL_CSTRING("userContent.css")); + defaultUserChromeFile->AppendNative(NS_LITERAL_CSTRING("chrome")); + defaultUserChromeFile->AppendNative(NS_LITERAL_CSTRING("userChrome.css")); // copy along // It aint an error if these files dont exist - (void) defaultUserContentFile->CopyTo(userChromeDir, nsCString()); - (void) defaultUserChromeFile->CopyTo(userChromeDir, nsCString()); + (void) defaultUserContentFile->CopyToNative(userChromeDir, nsCString()); + (void) defaultUserChromeFile->CopyToNative(userChromeDir, nsCString()); } } if (NS_FAILED(rv)) @@ -3043,12 +3043,12 @@ nsChromeRegistry::CheckForNewChrome() nsCOMPtr chromeFile; rv = listFile->Clone(getter_AddRefs(chromeFile)); if (NS_FAILED(rv)) return rv; - rv = chromeFile->Append(kChromeFileName); + rv = chromeFile->AppendNative(kChromeFileName); if (NS_FAILED(rv)) return rv; nsInt64 chromeDate; (void)chromeFile->GetLastModifiedTime(&chromeDate.mValue); - rv = listFile->AppendRelativePath(kInstalledChromeFileName); + rv = listFile->AppendRelativeNativePath(kInstalledChromeFileName); if (NS_FAILED(rv)) return rv; nsInt64 listFileDate; (void)listFile->GetLastModifiedTime(&listFileDate.mValue); diff --git a/mozilla/content/html/content/src/nsHTMLInputElement.cpp b/mozilla/content/html/content/src/nsHTMLInputElement.cpp index 09a0fa79247..56e779f7b42 100644 --- a/mozilla/content/html/content/src/nsHTMLInputElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLInputElement.cpp @@ -2182,19 +2182,17 @@ nsHTMLInputElement::SubmitNamesValues(nsIFormSubmission* aFormSubmission, &rv)); NS_ENSURE_SUCCESS(rv, rv); - rv = file->InitWithPath(NS_ConvertUCS2toUTF8(value)); + rv = file->InitWithPath(value); if (NS_SUCCEEDED(rv)) { // // Get the leaf path name (to be submitted as the value) // - nsCAutoString leafNameChars; - rv = file->GetLeafName(leafNameChars); + nsAutoString filename; + rv = file->GetLeafName(filename); NS_ENSURE_SUCCESS(rv, rv); - if (!leafNameChars.IsEmpty()) { - NS_ConvertUTF8toUCS2 filename(leafNameChars); - + if (!filename.IsEmpty()) { PRBool acceptsFiles = PR_FALSE; aFormSubmission->AcceptsFiles(&acceptsFiles); diff --git a/mozilla/content/xul/document/src/nsXULPrototypeCache.cpp b/mozilla/content/xul/document/src/nsXULPrototypeCache.cpp index cc42a7e0d20..3dd3230bbbd 100644 --- a/mozilla/content/xul/document/src/nsXULPrototypeCache.cpp +++ b/mozilla/content/xul/document/src/nsXULPrototypeCache.cpp @@ -567,7 +567,7 @@ nsXULPrototypeCache::AbortFastLoads() // Now rename or remove the file. if (file) { #ifdef DEBUG - file->MoveTo(nsnull, NS_LITERAL_CSTRING("Aborted.mfasl")); + file->MoveToNative(nsnull, NS_LITERAL_CSTRING("Aborted.mfasl")); #else file->Remove(PR_FALSE); #endif @@ -877,7 +877,7 @@ nsXULPrototypeCache::StartFastLoad(nsIURI* aURI) if (NS_FAILED(rv)) return rv; nsCAutoString chromePath; - rv = chromeDir->GetPath(chromePath); + rv = chromeDir->GetNativePath(chromePath); if (NS_FAILED(rv)) return rv; @@ -965,7 +965,7 @@ nsXULPrototypeCache::StartFastLoad(nsIURI* aURI) xio->mInputStream = nsnull; #ifdef DEBUG - file->MoveTo(nsnull, NS_LITERAL_CSTRING("Invalid.mfasl")); + file->MoveToNative(nsnull, NS_LITERAL_CSTRING("Invalid.mfasl")); #else file->Remove(PR_FALSE); #endif diff --git a/mozilla/docshell/base/nsDefaultURIFixup.cpp b/mozilla/docshell/base/nsDefaultURIFixup.cpp index dbea6c8e88f..f6296d97b66 100644 --- a/mozilla/docshell/base/nsDefaultURIFixup.cpp +++ b/mozilla/docshell/base/nsDefaultURIFixup.cpp @@ -383,7 +383,7 @@ nsresult nsDefaultURIFixup::ConvertFileToStringURI(nsString& aIn, } else { // input is unicode - rv = NS_NewLocalFile(NS_ConvertUCS2toUTF8(aIn), PR_FALSE, getter_AddRefs(filePath)); + rv = NS_NewLocalFile(aIn, PR_FALSE, getter_AddRefs(filePath)); } if (NS_SUCCEEDED(rv)) diff --git a/mozilla/embedding/browser/powerplant/source/CAppFileLocationProvider.cpp b/mozilla/embedding/browser/powerplant/source/CAppFileLocationProvider.cpp index 7ff51a1f285..46cd878fe28 100755 --- a/mozilla/embedding/browser/powerplant/source/CAppFileLocationProvider.cpp +++ b/mozilla/embedding/browser/powerplant/source/CAppFileLocationProvider.cpp @@ -96,9 +96,9 @@ CAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(GetResCString(str_DefaultsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_DefaultsDirName, strBuf)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_PrefDefaultsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_PrefDefaultsDirName, strBuf)); } } else if (nsCRT::strcmp(prop, NS_APP_PROFILE_DEFAULTS_NLOC_50_DIR) == 0 || @@ -106,9 +106,9 @@ CAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(GetResCString(str_DefaultsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_DefaultsDirName, strBuf)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_ProfileDefaultsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_ProfileDefaultsDirName, strBuf)); } } else if (nsCRT::strcmp(prop, NS_APP_USER_PROFILES_ROOT_DIR) == 0) @@ -119,25 +119,25 @@ CAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_ResDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_ResDirName, strBuf)); } else if (nsCRT::strcmp(prop, NS_APP_CHROME_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_ChromeDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_ChromeDirName, strBuf)); } else if (nsCRT::strcmp(prop, NS_APP_PLUGINS_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_PlugInsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_PlugInsDirName, strBuf)); } else if (nsCRT::strcmp(prop, NS_APP_SEARCH_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(GetResCString(str_SearchPlugInsDirName, strBuf)); + rv = localFile->AppendRelativeNativePath(GetResCString(str_SearchPlugInsDirName, strBuf)); } if (localFile && NS_SUCCEEDED(rv)) @@ -242,7 +242,7 @@ NS_METHOD CAppFileLocationProvider::GetDefaultUserProfileRoot(nsILocalFile **aLo rv = GetProductDirectory(getter_AddRefs(localDir)); if (NS_FAILED(rv)) return rv; - rv = localDir->AppendRelativePath(GetResCString(str_ProfilesRootDirName, strBuf)); + rv = localDir->AppendRelativeNativePath(GetResCString(str_ProfilesRootDirName, strBuf)); if (NS_FAILED(rv)) return rv; rv = localDir->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) diff --git a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp index 3aa42856e93..e740cd46112 100644 --- a/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp +++ b/mozilla/embedding/components/printingui/src/mac/nsPrintingPromptServiceX.cpp @@ -91,8 +91,8 @@ static CFPlugInRef LoadPDEPlugIn() rv = dirService->Get(NS_XPCOM_CURRENT_PROCESS_DIR, NS_GET_IID(nsILocalFileMac), getter_AddRefs(pluginDir)); if (NS_FAILED(rv)) return nsnull; - pluginDir->Append(NS_LITERAL_CSTRING("Essential Files")); - pluginDir->Append(NS_LITERAL_CSTRING("PrintDialogPDE.plugin")); + pluginDir->AppendNative(NS_LITERAL_CSTRING("Essential Files")); + pluginDir->AppendNative(NS_LITERAL_CSTRING("PrintDialogPDE.plugin")); FSSpec pluginSpec; rv = pluginDir->GetFSSpec(&pluginSpec); if (NS_FAILED(rv)) diff --git a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp index 7f054f2a8c8..608361e3c20 100644 --- a/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp +++ b/mozilla/embedding/components/webbrowserpersist/src/nsWebBrowserPersist.cpp @@ -839,9 +839,7 @@ nsresult nsWebBrowserPersist::SendErrorStatusChange( nsAutoString path; if (file) { - nsCAutoString filePath; - file->GetPath(filePath); - path = NS_ConvertUTF8toUCS2(filePath); + file->GetPath(path); } else { diff --git a/mozilla/embedding/tests/mfcembed/MostRecentUrls.cpp b/mozilla/embedding/tests/mfcembed/MostRecentUrls.cpp index 5652ea9b17b..63845296ff5 100644 --- a/mozilla/embedding/tests/mfcembed/MostRecentUrls.cpp +++ b/mozilla/embedding/tests/mfcembed/MostRecentUrls.cpp @@ -83,7 +83,7 @@ FILE * CMostRecentUrls::GetFD(const char * aMode) nsresult rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, getter_AddRefs(file)); if (NS_SUCCEEDED(rv)) { nsCOMPtr local_file(do_QueryInterface(file)); - local_file->Append(NS_LITERAL_CSTRING("urls.txt")); + local_file->AppendNative(NS_LITERAL_CSTRING("urls.txt")); local_file->OpenANSIFileDesc(aMode, &fd); } diff --git a/mozilla/embedding/tests/mfcembed/winEmbedFileLocProvider.cpp b/mozilla/embedding/tests/mfcembed/winEmbedFileLocProvider.cpp index 62651deb427..89743e95549 100644 --- a/mozilla/embedding/tests/mfcembed/winEmbedFileLocProvider.cpp +++ b/mozilla/embedding/tests/mfcembed/winEmbedFileLocProvider.cpp @@ -92,21 +92,21 @@ winEmbedFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile * { rv = GetProductDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(APP_REGISTRY_NAME); + rv = localFile->AppendNative(APP_REGISTRY_NAME); } else if (nsCRT::strcmp(prop, NS_APP_DEFAULTS_50_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_PREF_DEFAULTS_50_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_PREF_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_PREF_DIR_NAME); } } else if (nsCRT::strcmp(prop, NS_APP_PROFILE_DEFAULTS_NLOC_50_DIR) == 0 || @@ -114,9 +114,9 @@ winEmbedFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile * { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_PROFILE_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_PROFILE_DIR_NAME); } } else if (nsCRT::strcmp(prop, NS_APP_USER_PROFILES_ROOT_DIR) == 0) @@ -127,25 +127,25 @@ winEmbedFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile * { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(RES_DIR_NAME); + rv = localFile->AppendRelativeNativePath(RES_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_CHROME_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(CHROME_DIR_NAME); + rv = localFile->AppendRelativeNativePath(CHROME_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_PLUGINS_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(PLUGINS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_SEARCH_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(SEARCH_DIR_NAME); + rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME); } if (localFile && NS_SUCCEEDED(rv)) @@ -252,7 +252,7 @@ NS_METHOD winEmbedFileLocProvider::GetDefaultUserProfileRoot(nsILocalFile **aLoc if (NS_FAILED(rv)) return rv; // These 3 platforms share this part of the path - do them as one - rv = localDir->AppendRelativePath(PROFILE_ROOT_DIR_NAME); + rv = localDir->AppendRelativeNativePath(PROFILE_ROOT_DIR_NAME); if (NS_FAILED(rv)) return rv; rv = localDir->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) diff --git a/mozilla/extensions/inspector/base/src/inFileSearch.cpp b/mozilla/extensions/inspector/base/src/inFileSearch.cpp index df911785420..c25e2405b30 100644 --- a/mozilla/extensions/inspector/base/src/inFileSearch.cpp +++ b/mozilla/extensions/inspector/base/src/inFileSearch.cpp @@ -171,9 +171,7 @@ inFileSearch::GetStringResultAt(PRInt32 aIndex, nsAString& _retval) } if (file) { - nsCAutoString temp; - mLastResult->GetPath(temp); - _retval = NS_ConvertUTF8toUCS2(temp); + mLastResult->GetPath(_retval); if (mReturnRelativePaths) MakePathRelative(_retval); } else { @@ -543,12 +541,10 @@ inFileSearch::GetNextDirectory(nsISimpleEnumerator* aEnum) PRBool inFileSearch::MatchFile(nsIFile* aFile) { - nsCAutoString fileName; + nsAutoString fileName; aFile->GetLeafName(fileName); - - NS_ConvertUTF8toUCS2 temp(fileName); - PRUnichar* fileNameUnicode = ToNewUnicode(temp); + PRUnichar* fileNameUnicode = ToNewUnicode(fileName); PRBool match; @@ -610,9 +606,8 @@ inFileSearch::MakePathRelative(nsAString& aPath) { // get an nsAutoString version of the search path - nsCAutoString temp; - mSearchPath->GetPath(temp); - NS_ConvertUTF8toUCS2 searchPath(temp); + nsAutoString searchPath; + mSearchPath->GetPath(searchPath); nsAutoString result; PRUint32 len = searchPath.Length(); diff --git a/mozilla/extensions/pref/autoconfig/src/nsAutoConfig.cpp b/mozilla/extensions/pref/autoconfig/src/nsAutoConfig.cpp index 6b500ec35b0..cc437f12d66 100644 --- a/mozilla/extensions/pref/autoconfig/src/nsAutoConfig.cpp +++ b/mozilla/extensions/pref/autoconfig/src/nsAutoConfig.cpp @@ -445,7 +445,7 @@ nsresult nsAutoConfig::readOfflineFile() if (NS_FAILED(rv)) return rv; - failoverFile->Append(NS_LITERAL_CSTRING("failover.jsc")); + failoverFile->AppendNative(NS_LITERAL_CSTRING("failover.jsc")); rv = evaluateLocalFile(failoverFile); if (NS_FAILED(rv)) NS_WARNING("Couldn't open failover.jsc, going back to default prefs"); @@ -491,7 +491,7 @@ nsresult nsAutoConfig::writeFailoverFile() if (NS_FAILED(rv)) return rv; - failoverFile->Append(NS_LITERAL_CSTRING("failover.jsc")); + failoverFile->AppendNative(NS_LITERAL_CSTRING("failover.jsc")); rv = NS_NewLocalFileOutputStream(getter_AddRefs(outStr), failoverFile); if (NS_FAILED(rv)) diff --git a/mozilla/extensions/pref/autoconfig/src/nsReadConfig.cpp b/mozilla/extensions/pref/autoconfig/src/nsReadConfig.cpp index 0d5ce16bd68..75c6461ef24 100644 --- a/mozilla/extensions/pref/autoconfig/src/nsReadConfig.cpp +++ b/mozilla/extensions/pref/autoconfig/src/nsReadConfig.cpp @@ -221,18 +221,18 @@ nsresult nsReadConfig::openAndEvaluateJSFile(const char *aFileName, return rv; #ifdef XP_MAC - jsFile->Append(NS_LITERAL_CSTRING("Essential Files")); + jsFile->AppendNative(NS_LITERAL_CSTRING("Essential Files")); #endif } else { rv = NS_GetSpecialDirectory(NS_APP_DEFAULTS_50_DIR, getter_AddRefs(jsFile)); if (NS_FAILED(rv)) return rv; - rv = jsFile->Append(NS_LITERAL_CSTRING("autoconfig")); + rv = jsFile->AppendNative(NS_LITERAL_CSTRING("autoconfig")); if (NS_FAILED(rv)) return rv; } - rv = jsFile->Append(nsDependentCString(aFileName)); + rv = jsFile->AppendNative(nsDependentCString(aFileName)); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/extensions/wallet/src/wallet.cpp b/mozilla/extensions/wallet/src/wallet.cpp index 7bd24dab8b5..11fbd838d7c 100644 --- a/mozilla/extensions/wallet/src/wallet.cpp +++ b/mozilla/extensions/wallet/src/wallet.cpp @@ -1307,7 +1307,7 @@ PUBLIC nsresult Wallet_DefaultsDirectory(nsFileSpec& dirSpec) { res = NS_GetSpecialDirectory(NS_APP_DEFAULTS_50_DIR, getter_AddRefs(aFile)); if (NS_FAILED(res)) return res; - res = aFile->Append(NS_LITERAL_CSTRING("wallet")); + res = aFile->AppendNative(NS_LITERAL_CSTRING("wallet")); if (NS_FAILED(res)) return res; res = NS_NewFileSpecFromIFile(aFile, getter_AddRefs(tempSpec)); diff --git a/mozilla/extensions/xmlterm/base/mozXMLTermSession.cpp b/mozilla/extensions/xmlterm/base/mozXMLTermSession.cpp index c7e49b5b932..5ee41bba783 100644 --- a/mozilla/extensions/xmlterm/base/mozXMLTermSession.cpp +++ b/mozilla/extensions/xmlterm/base/mozXMLTermSession.cpp @@ -1208,7 +1208,7 @@ NS_IMETHODIMP mozXMLTermSession::ExportHTML(const PRUnichar* aFilename, XMLT_LOG(mozXMLTermSession::ExportHTML,0, ("Exporting %d\n", mCountExportHTML)); - result = localFile->InitWithPath(NS_ConvertUCS2toUTF8(filename)); + result = localFile->InitWithPath(filename); if (NS_FAILED(result)) return NS_ERROR_FAILURE; diff --git a/mozilla/js/src/xpconnect/loader/mozJSComponentLoader.cpp b/mozilla/js/src/xpconnect/loader/mozJSComponentLoader.cpp index a0061cbb9c0..135a4b96551 100644 --- a/mozilla/js/src/xpconnect/loader/mozJSComponentLoader.cpp +++ b/mozilla/js/src/xpconnect/loader/mozJSComponentLoader.cpp @@ -852,9 +852,7 @@ mozJSComponentLoader::AttemptRegistration(nsIFile *component, // get the file name if (component) { - nsCAutoString leafName; - component->GetLeafName(leafName); - fileName.Assign(NS_ConvertUTF8toUCS2(leafName)); + component->GetLeafName(fileName); } // this string can't come from a string bundle, because we diff --git a/mozilla/layout/forms/nsFileControlFrame.cpp b/mozilla/layout/forms/nsFileControlFrame.cpp index 096626a24de..9d238122ae9 100644 --- a/mozilla/layout/forms/nsFileControlFrame.cpp +++ b/mozilla/layout/forms/nsFileControlFrame.cpp @@ -304,12 +304,12 @@ nsFileControlFrame::MouseClick(nsIDOMEvent* aMouseEvent) nsCOMPtr currentFile = do_CreateInstance("@mozilla.org/file/local;1"); if (currentFile && !defaultName.IsEmpty()) { - result = currentFile->InitWithPath(NS_ConvertUCS2toUTF8(defaultName)); + result = currentFile->InitWithPath(defaultName); if (NS_SUCCEEDED(result)) { - nsCAutoString leafName; + nsAutoString leafName; currentFile->GetLeafName(leafName); if (!leafName.IsEmpty()) { - filePicker->SetDefaultString(NS_ConvertUTF8toUCS2(leafName).get()); + filePicker->SetDefaultString(leafName.get()); } // set directory @@ -335,11 +335,10 @@ nsFileControlFrame::MouseClick(nsIDOMEvent* aMouseEvent) nsCOMPtr localFile; result = filePicker->GetFile(getter_AddRefs(localFile)); if (localFile) { - nsCAutoString unicodePath; + nsAutoString unicodePath; result = localFile->GetPath(unicodePath); if (!unicodePath.IsEmpty()) { - NS_ConvertUTF8toUCS2 pathName(unicodePath); - mTextFrame->SetProperty(mPresContext, nsHTMLAtoms::value, pathName); + mTextFrame->SetProperty(mPresContext, nsHTMLAtoms::value, unicodePath); return NS_OK; } } diff --git a/mozilla/layout/html/forms/src/nsFileControlFrame.cpp b/mozilla/layout/html/forms/src/nsFileControlFrame.cpp index 096626a24de..9d238122ae9 100644 --- a/mozilla/layout/html/forms/src/nsFileControlFrame.cpp +++ b/mozilla/layout/html/forms/src/nsFileControlFrame.cpp @@ -304,12 +304,12 @@ nsFileControlFrame::MouseClick(nsIDOMEvent* aMouseEvent) nsCOMPtr currentFile = do_CreateInstance("@mozilla.org/file/local;1"); if (currentFile && !defaultName.IsEmpty()) { - result = currentFile->InitWithPath(NS_ConvertUCS2toUTF8(defaultName)); + result = currentFile->InitWithPath(defaultName); if (NS_SUCCEEDED(result)) { - nsCAutoString leafName; + nsAutoString leafName; currentFile->GetLeafName(leafName); if (!leafName.IsEmpty()) { - filePicker->SetDefaultString(NS_ConvertUTF8toUCS2(leafName).get()); + filePicker->SetDefaultString(leafName.get()); } // set directory @@ -335,11 +335,10 @@ nsFileControlFrame::MouseClick(nsIDOMEvent* aMouseEvent) nsCOMPtr localFile; result = filePicker->GetFile(getter_AddRefs(localFile)); if (localFile) { - nsCAutoString unicodePath; + nsAutoString unicodePath; result = localFile->GetPath(unicodePath); if (!unicodePath.IsEmpty()) { - NS_ConvertUTF8toUCS2 pathName(unicodePath); - mTextFrame->SetProperty(mPresContext, nsHTMLAtoms::value, pathName); + mTextFrame->SetProperty(mPresContext, nsHTMLAtoms::value, unicodePath); return NS_OK; } } diff --git a/mozilla/layout/html/tests/ParseCSS.cpp b/mozilla/layout/html/tests/ParseCSS.cpp index 56f810acebe..a68bd1ce1c3 100644 --- a/mozilla/layout/html/tests/ParseCSS.cpp +++ b/mozilla/layout/html/tests/ParseCSS.cpp @@ -63,7 +63,7 @@ FileToURI(const char *aFilename) { nsCOMPtr lf(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID)); // XXX Handle relative paths somehow. - lf->InitWithPath(nsDependentCString(aFilename)); + lf->InitWithNativePath(nsDependentCString(aFilename)); nsIFileURL *url; CallCreateInstance(kStandardURLCID, &url); diff --git a/mozilla/mailnews/absync/src/nsAbSync.cpp b/mozilla/mailnews/absync/src/nsAbSync.cpp index 1fe6400a1c7..7072c7b78b4 100644 --- a/mozilla/mailnews/absync/src/nsAbSync.cpp +++ b/mozilla/mailnews/absync/src/nsAbSync.cpp @@ -1175,7 +1175,7 @@ nsAbSync::AnalyzeAllRecords(nsIAddrDatabase *aDatabase, nsIAbDirectory *director rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, getter_AddRefs(historyFile)); NS_ENSURE_SUCCESS(rv, rv); - rv = historyFile->Append(NS_LITERAL_CSTRING("absync.dat")); + rv = historyFile->AppendNative(NS_LITERAL_CSTRING("absync.dat")); NS_ENSURE_SUCCESS(rv, rv); // TODO: Convert the rest of the code to use @@ -1223,7 +1223,7 @@ nsAbSync::AnalyzeAllRecords(nsIAddrDatabase *aDatabase, nsIAbDirectory *director rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, getter_AddRefs(lockFile)); if (NS_SUCCEEDED(rv)) { - rv = lockFile->Append(NS_LITERAL_CSTRING("absync.lck")); + rv = lockFile->AppendNative(NS_LITERAL_CSTRING("absync.lck")); if (NS_SUCCEEDED(rv)) { diff --git a/mozilla/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp b/mozilla/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp index bf497ecd3b5..51746587eff 100644 --- a/mozilla/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp +++ b/mozilla/mailnews/addrbook/src/nsAbLDAPReplicationData.cpp @@ -545,7 +545,7 @@ nsresult nsAbLDAPProcessReplicationData::OpenABForReplicatedDir(PRBool aCreate) Done(PR_FALSE); return rv; } - nsCAutoString backupFileLeafName; + nsAutoString backupFileLeafName; rv = mBackupReplicationFile->GetLeafName(backupFileLeafName); if(NS_FAILED(rv)) { delete dbPath; @@ -570,7 +570,7 @@ nsresult nsAbLDAPProcessReplicationData::OpenABForReplicatedDir(PRBool aCreate) } else { // set backup file to existing replication file for copy - mBackupReplicationFile->SetLeafName(nsDependentCString(mDirServerInfo->replInfo->fileName)); + mBackupReplicationFile->SetNativeLeafName(nsDependentCString(mDirServerInfo->replInfo->fileName)); // specify the parent here specifically, // passing nsnull to copy to the same dir actually renames existing file // instead of making another copy of the existing file. diff --git a/mozilla/mailnews/addrbook/src/nsAddressBook.cpp b/mozilla/mailnews/addrbook/src/nsAddressBook.cpp index 294c0a4bdb0..1d1bc25d984 100644 --- a/mozilla/mailnews/addrbook/src/nsAddressBook.cpp +++ b/mozilla/mailnews/addrbook/src/nsAddressBook.cpp @@ -1324,7 +1324,7 @@ NS_IMETHODIMP nsAddressBook::ExportAddressBook(nsIAbDirectory *aDirectory) } nsCAutoString leafName; - rv = localFile->GetLeafName(leafName); + rv = localFile->GetNativeLeafName(leafName); NS_ENSURE_SUCCESS(rv,rv); // we're looking for .tab, .txt, .csv, .ldi or .ldif diff --git a/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp b/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp index 6bc41963870..5d77ff68d3a 100644 --- a/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp +++ b/mozilla/mailnews/base/search/src/nsMsgFilterService.cpp @@ -199,13 +199,13 @@ nsresult nsMsgFilterService::BackUpFilterFile(nsIFileSpec *aFilterFile, nsIMsgWi nsCOMPtr backupFile; rv = NS_FileSpecToIFile(&parentDirSpec, getter_AddRefs(backupFile)); NS_ENSURE_SUCCESS(rv,rv); - backupFile->Append(NS_LITERAL_CSTRING("rulesbackup.dat")); + backupFile->AppendNative(NS_LITERAL_CSTRING("rulesbackup.dat")); PRBool exists; backupFile->Exists(&exists); if (exists) backupFile->Remove(PR_FALSE); - return localFilterFile->CopyTo(localParentDir, NS_LITERAL_CSTRING("rulesbackup.dat")); + return localFilterFile->CopyToNative(localParentDir, NS_LITERAL_CSTRING("rulesbackup.dat")); } nsresult nsMsgFilterService::AlertBackingUpFilterFile(nsIMsgWindow *aMsgWindow) diff --git a/mozilla/mailnews/base/src/nsMessenger.cpp b/mozilla/mailnews/base/src/nsMessenger.cpp index 9249bdfae6c..b6a55fdbf2a 100644 --- a/mozilla/mailnews/base/src/nsMessenger.cpp +++ b/mozilla/mailnews/base/src/nsMessenger.cpp @@ -213,6 +213,7 @@ nsresult ConvertAndSanitizeFileName(const char * displayName, PRUnichar ** unico The display name is in UTF-8 because it has been escaped from JS */ NS_UnescapeURL(unescapedName); + NS_ConvertUTF8toUCS2 ucs2Str(unescapedName); nsresult rv = NS_OK; #if defined(XP_MAC) @@ -220,14 +221,12 @@ nsresult ConvertAndSanitizeFileName(const char * displayName, PRUnichar ** unico correctly support long file name. Using a nsILocalFile will do the trick... */ nsCOMPtr aLocalFile(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv)); - if (NS_SUCCEEDED(aLocalFile->SetLeafName(unescapedName))) + if (NS_SUCCEEDED(aLocalFile->SetLeafName(ucs2Str))) { - aLocalFile->GetLeafName(unescapedName); + aLocalFile->GetLeafName(ucs2Str); } #endif - NS_ConvertUTF8toUCS2 ucs2Str(unescapedName); - // replace platform specific path separator and illegale characters to avoid any confusion ucs2Str.ReplaceChar(FILE_PATH_SEPARATOR FILE_ILLEGAL_CHARACTERS, '-'); @@ -974,7 +973,7 @@ nsMessenger::SaveAs(const char* url, PRBool asFile, nsIMsgIdentity* identity, ns if (NS_FAILED(rv)) goto done; - nsCAutoString fileName; + nsAutoString fileName; rv = localFile->GetLeafName(fileName); if (NS_FAILED(rv)) goto done; diff --git a/mozilla/mailnews/base/src/nsMessengerMigrator.cpp b/mozilla/mailnews/base/src/nsMessengerMigrator.cpp index b0809ec483d..5eb44cc61c3 100644 --- a/mozilla/mailnews/base/src/nsMessengerMigrator.cpp +++ b/mozilla/mailnews/base/src/nsMessengerMigrator.cpp @@ -1935,7 +1935,7 @@ nsMessengerMigrator::migrateAddressBookPrefEnum(const char *aPref, void *aClosur // do the migration in a subdirectory of temp, to prevent // collision (between multiple users), deleting TMPDIR // and privacy issues (where the temp ldif files are readable) - rv = tmpLDIFFile->Append(NS_LITERAL_CSTRING("addr-migrate")); + rv = tmpLDIFFile->AppendNative(NS_LITERAL_CSTRING("addr-migrate")); if (NS_FAILED(rv) || !tmpLDIFFile) return; rv = tmpLDIFFile->CreateUnique(nsIFile::DIRECTORY_TYPE, 0700); diff --git a/mozilla/mailnews/base/src/nsMsgMailSession.cpp b/mozilla/mailnews/base/src/nsMsgMailSession.cpp index ca2db00d89e..2bcf68b7588 100644 --- a/mozilla/mailnews/base/src/nsMsgMailSession.cpp +++ b/mozilla/mailnews/base/src/nsMsgMailSession.cpp @@ -565,7 +565,7 @@ nsMsgMailSession::GetSelectedLocaleDataDir(nsIFile *defaultsDir) rv = defaultsDir->Clone(getter_AddRefs(localeDataDir)); NS_ENSURE_SUCCESS(rv,rv); - rv = localeDataDir->Append(NS_ConvertUCS2toUTF8(localeName)); + rv = localeDataDir->Append(localeName); NS_ENSURE_SUCCESS(rv,rv); rv = localeDataDir->Exists(&localeDirExists); @@ -573,7 +573,7 @@ nsMsgMailSession::GetSelectedLocaleDataDir(nsIFile *defaultsDir) if (localeDirExists) { // use locale provider instead - rv = defaultsDir->Append(NS_ConvertUCS2toUTF8(localeName)); + rv = defaultsDir->Append(localeName); NS_ENSURE_SUCCESS(rv,rv); } } diff --git a/mozilla/mailnews/base/util/nsMsgDBFolder.cpp b/mozilla/mailnews/base/util/nsMsgDBFolder.cpp index 6954267f360..5212cde0e26 100644 --- a/mozilla/mailnews/base/util/nsMsgDBFolder.cpp +++ b/mozilla/mailnews/base/util/nsMsgDBFolder.cpp @@ -531,7 +531,7 @@ NS_IMETHODIMP nsMsgDBFolder::GetOfflineFileTransport(nsMsgKey msgKey, PRUint32 * mPath->GetNativePath(getter_Copies(nativePath)); nsCOMPtr localStore; - rv = NS_NewLocalFile(nativePath, PR_TRUE, getter_AddRefs(localStore)); + rv = NS_NewNativeLocalFile(nativePath, PR_TRUE, getter_AddRefs(localStore)); if (NS_SUCCEEDED(rv) && localStore) { NS_DEFINE_CID(kFileTransportServiceCID, NS_FILETRANSPORTSERVICE_CID); diff --git a/mozilla/mailnews/imap/src/nsImapMailFolder.cpp b/mozilla/mailnews/imap/src/nsImapMailFolder.cpp index 829239928e3..0e36fe537cf 100644 --- a/mozilla/mailnews/imap/src/nsImapMailFolder.cpp +++ b/mozilla/mailnews/imap/src/nsImapMailFolder.cpp @@ -165,7 +165,7 @@ nsresult RecursiveCopy(nsIFile* srcDir, nsIFile* destDir) if (NS_SUCCEEDED(rv)) { nsCOMPtr newChild(do_QueryInterface(destClone)); - nsCAutoString leafName; + nsAutoString leafName; dirEntry->GetLeafName(leafName); newChild->AppendRelativePath(leafName); rv = newChild->Exists(&exists); @@ -175,7 +175,7 @@ nsresult RecursiveCopy(nsIFile* srcDir, nsIFile* destDir) } } else - rv = dirEntry->CopyTo(destDir, nsCString()); + rv = dirEntry->CopyTo(destDir, nsString()); } } diff --git a/mozilla/mailnews/import/comm4x/src/nsComm4xProfile.cpp b/mozilla/mailnews/import/comm4x/src/nsComm4xProfile.cpp index 08652d9e5e3..a39c76e5cb8 100644 --- a/mozilla/mailnews/import/comm4x/src/nsComm4xProfile.cpp +++ b/mozilla/mailnews/import/comm4x/src/nsComm4xProfile.cpp @@ -89,7 +89,7 @@ nsComm4xProfile::GetMailDir(const PRUnichar *profileName, char **_retval) if (NS_FAILED(rv)) return rv; nsCOMPtr profileLocation; profileLocation = do_QueryInterface(file); - rv = profileLocation->Append(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); + rv = profileLocation->AppendNative(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); if (NS_FAILED(rv)) return rv; PRBool exists = PR_FALSE; rv = profileLocation->Exists(&exists); @@ -115,7 +115,7 @@ nsComm4xProfile::GetMailDir(const PRUnichar *profileName, char **_retval) nsCOMPtr mailLocation; rv = resolvedLocation->Clone(getter_AddRefs(mailLocation)); if (NS_FAILED(rv)) return rv; - rv = mailLocation->Append(NS_LITERAL_CSTRING("Mail")); + rv = mailLocation->AppendNative(NS_LITERAL_CSTRING("Mail")); if (NS_FAILED(rv)) return rv; nsCAutoString nativePath; rv = mailLocation->GetNativePath(nativePath); diff --git a/mozilla/mailnews/local/src/nsNoIncomingServer.cpp b/mozilla/mailnews/local/src/nsNoIncomingServer.cpp index 956e448ae59..5ebff071a12 100644 --- a/mozilla/mailnews/local/src/nsNoIncomingServer.cpp +++ b/mozilla/mailnews/local/src/nsNoIncomingServer.cpp @@ -156,7 +156,7 @@ NS_IMETHODIMP nsNoIncomingServer::CopyDefaultMessages(const char *folderNameOnDi #ifdef DEBUG_sspitzer printf("copy default %s\n",folderNameOnDisk); #endif - rv = defaultMessagesFile->CopyTo(localParentDir, nsCString()); + rv = defaultMessagesFile->CopyTo(localParentDir, nsString()); if (NS_FAILED(rv)) return rv; } return NS_OK; diff --git a/mozilla/mailnews/local/src/nsParseMailbox.cpp b/mozilla/mailnews/local/src/nsParseMailbox.cpp index bb9dcf696b4..6c5323e3e6a 100644 --- a/mozilla/mailnews/local/src/nsParseMailbox.cpp +++ b/mozilla/mailnews/local/src/nsParseMailbox.cpp @@ -1555,7 +1555,7 @@ nsOutputFileStream * nsParseNewMailState::GetLogFile () nsCOMPtr logDir; NS_GetSpecialDirectory(NS_APP_MAIL_50_DIR, getter_AddRefs(logDir)); - logDir->Append(NS_LITERAL_CSTRING("filter.log")); + logDir->AppendNative(NS_LITERAL_CSTRING("filter.log")); nsCAutoString pathBuf; nsresult rv = logDir->GetNativePath(pathBuf); diff --git a/mozilla/mailnews/mapi/mapihook/src/msgMapiHook.cpp b/mozilla/mailnews/mapi/mapihook/src/msgMapiHook.cpp index b13566859f6..8b17d107eac 100644 --- a/mozilla/mailnews/mapi/mapihook/src/msgMapiHook.cpp +++ b/mozilla/mailnews/mapi/mapihook/src/msgMapiHook.cpp @@ -518,7 +518,7 @@ nsresult nsMapiHook::HandleAttachments (nsIMsgCompFields * aCompFields, PRInt32 { // check if attachment exists if (aIsUnicode) - pFile->InitWithPath (NS_ConvertUCS2toUTF8(aFiles[i].lpszPathName)) ; + pFile->InitWithPath (nsDependentString(aFiles[i].lpszPathName)) ; else pFile->InitWithNativePath (nsDependentCString((const char*)aFiles[i].lpszPathName)) ; PRBool bExist ; @@ -540,34 +540,31 @@ nsresult nsMapiHook::HandleAttachments (nsIMsgCompFields * aCompFields, PRInt32 rv = NS_FileSpecToIFile(&tmpDir, getter_AddRefs(pTempPath)) ; if(NS_FAILED(rv) || !pTempPath) return rv ; // temp dir path - nsCAutoString tempPath ; + nsAutoString tempPath ; rv = pTempPath->GetPath (tempPath) ; if(NS_FAILED(rv) || tempPath.IsEmpty()) return rv ; // filename of the file attachment - nsCAutoString leafName ; + nsAutoString leafName ; pFile->GetLeafName (leafName) ; if(NS_FAILED(rv) || leafName.IsEmpty()) return rv ; // full path of the file attachment - nsCAutoString path ; + nsAutoString path ; pFile->GetPath (path) ; if(NS_FAILED(rv) || path.IsEmpty()) return rv ; // dir path of the file attachment - nsCAutoString dirPath (path.get()) ; + nsAutoString dirPath (path.get()) ; PRInt32 offset = dirPath.Find (leafName.get()) ; if (offset != kNotFound && offset > 1) dirPath.SetLength(offset-1) ; // see if the attachment dir path (only) is same as temp path - // XXX need nsCaseInsensitiveUTF8StringComparator() - if (!Compare(NS_ConvertUTF8toUCS2(tempPath), - NS_ConvertUTF8toUCS2(dirPath), - nsCaseInsensitiveStringComparator())) + if (!Compare(tempPath, dirPath, nsCaseInsensitiveStringComparator())) { // if not already existing, create another temp dir for mapi within Win temp dir - nsCAutoString strTempDir ; + nsAutoString strTempDir ; // this is windows only so we can do "\\" - strTempDir = tempPath + NS_LITERAL_CSTRING("\\moz_mapi"); + strTempDir = tempPath + NS_LITERAL_STRING("\\moz_mapi"); pTempDir->InitWithPath (strTempDir) ; pTempDir->Exists (&bExist) ; if (!bExist) @@ -584,25 +581,22 @@ nsresult nsMapiHook::HandleAttachments (nsIMsgCompFields * aCompFields, PRInt32 // rename or copy the existing temp file with the real file name if (aIsUnicode) { - NS_ConvertUCS2toUTF8 fileNameUTF8(aFiles[i].lpszFileName); + nsDependentString fileNameUCS2(aFiles[i].lpszFileName); // check if the user is sending a temporary unsaved file, in this case // the leaf name of the PathName and the FileName (real filename) would be same // if so copy the file (this will create a copy file) and then send else move would do nothing // and the calling app would delete the file and then send will fail. - // XXX need nsCaseInsensitiveUTF8StringComparator() - if (!Compare(nsDependentString(aFiles[i].lpszFileName), - NS_ConvertUTF8toUCS2(leafName), - nsCaseInsensitiveStringComparator())) + if (!Compare(fileNameUCS2, leafName, nsCaseInsensitiveStringComparator())) { - rv = pFile->CopyTo(pTempDir, fileNameUTF8); + rv = pFile->CopyTo(pTempDir, fileNameUCS2); pFile->InitWithPath(strTempDir) ; - pFile->Append(fileNameUTF8); + pFile->Append(fileNameUCS2); } else { // else if user is sending an already existing file open in the application // just move the file to one with real file name, better performance - rv = pFile->MoveTo(nsnull, fileNameUTF8); + rv = pFile->MoveTo(nsnull, fileNameUCS2); // now create an empty file with the temp filename so that // the calling apps donot crash if they dont find their temp file if (NS_SUCCEEDED(rv)) @@ -621,10 +615,7 @@ nsresult nsMapiHook::HandleAttachments (nsIMsgCompFields * aCompFields, PRInt32 if (NS_FAILED(rv)) return rv ; nsDependentCString fileNameNative((char *) aFiles[i].lpszFileName); // now compare the unicode filename string - // XXX need nsCaseInsensitiveUTF8StringComparator() - if (!Compare(fileName, - NS_ConvertUTF8toUCS2(leafName), - nsCaseInsensitiveStringComparator())) + if (!Compare(fileName, leafName, nsCaseInsensitiveStringComparator())) { rv = pFile->CopyToNative(pTempDir, fileNameNative); pFile->InitWithPath(strTempDir) ; @@ -790,7 +781,7 @@ nsresult nsMapiHook::PopulateCompFieldsForSendDocs(nsIMsgCompFields * aCompField { nsCOMPtr pFile = do_CreateInstance (NS_LOCAL_FILE_CONTRACTID, &rv) ; if (NS_FAILED(rv) || (!pFile) ) return rv ; - pFile->InitWithPath (NS_ConvertUCS2toUTF8(strFilePaths)) ; + pFile->InitWithPath (strFilePaths) ; PRBool bExist ; rv = pFile->Exists(&bExist) ; @@ -826,7 +817,7 @@ nsresult nsMapiHook::PopulateCompFieldsForSendDocs(nsIMsgCompFields * aCompField newFilePaths += offset + strDelimChars.Length() ; } - pFile->InitWithPath (NS_ConvertUCS2toUTF8(RemainingPaths)) ; + pFile->InitWithPath (RemainingPaths) ; #ifdef RAJIV_DEBUG printf ("File : %S \n", RemainingPaths.get()) ; diff --git a/mozilla/mailnews/mapi/mapihook/src/nsMapiRegistryUtils.cpp b/mozilla/mailnews/mapi/mapihook/src/nsMapiRegistryUtils.cpp index 85c32fb0245..f69be5a3bfd 100644 --- a/mozilla/mailnews/mapi/mapihook/src/nsMapiRegistryUtils.cpp +++ b/mozilla/mailnews/mapi/mapihook/src/nsMapiRegistryUtils.cpp @@ -377,7 +377,7 @@ nsresult nsMapiRegistryUtils::CopyMozMapiToWinSysDir() getter_AddRefs(pMozMapiFile)); if (NS_FAILED(rv)) return rv; - pMozMapiFile->Append(NS_LITERAL_CSTRING("mozMapi32.dll")); + pMozMapiFile->AppendNative(NS_LITERAL_CSTRING("mozMapi32.dll")); PRBool bExist; rv = pMozMapiFile->Exists(&bExist); @@ -395,7 +395,7 @@ nsresult nsMapiRegistryUtils::CopyMozMapiToWinSysDir() rv = pCurrentMapiFile->Exists(&bExist); if (NS_SUCCEEDED(rv) && bExist) { - rv = pCurrentMapiFile->MoveTo(nsnull, NS_LITERAL_CSTRING("Mapi32_moz_bak.dll")); + rv = pCurrentMapiFile->MoveToNative(nsnull, NS_LITERAL_CSTRING("Mapi32_moz_bak.dll")); if (NS_FAILED(rv)) return rv; nsCAutoString fullFilePath(buffer); fullFilePath.Append(NS_LITERAL_CSTRING("\\Mapi32_moz_bak.dll")); @@ -412,7 +412,7 @@ nsresult nsMapiRegistryUtils::CopyMozMapiToWinSysDir() NS_NAMED_LITERAL_CSTRING(fileName, "Mapi32.dll"); filePath.Assign(buffer); pCurrentMapiFile->InitWithNativePath(filePath); - rv = pMozMapiFile->CopyTo(pCurrentMapiFile, fileName); + rv = pMozMapiFile->CopyToNative(pCurrentMapiFile, fileName); if (NS_FAILED(rv)) RestoreBackedUpMapiDll(); return rv; @@ -450,7 +450,7 @@ nsresult nsMapiRegistryUtils::RestoreBackedUpMapiDll() rv = pPreviousMapiFile->Exists(&bExist); if (NS_SUCCEEDED(rv) && bExist) - rv = pPreviousMapiFile->MoveTo(nsnull, NS_LITERAL_CSTRING("Mapi32.dll")); + rv = pPreviousMapiFile->MoveToNative(nsnull, NS_LITERAL_CSTRING("Mapi32.dll")); if (NS_SUCCEEDED(rv)) DeleteRegistryValue(HKEY_LOCAL_MACHINE, "Software\\Mozilla\\Desktop", diff --git a/mozilla/modules/libpref/src/nsPrefBranch.cpp b/mozilla/modules/libpref/src/nsPrefBranch.cpp index 2db8a2e304e..d5ce182ebc5 100644 --- a/mozilla/modules/libpref/src/nsPrefBranch.cpp +++ b/mozilla/modules/libpref/src/nsPrefBranch.cpp @@ -357,7 +357,7 @@ NS_IMETHODIMP nsPrefBranch::GetComplexValue(const char *aPrefName, const nsIID & return rv; nsCOMPtr theFile; - rv = NS_NewLocalFile(nsCString(), PR_TRUE, getter_AddRefs(theFile)); + rv = NS_NewNativeLocalFile(nsCString(), PR_TRUE, getter_AddRefs(theFile)); if (NS_FAILED(rv)) return rv; rv = theFile->SetRelativeDescriptor(fromFile, Substring(++keyEnd, strEnd)); diff --git a/mozilla/modules/libpref/src/nsPrefService.cpp b/mozilla/modules/libpref/src/nsPrefService.cpp index 3e8b930d961..cd5a4f9a520 100644 --- a/mozilla/modules/libpref/src/nsPrefService.cpp +++ b/mozilla/modules/libpref/src/nsPrefService.cpp @@ -314,7 +314,7 @@ nsresult nsPrefService::UseDefaultPrefFile() // knows about NS_APP_PREFS_50_FILE. Put the file in NS_XPCOM_CURRENT_PROCESS_DIR. rv = NS_GetSpecialDirectory(NS_XPCOM_CURRENT_PROCESS_DIR, getter_AddRefs(aFile)); if (NS_FAILED(rv)) return rv; - rv = aFile->Append(NS_LITERAL_CSTRING("default_prefs.js")); + rv = aFile->AppendNative(NS_LITERAL_CSTRING("default_prefs.js")); if (NS_FAILED(rv)) return rv; } @@ -336,7 +336,7 @@ nsresult nsPrefService::UseUserPrefFile() rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, getter_AddRefs(aFile)); if (NS_SUCCEEDED(rv) && aFile) { - rv = aFile->Append(NS_LITERAL_CSTRING("user.js")); + rv = aFile->AppendNative(NS_LITERAL_CSTRING("user.js")); if (NS_SUCCEEDED(rv)) { rv = openPrefFile(aFile, PR_FALSE, PR_FALSE, PR_FALSE); } @@ -585,7 +585,7 @@ JSBool pref_InitInitialObjects() // because SetLeafName will not work here. rv = defaultPrefDir->Clone(getter_AddRefs(aFile)); if (NS_SUCCEEDED(rv)) { - rv = aFile->Append(nsDependentCString(specialFiles[k])); + rv = aFile->AppendNative(nsDependentCString(specialFiles[k])); if (NS_SUCCEEDED(rv)) { rv = openPrefFile(aFile, PR_FALSE, PR_FALSE, PR_FALSE); NS_ASSERTION(NS_SUCCEEDED(rv), ".js was not parsed successfully"); diff --git a/mozilla/modules/libpref/src/nsSafeSaveFile.cpp b/mozilla/modules/libpref/src/nsSafeSaveFile.cpp index f3b0f6908d7..b92d3d86226 100644 --- a/mozilla/modules/libpref/src/nsSafeSaveFile.cpp +++ b/mozilla/modules/libpref/src/nsSafeSaveFile.cpp @@ -52,7 +52,7 @@ nsSafeSaveFile::nsSafeSaveFile(nsIFile *aTargetFile, PRInt32 aNumBackupCopies) nsresult rv; // determine the actual filename (less the extension) - rv = aTargetFile->GetLeafName(mTargetFileName); + rv = aTargetFile->GetNativeLeafName(mTargetFileName); if (NS_FAILED(rv)) // yikes! out of memory return; @@ -66,7 +66,7 @@ nsSafeSaveFile::nsSafeSaveFile(nsIFile *aTargetFile, PRInt32 aNumBackupCopies) tempFileName = Substring(mTargetFileName, 0, mTargetNameLen) + NS_LITERAL_CSTRING(".tmp"); rv = aTargetFile->Clone(getter_AddRefs(mTempFile)); if (NS_SUCCEEDED(rv)) - mTempFile->SetLeafName(tempFileName); + mTempFile->SetNativeLeafName(tempFileName); } void nsSafeSaveFile::CleanupFailedSave(void) @@ -106,10 +106,10 @@ nsresult nsSafeSaveFile::PostProcessSave(void) fileName = Substring(mTargetFileName, 0, mTargetNameLen) + BACKUP_FILE_EXTENSION; if (mBackupCount > 1) fileName.AppendInt(mBackupCount - 1); - backupFile->SetLeafName(fileName); + backupFile->SetNativeLeafName(fileName); } else { // no backups desired, delete the previous save - backupFile->SetLeafName(mTargetFileName); + backupFile->SetNativeLeafName(mTargetFileName); } // remove the file as determined by the logic above @@ -123,27 +123,27 @@ nsresult nsSafeSaveFile::PostProcessSave(void) // bump all of the redundant backups up one (i.e. bak -> bak1, bak1 -> bak2, etc.) if (backupCount > 1) fileName.AppendInt(backupCount - 1); - backupFile->SetLeafName(fileName); + backupFile->SetNativeLeafName(fileName); backupFile->Exists(&bExists); if (bExists) { fileName.Truncate(mTargetNameLen + (sizeof(BACKUP_FILE_EXTENSION) - 1)); fileName.AppendInt(backupCount); // fail silently because it's not important enough to bail on the save for - backupFile->MoveTo(0, fileName); + backupFile->MoveToNative(0, fileName); } fileName.Truncate(mTargetNameLen + (sizeof(BACKUP_FILE_EXTENSION) - 1)); }; // rename the previous save to .bak (i.e. to ) - backupFile->SetLeafName(mTargetFileName); - rv = backupFile->MoveTo(0, fileName); + backupFile->SetNativeLeafName(mTargetFileName); + rv = backupFile->MoveToNative(0, fileName); // it's only an error if the file exists if ((NS_FAILED(rv)) && (rv != NS_ERROR_FILE_NOT_FOUND)) return rv; } // finally rename the temp file to the original name (i.e. to ) - rv = mTempFile->MoveTo(0, mTargetFileName); + rv = mTempFile->MoveToNative(0, mTargetFileName); return rv; } @@ -168,7 +168,7 @@ nsresult nsSafeSaveFile::PurgeOldestBackup(void) while (--backupCount >= 0) { if (backupCount) fileName.AppendInt(backupCount); - backupFile->SetLeafName(fileName); + backupFile->SetNativeLeafName(fileName); rv = backupFile->Remove(PR_FALSE); if (NS_SUCCEEDED(rv)) { return NS_OK; diff --git a/mozilla/modules/libpref/src/nsSafeSaveFile.h b/mozilla/modules/libpref/src/nsSafeSaveFile.h index 156de76ecee..24570396fd8 100644 --- a/mozilla/modules/libpref/src/nsSafeSaveFile.h +++ b/mozilla/modules/libpref/src/nsSafeSaveFile.h @@ -54,7 +54,7 @@ class nsSafeSaveFile { private: nsCOMPtr mTempFile; - nsCString mTargetFileName; // UTF-8 + nsCString mTargetFileName; // native charset PRInt32 mTargetNameLen; PRInt32 mBackupCount; }; diff --git a/mozilla/modules/mpfilelocprovider/src/nsMPFileLocProvider.cpp b/mozilla/modules/mpfilelocprovider/src/nsMPFileLocProvider.cpp index f6379d471cc..b5610a81a38 100755 --- a/mozilla/modules/mpfilelocprovider/src/nsMPFileLocProvider.cpp +++ b/mozilla/modules/mpfilelocprovider/src/nsMPFileLocProvider.cpp @@ -193,7 +193,7 @@ nsMPFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile **_re { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(PREFS_FILE_50_NAME); + rv = localFile->AppendNative(PREFS_FILE_50_NAME); } else if (inAtom == sApp_UserProfileDirectory50) { @@ -203,19 +203,19 @@ nsMPFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile **_re { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(USER_CHROME_DIR_50_NAME); + rv = localFile->AppendNative(USER_CHROME_DIR_50_NAME); } else if (inAtom == sApp_LocalStore50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(LOCAL_STORE_FILE_50_NAME); + rv = localFile->AppendNative(LOCAL_STORE_FILE_50_NAME); } else if (inAtom == sApp_History50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(HISTORY_FILE_50_NAME); + rv = localFile->AppendNative(HISTORY_FILE_50_NAME); } else if (inAtom == sApp_UsersPanels50) { @@ -226,7 +226,7 @@ nsMPFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile **_re rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(PANELS_FILE_50_NAME); + rv = localFile->AppendNative(PANELS_FILE_50_NAME); } else if (inAtom == sApp_UsersMimeTypes50) { @@ -237,19 +237,19 @@ nsMPFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile **_re rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(MIME_TYPES_FILE_50_NAME); + rv = localFile->AppendNative(MIME_TYPES_FILE_50_NAME); } else if (inAtom == sApp_BookmarksFile50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(BOOKMARKS_FILE_50_NAME); + rv = localFile->AppendNative(BOOKMARKS_FILE_50_NAME); } else if (inAtom == sApp_DownloadsFile50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(DOWNLOADS_FILE_50_NAME); + rv = localFile->AppendNative(DOWNLOADS_FILE_50_NAME); } else if (inAtom == sApp_SearchFile50) { @@ -260,31 +260,31 @@ nsMPFileLocProvider::GetFile(const char *prop, PRBool *persistant, nsIFile **_re rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(SEARCH_FILE_50_NAME); + rv = localFile->AppendNative(SEARCH_FILE_50_NAME); } else if (inAtom == sApp_MailDirectory50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(MAIL_DIR_50_NAME); + rv = localFile->AppendNative(MAIL_DIR_50_NAME); } else if (inAtom == sApp_ImapMailDirectory50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(IMAP_MAIL_DIR_50_NAME); + rv = localFile->AppendNative(IMAP_MAIL_DIR_50_NAME); } else if (inAtom == sApp_NewsDirectory50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(NEWS_DIR_50_NAME); + rv = localFile->AppendNative(NEWS_DIR_50_NAME); } else if (inAtom == sApp_MessengerFolderCache50) { rv = mProfileDir->Clone(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(MSG_FOLDER_CACHE_DIR_50_NAME); + rv = localFile->AppendNative(MSG_FOLDER_CACHE_DIR_50_NAME); } NS_RELEASE(inAtom); @@ -342,13 +342,13 @@ nsresult RecursiveCopy(nsIFile* srcDir, nsIFile* destDir) { nsCOMPtr newChild(do_QueryInterface(destClone)); nsCAutoString leafName; - dirEntry->GetLeafName(leafName); - newChild->AppendRelativePath(leafName); + dirEntry->GetNativeLeafName(leafName); + newChild->AppendRelativeNativePath(leafName); rv = RecursiveCopy(dirEntry, newChild); } } else - rv = dirEntry->CopyTo(destDir, nsCString()); + rv = dirEntry->CopyToNative(destDir, nsCString()); } } diff --git a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp index 1dab5e8ca50..ad49f3739ea 100644 --- a/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp +++ b/mozilla/modules/plugin/base/src/nsPluginHostImpl.cpp @@ -1897,7 +1897,7 @@ nsPluginStreamListenerPeer::SetupPluginCacheFile(nsIChannel* channel) rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(pluginTmp)); if (NS_FAILED(rv)) return rv; - rv = pluginTmp->Append(kPluginTmpDirName); + rv = pluginTmp->AppendNative(kPluginTmpDirName); if (NS_FAILED(rv)) return rv; (void) pluginTmp->Create(nsIFile::DIRECTORY_TYPE,0777); @@ -3325,7 +3325,7 @@ NS_IMETHODIMP nsPluginHostImpl::Destroy(void) nsresult rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(pluginTmp)); if (NS_FAILED(rv)) return rv; - rv = pluginTmp->Append(kPluginTmpDirName); + rv = pluginTmp->AppendNative(kPluginTmpDirName); if (NS_FAILED(rv)) return rv; pluginTmp->Remove(PR_TRUE); @@ -5140,7 +5140,7 @@ cidToDllname(nsIComponentManager* aComponentManager, nsIRegistry* aRegistry, getter_AddRefs(file)); if (NS_SUCCEEDED(rv)) { - file->GetPath(dllName); + file->GetNativePath(dllName); } nsCRT::free(NS_REINTERPRET_CAST(char*, library)); @@ -6379,7 +6379,7 @@ nsPluginHostImpl::CreateTmpFileToPost(const char *postDataURL, char **pTmpFileNa if (NS_FAILED(rv)) return rv; - rv = tempFile->Append(kPluginTmpDirName); + rv = tempFile->AppendNative(kPluginTmpDirName); if (NS_FAILED(rv)) return rv; @@ -6389,8 +6389,10 @@ nsPluginHostImpl::CreateTmpFileToPost(const char *postDataURL, char **pTmpFileNa (void) tempFile->Create(nsIFile::DIRECTORY_TYPE, 0600); nsCAutoString inFileName; - inFile->GetLeafName(inFileName); - rv = tempFile->Append(NS_LITERAL_CSTRING("post-") + inFileName); + inFile->GetNativeLeafName(inFileName); + // XXX hack around bug 70083 + inFileName.Insert(NS_LITERAL_CSTRING("post-"), 0); + rv = tempFile->AppendNative(inFileName); if (NS_FAILED(rv)) return rv; @@ -6481,7 +6483,7 @@ nsPluginHostImpl::ScanForRealInComponentsFolder(nsIComponentManager * aCompManag return rv; // make sure the file is actually there - RealPlugin->Append(nsDependentCString("nppl3260.dll")); + RealPlugin->AppendNative(nsDependentCString("nppl3260.dll")); PRBool exists; nsCAutoString filePath; RealPlugin->Exists(&exists); diff --git a/mozilla/netwerk/base/public/nsNetUtil.h b/mozilla/netwerk/base/public/nsNetUtil.h index 2d83664a11b..5a1c2d88636 100644 --- a/mozilla/netwerk/base/public/nsNetUtil.h +++ b/mozilla/netwerk/base/public/nsNetUtil.h @@ -290,7 +290,7 @@ NS_NewPostDataStream(nsIInputStream **result, nsCOMPtr file; nsCOMPtr fileStream; - rv = NS_NewLocalFile(data, PR_FALSE, getter_AddRefs(file)); + rv = NS_NewNativeLocalFile(data, PR_FALSE, getter_AddRefs(file)); if (NS_FAILED(rv)) return rv; rv = NS_NewLocalFileInputStream(getter_AddRefs(fileStream), file); diff --git a/mozilla/netwerk/base/src/nsFileStreams.cpp b/mozilla/netwerk/base/src/nsFileStreams.cpp index b5164038e9a..d7e42638195 100644 --- a/mozilla/netwerk/base/src/nsFileStreams.cpp +++ b/mozilla/netwerk/base/src/nsFileStreams.cpp @@ -386,7 +386,12 @@ nsFileIO::GetName(nsACString &aName) if (mFile == nsnull) return NS_ERROR_NOT_INITIALIZED; - return mFile->GetPath(aName); + nsAutoString path; + nsresult rv = mFile->GetPath(path); + if (NS_FAILED(rv)) return rv; + + aName = NS_ConvertUCS2toUTF8(path); + return NS_OK; } //////////////////////////////////////////////////////////////////////////////// diff --git a/mozilla/netwerk/cache/src/nsDiskCacheDevice.cpp b/mozilla/netwerk/cache/src/nsDiskCacheDevice.cpp index 396e38ff8a5..6e7fdd1b6f0 100644 --- a/mozilla/netwerk/cache/src/nsDiskCacheDevice.cpp +++ b/mozilla/netwerk/cache/src/nsDiskCacheDevice.cpp @@ -178,11 +178,11 @@ NS_IMETHODIMP nsDiskCacheDeviceInfo::GetUsageReport(char ** usageReport) buffer.Append("Cache Directory: "); nsCOMPtr cacheDir; - nsCAutoString path; + nsAutoString path; mDevice->getCacheDirectory(getter_AddRefs(cacheDir)); nsresult rv = cacheDir->GetPath(path); if (NS_SUCCEEDED(rv)) { - buffer.Append(path); + buffer.Append(NS_ConvertUCS2toUTF8(path)); } else { buffer.Append("directory unavailable"); } @@ -758,7 +758,7 @@ nsDiskCacheDevice::InitializeCacheDirectory() } // create a directory with unique name to contain existing cache directory - rv = cacheTrashDir->Append(NS_LITERAL_CSTRING("Cache")); + rv = cacheTrashDir->AppendNative(NS_LITERAL_CSTRING("Cache")); if (NS_FAILED(rv)) return rv; rv = cacheTrashDir->CreateUnique(nsIFile::DIRECTORY_TYPE, 0777); if (NS_FAILED(rv)) return rv; @@ -767,7 +767,7 @@ nsDiskCacheDevice::InitializeCacheDirectory() nsCOMPtr existingCacheDir; rv = mCacheDirectory->Clone(getter_AddRefs(existingCacheDir)); if (NS_FAILED(rv)) return rv; - rv = existingCacheDir->MoveTo(cacheTrashDir, nsCString()); + rv = existingCacheDir->MoveToNative(cacheTrashDir, nsCString()); if (NS_FAILED(rv)) return rv; } @@ -786,7 +786,7 @@ nsDiskCacheDevice::GetCacheTrashDirectory(nsIFile ** result) nsCOMPtr cacheTrashDir; nsresult rv = mCacheDirectory->Clone(getter_AddRefs(cacheTrashDir)); if (NS_FAILED(rv)) return rv; - rv = cacheTrashDir->SetLeafName(NS_LITERAL_CSTRING("Cache.Trash")); + rv = cacheTrashDir->SetNativeLeafName(NS_LITERAL_CSTRING("Cache.Trash")); if (NS_FAILED(rv)) return rv; *result = cacheTrashDir.get(); @@ -844,7 +844,7 @@ nsDiskCacheDevice::SetCacheParentDirectory(nsILocalFile * parentDir) rv = parentDir->Clone(getter_AddRefs(directory)); if (NS_FAILED(rv)) return; - rv = directory->Append(NS_LITERAL_CSTRING("Cache")); + rv = directory->AppendNative(NS_LITERAL_CSTRING("Cache")); if (NS_FAILED(rv)) return; rv = directory->Exists(&exists); @@ -857,7 +857,7 @@ nsDiskCacheDevice::SetCacheParentDirectory(nsILocalFile * parentDir) // clean up Cache.Trash directories rv = parentDir->Clone(getter_AddRefs(directory)); if (NS_FAILED(rv)) return; - rv = directory->Append(NS_LITERAL_CSTRING("Cache.Trash")); + rv = directory->AppendNative(NS_LITERAL_CSTRING("Cache.Trash")); if (NS_FAILED(rv)) return; rv = directory->Exists(&exists); @@ -867,7 +867,7 @@ nsDiskCacheDevice::SetCacheParentDirectory(nsILocalFile * parentDir) // clean up obsolete NewCache directory rv = parentDir->Clone(getter_AddRefs(directory)); if (NS_FAILED(rv)) return; - rv = directory->Append(NS_LITERAL_CSTRING("NewCache")); + rv = directory->AppendNative(NS_LITERAL_CSTRING("NewCache")); if (NS_FAILED(rv)) return; rv = directory->Exists(&exists); diff --git a/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp b/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp index 5e7835f3f0d..0435f87ab12 100644 --- a/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp +++ b/mozilla/netwerk/cache/src/nsDiskCacheMap.cpp @@ -149,7 +149,7 @@ nsDiskCacheMap::Open(nsILocalFile * cacheDirectory) rv = cacheDirectory->Clone(getter_AddRefs(file)); nsCOMPtr localFile(do_QueryInterface(file, &rv)); if (NS_FAILED(rv)) return rv; - rv = localFile->Append(NS_LITERAL_CSTRING("_CACHE_MAP_")); + rv = localFile->AppendNative(NS_LITERAL_CSTRING("_CACHE_MAP_")); if (NS_FAILED(rv)) return rv; // open the file diff --git a/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp b/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp index 21f08b216c5..44d19210165 100644 --- a/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp +++ b/mozilla/netwerk/protocol/about/src/nsAboutBloat.cpp @@ -107,7 +107,7 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result) getter_AddRefs(file)); if (NS_FAILED(rv)) return rv; - rv = file->Append(NS_LITERAL_CSTRING("bloatlogs")); + rv = file->AppendNative(NS_LITERAL_CSTRING("bloatlogs")); if (NS_FAILED(rv)) return rv; PRBool exists; @@ -132,7 +132,7 @@ nsAboutBloat::NewChannel(nsIURI *aURI, nsIChannel **result) char time[128]; PR_FormatTimeUSEnglish(time, 128, "%Y-%m-%d-%H%M%S.txt", &expTime); dumpFileName += time; - rv = file->Append(dumpFileName); + rv = file->AppendNative(dumpFileName); if (NS_FAILED(rv)) return rv; FILE* out; diff --git a/mozilla/netwerk/test/TestFileInput2.cpp b/mozilla/netwerk/test/TestFileInput2.cpp index f83608dc2e9..beae69682af 100644 --- a/mozilla/netwerk/test/TestFileInput2.cpp +++ b/mozilla/netwerk/test/TestFileInput2.cpp @@ -356,8 +356,8 @@ Test(CreateFun create, PRUint32 count, nsCAutoString inDir; nsCAutoString outDir; - (void)inDirSpec->GetPath(inDir); - (void)outDirSpec->GetPath(outDir); + (void)inDirSpec->GetNativePath(inDir); + (void)outDirSpec->GetNativePath(outDir); printf("###########\nTest: from %s to %s, bufSize = %d\n", inDir.get(), outDir.get(), bufSize); gTimeSampler.Reset(); @@ -387,10 +387,10 @@ Test(CreateFun create, PRUint32 count, if (NS_FAILED(rv)) goto done; nsCAutoString leafName; - rv = inSpec->GetLeafName(leafName); + rv = inSpec->GetNativeLeafName(leafName); if (NS_FAILED(rv)) goto done; - rv = outSpec->Append(leafName); + rv = outSpec->AppendNative(leafName); if (NS_FAILED(rv)) goto done; PRBool exists; diff --git a/mozilla/netwerk/test/TestFileTransport.cpp b/mozilla/netwerk/test/TestFileTransport.cpp index 2db26dd5864..0b1dfc6ca36 100644 --- a/mozilla/netwerk/test/TestFileTransport.cpp +++ b/mozilla/netwerk/test/TestFileTransport.cpp @@ -161,10 +161,10 @@ public: rv = NS_NewNativeLocalFile(nsDependentCString(origFile), PR_FALSE, getter_AddRefs(file)); if (NS_FAILED(rv)) return rv; nsCAutoString name; - rv = file->GetLeafName(name); + rv = file->GetNativeLeafName(name); if (NS_FAILED(rv)) return rv; name += NS_LITERAL_CSTRING(".bak"); - rv = file->SetLeafName(name); + rv = file->SetNativeLeafName(name); if (NS_FAILED(rv)) return rv; rv = NS_NewLocalFileOutputStream(getter_AddRefs(mOut), file, diff --git a/mozilla/profile/pref-migrator/src/nsPrefMigration.cpp b/mozilla/profile/pref-migrator/src/nsPrefMigration.cpp index 5db843baa1d..12198f09c52 100644 --- a/mozilla/profile/pref-migrator/src/nsPrefMigration.cpp +++ b/mozilla/profile/pref-migrator/src/nsPrefMigration.cpp @@ -615,13 +615,13 @@ nsPrefMigration::ProcessPrefsCallback(const char* oldProfilePathStr, const char rv = NS_GetSpecialDirectory(NS_OS_TEMP_DIR, getter_AddRefs(systemTempDir)); if (NS_FAILED(rv)) return rv; - systemTempDir->Append(NS_LITERAL_CSTRING("migrate")); + systemTempDir->AppendNative(NS_LITERAL_CSTRING("migrate")); //Create a unique directory in the system temp dir based on the name of the 4.x prefs file rv = systemTempDir->CreateUnique(nsIFile::DIRECTORY_TYPE, 0700); if (NS_FAILED(rv)) return rv; - rv = PrefsFile4xAsIFile->CopyTo(systemTempDir, NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); + rv = PrefsFile4xAsIFile->CopyToNative(systemTempDir, NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); if (NS_FAILED(rv)) return rv; nsCOMPtr cloneFile; @@ -631,7 +631,7 @@ nsPrefMigration::ProcessPrefsCallback(const char* oldProfilePathStr, const char m_prefsFile = do_QueryInterface(cloneFile, &rv); if (NS_FAILED(rv)) return rv; - rv = m_prefsFile->Append(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); + rv = m_prefsFile->AppendNative(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_4x)); if (NS_FAILED(rv)) return rv; //Clear the prefs in case a previous set was read in. @@ -1113,7 +1113,7 @@ nsPrefMigration::ProcessPrefsCallback(const char* oldProfilePathStr, const char newProfilePath->GetNativePath(getter_Copies(path)); NS_NewNativeLocalFile(path, PR_TRUE, getter_AddRefs(newPrefsFile)); - rv = newPrefsFile->Append(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_5x)); + rv = newPrefsFile->AppendNative(NS_LITERAL_CSTRING(PREF_FILE_NAME_IN_5x)); if (NS_FAILED(rv)) return rv; rv=m_prefs->SavePrefFile(newPrefsFile); @@ -2005,7 +2005,7 @@ nsPrefMigration::DetermineOldPath(nsIFileSpec *profilePath, const char *oldPathN rv = bundle->GetStringFromName(entityName.get(), getter_Copies(localizedDirName)); if (NS_FAILED(rv)) return rv; - rv = oldLocalFile->AppendRelativePath(NS_ConvertUCS2toUTF8(localizedDirName)); + rv = oldLocalFile->AppendRelativePath(localizedDirName); if (NS_FAILED(rv)) return rv; PRBool exists = PR_FALSE; diff --git a/mozilla/profile/src/nsProfile.cpp b/mozilla/profile/src/nsProfile.cpp index ccb8346ddb2..8a51fdb038d 100644 --- a/mozilla/profile/src/nsProfile.cpp +++ b/mozilla/profile/src/nsProfile.cpp @@ -234,13 +234,13 @@ nsresult RecursiveCopy(nsIFile* srcDir, nsIFile* destDir) { nsCOMPtr newChild(do_QueryInterface(destClone)); nsCAutoString leafName; - dirEntry->GetLeafName(leafName); - newChild->AppendRelativePath(leafName); + dirEntry->GetNativeLeafName(leafName); + newChild->AppendRelativeNativePath(leafName); rv = RecursiveCopy(dirEntry, newChild); } } else - rv = dirEntry->CopyTo(destDir, nsCString()); + rv = dirEntry->CopyToNative(destDir, nsCString()); } } @@ -855,7 +855,7 @@ nsProfile::ProcessArgs(nsICmdLineService *cmdLineArgs, nsAutoString currProfileDirString; currProfileDirString.AssignWithConversion(strtok(NULL, " ")); if (!currProfileDirString.IsEmpty()) { - rv = NS_NewLocalFile(NS_ConvertUCS2toUTF8(currProfileDirString), PR_TRUE, getter_AddRefs(currProfileDir)); + rv = NS_NewLocalFile(currProfileDirString, PR_TRUE, getter_AddRefs(currProfileDir)); NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); } else { @@ -867,9 +867,9 @@ nsProfile::ProcessArgs(nsICmdLineService *cmdLineArgs, if (NS_FAILED(rv)) return rv; } - nsCAutoString currProfilePath; + nsAutoString currProfilePath; currProfileDir->GetPath(currProfilePath); - rv = CreateNewProfile(currProfileName.get(), NS_ConvertUTF8toUCS2(currProfilePath).get(), nsnull, PR_TRUE); + rv = CreateNewProfile(currProfileName.get(), currProfilePath.get(), nsnull, PR_TRUE); if (NS_SUCCEEDED(rv)) { *profileDirSet = PR_TRUE; mCurrentProfileAvailable = PR_TRUE; @@ -1043,11 +1043,11 @@ NS_IMETHODIMP nsProfile::GetProfilePath(const PRUnichar *profileName, PRUnichar if (NS_SUCCEEDED(rv)) prettyDir = parentDir; } - nsCAutoString path; + nsAutoString path; rv = prettyDir->GetPath(path); if (NS_FAILED(rv)) return rv; - *_retval = ToNewUnicode(NS_ConvertUTF8toUCS2(path)); + *_retval = ToNewUnicode(path); return *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY; } @@ -1088,7 +1088,7 @@ NS_IMETHODIMP nsProfile::GetProfileLastModTime(const PRUnichar *profileName, PRI rv = GetProfileDir(profileName, getter_AddRefs(profileDir)); if (NS_FAILED(rv)) return rv; - rv = profileDir->Append(NS_LITERAL_CSTRING("prefs.js")); + rv = profileDir->AppendNative(NS_LITERAL_CSTRING("prefs.js")); if (NS_FAILED(rv)) return rv; return profileDir->GetLastModifiedTime(_retval); @@ -1333,7 +1333,7 @@ nsProfile::AddLevelOfIndirection(nsIFile *aDir) rv = aDir->Clone(getter_AddRefs(prefFile)); NS_ENSURE_SUCCESS(rv,rv); - rv = prefFile->Append(NS_LITERAL_CSTRING("prefs.js")); + rv = prefFile->AppendNative(NS_LITERAL_CSTRING("prefs.js")); NS_ENSURE_SUCCESS(rv,rv); rv = prefFile->Exists(&exists); @@ -1545,16 +1545,16 @@ nsProfile::CreateNewProfileWithLocales(const PRUnichar* profileName, profileDir->Create(nsIFile::DIRECTORY_TYPE, 0775); // append profile name - profileDir->Append(NS_ConvertUCS2toUTF8(profileName)); + profileDir->Append(nsDependentString(profileName)); } else { - rv = NS_NewLocalFile(NS_ConvertUCS2toUTF8(nativeProfileDir), PR_TRUE, (nsILocalFile **)((nsIFile **)getter_AddRefs(profileDir))); + rv = NS_NewLocalFile(nsDependentString(nativeProfileDir), PR_TRUE, (nsILocalFile **)((nsIFile **)getter_AddRefs(profileDir))); // this prevents people from choosing there profile directory // or another directory, and remove it when they delete the profile. // append profile name - profileDir->Append(NS_ConvertUCS2toUTF8(profileName)); + profileDir->Append(nsDependentString(profileName)); } @@ -1662,7 +1662,7 @@ nsProfile::CreateNewProfileWithLocales(const PRUnichar* profileName, rv = profDefaultsDir->Clone(getter_AddRefs(locProfDefaultsDir)); if (NS_FAILED(rv)) return rv; - locProfDefaultsDir->Append(NS_ConvertUCS2toUTF8(contentLocale)); + locProfDefaultsDir->Append(nsDependentString(contentLocale)); rv = locProfDefaultsDir->Exists(&exists); if (NS_SUCCEEDED(rv) && exists) { profDefaultsDir = locProfDefaultsDir; // transfers ownership @@ -2102,7 +2102,7 @@ nsProfile::DefineLocaleDefaultsDir() nsXPIDLString localeName; rv = packageRegistry->GetSelectedLocale(NS_LITERAL_STRING("global-region").get(), getter_Copies(localeName)); if (NS_SUCCEEDED(rv)) - rv = localeDefaults->Append(NS_ConvertUCS2toUTF8(localeName)); + rv = localeDefaults->Append(localeName); } (void) directoryService->Undefine(NS_APP_PROFILE_DEFAULTS_50_DIR); rv = directoryService->Define(NS_APP_PROFILE_DEFAULTS_50_DIR, localeDefaults); @@ -2265,7 +2265,7 @@ nsProfile::MigrateProfile(const PRUnichar* profileName) if (NS_FAILED(rv)) return rv; - rv = newProfDir->Append(NS_ConvertUCS2toUTF8(profileName)); + rv = newProfDir->Append(nsDependentString(profileName)); if (NS_FAILED(rv)) return rv; @@ -2308,7 +2308,7 @@ nsProfile::RemigrateProfile(const PRUnichar* profileName) // leave .slt alone, // and remigrate the 4.x profile into .slt-new nsCAutoString newDirLeafName(origDirLeafName + NS_LITERAL_CSTRING("-new")); - rv = newProfileDir->SetLeafName(newDirLeafName); + rv = newProfileDir->SetNativeLeafName(newDirLeafName); NS_ENSURE_SUCCESS(rv,rv); // Create a new directory for the remigrated profile @@ -2414,7 +2414,7 @@ NS_IMETHODIMP nsProfile::CloneProfile(const PRUnichar* newProfile) if (NS_FAILED(rv)) return rv; nsCOMPtr destDir(do_QueryInterface(aFile, &rv)); if (NS_FAILED(rv)) return rv; - destDir->AppendRelativePath(NS_ConvertUCS2toUTF8(newProfile)); + destDir->AppendRelativePath(nsDependentString(newProfile)); // Find a unique name in the dest dir rv = destDir->CreateUnique(nsIFile::DIRECTORY_TYPE, 0775); @@ -2452,11 +2452,11 @@ nsProfile::CreateDefaultProfile(void) rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILES_ROOT_DIR, getter_AddRefs(profileRootDir)); if (NS_FAILED(rv)) return rv; - nsCAutoString profilePath; + nsAutoString profilePath; rv = profileRootDir->GetPath(profilePath); if (NS_FAILED(rv)) return rv; - rv = CreateNewProfile(DEFAULT_PROFILE_NAME, NS_ConvertUTF8toUCS2(profilePath).get(), nsnull, PR_TRUE); + rv = CreateNewProfile(DEFAULT_PROFILE_NAME, profilePath.get(), nsnull, PR_TRUE); return rv; } @@ -2554,7 +2554,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(PREFS_FILE_50_NAME); // AppendRelativePath + rv = localFile->AppendNative(PREFS_FILE_50_NAME); // AppendRelativePath } else if (inAtom == sApp_UserProfileDirectory50) { @@ -2564,7 +2564,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(USER_CHROME_DIR_50_NAME); + rv = localFile->AppendNative(USER_CHROME_DIR_50_NAME); } else if (inAtom == sApp_LocalStore50) { @@ -2574,7 +2574,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->Append(LOCAL_STORE_FILE_50_NAME); + rv = localFile->AppendNative(LOCAL_STORE_FILE_50_NAME); if (NS_SUCCEEDED(rv)) rv = EnsureProfileFileExists(localFile); } @@ -2583,7 +2583,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(HISTORY_FILE_50_NAME); + rv = localFile->AppendNative(HISTORY_FILE_50_NAME); } else if (inAtom == sApp_UsersPanels50) { @@ -2594,7 +2594,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->Append(PANELS_FILE_50_NAME); + rv = localFile->AppendNative(PANELS_FILE_50_NAME); if (NS_SUCCEEDED(rv)) rv = EnsureProfileFileExists(localFile); } @@ -2607,7 +2607,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->Append(MIME_TYPES_FILE_50_NAME); + rv = localFile->AppendNative(MIME_TYPES_FILE_50_NAME); if (NS_SUCCEEDED(rv)) rv = EnsureProfileFileExists(localFile); } @@ -2620,7 +2620,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->Append(BOOKMARKS_FILE_50_NAME); + rv = localFile->AppendNative(BOOKMARKS_FILE_50_NAME); if (NS_SUCCEEDED(rv)) rv = EnsureProfileFileExists(localFile); } @@ -2629,7 +2629,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(DOWNLOADS_FILE_50_NAME); + rv = localFile->AppendNative(DOWNLOADS_FILE_50_NAME); } else if (inAtom == sApp_SearchFile50) { @@ -2640,7 +2640,7 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->Append(SEARCH_FILE_50_NAME); + rv = localFile->AppendNative(SEARCH_FILE_50_NAME); if (NS_SUCCEEDED(rv)) rv = EnsureProfileFileExists(localFile); } @@ -2649,25 +2649,25 @@ nsProfile::GetFile(const char *prop, PRBool *persistant, nsIFile **_retval) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(MAIL_DIR_50_NAME); + rv = localFile->AppendNative(MAIL_DIR_50_NAME); } else if (inAtom == sApp_ImapMailDirectory50) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(IMAP_MAIL_DIR_50_NAME); + rv = localFile->AppendNative(IMAP_MAIL_DIR_50_NAME); } else if (inAtom == sApp_NewsDirectory50) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(NEWS_DIR_50_NAME); + rv = localFile->AppendNative(NEWS_DIR_50_NAME); } else if (inAtom == sApp_MessengerFolderCache50) { rv = CloneProfileDirectorySpec(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(MSG_FOLDER_CACHE_DIR_50_NAME); + rv = localFile->AppendNative(MSG_FOLDER_CACHE_DIR_50_NAME); } NS_RELEASE(inAtom); diff --git a/mozilla/profile/src/nsProfileAccess.cpp b/mozilla/profile/src/nsProfileAccess.cpp index 72fc7226622..3d13e5f3a62 100644 --- a/mozilla/profile/src/nsProfileAccess.cpp +++ b/mozilla/profile/src/nsProfileAccess.cpp @@ -1371,7 +1371,7 @@ nsresult ProfileStruct::InternalizeLocation(nsIRegistry *aRegistry, nsRegistryKe #endif // Now we have a unicode path - make it into a file - rv = NS_NewLocalFile(NS_ConvertUCS2toUTF8(convertedProfLoc), PR_TRUE, getter_AddRefs(tempLocal)); + rv = NS_NewLocalFile(convertedProfLoc, PR_TRUE, getter_AddRefs(tempLocal)); } else { @@ -1388,13 +1388,13 @@ nsresult ProfileStruct::InternalizeLocation(nsIRegistry *aRegistry, nsRegistryKe PRInt32 firstColon = regLocationData.FindChar(PRUnichar(':')); if (firstColon == -1) { - rv = NS_NewLocalFile(nsCString(), PR_TRUE, getter_AddRefs(tempLocal)); + rv = NS_NewNativeLocalFile(nsCString(), PR_TRUE, getter_AddRefs(tempLocal)); if (NS_SUCCEEDED(rv)) // XXX this only works on XP_MAC because regLocationData is ASCII rv = tempLocal->SetPersistentDescriptor(NS_ConvertUCS2toUTF8(regLocationData)); } else #endif - rv = NS_NewLocalFile(NS_ConvertUCS2toUTF8(regLocationData), PR_TRUE, getter_AddRefs(tempLocal)); + rv = NS_NewLocalFile(regLocationData, PR_TRUE, getter_AddRefs(tempLocal)); } if (NS_SUCCEEDED(rv) && tempLocal) @@ -1428,10 +1428,8 @@ nsresult ProfileStruct::ExternalizeLocation(nsIRegistry *aRegistry, nsRegistryKe resolvedLocation->Remove(PR_FALSE); regData = NS_ConvertUTF8toUCS2(descBuf); #else - nsCAutoString utf8Path; - rv = resolvedLocation->GetPath(utf8Path); + rv = resolvedLocation->GetPath(regData); if (NS_FAILED(rv)) return rv; - regData = NS_ConvertUTF8toUCS2(utf8Path); #endif rv = aRegistry->SetString(profKey, @@ -1467,7 +1465,7 @@ nsresult ProfileStruct::InternalizeMigratedFromLocation(nsIRegistry *aRegistry, if (NS_SUCCEEDED(rv)) { #ifdef XP_MAC - rv = NS_NewLocalFile(nsCString(), PR_TRUE, getter_AddRefs(tempLocal)); + rv = NS_NewLocalFile(nsString(), PR_TRUE, getter_AddRefs(tempLocal)); if (NS_SUCCEEDED(rv)) { // The persistent desc on Mac is base64 encoded so plain ASCII @@ -1476,7 +1474,7 @@ nsresult ProfileStruct::InternalizeMigratedFromLocation(nsIRegistry *aRegistry, migratedFrom = tempLocal; } #else - rv = NS_NewLocalFile(regData, PR_TRUE, getter_AddRefs(tempLocal)); + rv = NS_NewLocalFile(NS_ConvertUTF8toUCS2(regData), PR_TRUE, getter_AddRefs(tempLocal)); if (NS_SUCCEEDED(rv)) migratedFrom = tempLocal; #endif @@ -1494,7 +1492,9 @@ nsresult ProfileStruct::ExternalizeMigratedFromLocation(nsIRegistry *aRegistry, #if XP_MAC rv = migratedFrom->GetPersistentDescriptor(regData); #else - rv = resolvedLocation->GetPath(regData); + nsAutoString path; + rv = resolvedLocation->GetPath(path); + regData = NS_ConvertUCS2toUTF8(path); #endif if (NS_SUCCEEDED(rv)) diff --git a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp index dfe08ce3f91..b3ba31d94d1 100644 --- a/mozilla/rdf/chrome/src/nsChromeRegistry.cpp +++ b/mozilla/rdf/chrome/src/nsChromeRegistry.cpp @@ -2603,15 +2603,15 @@ nsChromeRegistry::GetProfileRoot(nsCString& aFileURL) getter_AddRefs(defaultUserChromeFile)); if (NS_FAILED(rv)) return(rv); - defaultUserContentFile->Append(NS_LITERAL_CSTRING("chrome")); - defaultUserContentFile->Append(NS_LITERAL_CSTRING("userContent.css")); - defaultUserChromeFile->Append(NS_LITERAL_CSTRING("chrome")); - defaultUserChromeFile->Append(NS_LITERAL_CSTRING("userChrome.css")); + defaultUserContentFile->AppendNative(NS_LITERAL_CSTRING("chrome")); + defaultUserContentFile->AppendNative(NS_LITERAL_CSTRING("userContent.css")); + defaultUserChromeFile->AppendNative(NS_LITERAL_CSTRING("chrome")); + defaultUserChromeFile->AppendNative(NS_LITERAL_CSTRING("userChrome.css")); // copy along // It aint an error if these files dont exist - (void) defaultUserContentFile->CopyTo(userChromeDir, nsCString()); - (void) defaultUserChromeFile->CopyTo(userChromeDir, nsCString()); + (void) defaultUserContentFile->CopyToNative(userChromeDir, nsCString()); + (void) defaultUserChromeFile->CopyToNative(userChromeDir, nsCString()); } } if (NS_FAILED(rv)) @@ -3043,12 +3043,12 @@ nsChromeRegistry::CheckForNewChrome() nsCOMPtr chromeFile; rv = listFile->Clone(getter_AddRefs(chromeFile)); if (NS_FAILED(rv)) return rv; - rv = chromeFile->Append(kChromeFileName); + rv = chromeFile->AppendNative(kChromeFileName); if (NS_FAILED(rv)) return rv; nsInt64 chromeDate; (void)chromeFile->GetLastModifiedTime(&chromeDate.mValue); - rv = listFile->AppendRelativePath(kInstalledChromeFileName); + rv = listFile->AppendRelativeNativePath(kInstalledChromeFileName); if (NS_FAILED(rv)) return rv; nsInt64 listFileDate; (void)listFile->GetLastModifiedTime(&listFileDate.mValue); diff --git a/mozilla/rdf/datasource/src/nsFileSystemDataSource.cpp b/mozilla/rdf/datasource/src/nsFileSystemDataSource.cpp index 0de9079a046..44295531c43 100644 --- a/mozilla/rdf/datasource/src/nsFileSystemDataSource.cpp +++ b/mozilla/rdf/datasource/src/nsFileSystemDataSource.cpp @@ -1529,7 +1529,7 @@ FileSystemDataSource::GetName(nsIRDFResource *source, nsIRDFLiteral **aResult) if (aFileLocal) aFileLocal->SetFollowLinks(PR_FALSE); - nsCAutoString name; + nsAutoString name; if (NS_FAILED(rv = aFile->GetLeafName(name))) return(rv); if (name.IsEmpty()) @@ -1559,7 +1559,7 @@ FileSystemDataSource::GetName(nsIRDFResource *source, nsIRDFLiteral **aResult) PRInt32 nameLen = name.Length(); if ((strncmp(uri, ieFavoritesDir, strlen(ieFavoritesDir)) == 0) && (nameLen > 4)) { - nsCAutoString extension; + nsAutoString extension; name.Right(extension, 4); if (extension.EqualsIgnoreCase(".url") || extension.EqualsIgnoreCase(".lnk")) @@ -1593,21 +1593,21 @@ FileSystemDataSource::GetName(nsIRDFResource *source, nsIRDFLiteral **aResult) 0, beNameAttr, sizeof(beNameAttr)-1)) > 0) { beNameAttr[len] = '\0'; - name = beNameAttr; + name = NS_ConvertUTF8toUCS2(beNameAttr); rv = NS_OK; } } } if (NS_OK != rv) { - name = spec.GetLeafName(); + name = NS_ConvertUTF8toUCS2(spec.GetLeafName()); rv = NS_OK; } } } #endif - gRDFService->GetLiteral(NS_ConvertUTF8toUCS2(name).get(), aResult); + gRDFService->GetLiteral(name.get(), aResult); return NS_OK; } diff --git a/mozilla/security/manager/ssl/src/nsPKCS12Blob.cpp b/mozilla/security/manager/ssl/src/nsPKCS12Blob.cpp index 5db098675d5..be3ca5ba5ef 100644 --- a/mozilla/security/manager/ssl/src/nsPKCS12Blob.cpp +++ b/mozilla/security/manager/ssl/src/nsPKCS12Blob.cpp @@ -31,7 +31,7 @@ * may use your version of this file under either the MPL or the * GPL. * - * $Id: nsPKCS12Blob.cpp,v 1.25 2002-04-27 05:32:35 darin%netscape.com Exp $ + * $Id: nsPKCS12Blob.cpp,v 1.26 2002-05-07 23:06:45 darin%netscape.com Exp $ */ #include "prmem.h" @@ -258,7 +258,7 @@ nsPKCS12Blob::ExportToFile(nsILocalFile *file, SEC_PKCS12ExportContext *ecx = NULL; SEC_PKCS12SafeInfo *certSafe = NULL, *keySafe = NULL; SECItem unicodePw; - nsCAutoString filePath; + nsAutoString filePath; int i; nsCOMPtr localFileRef; NS_ASSERTION(mToken, "Need to set the token before exporting"); @@ -360,7 +360,7 @@ nsPKCS12Blob::ExportToFile(nsILocalFile *file, // We're going to add the .p12 extension to the file name just like // Communicator used to. We create a new nsILocalFile and initialize // it with the new patch. - filePath.Append(NS_LITERAL_CSTRING(".p12")); + filePath.Append(NS_LITERAL_STRING(".p12")); localFileRef = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv); if (NS_FAILED(rv)) goto finish; localFileRef->InitWithPath(filePath); @@ -531,7 +531,7 @@ nsPKCS12Blob::digest_open(void *arg, PRBool reading) NS_GET_IID(nsILocalFile), getter_AddRefs(tmpFile)); if (tmpFile) { - tmpFile->Append(PIP_PKCS12_TMPFILENAME); + tmpFile->AppendNative(PIP_PKCS12_TMPFILENAME); nsCAutoString pathBuf; tmpFile->GetNativePath(pathBuf); cx->mTmpFilePath = ToNewCString(pathBuf); diff --git a/mozilla/uriloader/exthandler/mac/nsOSHelperAppService.cpp b/mozilla/uriloader/exthandler/mac/nsOSHelperAppService.cpp index d4468ffc28f..9a5766f3648 100644 --- a/mozilla/uriloader/exthandler/mac/nsOSHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/mac/nsOSHelperAppService.cpp @@ -144,7 +144,7 @@ nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformApp if (localFile) { if (localFile) - localFile->InitWithPath(NS_ConvertUCS2toUTF8(platformAppPath)); + localFile->InitWithPath(nsDependentString(platformAppPath)); *aFile = localFile; NS_IF_ADDREF(*aFile); } diff --git a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp index 765132e4eb5..a894d6df1f2 100644 --- a/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/nsExternalHelperAppService.cpp @@ -892,7 +892,7 @@ void nsExternalAppHandler::ExtractSuggestedFileNameFromChannel(nsIChannel* aChan if (iter != start) { // not empty // ONLY if we got here, will we remember the suggested file name... // The filename must be ASCII, see RFC 2183, section 2.3 - mSuggestedFileName = Substring(start, iter); + CopyASCIItoUCS2(Substring(start, iter), mSuggestedFileName); #ifndef XP_MAC // Make sure extension is still correct. @@ -949,7 +949,7 @@ nsresult nsExternalAppHandler::RetargetLoadNotifications(nsIRequest *request) #define SALT_SIZE 8 #define TABLE_SIZE 36 -const char table[] = +const PRUnichar table[] = { 'a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z','0','1','2','3', @@ -971,13 +971,13 @@ void nsExternalAppHandler::EnsureSuggestedFileName() if (mTempFileExtension.Length() > 1) { // Get mSuggestedFileName's current extension. - nsCAutoString fileExt; + nsAutoString fileExt; PRInt32 pos = mSuggestedFileName.RFindChar('.'); if (pos != kNotFound) mSuggestedFileName.Right(fileExt, mSuggestedFileName.Length() - pos); // Now, compare fileExt to mTempFileExtension. - if (!fileExt.Equals(mTempFileExtension, nsCaseInsensitiveCStringComparator())) + if (!fileExt.Equals(mTempFileExtension, nsCaseInsensitiveStringComparator())) { // Doesn't match, so force mSuggestedFileName to have the extension we want. mSuggestedFileName.Append(mTempFileExtension); @@ -1032,7 +1032,7 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel * aChannel) if (!leafName.IsEmpty()) { NS_UnescapeURL(leafName); - mSuggestedFileName = leafName; + mSuggestedFileName = NS_ConvertUTF8toUCS2(leafName); // XXX leafName may not be UTF-8 #ifndef XP_MAC // Make sure extension is still correct. @@ -1045,7 +1045,7 @@ nsresult nsExternalAppHandler::SetUpTempFile(nsIChannel * aChannel) } // step (2), generate a salted file name for the temp file.... - nsCAutoString saltedTempLeafName; + nsAutoString saltedTempLeafName; // this salting code was ripped directly from the profile manager. // turn PR_Now() into milliseconds since epoch 1058 // and salt rand with that. double fpTime; @@ -1194,7 +1194,7 @@ NS_IMETHODIMP nsExternalAppHandler::OnStartRequest(nsIRequest *request, nsISuppo // to the web progress listener. typedef enum { kReadError, kWriteError, kLaunchError } ErrorType; static void SendStatusChange( - ErrorType type, nsresult rv, nsIRequest *aRequest, nsIWebProgressListener *aListener, const nsACString &path) + ErrorType type, nsresult rv, nsIRequest *aRequest, nsIWebProgressListener *aListener, const nsAFlatString &path) { nsAutoString msgId; switch(rv) @@ -1239,8 +1239,7 @@ static void SendStatusChange( if (NS_SUCCEEDED(s->CreateBundle("chrome://global/locale/nsWebBrowserPersist.properties", getter_AddRefs(bundle)))) { nsXPIDLString msgText; - NS_ConvertUTF8toUCS2 uscPath(path); - const PRUnichar *strings[] = { uscPath.get() }; + const PRUnichar *strings[] = { path.get() }; if(NS_SUCCEEDED(bundle->FormatStringFromName(msgId.get(), strings, 1, getter_Copies(msgText)))) { aListener->OnStatusChange(nsnull, (type == kReadError) ? aRequest : nsnull, rv, msgText); @@ -1321,7 +1320,7 @@ NS_IMETHODIMP nsExternalAppHandler::OnDataAvailable(nsIRequest *request, nsISupp // An error occurred, notify listener. if (mWebProgressListener) { - nsCAutoString tempFilePath; + nsAutoString tempFilePath; if (mTempFile) mTempFile->GetPath(tempFilePath); SendStatusChange(readError ? kReadError : kWriteError, rv, request, mWebProgressListener, tempFilePath); @@ -1405,8 +1404,8 @@ nsresult nsExternalAppHandler::Init(nsIMIMEInfo * aMIMEInfo, const char * aTempF // make sure the extention includes the '.' if (aTempFileExtension && *aTempFileExtension != '.') - mTempFileExtension = "."; - mTempFileExtension.Append(aTempFileExtension); + mTempFileExtension = PRUnichar('.'); + mTempFileExtension.AppendWithConversion(aTempFileExtension); return NS_OK; } @@ -1428,7 +1427,7 @@ NS_IMETHODIMP nsExternalAppHandler::GetSource(nsIURI ** aSourceURI) NS_IMETHODIMP nsExternalAppHandler::GetSuggestedFileName(PRUnichar ** aSuggestedFileName) { - *aSuggestedFileName = ToNewUnicode(NS_ConvertUTF8toUCS2(mSuggestedFileName)); + *aSuggestedFileName = ToNewUnicode(mSuggestedFileName); return NS_OK; } @@ -1467,10 +1466,7 @@ nsresult nsExternalAppHandler::ShowProgressDialog() nsCOMPtr file = do_QueryInterface(appl); if (file) { - nsCAutoString leafName; - file->GetLeafName(leafName); - if (!leafName.IsEmpty()) - openWith = NS_ConvertUTF8toUCS2(leafName); + file->GetLeafName(openWith); } } } @@ -1487,7 +1483,7 @@ nsresult nsExternalAppHandler::ShowProgressDialog() return rv; } -nsresult nsExternalAppHandler::PromptForSaveToFile(nsILocalFile ** aNewFile, const nsACString &aDefaultFile, const nsACString &aFileExtension) +nsresult nsExternalAppHandler::PromptForSaveToFile(nsILocalFile ** aNewFile, const nsAFlatString &aDefaultFile, const nsAFlatString &aFileExtension) { // invoke the dialog!!!!! use mWindowContext as the window context parameter for the dialog request // XXX Convert to use file picker? @@ -1503,8 +1499,8 @@ nsresult nsExternalAppHandler::PromptForSaveToFile(nsILocalFile ** aNewFile, con // it because the dialog is implemented by a JS component which doesn't have a window so no unescape routine is defined... rv = mDialog->PromptForSaveToFile(mWindowContext, - NS_ConvertUTF8toUCS2(aDefaultFile).get(), - NS_ConvertUTF8toUCS2(aFileExtension).get(), + aDefaultFile.get(), + aFileExtension.get(), aNewFile); return rv; } @@ -1532,17 +1528,17 @@ nsresult nsExternalAppHandler::MoveFile(nsIFile * aNewFileLocation) // extract the new leaf name from the file location nsCAutoString fileName; - fileToUse->GetLeafName(fileName); + fileToUse->GetNativeLeafName(fileName); nsCOMPtr directoryLocation; fileToUse->GetParent(getter_AddRefs(directoryLocation)); if (directoryLocation) { - rv = mTempFile->MoveTo(directoryLocation, fileName); + rv = mTempFile->MoveToNative(directoryLocation, fileName); } if (NS_FAILED(rv) && mWebProgressListener) { // Send error notification. - nsCAutoString path; + nsAutoString path; fileToUse->GetPath(path); SendStatusChange(kWriteError, rv, nsnull, mWebProgressListener, path); } @@ -1569,14 +1565,14 @@ NS_IMETHODIMP nsExternalAppHandler::SaveToDisk(nsIFile * aNewFileLocation, PRBoo if (!aNewFileLocation) { - nsCAutoString leafName; + nsAutoString leafName; nsCOMPtr fileToUse; mTempFile->GetLeafName(leafName); if (mSuggestedFileName.IsEmpty()) rv = PromptForSaveToFile(getter_AddRefs(fileToUse), leafName, mTempFileExtension); else { - nsCAutoString fileExt; + nsAutoString fileExt; PRInt32 pos = mSuggestedFileName.RFindChar('.'); if (pos >= 0) mSuggestedFileName.Right(fileExt, mSuggestedFileName.Length() - pos); @@ -1625,7 +1621,7 @@ nsresult nsExternalAppHandler::OpenWithApplication(nsIFile * aApplication) if (NS_FAILED(rv) && mWebProgressListener) { // Send error notification. - nsCAutoString path; + nsAutoString path; mFinalFileDestination->GetPath(path); SendStatusChange(kLaunchError, rv, nsnull, mWebProgressListener, path); } @@ -1964,7 +1960,7 @@ NS_IMETHODIMP nsExternalHelperAppService::GetTypeFromFile( nsIFile* aFile, char // Get the Extension nsCAutoString fileName; const char* ext = nsnull; - rv = aFile->GetLeafName(fileName); + rv = aFile->GetNativeLeafName(fileName); if (NS_FAILED(rv)) return rv; if (!fileName.IsEmpty()) diff --git a/mozilla/uriloader/exthandler/nsExternalHelperAppService.h b/mozilla/uriloader/exthandler/nsExternalHelperAppService.h index 9aba82b832d..c7f321ed8aa 100644 --- a/mozilla/uriloader/exthandler/nsExternalHelperAppService.h +++ b/mozilla/uriloader/exthandler/nsExternalHelperAppService.h @@ -169,13 +169,13 @@ public: protected: nsCOMPtr mTempFile; nsCOMPtr mSourceUrl; - nsCString mTempFileExtension; // UTF-8 + nsString mTempFileExtension; nsCOMPtr mMimeInfo; nsCOMPtr mOutStream; // output stream to the temp file... nsCOMPtr mWindowContext; // the following field is set if we were processing an http channel that had a content disposition header // which specified the SUGGESTED file name we should present to the user in the save to disk dialog. - nsCString mSuggestedFileName; // UTF-8 + nsString mSuggestedFileName; // the canceled flag is set if the user canceled the launching of this application before we finished // saving the data to a temp file... @@ -204,7 +204,7 @@ protected: // if the user tells us how they want to dispose of the content and we still haven't finished downloading while // they were deciding, then throw a progress dialog so they know what's going on... nsresult ShowProgressDialog(); - nsresult PromptForSaveToFile(nsILocalFile ** aNewFile, const nsACString &aDefaultFile, const nsACString &aDefaultFileExt); + nsresult PromptForSaveToFile(nsILocalFile ** aNewFile, const nsAFlatString &aDefaultFile, const nsAFlatString &aDefaultFileExt); // if the passed in channel is an nsIHTTPChannel, we'll attempt to extract a suggested file name // from the content disposition header... void ExtractSuggestedFileNameFromChannel(nsIChannel * aChannel); diff --git a/mozilla/uriloader/exthandler/os2/nsOSHelperAppService.cpp b/mozilla/uriloader/exthandler/os2/nsOSHelperAppService.cpp index c409d993b61..5b084d785fa 100644 --- a/mozilla/uriloader/exthandler/os2/nsOSHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/os2/nsOSHelperAppService.cpp @@ -227,7 +227,7 @@ nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformApp if (localFile) { if (localFile) - localFile->InitWithPath(NS_ConvertUCS2toUTF8(platformAppPath)); + localFile->InitWithPath(nsDependentString(platformAppPath)); *aFile = localFile; NS_IF_ADDREF(*aFile); } diff --git a/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp b/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp index ca13a342a9b..cd1941ca157 100644 --- a/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/unix/nsOSHelperAppService.cpp @@ -328,7 +328,7 @@ CreateInputStream(const nsAString& aFilename, nsCOMPtr file(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv)); if (NS_FAILED(rv)) return rv; - rv = file->InitWithPath(NS_ConvertUCS2toUTF8(aFilename)); + rv = file->InitWithPath(aFilename); if (NS_FAILED(rv)) return rv; @@ -896,7 +896,7 @@ GetHandlerAndDescriptionFromMailcapFile(const nsAString& aFilename, nsCOMPtr file(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv)); if (NS_FAILED(rv)) return rv; - rv = file->InitWithPath(NS_ConvertUCS2toUTF8(aFilename)); + rv = file->InitWithPath(aFilename); if (NS_FAILED(rv)) return rv; @@ -1094,7 +1094,7 @@ nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformApp // first check if this is a full path PRBool exists = PR_FALSE; if (*platformAppPath == '/') { - localFile->InitWithPath(NS_ConvertUCS2toUTF8(platformAppPath)); + localFile->InitWithPath(nsDependentString(platformAppPath)); localFile->Exists(&exists); } else { @@ -1111,8 +1111,10 @@ nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformApp while (colon_iter != end_iter && *colon_iter != ':') { ++colon_iter; } + // XXX provided the string code has all it's bugs fixed, we should be able to + // remove this PromiseFlatCString call. localFile->InitWithNativePath(PromiseFlatCString(Substring(start_iter, colon_iter))); - rv = localFile->AppendRelativePath(NS_ConvertUCS2toUTF8(platformAppPath)); + rv = localFile->AppendRelativePath(nsDependentString(platformAppPath)); if (NS_SUCCEEDED(rv)) { localFile->Exists(&exists); if (!exists) { diff --git a/mozilla/uriloader/exthandler/win/nsOSHelperAppService.cpp b/mozilla/uriloader/exthandler/win/nsOSHelperAppService.cpp index b7f1a1490ea..26e28903bf0 100644 --- a/mozilla/uriloader/exthandler/win/nsOSHelperAppService.cpp +++ b/mozilla/uriloader/exthandler/win/nsOSHelperAppService.cpp @@ -236,7 +236,7 @@ nsresult nsOSHelperAppService::GetFileTokenForPath(const PRUnichar * platformApp if (localFile) { if (localFile) - localFile->InitWithPath(NS_ConvertUCS2toUTF8(platformAppPath)); + localFile->InitWithPath(nsDependentString(platformAppPath)); *aFile = localFile; NS_IF_ADDREF(*aFile); } diff --git a/mozilla/widget/src/windows/nsWindow.cpp b/mozilla/widget/src/windows/nsWindow.cpp index a55dca8a512..1f2f5a31dfc 100644 --- a/mozilla/widget/src/windows/nsWindow.cpp +++ b/mozilla/widget/src/windows/nsWindow.cpp @@ -5033,11 +5033,8 @@ NS_METHOD nsWindow::SetIcon(const nsAString& anIconSpec) return NS_ERROR_FAILURE; } // Get native file name of that directory. - nsCAutoString rootPath; - chromeDir->GetPath( rootPath ); - - // Start there. - NS_ConvertUTF8toUCS2 iconPath( rootPath ); + nsAutoString iconPath; + chromeDir->GetPath( iconPath ); // Now take input path... nsAutoString iconSpec( anIconSpec ); @@ -5072,7 +5069,7 @@ NS_METHOD nsWindow::SetIcon(const nsAString& anIconSpec) // See if unicode API not implemented and if not, try ascii version if ( ::GetLastError() == ERROR_CALL_NOT_IMPLEMENTED ) { nsCOMPtr pathConverter; - if ( NS_SUCCEEDED( NS_NewLocalFile( NS_ConvertUCS2toUTF8(iconPath), + if ( NS_SUCCEEDED( NS_NewLocalFile( iconPath, PR_FALSE, getter_AddRefs( pathConverter ) ) ) ) { // Now try the char* path. diff --git a/mozilla/xpcom/build/nsXPComInit.cpp b/mozilla/xpcom/build/nsXPComInit.cpp index e1fa6fddb36..b16cc3cc040 100644 --- a/mozilla/xpcom/build/nsXPComInit.cpp +++ b/mozilla/xpcom/build/nsXPComInit.cpp @@ -370,7 +370,7 @@ nsresult NS_COM NS_InitXPCOM2(nsIServiceManager* *result, //Since people are still using the nsSpecialSystemDirectory, we should init it. nsCAutoString path; - binDirectory->GetPath(path); + binDirectory->GetNativePath(path); nsFileSpec spec(path.get()); nsSpecialSystemDirectory::Set(nsSpecialSystemDirectory::Moz_BinDirectory, &spec); diff --git a/mozilla/xpcom/components/nsNativeComponentLoader.cpp b/mozilla/xpcom/components/nsNativeComponentLoader.cpp index 98e2e021ecd..69db46bacdf 100644 --- a/mozilla/xpcom/components/nsNativeComponentLoader.cpp +++ b/mozilla/xpcom/components/nsNativeComponentLoader.cpp @@ -858,9 +858,7 @@ nsNativeComponentLoader::AutoRegisterComponent(PRInt32 when, nsCOMPtr dllSpec; if (NS_SUCCEEDED(dll->GetDllSpec(getter_AddRefs(dllSpec))) && dllSpec) { - nsCAutoString dllLeafName; - dllSpec->GetLeafName(dllLeafName); // XXX - fileName.Assign(NS_ConvertUTF8toUCS2(dllLeafName)); + dllSpec->GetLeafName(fileName); } // this string can't come from a string bundle, because we diff --git a/mozilla/xpcom/io/nsAppFileLocationProvider.cpp b/mozilla/xpcom/io/nsAppFileLocationProvider.cpp index 523be86acc2..2a8d72ed630 100755 --- a/mozilla/xpcom/io/nsAppFileLocationProvider.cpp +++ b/mozilla/xpcom/io/nsAppFileLocationProvider.cpp @@ -138,21 +138,21 @@ nsAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = GetProductDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->Append(APP_REGISTRY_NAME); + rv = localFile->AppendNative(APP_REGISTRY_NAME); } else if (nsCRT::strcmp(prop, NS_APP_DEFAULTS_50_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_PREF_DEFAULTS_50_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_PREF_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_PREF_DIR_NAME); } } else if (nsCRT::strcmp(prop, NS_APP_PROFILE_DEFAULTS_50_DIR) == 0 || @@ -160,9 +160,9 @@ nsAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) { - rv = localFile->AppendRelativePath(DEFAULTS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_DIR_NAME); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(DEFAULTS_PROFILE_DIR_NAME); + rv = localFile->AppendRelativeNativePath(DEFAULTS_PROFILE_DIR_NAME); } } else if (nsCRT::strcmp(prop, NS_APP_USER_PROFILES_ROOT_DIR) == 0) @@ -173,19 +173,19 @@ nsAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(RES_DIR_NAME); + rv = localFile->AppendRelativeNativePath(RES_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_CHROME_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(CHROME_DIR_NAME); + rv = localFile->AppendRelativeNativePath(CHROME_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_PLUGINS_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(PLUGINS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_ENV_PLUGINS_DIR) == 0) { @@ -197,13 +197,13 @@ nsAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile { rv = GetProductDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(PLUGINS_DIR_NAME); + rv = localFile->AppendRelativeNativePath(PLUGINS_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_SEARCH_DIR) == 0) { rv = CloneMozBinDirectory(getter_AddRefs(localFile)); if (NS_SUCCEEDED(rv)) - rv = localFile->AppendRelativePath(SEARCH_DIR_NAME); + rv = localFile->AppendRelativeNativePath(SEARCH_DIR_NAME); } else if (nsCRT::strcmp(prop, NS_APP_INSTALL_CLEANUP_DIR) == 0) { @@ -212,7 +212,7 @@ nsAppFileLocationProvider::GetFile(const char *prop, PRBool *persistant, nsIFile rv = CloneMozBinDirectory(getter_AddRefs(localFile)); #ifdef XP_MAC if (NS_SUCCEEDED(rv)) - rv = localFile->Append(ESSENTIAL_FILES); + rv = localFile->AppendNative(ESSENTIAL_FILES); #endif } @@ -325,7 +325,7 @@ NS_METHOD nsAppFileLocationProvider::GetProductDirectory(nsILocalFile **aLocalFi #error dont_know_how_to_get_product_dir_on_your_platform #endif - rv = localDir->AppendRelativePath(DEFAULT_PRODUCT_DIR); + rv = localDir->AppendRelativeNativePath(DEFAULT_PRODUCT_DIR); if (NS_FAILED(rv)) return rv; rv = localDir->Exists(&exists); if (NS_SUCCEEDED(rv) && !exists) @@ -358,7 +358,7 @@ NS_METHOD nsAppFileLocationProvider::GetDefaultUserProfileRoot(nsILocalFile **aL #if defined(XP_MAC) || defined(XP_MACOSX) || defined(XP_OS2) || defined(XP_PC) // These 3 platforms share this part of the path - do them as one - rv = localDir->AppendRelativePath(NS_LITERAL_CSTRING("Profiles")); + rv = localDir->AppendRelativeNativePath(NS_LITERAL_CSTRING("Profiles")); if (NS_FAILED(rv)) return rv; PRBool exists; diff --git a/mozilla/xpcom/io/nsDirectoryService.cpp b/mozilla/xpcom/io/nsDirectoryService.cpp index f905dbe14d1..a959785a9cb 100644 --- a/mozilla/xpcom/io/nsDirectoryService.cpp +++ b/mozilla/xpcom/io/nsDirectoryService.cpp @@ -804,13 +804,13 @@ nsDirectoryService::GetFile(const char *prop, PRBool *persistent, nsIFile **_ret { rv = GetCurrentProcessDirectory(getter_AddRefs(localFile)); if (localFile) - localFile->Append(COMPONENT_REGISTRY_NAME); + localFile->AppendNative(COMPONENT_REGISTRY_NAME); } else if (inAtom == nsDirectoryService::sComponentDirectory) { rv = GetCurrentProcessDirectory(getter_AddRefs(localFile)); if (localFile) - localFile->Append(COMPONENT_DIRECTORY); + localFile->AppendNative(COMPONENT_DIRECTORY); } else if (inAtom == nsDirectoryService::sOS_DriveDirectory) { diff --git a/mozilla/xpcom/io/nsFastLoadFile.cpp b/mozilla/xpcom/io/nsFastLoadFile.cpp index cdc616070da..b7f1253ea7a 100644 --- a/mozilla/xpcom/io/nsFastLoadFile.cpp +++ b/mozilla/xpcom/io/nsFastLoadFile.cpp @@ -755,7 +755,7 @@ nsFastLoadFileReader::ReadFooter(nsFastLoadFooter *aFooter) return rv; nsCOMPtr file; - rv = NS_NewLocalFile(filename, PR_TRUE, getter_AddRefs(file)); + rv = NS_NewNativeLocalFile(filename, PR_TRUE, getter_AddRefs(file)); if (NS_FAILED(rv)) return rv; @@ -767,7 +767,7 @@ nsFastLoadFileReader::ReadFooter(nsFastLoadFooter *aFooter) if (LL_NE(fastLoadMtime, currentMtime)) { #ifdef DEBUG nsCAutoString path; - file->GetPath(path); + file->GetNativePath(path); printf("%s mtime changed, invalidating FastLoad file\n", path.get()); #endif @@ -1524,7 +1524,7 @@ NS_IMETHODIMP nsFastLoadFileWriter::AddDependency(nsIFile* aFile) { nsCAutoString path; - nsresult rv = aFile->GetPath(path); + nsresult rv = aFile->GetNativePath(path); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/xpcom/io/nsFastLoadService.cpp b/mozilla/xpcom/io/nsFastLoadService.cpp index 2847f1996a3..b9a3fa1c0ed 100644 --- a/mozilla/xpcom/io/nsFastLoadService.cpp +++ b/mozilla/xpcom/io/nsFastLoadService.cpp @@ -147,7 +147,7 @@ nsFastLoadService::NewFastLoadFile(const char* aBaseName, nsIFile* *aResult) nsCAutoString name(aBaseName); MASSAGE_BASENAME(name); name += PLATFORM_FASL_SUFFIX; - rv = file->Append(name); + rv = file->AppendNative(name); if (NS_FAILED(rv)) return rv; @@ -357,7 +357,7 @@ nsFastLoadService::ComputeChecksum(nsIFile* aFile, PRUint32 *aChecksum) { nsCAutoString path; - nsresult rv = aFile->GetPath(path); + nsresult rv = aFile->GetNativePath(path); if (NS_FAILED(rv)) return rv; @@ -390,7 +390,7 @@ nsFastLoadService::CacheChecksum(nsIFile* aFile, nsIObjectOutputStream *aStream) return rv; nsCAutoString path; - rv = aFile->GetPath(path); + rv = aFile->GetNativePath(path); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/xpcom/io/nsIFile.idl b/mozilla/xpcom/io/nsIFile.idl index d25310b39c0..548fe462101 100644 --- a/mozilla/xpcom/io/nsIFile.idl +++ b/mozilla/xpcom/io/nsIFile.idl @@ -34,19 +34,13 @@ interface nsISimpleEnumerator; * may think they are. Welcome to reality. * * All methods with string parameters have two forms. The preferred - * form operates on UTF-8 encoded characters strings. An alternate + * form operates on UCS-2 encoded characters strings. An alternate * form operates on characters strings encoded in the "native" charset. - * On platforms that use UTF-8 as the native charset, there is no - * difference between the two set of methods. See, for example: Append - * and AppendNative. * * A string containing characters encoded in the native charset cannot * be safely passed to javascript via xpconnect. Therefore, the "native * methods" are not scriptable. * - * The abstract string types, AUTF8String and ACString are used to signify - * UTF-8 encoded strings and native encoded strings, respectively. - * * @status UNDER_REVIEW */ [scriptable, uuid(c8c0a080-0868-11d3-915f-d9d889d48e3c)] @@ -70,7 +64,7 @@ interface nsIFile : nsISupports * @param node * A string which is intended to be a child node of the nsIFile. */ - void append(in AUTF8String node); + void append(in AString node); [noscript] void appendNative(in ACString node); /** @@ -103,7 +97,7 @@ interface nsIFile : nsISupports /** * Accessor to the leaf name of the file itself. */ - attribute AUTF8String leafName; + attribute AString leafName; [noscript] attribute ACString nativeLeafName; /** @@ -131,7 +125,7 @@ interface nsIFile : nsISupports * the file to be copied. This param may be empty, in * which case the current leaf name will be used. */ - void copyTo(in nsIFile newParentDir, in AUTF8String newName); + void copyTo(in nsIFile newParentDir, in AString newName); [noscrpit] void CopyToNative(in nsIFile newParentDir, in ACString newName); /** @@ -141,7 +135,7 @@ interface nsIFile : nsISupports * as the name implies, it follows symbolic links. The XP_UNIX * implementation always follow symbolic links when copying. */ - void copyToFollowingLinks(in nsIFile newParentDir, in AUTF8String newName); + void copyToFollowingLinks(in nsIFile newParentDir, in AString newName); [noscript] void copyToFollowingLinksNative(in nsIFile newParentDir, in ACString newName); /** @@ -168,7 +162,7 @@ interface nsIFile : nsISupports * the file to be moved. This param may be empty, in * which case the current leaf name will be used. */ - void moveTo(in nsIFile newParentDir, in AUTF8String newName); + void moveTo(in nsIFile newParentDir, in AString newName); [noscript] void moveToNative(in nsIFile newParentDir, in ACString newName); /** @@ -224,9 +218,9 @@ interface nsIFile : nsISupports * path * Find out what the nsIFile points at. */ - readonly attribute AUTF8String target; + readonly attribute AString target; [noscript] readonly attribute ACString nativeTarget; - readonly attribute AUTF8String path; + readonly attribute AString path; [noscript] readonly attribute ACString nativePath; boolean exists(); diff --git a/mozilla/xpcom/io/nsILocalFile.idl b/mozilla/xpcom/io/nsILocalFile.idl index c983a63e86d..5155a9b6621 100644 --- a/mozilla/xpcom/io/nsILocalFile.idl +++ b/mozilla/xpcom/io/nsILocalFile.idl @@ -63,7 +63,7 @@ interface nsILocalFile : nsIFile * error (NS_ERROR_FILE_UNRECOGNIZED_PATH). This * path must in native. */ - void initWithPath(in AUTF8String filePath); + void initWithPath(in AString filePath); [noscript] void initWithNativePath(in ACString filePath); /** @@ -110,15 +110,15 @@ interface nsILocalFile : nsIFile * this cannot contain .. or cannot start with a directory separator * XXXbe Why not? Bogus! */ - void appendRelativePath(in AUTF8String relativeFilePath); + void appendRelativePath(in AString relativeFilePath); [noscript] void appendRelativeNativePath(in ACString relativeFilePath); /** * Accessor to a null terminated string which will specify * the file in a persistent manner for disk storage. * - * The character set of this attribute is undefined. Do not try to - * interpret it as human readable text. + * The character set of this attribute is undefined. DO NOT TRY TO + * INTERPRET IT AS HUMAN READABLE TEXT! */ attribute ACString persistentDescriptor; @@ -143,13 +143,16 @@ interface nsILocalFile : nsIFile /** * getRelativeDescriptor * - * Returns a UTF-8 encoded relative file path in an XP format. - * It is therefore not a native path. + * Returns a relative file path in an opaque, XP format. It is therefore + * not a native path. + * + * The character set of the string returned from this function is + * undefined. DO NOT TRY TO INTERPRET IT AS HUMAN READABLE TEXT! * * @param fromFile * the file from which the descriptor is relative */ - AUTF8String getRelativeDescriptor(in nsILocalFile fromFile); + ACString getRelativeDescriptor(in nsILocalFile fromFile); /** * setRelativeDescriptor @@ -160,7 +163,7 @@ interface nsILocalFile : nsIFile * @param fromFile * the file to which the descriptor is relative */ - void setRelativeDescriptor(in nsILocalFile fromFile, in AUTF8String relativeDesc); + void setRelativeDescriptor(in nsILocalFile fromFile, in ACString relativeDesc); }; %{C++ @@ -168,7 +171,7 @@ interface nsILocalFile : nsIFile #define NS_LOCAL_FILE_CLASSNAME "Local File Specification" extern "C" NS_EXPORT nsresult -NS_NewLocalFile(const nsACString &path, PRBool followLinks, nsILocalFile* *result); +NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result); extern "C" NS_EXPORT nsresult NS_NewNativeLocalFile(const nsACString &path, PRBool followLinks, nsILocalFile* *result); %} diff --git a/mozilla/xpcom/io/nsLocalFileCommon.cpp b/mozilla/xpcom/io/nsLocalFileCommon.cpp index 03b44685be8..602ecd49e6c 100644 --- a/mozilla/xpcom/io/nsLocalFileCommon.cpp +++ b/mozilla/xpcom/io/nsLocalFileCommon.cpp @@ -62,10 +62,10 @@ nsLocalFile::InitWithFile(nsILocalFile *aFile) NS_ENSURE_ARG(aFile); nsCAutoString path; - aFile->GetPath(path); + aFile->GetNativePath(path); if (path.IsEmpty()) return NS_ERROR_FAILURE; - return InitWithPath(path); + return InitWithNativePath(path); } #endif @@ -120,11 +120,11 @@ nsLocalFile::CreateUnique(PRUint32 type, PRUint32 attributes) } #if defined(XP_MAC) -static const char kPathSeparatorChar = ':'; +static const PRUnichar kPathSeparatorChar = ':'; #elif defined(XP_WIN) || defined(XP_OS2) -static const char kPathSeparatorChar = '\\'; +static const PRUnichar kPathSeparatorChar = '\\'; #elif defined(XP_UNIX) || defined(XP_BEOS) -static const char kPathSeparatorChar = '/'; +static const PRUnichar kPathSeparatorChar = '/'; #else #error Need to define file path separator for your platform #endif @@ -134,17 +134,17 @@ static const char kSlashStr[] = "/"; static const char kESCSlashStr[] = "%2F"; #endif -static PRInt32 SplitPath(char *path, char **nodeArray, PRInt32 arrayLen) +static PRInt32 SplitPath(PRUnichar *path, PRUnichar **nodeArray, PRInt32 arrayLen) { if (*path == 0) return 0; - char **nodePtr = nodeArray; + PRUnichar **nodePtr = nodeArray; if (*path == kPathSeparatorChar) path++; *nodePtr++ = path; - for (char *cp = path; *cp != 0; cp++) { + for (PRUnichar *cp = path; *cp != 0; cp++) { if (*cp == kPathSeparatorChar) { *cp++ = 0; if (*cp != 0) { @@ -162,12 +162,16 @@ NS_IMETHODIMP nsLocalFile::GetRelativeDescriptor(nsILocalFile *fromFile, nsACString& _retval) { const PRInt32 kMaxNodesInPath = 32; + + // + // _retval will be UTF-8 encoded + // nsresult rv; _retval.Truncate(0); - nsCAutoString thisPath, fromPath; - char *thisNodes[kMaxNodesInPath], *fromNodes[kMaxNodesInPath]; + nsAutoString thisPath, fromPath; + PRUnichar *thisNodes[kMaxNodesInPath], *fromNodes[kMaxNodesInPath]; PRInt32 thisNodeCnt, fromNodeCnt, nodeIndex; rv = GetPath(thisPath); @@ -177,13 +181,13 @@ nsLocalFile::GetRelativeDescriptor(nsILocalFile *fromFile, nsACString& _retval) if (NS_FAILED(rv)) return rv; - thisNodeCnt = SplitPath((char *)thisPath.get(), thisNodes, kMaxNodesInPath); - fromNodeCnt = SplitPath((char *)fromPath.get(), fromNodes, kMaxNodesInPath); + thisNodeCnt = SplitPath((PRUnichar *)thisPath.get(), thisNodes, kMaxNodesInPath); + fromNodeCnt = SplitPath((PRUnichar *)fromPath.get(), fromNodes, kMaxNodesInPath); if (thisNodeCnt < 0 || fromNodeCnt < 0) return NS_ERROR_FAILURE; for (nodeIndex = 0; nodeIndex < thisNodeCnt && nodeIndex < fromNodeCnt; nodeIndex++) { - if (!strcmp(thisNodes[nodeIndex], fromNodes[nodeIndex])) + if (!nsCRT::strcmp(thisNodes[nodeIndex], fromNodes[nodeIndex])) break; } @@ -191,11 +195,9 @@ nsLocalFile::GetRelativeDescriptor(nsILocalFile *fromFile, nsACString& _retval) for (nodeIndex = branchIndex; nodeIndex < fromNodeCnt; nodeIndex++) _retval.Append(NS_LITERAL_CSTRING("../")); for (nodeIndex = branchIndex; nodeIndex < thisNodeCnt; nodeIndex++) { + NS_ConvertUCS2toUTF8 nodeStr(thisNodes[nodeIndex]); #ifdef XP_MAC - nsCAutoString nodeStr(thisNodes[nodeIndex]); nodeStr.ReplaceSubstring(kSlashStr, kESCSlashStr); -#else - nsDependentCString nodeStr(thisNodes[nodeIndex]); #endif _retval.Append(nodeStr); if (nodeIndex + 1 < thisNodeCnt) @@ -215,6 +217,10 @@ nsLocalFile::SetRelativeDescriptor(nsILocalFile *fromFile, const nsACString& rel if (NS_FAILED(rv)) return rv; + // + // relativeDesc is UTF-8 encoded + // + nsCString::const_iterator strBegin, strEnd; relativeDesc.BeginReading(strBegin); relativeDesc.EndReading(strEnd); @@ -240,9 +246,9 @@ nsLocalFile::SetRelativeDescriptor(nsILocalFile *fromFile, const nsACString& rel #ifdef XP_MAC nsCAutoString nodeString(Substring(nodeBegin, nodeEnd)); nodeString.ReplaceSubstring(kESCSlashStr, kSlashStr); - targetFile->Append(nodeString); + targetFile->Append(NS_ConvertUTF8toUCS2(nodeString)); #else - targetFile->Append(Substring(nodeBegin, nodeEnd)); + targetFile->Append(NS_ConvertUTF8toUCS2(Substring(nodeBegin, nodeEnd))); #endif if (nodeEnd != strEnd) // If there's more left in the string, inc over the '/' nodeEnd is on. ++nodeEnd; @@ -252,116 +258,3 @@ nsLocalFile::SetRelativeDescriptor(nsILocalFile *fromFile, const nsACString& rel nsCOMPtr targetLocalFile(do_QueryInterface(targetFile)); return InitWithFile(targetLocalFile); } - -#define GET_UTF8(func, result) \ - PR_BEGIN_MACRO \ - PRUnichar *buf = nsnull; \ - nsresult rv = (func)(&buf); \ - if (NS_FAILED(rv)) return rv; \ - result = NS_ConvertUCS2toUTF8(buf); \ - nsMemory::Free(buf); \ - PR_END_MACRO - -NS_IMETHODIMP -nsLocalFile::Append(const nsACString &aNode) -{ - if (aNode.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aNode)) - return AppendNative(aNode); - - return AppendUnicode(NS_ConvertUTF8toUCS2(aNode).get()); -} - -NS_IMETHODIMP -nsLocalFile::GetLeafName(nsACString &aLeafName) -{ - if (FSCharsetIsUTF8() || LeafIsASCII()) - return GetNativeLeafName(aLeafName); - - GET_UTF8(GetUnicodeLeafName, aLeafName); - return NS_OK; -} - -NS_IMETHODIMP -nsLocalFile::SetLeafName(const nsACString &aLeafName) -{ - if (aLeafName.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aLeafName)) - return SetNativeLeafName(aLeafName); - - return SetUnicodeLeafName(NS_ConvertUTF8toUCS2(aLeafName).get()); -} - -NS_IMETHODIMP -nsLocalFile::CopyTo(nsIFile *aNewParentDir, const nsACString &aNewName) -{ - if (aNewName.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aNewName)) - return CopyToNative(aNewParentDir, aNewName); - - return CopyToUnicode(aNewParentDir, NS_ConvertUTF8toUCS2(aNewName).get()); -} - -NS_IMETHODIMP -nsLocalFile::CopyToFollowingLinks(nsIFile *aNewParentDir, const nsACString &aNewName) -{ - if (aNewName.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aNewName)) - return CopyToFollowingLinksNative(aNewParentDir, aNewName); - - return CopyToFollowingLinksUnicode(aNewParentDir, NS_ConvertUTF8toUCS2(aNewName).get()); -} - -NS_IMETHODIMP -nsLocalFile::MoveTo(nsIFile *aNewParentDir, const nsACString &aNewName) -{ - if (aNewName.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aNewName)) - return MoveToNative(aNewParentDir, aNewName); - - return MoveToUnicode(aNewParentDir, NS_ConvertUTF8toUCS2(aNewName).get()); -} - -NS_IMETHODIMP -nsLocalFile::GetTarget(nsACString &aTarget) -{ - if (FSCharsetIsUTF8()) - return GetNativeTarget(aTarget); - - // XXX unfortunately, there is no way to know if the target will contain - // non-ASCII characters until after we resolve it. - GET_UTF8(GetUnicodeTarget, aTarget); - return NS_OK; -} - -NS_IMETHODIMP -nsLocalFile::GetPath(nsACString &aPath) -{ - if (FSCharsetIsUTF8() || PathIsASCII()) - return GetNativePath(aPath); - - GET_UTF8(GetUnicodePath, aPath); - return NS_OK; -} - -NS_IMETHODIMP -nsLocalFile::InitWithPath(const nsACString &aPath) -{ - if (aPath.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aPath)) - return InitWithNativePath(aPath); - - return InitWithUnicodePath(NS_ConvertUTF8toUCS2(aPath).get()); -} - -NS_IMETHODIMP -nsLocalFile::AppendRelativePath(const nsACString &aRelativePath) -{ - if (aRelativePath.IsEmpty() || FSCharsetIsUTF8() || IsASCII(aRelativePath)) - return AppendRelativeNativePath(aRelativePath); - - return AppendRelativeUnicodePath(NS_ConvertUTF8toUCS2(aRelativePath).get()); -} - -nsresult -NS_NewLocalFile(const nsACString &aPath, PRBool aFollowLinks, nsILocalFile **aResult) -{ - if (aPath.IsEmpty() || nsLocalFile::FSCharsetIsUTF8() || IsASCII(aPath)) - return NS_NewNativeLocalFile(aPath, aFollowLinks, aResult); - - return NS_NewUnicodeLocalFile(NS_ConvertUTF8toUCS2(aPath).get(), aFollowLinks, aResult); -} diff --git a/mozilla/xpcom/io/nsLocalFileMac.cpp b/mozilla/xpcom/io/nsLocalFileMac.cpp index ce75be2508d..fea8c9e7650 100644 --- a/mozilla/xpcom/io/nsLocalFileMac.cpp +++ b/mozilla/xpcom/io/nsLocalFileMac.cpp @@ -29,7 +29,6 @@ #include "nsXPIDLString.h" #include "nsLocalFileMac.h" -#include "nsLocalFileUnicode.h" #include "nsISimpleEnumerator.h" #include "nsIComponentManager.h" #include "nsIInternetConfigService.h" @@ -1318,12 +1317,12 @@ nsLocalFile::InitWithNativePath(const nsACString &filePath) } NS_IMETHODIMP -nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) +nsLocalFile::InitWithPath(const nsAString &filePath) { nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(filePath), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(filePath, fsStr))) rv = InitWithNativePath(fsStr); return rv; @@ -1546,12 +1545,12 @@ nsLocalFile::AppendNative(const nsACString &aNode) } NS_IMETHODIMP -nsLocalFile::AppendUnicode(const PRUnichar *node) +nsLocalFile::Append(const nsAString &node) { nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(node), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(node, fsStr))) rv = AppendNative(fsStr); return rv; @@ -1578,12 +1577,12 @@ nsLocalFile::AppendRelativeNativePath(const nsACString &relPath) } NS_IMETHODIMP -nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *relPath) +nsLocalFile::AppendRelativePath(const nsAString &relPath) { nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(relPath), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(relPath, fsStr))) rv = AppendRelativeNativePath(fsStr); return rv; @@ -1628,18 +1627,13 @@ nsLocalFile::GetNativeLeafName(nsACString &aLeafName) } NS_IMETHODIMP -nsLocalFile::GetUnicodeLeafName(PRUnichar **aLeafName) +nsLocalFile::GetLeafName(nsAString &aLeafName) { nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = GetNativeLeafName(fsStr))) { - nsAutoString ucStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::FSToUCS(fsStr, ucStr))) { - if ((*aLeafName = ToNewUnicode(ucStr)) == nsnull) - rv = NS_ERROR_OUT_OF_MEMORY; - } - } + if (NS_SUCCEEDED(rv = GetNativeLeafName(fsStr))) + rv = nsFSStringConversionMac::FSToUCS(fsStr, aLeafName); return rv; } @@ -1673,12 +1667,12 @@ nsLocalFile::SetNativeLeafName(const nsACString &aLeafName) } NS_IMETHODIMP -nsLocalFile::SetUnicodeLeafName(const PRUnichar * aLeafName) +nsLocalFile::SetLeafName(const nsAString &aLeafName) { nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(aLeafName), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(aLeafName, fsStr))) rv = SetNativeLeafName(fsStr); return rv; @@ -1738,10 +1732,9 @@ nsLocalFile::GetNativePath(nsACString &_retval) } NS_IMETHODIMP -nsLocalFile::GetUnicodePath(PRUnichar **_retval) +nsLocalFile::GetPath(nsAString &_retval) { nsresult rv = NS_OK; - NS_ENSURE_ARG_POINTER(_retval); #if TARGET_CARBON if (sHasHFSPlusAPIs) // should always be true under Carbon, but in case... @@ -1770,9 +1763,7 @@ nsLocalFile::GetUnicodePath(PRUnichar **_retval) ucPathString.Append(ucAppendage); } - *_retval = ToNewUnicode(ucPathString); - if (!*_retval) - return NS_ERROR_OUT_OF_MEMORY; + _retval = ucPathString; } else #endif @@ -1780,11 +1771,7 @@ nsLocalFile::GetUnicodePath(PRUnichar **_retval) nsCAutoString fsStr; if (NS_SUCCEEDED(rv = GetNativePath(fsStr))) { - nsAutoString ucStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::FSToUCS(fsStr, ucStr))) { - if ((*_retval = ToNewUnicode(ucStr)) == nsnull) - rv = NS_ERROR_OUT_OF_MEMORY; - } + rv = nsFSStringConversionMac::FSToUCS(fsStr, _retval); } } return rv; @@ -1877,14 +1864,14 @@ nsLocalFile::CopyToNative(nsIFile *newParentDir, const nsACString &newName) } NS_IMETHODIMP -nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return CopyToNative(newParentDir, nsCString()); nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(newName), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(newName, fsStr))) rv = CopyToNative(newParentDir, fsStr); return rv; } @@ -1896,14 +1883,14 @@ nsLocalFile::CopyToFollowingLinksNative(nsIFile *newParentDir, const nsACString } NS_IMETHODIMP -nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return CopyToFollowingLinksNative(newParentDir, nsCString()); nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(newName), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(newName, fsStr))) rv = CopyToFollowingLinksNative(newParentDir, fsStr); return rv; } @@ -1915,14 +1902,14 @@ nsLocalFile::MoveToNative(nsIFile *newParentDir, const nsACString &newName) } NS_IMETHODIMP -nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::MoveTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return MoveToNative(newParentDir, nsCString()); nsresult rv; nsCAutoString fsStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(nsDependentString(newName), fsStr))) + if (NS_SUCCEEDED(rv = nsFSStringConversionMac::UCSToFS(newName, fsStr))) rv = MoveToNative(newParentDir, fsStr); return rv; } @@ -2550,17 +2537,13 @@ nsLocalFile::GetNativeTarget(nsACString &_retval) } NS_IMETHODIMP -nsLocalFile::GetUnicodeTarget(PRUnichar **_retval) +nsLocalFile::GetTarget(nsAString &_retval) { nsresult rv; nsCAutoString fsStr; if (NS_SUCCEEDED(rv = GetNativeTarget(fsStr))) { - nsAutoString ucStr; - if (NS_SUCCEEDED(rv = nsFSStringConversionMac::FSToUCS(fsStr, ucStr))) { - if ((*_retval = ToNewUnicode(ucStr)) == nsnull) - rv = NS_ERROR_OUT_OF_MEMORY; - } + rv = nsFSStringConversionMac::FSToUCS(fsStr, _retval); } return rv; } @@ -3563,10 +3546,10 @@ NS_NewNativeLocalFile(const nsACString &path, PRBool followLinks, nsILocalFile* } nsresult -NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* *result) +NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { nsCAutoString fsCharSetStr; - nsresult rv = nsFSStringConversionMac::UCSToFS(nsDependentString(path), fsCharSetStr); + nsresult rv = nsFSStringConversionMac::UCSToFS(path, fsCharSetStr); if (NS_FAILED(rv)) return rv; return NS_NewNativeLocalFile(fsCharSetStr, followLinks, result); diff --git a/mozilla/xpcom/io/nsLocalFileMac.h b/mozilla/xpcom/io/nsLocalFileMac.h index 4baab07f7f4..31bb17aa9b9 100644 --- a/mozilla/xpcom/io/nsLocalFileMac.h +++ b/mozilla/xpcom/io/nsLocalFileMac.h @@ -86,15 +86,6 @@ protected: nsresult ExtensionIsOnExceptionList(const char *extension, PRBool *onList); - // XXX needs impl - static PRBool FSCharsetIsUTF8() { return PR_FALSE; } - - // XXX we should compute and store these values - PRBool LeafIsASCII() { return PR_FALSE; } - PRBool PathIsASCII() { return PR_FALSE; } - - NS_DECL_NSLOCALFILE_UNICODE_METHODS - private: nsLocalFile(const nsLocalFile& srcFile); nsLocalFile(const FSSpec& aSpec, const nsACString& aAppendedPath); diff --git a/mozilla/xpcom/io/nsLocalFileOS2.cpp b/mozilla/xpcom/io/nsLocalFileOS2.cpp index b2251c99fff..45af1767d57 100644 --- a/mozilla/xpcom/io/nsLocalFileOS2.cpp +++ b/mozilla/xpcom/io/nsLocalFileOS2.cpp @@ -28,7 +28,6 @@ #include "nsMemory.h" #include "nsLocalFileOS2.h" -#include "nsLocalFileUnicode.h" #include @@ -2272,16 +2271,13 @@ FStoUCS2(const char* aBuffer, PRUnichar **aResult) } NS_IMETHODIMP -nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) +nsLocalFile::InitWithPath(const nsAString &filePath) { - - NS_ENSURE_ARG(filePath); - - if (nsCRT::strlen(filePath) == 0) - return NS_ERROR_INVALID_ARG; + if (filePath.IsEmpty()) + return InitWithNativePath(nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(filePath, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(filePath).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return InitWithNativePath(tmp); @@ -2290,15 +2286,13 @@ nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) } NS_IMETHODIMP -nsLocalFile::AppendUnicode(const PRUnichar *node) +nsLocalFile::Append(const nsAString &node) { - NS_ENSURE_ARG(node); - - if (nsCRT::strlen(node) == 0) + if (node.IsEmpty()) return NS_OK; nsXPIDLCString tmp; - nsresult rv = UCS2toFS(node, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(node).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return AppendNative(tmp); @@ -2307,11 +2301,9 @@ nsLocalFile::AppendUnicode(const PRUnichar *node) } NS_IMETHODIMP -nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *node) +nsLocalFile::AppendRelativePath(const nsAString &node) { - NS_ENSURE_ARG(node); - - if (nsCRT::strlen(node) == 0) + if (node.IsEmpty()) return NS_OK; nsXPIDLCString tmp; @@ -2319,7 +2311,7 @@ nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *node) if (tmp.IsEmpty()) return NS_OK; - nsresult rv = UCS2toFS(node, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(node).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return AppendRelativeNativePath(tmp); @@ -2328,28 +2320,29 @@ nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *node) } NS_IMETHODIMP -nsLocalFile::GetUnicodeLeafName(PRUnichar **aLeafName) +nsLocalFile::GetLeafName(nsAString &aLeafName) { - NS_ENSURE_ARG_POINTER(aLeafName); nsCAutoString tmp; nsresult rv = GetNativeLeafName(tmp); - if (NS_SUCCEEDED(rv)) - return FStoUCS2(tmp.get(), aLeafName); + if (NS_SUCCEEDED(rv)) { + nsXPIDLString ucsBuf; + rv = FStoUCS2(tmp.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + aLeafName = ucsBuf; + } return rv; } NS_IMETHODIMP -nsLocalFile::SetUnicodeLeafName(const PRUnichar *aLeafName) +nsLocalFile::SetLeafName(const nsAString &aLeafName) { - NS_ENSURE_ARG(aLeafName); - - if (nsCRT::strlen(aLeafName) == 0) - return NS_OK; + if (aLeafName.IsEmpty()) + return SetNativeLeafName(nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(aLeafName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(aLeafName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return SetNativeLeafName(tmp); @@ -2358,21 +2351,23 @@ nsLocalFile::SetUnicodeLeafName(const PRUnichar *aLeafName) } NS_IMETHODIMP -nsLocalFile::GetUnicodePath(PRUnichar **_retval) +nsLocalFile::GetPath(nsAString &_retval) { - NS_ENSURE_ARG_POINTER(_retval); - - return FStoUCS2(mWorkingPath.get(), _retval); + nsXPIDLString ucsBuf; + nsresult rv = FStoUCS2(mWorkingPath.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + _retval = ucsBuf; + return rv; } NS_IMETHODIMP -nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName || nsCRT::strlen(newName) == 0) + if (newName.IsEmpty()) return CopyToNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return CopyToNative(newParentDir, tmp); @@ -2381,13 +2376,13 @@ nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) } NS_IMETHODIMP -nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString &newName) { - if (!newName || nsCRT::strlen(newName) == 0) + if (newName.IsEmpty()) return CopyToFollowingLinksNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return CopyToFollowingLinksNative(newParentDir, tmp); @@ -2396,13 +2391,13 @@ nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar } NS_IMETHODIMP -nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::MoveTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName || nsCRT::strlen(newName) == 0) + if (newName.IsEmpty()) return MoveToNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return MoveToNative(newParentDir, tmp); @@ -2411,26 +2406,29 @@ nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) } NS_IMETHODIMP -nsLocalFile::GetUnicodeTarget(PRUnichar **_retval) +nsLocalFile::GetTarget(nsAString &_retval) { - NS_ENSURE_ARG_POINTER(_retval); nsCAutoString tmp; nsresult rv = GetNativeTarget(tmp); - if (NS_SUCCEEDED(rv)) - return FStoUCS2(tmp.get(), _retval); + if (NS_SUCCEEDED(rv)) { + nsXPIDLString ucsBuf; + rv = FStoUCS2(tmp.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + _retval = ucsBuf; + } return rv; } nsresult -NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* *result) +NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { - if (!path || nsCRT::strlen(path) == 0) - return NS_ERROR_INVALID_ARG; + if (path.IsEmpty()) + return NS_NewNativeLocalFile(nsCString(), followLinks, result); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(path, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(path).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return NS_NewNativeLocalFile(tmp, followLinks, result); @@ -2442,14 +2440,10 @@ NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* // global init/shutdown //---------------------------------------------------------------------------- -PRBool nsLocalFile::mFSCharsetIsUTF8 = PR_FALSE; - void nsLocalFile::GlobalInit() { NS_CreateUnicodeConverters(); - - // XXX set mFSCharsetIsUTF8 } void diff --git a/mozilla/xpcom/io/nsLocalFileOS2.h b/mozilla/xpcom/io/nsLocalFileOS2.h index cdce9131d7d..f27ae78efe5 100644 --- a/mozilla/xpcom/io/nsLocalFileOS2.h +++ b/mozilla/xpcom/io/nsLocalFileOS2.h @@ -115,12 +115,9 @@ public: public: static void GlobalInit(); static void GlobalShutdown(); - static PRBool FSCharsetIsUTF8() { return mFSCharsetIsUTF8; } private: - static PRBool mFSCharsetIsUTF8; - // this is the flag which indicates if I can used cached information about the file PRPackedBool mDirty; PRPackedBool mLastResolution; @@ -147,12 +144,6 @@ private: nsresult CopySingleFile(nsIFile *source, nsIFile* dest, const nsACString &newName, PRBool followSymlinks, PRBool move); nsresult SetModDate(PRInt64 aLastModifiedTime, PRBool resolveTerminal); - - // XXX impl - PRBool PathIsASCII() { return PR_FALSE; } - PRBool LeafIsASCII() { return PR_FALSE; } - - NS_DECL_NSLOCALFILE_UNICODE_METHODS }; #endif diff --git a/mozilla/xpcom/io/nsLocalFileUnix.cpp b/mozilla/xpcom/io/nsLocalFileUnix.cpp index 7b05658c459..297f3dc8283 100644 --- a/mozilla/xpcom/io/nsLocalFileUnix.cpp +++ b/mozilla/xpcom/io/nsLocalFileUnix.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #ifdef XP_BEOS #include #include @@ -58,7 +59,6 @@ #include "nsString.h" #include "nsReadableUtils.h" #include "nsLocalFileUnix.h" -#include "nsLocalFileUnicode.h" #include "nsIComponentManager.h" #include "nsXPIDLString.h" #include "prproces.h" @@ -210,9 +210,7 @@ nsDirEnumeratorUnix::GetNextEntry() } nsLocalFile::nsLocalFile() : - mHaveCachedStat(PR_FALSE), - mPathIsASCII(-1), - mLeafIsASCII(-1) + mHaveCachedStat(PR_FALSE) { NS_INIT_REFCNT(); } @@ -670,11 +668,11 @@ nsLocalFile::CopyDirectoryTo(nsIFile *newParent) rv = newParent->Clone(getter_AddRefs(destClone)); if (NS_SUCCEEDED(rv)) { nsCOMPtr newDir(do_QueryInterface(destClone)); - if (NS_FAILED(rv = entry->CopyTo(newDir, nsCString()))) { + if (NS_FAILED(rv = entry->CopyToNative(newDir, nsCString()))) { #ifdef DEBUG nsresult rv2; nsCAutoString pathName; - if (NS_FAILED(rv2 = entry->GetPath(pathName))) + if (NS_FAILED(rv2 = entry->GetNativePath(pathName))) return rv2; printf("Operation not supported: %s\n", pathName.get()); #endif @@ -684,11 +682,11 @@ nsLocalFile::CopyDirectoryTo(nsIFile *newParent) } } } else { - if (NS_FAILED(rv = entry->CopyTo(newParent, nsCString()))) { + if (NS_FAILED(rv = entry->CopyToNative(newParent, nsCString()))) { #ifdef DEBUG nsresult rv2; nsCAutoString pathName; - if (NS_FAILED(rv2 = entry->GetPath(pathName))) + if (NS_FAILED(rv2 = entry->GetNativePath(pathName))) return rv2; printf("Operation not supported: %s\n", pathName.get()); #endif @@ -1552,61 +1550,73 @@ NS_NewNativeLocalFile(const nsACString &path, PRBool followSymlinks, nsILocalFil #define TOLERATE_UCONV_FAILURE 1 static int -convert_ucs2_to_native(const PRUnichar *input, char *result, unsigned resultLen) +convert_ucs2_to_native(const nsAString &input, char *result, unsigned resultLen) { // this function assumes that |result| is big enough NS_ASSERTION(resultLen == PATH_MAX, "unexpected resultLen"); #ifdef HAVE_WCRTOMB mbstate_t ps = {0}; #endif - char buf[16], *cursor = result; + char *cursor = result; int i = 0; - const PRUnichar *p = input; - NS_ASSERTION(MB_CUR_MAX <= sizeof(buf), "must increase sizeof(buf)"); + nsAString::const_iterator start, end; + input.BeginReading(start); + input.EndReading(end); + PRUint32 size; - // perform conversion - p = input; - while (*p) { + for ( ; start != end; start.advance(size)) { + size = start.size_forward(); + + const PRUnichar *p = start.get(); + + for (PRUint32 j = 0; j < size; ++j, ++p) { #ifdef HAVE_WCRTOMB - i = (int) wcrtomb(cursor, (wchar_t) *p, &ps); + i = (int) wcrtomb(cursor, (wchar_t) *p, &ps); #else - // XXX is this thread-safe? - i = (int) wctomb(cursor, (wchar_t) *p); + // XXX is this thread-safe? + i = (int) wctomb(cursor, (wchar_t) *p); #endif - if (i < 0) { - NS_WARNING("wctomb failed: possible charset mismatch"); + if (i < 0) { + NS_WARNING("wctomb failed: possible charset mismatch"); #ifdef TOLERATE_UCONV_FAILURE - *cursor = (unsigned char) *p; // truncate - i = 1; + *cursor = (unsigned char) *p; // truncate + i = 1; #else - return -1; + return -1; #endif + } + // most likely we're dead anyways if this assertion should fire + NS_ASSERTION(cursor + i <= result + resultLen, "wrote beyond end of string"); + cursor += i; + if (cursor >= result + resultLen - 1) { + cursor = result + resultLen - 1; // fixup cursor + break; + } } - // most likely we're dead anyways if this assertion should fire - NS_ASSERTION(cursor + i <= result + resultLen, "wrote beyond end of string"); - cursor += i; - if (cursor >= result + resultLen - 1) { - cursor = result + resultLen - 1; // fixup cursor - break; - } - p++; } *cursor = '\0'; return cursor - result; } static int -convert_native_to_ucs2(const char *input, unsigned inputLen, PRUnichar **result) +convert_native_to_ucs2(const char *input, unsigned inputLen, nsAString &result) { #ifdef HAVE_MBRTOWC mbstate_t ps = {0}; #endif PRUnichar *p; - int i; + int i, resultLen = 0; + + result.Truncate(); // allocate space for largest possible result - p = *result = (PRUnichar *) nsMemory::Alloc((inputLen + 1) * sizeof(PRUnichar)); + result.SetCapacity(inputLen + 1); + + nsAString::iterator start; + result.BeginWriting(start); + + p = start.get(); if (!p) { NS_ERROR("memory allocation failed"); return -1; @@ -1625,6 +1635,7 @@ convert_native_to_ucs2(const char *input, unsigned inputLen, PRUnichar **result) if (i < 0) { NS_WARNING("mbtowc failed: possible charset mismatch"); #ifdef TOLERATE_UCONV_FAILURE + // truncate and hope for the best tmp = (unsigned char) *input; i = 1; #else @@ -1637,9 +1648,10 @@ convert_native_to_ucs2(const char *input, unsigned inputLen, PRUnichar **result) input += i; inputLen -= i; p++; + resultLen++; } - *p = '\0'; - return p - *result; + result.SetLength(resultLen); + return 0; } #define SET_UCS(func, ucsArg) \ @@ -1673,60 +1685,60 @@ convert_native_to_ucs2(const char *input, unsigned inputLen, PRUnichar **result) // Unicode interface Wrapper nsresult -nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) +nsLocalFile::InitWithPath(const nsAString &filePath) { - SET_UCS(InitWithNativePath, filePath); + SET_UCS(InitWithNativePath, filePath); } nsresult -nsLocalFile::AppendUnicode(const PRUnichar *node) +nsLocalFile::Append(const nsAString &node) { - SET_UCS( AppendNative , node); + SET_UCS(AppendNative, node); } nsresult -nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *node) +nsLocalFile::AppendRelativePath(const nsAString &node) { - SET_UCS( AppendRelativeNativePath , node); + SET_UCS(AppendRelativeNativePath, node); } nsresult -nsLocalFile::GetUnicodeLeafName(PRUnichar **aLeafName) +nsLocalFile::GetLeafName(nsAString &aLeafName) { - GET_UCS(GetNativeLeafName, aLeafName); + GET_UCS(GetNativeLeafName, aLeafName); } nsresult -nsLocalFile::SetUnicodeLeafName(const PRUnichar * aLeafName) +nsLocalFile::SetLeafName(const nsAString &aLeafName) { - SET_UCS( SetNativeLeafName , aLeafName); + SET_UCS(SetNativeLeafName, aLeafName); } nsresult -nsLocalFile::GetUnicodePath(PRUnichar **_retval) +nsLocalFile::GetPath(nsAString &_retval) { - int i = convert_native_to_ucs2(mPath.get(), mPath.Length(), _retval); - if (i == -1) - return NS_ERROR_FAILURE; - return NS_OK; + int i = convert_native_to_ucs2(mPath.get(), mPath.Length(), _retval); + if (i == -1) + return NS_ERROR_FAILURE; + return NS_OK; } nsresult -nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyTo(nsIFile *newParentDir, const nsAString &newName) { - SET_UCS_2ARGS_2( CopyToNative , newParentDir, newName); + SET_UCS_2ARGS_2(CopyToNative , newParentDir, newName); } nsresult -nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString &newName) { - SET_UCS_2ARGS_2( CopyToFollowingLinksNative , newParentDir, newName); + SET_UCS_2ARGS_2(CopyToFollowingLinksNative , newParentDir, newName); } nsresult -nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::MoveTo(nsIFile *newParentDir, const nsAString &newName) { - SET_UCS_2ARGS_2( MoveToNative , newParentDir, newName); + SET_UCS_2ARGS_2(MoveToNative, newParentDir, newName); } nsresult -nsLocalFile::GetUnicodeTarget(PRUnichar **_retval) +nsLocalFile::GetTarget(nsAString &_retval) { - GET_UCS(GetNativeTarget, _retval); + GET_UCS(GetNativeTarget, _retval); } nsresult -NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* *result) +NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { char buf[PATH_MAX]; int i = convert_ucs2_to_native(path, buf, PATH_MAX); @@ -1739,25 +1751,11 @@ NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* // global init/shutdown //----------------------------------------------------------------------------- -PRBool -nsLocalFile::FSCharsetIsUTF8() -{ -#if HAVE_NL_LANGINFO && defined(CODESET) - // this result may vary, so we must query nl_langinfo each time. - // fortunately, this amounts to little more than an array lookup (at - // least that's how it's implemented in glibc). - const char *codeset = nl_langinfo(CODESET); - if (!codeset) { - NS_WARNING("cannot get nl_langinfo(CODESET)"); - return PR_FALSE; - } - return (strcmp(codeset, "UTF-8") == 0); -#endif -} - void nsLocalFile::GlobalInit() { + // need to initialize the locale or else charset conversion will fail. + setlocale(LC_CTYPE, ""); } void diff --git a/mozilla/xpcom/io/nsLocalFileUnix.h b/mozilla/xpcom/io/nsLocalFileUnix.h index 1f0a16ba4e2..0505b638570 100644 --- a/mozilla/xpcom/io/nsLocalFileUnix.h +++ b/mozilla/xpcom/io/nsLocalFileUnix.h @@ -118,31 +118,11 @@ public: public: static void GlobalInit(); static void GlobalShutdown(); - static PRBool FSCharsetIsUTF8(); protected: struct stat mCachedStat; nsCString mPath; PRPackedBool mHaveCachedStat; - PRInt8 mPathIsASCII; // -1 if unknown - PRInt8 mLeafIsASCII; // -1 if unknown - - NS_DECL_NSLOCALFILE_UNICODE_METHODS - - // XXX these results should probably be cached - PRBool PathIsASCII() { - if (mPathIsASCII == -1) - mPathIsASCII = IsASCII(mPath); - return mPathIsASCII; - } - PRBool LeafIsASCII() { - if (mLeafIsASCII == -1) { - nsACString::const_iterator begin, end; - LocateNativeLeafName(begin, end); - mLeafIsASCII = IsASCII(Substring(begin, end)); - } - return mLeafIsASCII; - } void LocateNativeLeafName(nsACString::const_iterator &, nsACString::const_iterator &); @@ -155,9 +135,6 @@ protected: void InvalidateCache() { mHaveCachedStat = PR_FALSE; - // not the most optimal place to clear these, but it works... - mPathIsASCII = -1; - mLeafIsASCII = -1; } nsresult FillStatCache(); diff --git a/mozilla/xpcom/io/nsLocalFileWin.cpp b/mozilla/xpcom/io/nsLocalFileWin.cpp index 0dc1001a674..2853d7a0cee 100644 --- a/mozilla/xpcom/io/nsLocalFileWin.cpp +++ b/mozilla/xpcom/io/nsLocalFileWin.cpp @@ -27,7 +27,6 @@ #include "nsMemory.h" #include "nsLocalFileWin.h" -#include "nsLocalFileUnicode.h" #include "nsISimpleEnumerator.h" #include "nsIComponentManager.h" @@ -1935,7 +1934,7 @@ nsLocalFile::Reveal() nsresult rv = NS_OK; PRBool isDirectory = PR_FALSE; nsCAutoString path; - nsCAutoString utf8Path; + nsAutoString unicodePath; IsDirectory(&isDirectory); if (isDirectory) @@ -1949,12 +1948,10 @@ nsLocalFile::Reveal() if (parent) { parent->GetNativePath(path); - parent->GetPath(utf8Path); + parent->GetPath(unicodePath); } } - NS_ConvertUTF8toUCS2 unicodePath(utf8Path); - // Remember the current fg window. HWND origWin, fgWin; origWin = fgWin = ::GetForegroundWindow(); @@ -2030,8 +2027,8 @@ nsLocalFile::Reveal() break; // Now get file name pidl from that folder. - nsXPIDLString unicodeLeaf; - if (NS_FAILED(GetUnicodeLeafName(getter_Copies(unicodeLeaf)))) + nsAutoString unicodeLeaf; + if (NS_FAILED(GetLeafName(unicodeLeaf))) break; rc = folder->ParseDisplayName( 0, 0, @@ -2210,10 +2207,10 @@ static nsresult FStoUCS2(const char* aBuffer, PRUnichar **aResult) } nsresult -nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) +nsLocalFile::InitWithPath(const nsAString &filePath) { nsXPIDLCString tmp; - nsresult rv = UCS2toFS(filePath, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(filePath).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return InitWithNativePath(tmp); @@ -2221,10 +2218,10 @@ nsLocalFile::InitWithUnicodePath(const PRUnichar *filePath) } nsresult -nsLocalFile::AppendUnicode(const PRUnichar *node) +nsLocalFile::Append(const nsAString &node) { nsXPIDLCString tmp; - nsresult rv = UCS2toFS(node, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(node).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return AppendNative(tmp); @@ -2232,31 +2229,35 @@ nsLocalFile::AppendUnicode(const PRUnichar *node) } nsresult -nsLocalFile::AppendRelativeUnicodePath(const PRUnichar *node) +nsLocalFile::AppendRelativePath(const nsAString &node) { nsXPIDLCString tmp; - nsresult rv = UCS2toFS(node, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(node).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return AppendRelativeNativePath(tmp); return rv; } nsresult -nsLocalFile::GetUnicodeLeafName(PRUnichar **aLeafName) +nsLocalFile::GetLeafName(nsAString &aLeafName) { nsCAutoString tmp; nsresult rv = GetNativeLeafName(tmp); - if (NS_SUCCEEDED(rv)) - return FStoUCS2(tmp.get(), aLeafName); + if (NS_SUCCEEDED(rv)) { + nsXPIDLString ucsBuf; + rv = FStoUCS2(tmp.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + aLeafName = ucsBuf; + } return rv; } nsresult -nsLocalFile::SetUnicodeLeafName(const PRUnichar * aLeafName) +nsLocalFile::SetLeafName(const nsAString &aLeafName) { nsXPIDLCString tmp; - nsresult rv = UCS2toFS(aLeafName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(aLeafName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return SetNativeLeafName(tmp); @@ -2264,19 +2265,23 @@ nsLocalFile::SetUnicodeLeafName(const PRUnichar * aLeafName) } nsresult -nsLocalFile::GetUnicodePath(PRUnichar **_retval) +nsLocalFile::GetPath(nsAString &_retval) { - return FStoUCS2(mWorkingPath.get(), _retval); + nsXPIDLString ucsBuf; + nsresult rv = FStoUCS2(mWorkingPath.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + _retval = ucsBuf; + return rv; } nsresult -nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return CopyToNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return CopyToNative(newParentDir, tmp); @@ -2284,13 +2289,13 @@ nsLocalFile::CopyToUnicode(nsIFile *newParentDir, const PRUnichar *newName) } nsresult -nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::CopyToFollowingLinks(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return CopyToFollowingLinksNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return CopyToFollowingLinksNative(newParentDir, tmp); @@ -2298,13 +2303,13 @@ nsLocalFile::CopyToFollowingLinksUnicode(nsIFile *newParentDir, const PRUnichar } nsresult -nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) +nsLocalFile::MoveTo(nsIFile *newParentDir, const nsAString &newName) { - if (!newName) + if (newName.IsEmpty()) return MoveToNative(newParentDir, nsCString()); nsXPIDLCString tmp; - nsresult rv = UCS2toFS(newName, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(newName).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return MoveToNative(newParentDir, tmp); @@ -2312,21 +2317,25 @@ nsLocalFile::MoveToUnicode(nsIFile *newParentDir, const PRUnichar *newName) } nsresult -nsLocalFile::GetUnicodeTarget(PRUnichar **_retval) +nsLocalFile::GetTarget(nsAString &_retval) { nsCAutoString tmp; nsresult rv = GetNativeTarget(tmp); - if (NS_SUCCEEDED(rv)) - return FStoUCS2(tmp.get(), _retval); + if (NS_SUCCEEDED(rv)) { + nsXPIDLString ucsBuf; + rv = FStoUCS2(tmp.get(), getter_Copies(ucsBuf)); + if (NS_SUCCEEDED(rv)) + _retval = ucsBuf; + } return rv; } nsresult -NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* *result) +NS_NewLocalFile(const nsAString &path, PRBool followLinks, nsILocalFile* *result) { nsXPIDLCString tmp; - nsresult rv = UCS2toFS(path, getter_Copies(tmp)); + nsresult rv = UCS2toFS(PromiseFlatString(path).get(), getter_Copies(tmp)); if (NS_SUCCEEDED(rv)) return NS_NewNativeLocalFile(tmp, followLinks, result); @@ -2337,15 +2346,11 @@ NS_NewUnicodeLocalFile(const PRUnichar* path, PRBool followLinks, nsILocalFile* // nsLocalFile //----------------------------------------------------------------------------- -PRBool nsLocalFile::mFSCharsetIsUTF8 = PR_FALSE; - void nsLocalFile::GlobalInit() { nsresult rv = NS_CreateShortcutResolver(); NS_ASSERTION(NS_SUCCEEDED(rv), "Shortcut resolver could not be created"); - - // XXX determine value of mFSCharsetIsUTF8 } void diff --git a/mozilla/xpcom/io/nsLocalFileWin.h b/mozilla/xpcom/io/nsLocalFileWin.h index 8650f3c5161..d4a29b20454 100644 --- a/mozilla/xpcom/io/nsLocalFileWin.h +++ b/mozilla/xpcom/io/nsLocalFileWin.h @@ -68,7 +68,6 @@ public: public: static void GlobalInit(); static void GlobalShutdown(); - static PRBool FSCharsetIsUTF8() { return mFSCharsetIsUTF8; } private: @@ -88,12 +87,6 @@ private: static PRBool mFSCharsetIsUTF8; - NS_DECL_NSLOCALFILE_UNICODE_METHODS - - // XXX impl - PRBool PathIsASCII() { return PR_FALSE; } - PRBool LeafIsASCII() { return PR_FALSE; } - void MakeDirty(); nsresult ResolveAndStat(PRBool resolveTerminal); nsresult ResolvePath(const char* workingPath, PRBool resolveTerminal, char** resolvedPath); diff --git a/mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp b/mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp index e01dc35dc82..48b54546800 100644 --- a/mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp +++ b/mozilla/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp @@ -332,7 +332,7 @@ xptiInterfaceInfoManager::BuildFileList(nsISupportsArray* aSearchPath, } nsCAutoString name; - if(NS_FAILED(file->GetLeafName(name))) + if(NS_FAILED(file->GetNativeLeafName(name))) return PR_FALSE; if(xptiFileType::IsUnknown(name.get())) @@ -431,7 +431,7 @@ xptiInterfaceInfoManager::LoadFile(const xptiTypelib& aTypelibRecord, getter_AddRefs(file))) || !file) return PR_FALSE; - if(NS_FAILED(file->Append(nsDependentCString(fileRecord->GetName())))) + if(NS_FAILED(file->AppendNative(nsDependentCString(fileRecord->GetName())))) return PR_FALSE; XPTHeader* header; @@ -628,12 +628,12 @@ xptiSortFileList(const void * p1, const void *p2, void * closure) nsCAutoString name1; nsCAutoString name2; - if(NS_FAILED(pFile1->GetLeafName(name1))) + if(NS_FAILED(pFile1->GetNativeLeafName(name1))) { NS_ERROR("way bad, with no happy out!"); return 0; } - if(NS_FAILED(pFile2->GetLeafName(name2))) + if(NS_FAILED(pFile2->GetNativeLeafName(name2))) { NS_ERROR("way bad, with no happy out!"); return 0; @@ -792,7 +792,7 @@ xptiInterfaceInfoManager::DetermineAutoRegStrategy(nsISupportsArray* aSearchPath if(NS_FAILED(file->GetFileSize(&size)) || NS_FAILED(file->GetLastModifiedTime(&date)) || - NS_FAILED(file->GetLeafName(name)) || + NS_FAILED(file->GetNativeLeafName(name)) || !aWorkingSet->FindDirectoryOfFile(file, &directory)) { NS_ERROR("unexpected!"); @@ -841,7 +841,7 @@ xptiInterfaceInfoManager::DetermineAutoRegStrategy(nsISupportsArray* aSearchPath PRInt64 date; if(NS_FAILED(file->GetFileSize(&size)) || NS_FAILED(file->GetLastModifiedTime(&date)) || - NS_FAILED(file->GetLeafName(name))) + NS_FAILED(file->GetNativeLeafName(name))) { NS_ERROR("unexpected!"); return FULL_VALIDATION_REQUIRED; @@ -909,7 +909,7 @@ xptiInterfaceInfoManager::AddOnlyNewFilesFromFileList(nsISupportsArray* aSearchP PRUint32 dir; if(NS_FAILED(file->GetFileSize(&size)) || NS_FAILED(file->GetLastModifiedTime(&date)) || - NS_FAILED(file->GetLeafName(name)) || + NS_FAILED(file->GetNativeLeafName(name)) || !aWorkingSet->FindDirectoryOfFile(file, &dir)) { return PR_FALSE; @@ -1059,7 +1059,7 @@ xptiInterfaceInfoManager::DoFullValidationMergeFromFileList(nsISupportsArray* aS PRUint32 dir; if(NS_FAILED(file->GetFileSize(&size)) || NS_FAILED(file->GetLastModifiedTime(&date)) || - NS_FAILED(file->GetLeafName(name)) || + NS_FAILED(file->GetNativeLeafName(name)) || !aWorkingSet->FindDirectoryOfFile(file, &dir)) { return PR_FALSE; @@ -1545,7 +1545,7 @@ xptiInterfaceInfoManager::DEBUG_DumpFileList(nsISupportsArray* aFileList) return PR_FALSE; nsCAutoString name; - if(NS_FAILED(file->GetLeafName(name))) + if(NS_FAILED(file->GetNativeLeafName(name))) return PR_FALSE; printf("* found %s\n", name.get()); @@ -1575,7 +1575,7 @@ xptiInterfaceInfoManager::DEBUG_DumpFileArray(nsILocalFile** aFileArray, nsILocalFile* file = aFileArray[i]; nsCAutoString name; - if(NS_FAILED(file->GetLeafName(name))) + if(NS_FAILED(file->GetNativeLeafName(name))) return PR_FALSE; printf("found file: %s\n", name.get()); diff --git a/mozilla/xpcom/reflect/xptinfo/src/xptiManifest.cpp b/mozilla/xpcom/reflect/xptinfo/src/xptiManifest.cpp index 92c40c13818..19079d8f1bc 100644 --- a/mozilla/xpcom/reflect/xptinfo/src/xptiManifest.cpp +++ b/mozilla/xpcom/reflect/xptinfo/src/xptiManifest.cpp @@ -79,7 +79,7 @@ CurrentAppDirMatchesPersistentDescriptor(xptiInterfaceInfoManager* aMgr, aMgr->GetApplicationDir(getter_AddRefs(appDir)); nsCOMPtr descDir; - nsresult rv = NS_NewLocalFile(nsCString(), PR_FALSE, getter_AddRefs(descDir)); + nsresult rv = NS_NewNativeLocalFile(nsCString(), PR_FALSE, getter_AddRefs(descDir)); if(NS_FAILED(rv)) return PR_FALSE; @@ -136,7 +136,7 @@ PRBool xptiManifest::Write(xptiInterfaceInfoManager* aMgr, if(!aMgr->GetCloneOfManifestDir(getter_AddRefs(tempFile)) || !tempFile) return PR_FALSE; - if(NS_FAILED(tempFile->Append(g_TempManifestFilename))) + if(NS_FAILED(tempFile->AppendNative(g_TempManifestFilename))) return PR_FALSE; // All exits via "goto out;" from here on... @@ -262,7 +262,7 @@ out: if(!aMgr->GetCloneOfManifestDir(getter_AddRefs(mainFile)) || !mainFile) return PR_FALSE; - if(NS_FAILED(mainFile->Append(g_MainManifestFilename))) + if(NS_FAILED(mainFile->AppendNative(g_MainManifestFilename))) return PR_FALSE; PRBool exists; @@ -273,7 +273,7 @@ out: return PR_FALSE; // MoveTo means rename. - if(NS_FAILED(tempFile->MoveTo(nsnull, g_MainManifestFilename))) + if(NS_FAILED(tempFile->MoveToNative(nsnull, g_MainManifestFilename))) return PR_FALSE; } @@ -297,7 +297,7 @@ ReadManifestIntoMemory(xptiInterfaceInfoManager* aMgr, if(!aMgr->GetCloneOfManifestDir(getter_AddRefs(aFile)) || !aFile) return nsnull; - if(NS_FAILED(aFile->Append(g_MainManifestFilename))) + if(NS_FAILED(aFile->AppendNative(g_MainManifestFilename))) return nsnull; #ifdef DEBUG @@ -305,7 +305,7 @@ ReadManifestIntoMemory(xptiInterfaceInfoManager* aMgr, static PRBool shown = PR_FALSE; nsCAutoString path; - if(!shown && NS_SUCCEEDED(aFile->GetPath(path)) && !path.IsEmpty()) + if(!shown && NS_SUCCEEDED(aFile->GetNativePath(path)) && !path.IsEmpty()) { printf("Type Manifest File: %s\n", path.get()); shown = PR_TRUE; @@ -776,7 +776,7 @@ PRBool xptiManifest::Delete(xptiInterfaceInfoManager* aMgr) if(!aMgr->GetCloneOfManifestDir(getter_AddRefs(aFile)) || !aFile) return PR_FALSE; - if(NS_FAILED(aFile->Append(g_MainManifestFilename))) + if(NS_FAILED(aFile->AppendNative(g_MainManifestFilename))) return PR_FALSE; PRBool exists; diff --git a/mozilla/xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp b/mozilla/xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp index 25bb36bc56a..72b682fe254 100644 --- a/mozilla/xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp +++ b/mozilla/xpcom/reflect/xptinfo/src/xptiWorkingSet.cpp @@ -417,7 +417,7 @@ PRBool xptiWorkingSet::DirectoryAtMatchesPersistentDescriptor(PRUint32 i, return PR_FALSE; nsCOMPtr descDir; - nsresult rv = NS_NewLocalFile(nsCString(), PR_FALSE, getter_AddRefs(descDir)); + nsresult rv = NS_NewNativeLocalFile(nsCString(), PR_FALSE, getter_AddRefs(descDir)); if(NS_FAILED(rv)) return PR_FALSE; diff --git a/mozilla/xpcom/tests/nsIFileTest.cpp b/mozilla/xpcom/tests/nsIFileTest.cpp index 6706ba2a761..90bc49f0050 100644 --- a/mozilla/xpcom/tests/nsIFileTest.cpp +++ b/mozilla/xpcom/tests/nsIFileTest.cpp @@ -257,7 +257,7 @@ CopyTest(const char *testFile, const char *targetDir) rv = dir->InitWithNativePath(nsDependentCString(targetDir)); VerifyResult(rv); - rv = file->CopyTo(dir, nsCString()); + rv = file->CopyTo(dir, nsString()); VerifyResult(rv); printf("end copy test\n"); diff --git a/mozilla/xpfe/bootstrap/nsAppRunner.cpp b/mozilla/xpfe/bootstrap/nsAppRunner.cpp index 5ed1f071aea..d1d9a540963 100644 --- a/mozilla/xpfe/bootstrap/nsAppRunner.cpp +++ b/mozilla/xpfe/bootstrap/nsAppRunner.cpp @@ -1184,7 +1184,7 @@ static nsresult VerifyInstallation(int argc, char **argv) if (NS_FAILED(rv) || !registryFile) return NS_ERROR_FAILURE; - registryFile->Append(CLEANUP_REGISTRY); + registryFile->AppendNative(CLEANUP_REGISTRY); PRBool exists; registryFile->Exists(&exists); @@ -1197,7 +1197,7 @@ static nsresult VerifyInstallation(int argc, char **argv) nsCOMPtr cleanupUtility; registryFile->Clone(getter_AddRefs(cleanupUtility)); - cleanupUtility->SetLeafName(CLEANUP_UTIL); + cleanupUtility->SetNativeLeafName(CLEANUP_UTIL); //Create the process framework to run the cleanup utility nsCOMPtr cleanupProcess = do_CreateInstance(kIProcessCID); diff --git a/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp b/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp index 4f15a965b19..0409842d174 100644 --- a/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp +++ b/mozilla/xpfe/components/download-manager/src/nsDownloadManager.cpp @@ -454,11 +454,9 @@ nsDownloadManager::AddDownload(nsIURI* aSource, } // Set and assert the "pretty" (display) name of the download - nsCAutoString prettyName; nsAutoString displayName; displayName.Assign(aDisplayName); if (displayName.IsEmpty()) { - aTarget->GetLeafName(prettyName); - displayName.Assign(NS_ConvertUTF8toUCS2(prettyName)); + aTarget->GetLeafName(displayName); } (*aDownload)->SetDisplayName(displayName.get()); diff --git a/mozilla/xpfe/components/filepicker/src/nsFileView.cpp b/mozilla/xpfe/components/filepicker/src/nsFileView.cpp index 41b300a7925..3efaf1bfaad 100644 --- a/mozilla/xpfe/components/filepicker/src/nsFileView.cpp +++ b/mozilla/xpfe/components/filepicker/src/nsFileView.cpp @@ -540,9 +540,7 @@ nsFileView::GetCellText(PRInt32 aRow, const PRUnichar* aColID, } if (NS_LITERAL_STRING("FilenameColumn").Equals(aColID)) { - nsCAutoString temp; - curFile->GetLeafName(temp); - aCellText = NS_ConvertUTF8toUCS2(temp); + curFile->GetLeafName(aCellText); } else if (NS_LITERAL_STRING("LastModifiedColumn").Equals(aColID)) { PRInt64 lastModTime; curFile->GetLastModifiedTime(&lastModTime); @@ -647,13 +645,11 @@ nsFileView::FilterFiles() if (!mShowHiddenFiles) file->IsHidden(&isHidden); - nsCAutoString leafName; - if(NS_FAILED(file->GetLeafName(leafName))) { + nsAutoString ucsLeafName; + if(NS_FAILED(file->GetLeafName(ucsLeafName))) { // need to check return value for GetLeafName() continue; } - - NS_ConvertUTF8toUCS2 ucsLeafName(leafName); if (!isHidden) { for (PRInt32 j = 0; j < filterCount; ++j) { @@ -692,7 +688,7 @@ SortNameCallback(const void* aElement1, const void* aElement2, void* aContext) nsIFile* file1 = *NS_STATIC_CAST(nsIFile* const *, aElement1); nsIFile* file2 = *NS_STATIC_CAST(nsIFile* const *, aElement2); - nsCAutoString leafName1, leafName2; + nsAutoString leafName1, leafName2; file1->GetLeafName(leafName1); file2->GetLeafName(leafName2); diff --git a/mozilla/xpfe/components/search/src/nsInternetSearchService.cpp b/mozilla/xpfe/components/search/src/nsInternetSearchService.cpp index cc73c16a80f..4337c0faf01 100755 --- a/mozilla/xpfe/components/search/src/nsInternetSearchService.cpp +++ b/mozilla/xpfe/components/search/src/nsInternetSearchService.cpp @@ -2433,7 +2433,7 @@ InternetSearchDataSource::saveContents(nsIChannel* channel, nsIInternetSearchCon if (NS_FAILED(context->GetBufferLength(&bufferLength))) return(rv); if (bufferLength < 1) return(NS_OK); - rv = outFile->Append(baseName); + rv = outFile->Append(NS_ConvertUTF8toUCS2(baseName)); if (NS_FAILED(rv)) return rv; // save data to file @@ -3831,12 +3831,10 @@ InternetSearchDataSource::SaveEngineInfoIntoGraph(nsIFile *file, nsIFile *icon, if (NS_FAILED(rv)) return(rv); if (!exists) return(NS_ERROR_UNEXPECTED); - nsCAutoString leafName; - rv = native->GetLeafName(leafName); + nsAutoString basename; + rv = native->GetLeafName(basename); if (NS_FAILED(rv)) return rv; - NS_ConvertUTF8toUCS2 basename(leafName); - // ensure that the basename points to the search engine file PRInt32 extensionOffset; if ((extensionOffset = basename.RFindChar(PRUnichar('.'))) > 0) @@ -4054,12 +4052,11 @@ InternetSearchDataSource::GetSearchEngineList(nsIFile *searchDir, if (NS_FAILED(rv) || (fileSize == 0)) continue; - nsCAutoString pathBuf; - rv = dirEntry->GetPath(pathBuf); + nsAutoString uri; + rv = dirEntry->GetPath(uri); if (NS_FAILED(rv)) continue; - NS_ConvertUTF8toUCS2 uri(pathBuf); PRInt32 len = uri.Length(); if (len < 5) { diff --git a/mozilla/xpfe/components/xfer/src/nsStreamTransfer.cpp b/mozilla/xpfe/components/xfer/src/nsStreamTransfer.cpp index 10daa33ed25..d0c895f0f75 100644 --- a/mozilla/xpfe/components/xfer/src/nsStreamTransfer.cpp +++ b/mozilla/xpfe/components/xfer/src/nsStreamTransfer.cpp @@ -331,10 +331,7 @@ nsString nsStreamTransfer::SuggestNameFor( nsIChannel *aChannel, char const *sug NS_UnescapeURL(suggestedFileName); if ( NS_SUCCEEDED( NS_NewNativeLocalFile( suggestedFileName, PR_FALSE, getter_AddRefs( localFile ) ) ) ) { // We want base part of name only. - nsCAutoString baseName; - if ( NS_SUCCEEDED( localFile->GetLeafName( baseName ) ) ) { - result = NS_ConvertUTF8toUCS2(baseName); - } + localFile->GetLeafName(result); } } else if ( aChannel ) { // Get URI from channel and spec from URI. @@ -349,11 +346,8 @@ nsString nsStreamTransfer::SuggestNameFor( nsIChannel *aChannel, char const *sug rv = fileurl->GetFile(getter_AddRefs(localeFile)); if ( NS_SUCCEEDED( rv ) && localeFile) { - nsCAutoString baseName; - if ( NS_SUCCEEDED( localeFile->GetLeafName( baseName ) ) ) { - result = NS_ConvertUTF8toUCS2(baseName); + if ( NS_SUCCEEDED( localeFile->GetLeafName( result ) ) ) return result; - } } } diff --git a/mozilla/xpinstall/src/ScheduledTasks.cpp b/mozilla/xpinstall/src/ScheduledTasks.cpp index d49c947a618..b47dd0c04ef 100644 --- a/mozilla/xpinstall/src/ScheduledTasks.cpp +++ b/mozilla/xpinstall/src/ScheduledTasks.cpp @@ -138,7 +138,7 @@ nsresult GetRegFilePath(nsACString ®FilePath) return nsnull; #if defined (XP_MAC) - tmp->Append(ESSENTIAL_FILES); + tmp->AppendNative(ESSENTIAL_FILES); #endif iFileUtilityPath = do_QueryInterface(tmp); } @@ -151,7 +151,7 @@ nsresult GetRegFilePath(nsACString ®FilePath) if (NS_FAILED(rv) || !iFileUtilityPath) return nsnull; - iFileUtilityPath->Append(CLEANUP_REGISTRY); + iFileUtilityPath->AppendNative(CLEANUP_REGISTRY); //Yes, we know using GetPath is buggy on the Mac. //When libreg is fixed to accept nsIFiles we'll change this to match. diff --git a/mozilla/xpinstall/src/nsInstall.cpp b/mozilla/xpinstall/src/nsInstall.cpp index eb4b1c1b0cd..e08fee92eab 100644 --- a/mozilla/xpinstall/src/nsInstall.cpp +++ b/mozilla/xpinstall/src/nsInstall.cpp @@ -708,8 +708,7 @@ nsInstall::DiskSpaceAvailable(const nsString& aFolder, PRInt64* aReturn) return NS_OK; } nsCOMPtr folder; - NS_NewLocalFile(NS_ConvertUCS2toUTF8(aFolder), PR_TRUE, - getter_AddRefs(folder)); + NS_NewLocalFile(aFolder, PR_TRUE, getter_AddRefs(folder)); result = folder->GetDiskSpaceAvailable(aReturn); return NS_OK; @@ -2587,7 +2586,7 @@ nsInstall::ExtractFileFromJar(const nsString& aJarfile, nsIFile* aSuggestedName, aJarfile.Right(extension, (aJarfile.Length() - extpos) ); tempFileName += extension; } - tempFile->Append(NS_ConvertUCS2toUTF8(tempFileName)); + tempFile->Append(tempFileName); // Create a temporary file to extract to MakeUnique(tempFile); @@ -2616,7 +2615,7 @@ nsInstall::ExtractFileFromJar(const nsString& aJarfile, nsIFile* aSuggestedName, return nsInstall::OUT_OF_MEMORY; //get the leafname so we can convert its extension to .new - nsCAutoString newLeafName; + nsAutoString newLeafName; tempFile->GetLeafName(newLeafName); PRInt32 extpos = newLeafName.RFindChar('.'); @@ -2625,7 +2624,7 @@ nsInstall::ExtractFileFromJar(const nsString& aJarfile, nsIFile* aSuggestedName, // We found the extension; newLeafName.Truncate(extpos + 1); //strip off the old extension } - newLeafName.Append("new"); + newLeafName.Append(NS_LITERAL_STRING("new")); //Now reset the leafname tempFile->SetLeafName(newLeafName); @@ -2808,7 +2807,7 @@ nsresult MakeUnique(nsILocalFile* file) nsCAutoString leafNameBuf; - rv = file->GetLeafName(leafNameBuf); + rv = file->GetNativeLeafName(leafNameBuf); if (NS_FAILED(rv)) return rv; // XXX this code should use iterators @@ -2833,7 +2832,7 @@ nsresult MakeUnique(nsILocalFile* file) // start with "Picture-1.jpg" after "Picture.jpg" exists char newName[32]; sprintf(newName, "%s-%d%s", leafName, indx, suffix); - file->SetLeafName(nsDependentCString(newName)); + file->SetNativeLeafName(nsDependentCString(newName)); rv = file->Exists(&flagExists); if (NS_FAILED(rv)) return rv; diff --git a/mozilla/xpinstall/src/nsInstallFile.cpp b/mozilla/xpinstall/src/nsInstallFile.cpp index 8710e62a206..e640a3bf100 100644 --- a/mozilla/xpinstall/src/nsInstallFile.cpp +++ b/mozilla/xpinstall/src/nsInstallFile.cpp @@ -140,7 +140,7 @@ nsInstallFile::nsInstallFile(nsInstall* inInstall, else { nsresult rv = inPartialPath.Mid(subString, offset, nodeLength); - mFinalFile->Append(NS_ConvertUCS2toUTF8(subString)); + mFinalFile->Append(subString); offset += nodeLength + 1; if (!finished) location = inPartialPath.FindChar('/', offset); @@ -200,16 +200,13 @@ void nsInstallFile::CreateAllFolders(nsInstall *inInstall, nsIFile *inFolderPath inFolderPath->Exists(&flagExists); if(!flagExists) { - nsCAutoString szPath; - inFolderPath->GetParent(getter_AddRefs(nsfsFolderPath)); CreateAllFolders(inInstall, nsfsFolderPath, error); inFolderPath->Create(nsIFile::DIRECTORY_TYPE, 0755); //nsIFileXXX: What kind of permissions are required here? ++mFolderCreateCount; - inFolderPath->GetPath(szPath); - nsStrFolder.Assign(NS_ConvertUTF8toUCS2(szPath)); + inFolderPath->GetPath(nsStrFolder); ilc = new nsInstallLogComment(inInstall, NS_LITERAL_STRING("CreateFolder"), nsStrFolder, error); if(ilc == nsnull) *error = nsInstall::OUT_OF_MEMORY; diff --git a/mozilla/xpinstall/src/nsInstallFileOpItem.cpp b/mozilla/xpinstall/src/nsInstallFileOpItem.cpp index 0c116d3ed17..4b35aab3561 100644 --- a/mozilla/xpinstall/src/nsInstallFileOpItem.cpp +++ b/mozilla/xpinstall/src/nsInstallFileOpItem.cpp @@ -668,7 +668,7 @@ nsInstallFileOpItem::NativeFileOpFileRenamePrepare() mSrc->GetParent(&target); nsresult rv = - target->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + target->Append(*mStrTarget); //90% of the failures during Append will be because the target wasn't in string form // which it must be. if (NS_FAILED(rv)) return nsInstall::INVALID_ARGUMENTS; @@ -708,7 +708,7 @@ nsInstallFileOpItem::NativeFileOpFileRenameComplete() if (target) { - target->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + target->Append(*mStrTarget); } else return nsInstall::UNEXPECTED_ERROR; @@ -716,8 +716,7 @@ nsInstallFileOpItem::NativeFileOpFileRenameComplete() target->Exists(&flagExists); if(!flagExists) { - mSrc->MoveTo(parent, - NS_ConvertUCS2toUTF8(*mStrTarget)); + mSrc->MoveTo(parent, *mStrTarget); } else return nsInstall::ALREADY_EXISTS; @@ -739,7 +738,7 @@ nsInstallFileOpItem::NativeFileOpFileRenameAbort() { PRInt32 ret = nsInstall::SUCCESS; PRBool flagExists; - nsCAutoString leafName; + nsAutoString leafName; nsCOMPtr newFilename; nsCOMPtr parent; @@ -752,7 +751,7 @@ nsInstallFileOpItem::NativeFileOpFileRenameAbort() mSrc->GetParent(getter_AddRefs(parent)); if(parent) { - newFilename->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + newFilename->Append(*mStrTarget); mSrc->GetLeafName(leafName); @@ -772,7 +771,7 @@ PRInt32 nsInstallFileOpItem::NativeFileOpFileCopyPrepare() { PRBool flagExists, flagIsFile, flagIsWritable; - nsCAutoString leafName; + nsAutoString leafName; nsresult rv; nsCOMPtr tempVar; nsCOMPtr targetParent; @@ -839,7 +838,7 @@ nsInstallFileOpItem::NativeFileOpFileCopyComplete() { PRInt32 rv = NS_OK; PRBool flagIsFile, flagExists; - nsCAutoString leafName; + nsAutoString leafName; nsCOMPtr parent; nsCOMPtr tempTarget; @@ -898,7 +897,7 @@ nsInstallFileOpItem::NativeFileOpFileCopyAbort() mTarget->Clone(getter_AddRefs(fullTarget)); if(nsInstallFileOpItem::ACTION_SUCCESS == mAction) { - nsCAutoString leafName; + nsAutoString leafName; mSrc->GetLeafName(leafName); fullTarget->Append(leafName); fullTarget->Remove(PR_FALSE); @@ -1050,7 +1049,7 @@ nsInstallFileOpItem::NativeFileOpFileMovePrepare() else { nsCOMPtr tempVar; - nsCAutoString leaf; + nsAutoString leaf; mTarget->Clone(getter_AddRefs(tempVar)); mSrc->GetLeafName(leaf); @@ -1164,7 +1163,7 @@ nsInstallFileOpItem::NativeFileOpDirRenamePrepare() nsCOMPtr target; mSrc->GetParent(getter_AddRefs(target)); - target->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + target->Append(*mStrTarget); target->Exists(&flagExists); if(flagExists) @@ -1194,15 +1193,14 @@ nsInstallFileOpItem::NativeFileOpDirRenameComplete() nsCOMPtr target; mSrc->GetParent(getter_AddRefs(target)); - target->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + target->Append(*mStrTarget); target->Exists(&flagExists); if(!flagExists) { nsCOMPtr parent; mSrc->GetParent(getter_AddRefs(parent)); - ret = mSrc->MoveTo(parent, - NS_ConvertUCS2toUTF8(*mStrTarget)); + ret = mSrc->MoveTo(parent, *mStrTarget); } else return nsInstall::ALREADY_EXISTS; @@ -1221,7 +1219,7 @@ nsInstallFileOpItem::NativeFileOpDirRenameAbort() { PRBool flagExists; PRInt32 ret = nsInstall::SUCCESS; - nsCAutoString leafName; + nsAutoString leafName; nsCOMPtr newDirName; nsCOMPtr parent; @@ -1229,7 +1227,7 @@ nsInstallFileOpItem::NativeFileOpDirRenameAbort() if(!flagExists) { mSrc->GetParent(getter_AddRefs(newDirName)); - newDirName->Append(NS_ConvertUCS2toUTF8(*mStrTarget)); + newDirName->Append(*mStrTarget); mSrc->GetLeafName(leafName); mSrc->GetParent(getter_AddRefs(parent)); ret = newDirName->MoveTo(parent, leafName); @@ -1260,7 +1258,7 @@ nsInstallFileOpItem::NativeFileOpWindowsShortcutPrepare() } else { - tempVar->Append(NS_LITERAL_CSTRING("NSTestDir")); + tempVar->AppendNative(NS_LITERAL_CSTRING("NSTestDir")); tempVar->Create(1, 0755); tempVar->Exists(&flagExists); if(!flagExists) @@ -1341,7 +1339,7 @@ nsInstallFileOpItem::NativeFileOpWindowsShortcutAbort() shortcutDescription = *mDescription; shortcutDescription.Append(NS_LITERAL_STRING(".lnk")); mShortcutPath->Clone(getter_AddRefs(shortcutTarget)); - shortcutTarget->Append(NS_ConvertUCS2toUTF8(shortcutDescription)); + shortcutTarget->Append(shortcutDescription); NativeFileOpFileDeleteComplete(shortcutTarget); } diff --git a/mozilla/xpinstall/src/nsInstallFolder.cpp b/mozilla/xpinstall/src/nsInstallFolder.cpp index 9190f52ce57..f1b4758f9e5 100644 --- a/mozilla/xpinstall/src/nsInstallFolder.cpp +++ b/mozilla/xpinstall/src/nsInstallFolder.cpp @@ -183,7 +183,7 @@ nsInstallFolder::SetDirectoryPath(const nsString& aFolderID, const nsString& aRe if (NS_SUCCEEDED(rv)) { - mFileSpec->Append(INSTALL_PLUGINS_DIR); + mFileSpec->AppendNative(INSTALL_PLUGINS_DIR); } else mFileSpec = nsnull; @@ -286,7 +286,7 @@ nsInstallFolder::SetDirectoryPath(const nsString& aFolderID, const nsString& aRe if (NS_SUCCEEDED(rv)) { - mFileSpec->Append(INSTALL_COMPONENTS_DIR); + mFileSpec->AppendNative(INSTALL_COMPONENTS_DIR); } else mFileSpec = nsnull; @@ -309,7 +309,7 @@ nsInstallFolder::SetDirectoryPath(const nsString& aFolderID, const nsString& aRe if (NS_SUCCEEDED(rv)) { - mFileSpec->Append(INSTALL_CHROME_DIR); + mFileSpec->AppendNative(INSTALL_CHROME_DIR); } } break; @@ -528,7 +528,7 @@ nsInstallFolder::AppendXPPath(const nsString& aRelativePath) start = curr+1; } - nsresult rv = mFileSpec->Append(NS_ConvertUCS2toUTF8(segment)); + nsresult rv = mFileSpec->Append(segment); if (NS_FAILED(rv)) { // Unicode converters not present (likely wizard case) @@ -575,27 +575,16 @@ nsInstallFolder::ToString(nsAutoString* outString) // This will appear to work on Latin-1 charsets but won't work on Mac or other charsets. // On the other hand doing it right requires intl charset converters // which we don't yet have in the initial install case. + // + // However, nsLocalFile now uses the native charset conversion implementation, so this + // code should always work. if (!mFileSpec || !outString) return NS_ERROR_NULL_POINTER; - nsCAutoString temp; - nsresult rv = mFileSpec->GetPath(temp); - if (NS_SUCCEEDED(rv)) - { - outString->Assign(NS_ConvertUTF8toUCS2(temp)); - } - else - { - // converters not present, most likely in wizard case; - // do best we can with stock ASCII conversion - - // XXX NOTE we can make sure our filenames are ASCII, but we have no - // control over the directory name which might be localized!!! - nsCAutoString temp; - rv = mFileSpec->GetPath(temp); - outString->Assign(NS_ConvertUTF8toUCS2(temp)); - } + nsresult rv = mFileSpec->GetPath(*outString); + if (NS_FAILED(rv)) + return rv; PRBool flagIsFile; mFileSpec->IsFile(&flagIsFile); diff --git a/mozilla/xpinstall/src/nsInstallPatch.cpp b/mozilla/xpinstall/src/nsInstallPatch.cpp index 0473a697388..f60cf0e626c 100644 --- a/mozilla/xpinstall/src/nsInstallPatch.cpp +++ b/mozilla/xpinstall/src/nsInstallPatch.cpp @@ -176,7 +176,7 @@ nsInstallPatch::nsInstallPatch( nsInstall* inInstall, mVersionInfo->Init(inVInfo); if(! inPartialPath.IsEmpty()) - mTargetFile->Append(NS_ConvertUCS2toUTF8(inPartialPath)); + mTargetFile->Append(inPartialPath); } nsInstallPatch::~nsInstallPatch() @@ -416,7 +416,7 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n nsCOMPtr patchFileLocal = do_QueryInterface(patchFile, &rv); nsCAutoString realfile; - sourceFile->GetPath(realfile); + sourceFile->GetNativePath(realfile); sourceFile->Clone(getter_AddRefs(outFileSpec)); @@ -450,11 +450,10 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n if (( dd->bWin32BoundImage || dd->bMacAppleSingle) && (status == GDIFF_OK )) { // make an unique tmp file (FILENAME-src.EXT) - nsCAutoString leafName; - rv = sourceFile->GetLeafName(leafName); + nsAutoString tmpFileName; + rv = sourceFile->GetLeafName(tmpFileName); NS_NAMED_LITERAL_STRING(tmpName, "-src"); - NS_ConvertUTF8toUCS2 tmpFileName(leafName); PRInt32 i; if ((i = tmpFileName.RFindChar('.')) > 0) @@ -471,25 +470,22 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n rv = sourceFile->Clone(getter_AddRefs(tempSrcFile)); //Clone the sourceFile - tempSrcFile->SetLeafName(NS_ConvertUCS2toUTF8(tmpFileName)); //Append the new leafname + tempSrcFile->SetLeafName(tmpFileName); //Append the new leafname uniqueSrcFile = do_QueryInterface(tempSrcFile, &rv); //Create an nsILocalFile version to pass to MakeUnique MakeUnique(uniqueSrcFile); nsCAutoString realfile; - sourceFile->GetPath(realfile); + sourceFile->GetNativePath(realfile); #ifdef WIN32 - nsCAutoString nativeFile; - sourceFile->GetNativePath(nativeFile); - // unbind Win32 images nsCAutoString unboundFile; uniqueSrcFile->GetNativePath(unboundFile); - if (su_unbind((char*)nativeFile.get(), (char*)unboundFile.get())) // + if (su_unbind((char*)realfile.get(), (char*)unboundFile.get())) // { - uniqueSrcFile->GetPath(realfile); + realfile = unboundFile; } else { @@ -509,7 +505,7 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n if (status == noErr) { // set - tempSrcFile->GetPath(realfile); + tempSrcFile->GetNativePath(realfile); } #endif } @@ -518,15 +514,15 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n goto cleanup; // make a unique file at the same location of our source file (FILENAME-ptch.EXT) - NS_NAMED_LITERAL_CSTRING(patchFileName, "-ptch"); - nsCAutoString newFileName; + NS_NAMED_LITERAL_STRING(patchFileName, "-ptch"); + nsAutoString newFileName; sourceFile->GetLeafName(newFileName); PRInt32 index; if ((index = newFileName.RFindChar('.')) > 0) { - nsCAutoString extention; - nsCAutoString fileName; + nsAutoString extention; + nsAutoString fileName; newFileName.Right(extention, (newFileName.Length() - index) ); newFileName.Left(fileName, (newFileName.Length() - (newFileName.Length() - index))); newFileName = fileName + patchFileName + extention; @@ -547,7 +543,7 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n //dd->fSrc = PR_Open ( realfile, PR_RDONLY, 0666); //dd->fOut = PR_Open ( outFile, PR_RDWR|PR_CREATE_FILE|PR_TRUNCATE, 0666); nsCOMPtr realFileLocal = do_CreateInstance(NS_LOCAL_FILE_CONTRACTID);; - realFileLocal->InitWithPath(realfile); + realFileLocal->InitWithNativePath(realfile); realFileLocal->OpenNSPRFileDesc(PR_RDONLY, 0666, &dd->fSrc); outFileLocal->OpenNSPRFileDesc(PR_RDWR|PR_CREATE_FILE|PR_TRUNCATE, 0666, &dd->fOut); @@ -627,7 +623,7 @@ nsInstallPatch::NativePatch(nsIFile *sourceFile, nsIFile *patchFile, nsIFile **n outFileSpec->Remove(PR_FALSE); - nsCAutoString leaf; + nsAutoString leaf; anotherName->GetLeafName(leaf); anotherName->CopyTo(parent, leaf); diff --git a/mozilla/xpinstall/src/nsJSFile.cpp b/mozilla/xpinstall/src/nsJSFile.cpp index 2455390dfe3..5f41218ad92 100644 --- a/mozilla/xpinstall/src/nsJSFile.cpp +++ b/mozilla/xpinstall/src/nsJSFile.cpp @@ -1163,15 +1163,15 @@ InstallFileOpFileWindowsShortcut(JSContext *cx, JSObject *obj, uintN argc, jsval ConvertJSValToStr(b0, cx, argv[0]); - NS_NewLocalFile(NS_ConvertUCS2toUTF8(b0), PR_TRUE, getter_AddRefs(nsfsB0)); + NS_NewLocalFile(b0, PR_TRUE, getter_AddRefs(nsfsB0)); ConvertJSValToStr(b1, cx, argv[1]); - NS_NewLocalFile(NS_ConvertUCS2toUTF8(b1), PR_TRUE, getter_AddRefs(nsfsB1)); + NS_NewLocalFile(b1, PR_TRUE, getter_AddRefs(nsfsB1)); ConvertJSValToStr(b2, cx, argv[2]); ConvertJSValToStr(b3, cx, argv[3]); - NS_NewLocalFile(NS_ConvertUCS2toUTF8(b3), PR_TRUE, getter_AddRefs(nsfsB3)); + NS_NewLocalFile(b3, PR_TRUE, getter_AddRefs(nsfsB3)); ConvertJSValToStr(b4, cx, argv[4]); ConvertJSValToStr(b5, cx, argv[5]); - NS_NewLocalFile(NS_ConvertUCS2toUTF8(b5), PR_TRUE, getter_AddRefs(nsfsB5)); + NS_NewLocalFile(b5, PR_TRUE, getter_AddRefs(nsfsB5)); if(JSVAL_IS_NULL(argv[6])) { @@ -1273,7 +1273,7 @@ InstallFileOpFileMacAlias(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, } ConvertJSValToStr(sourceLeaf, cx, argv[1]); - rv1 = iFileSource->Append(NS_ConvertUCS2toUTF8(sourceLeaf)); + rv1 = iFileSource->Append(sourceLeaf); // public int FileMacAlias( InstallFolder aSourceFolder, // String aSourceFileName, @@ -1298,7 +1298,7 @@ InstallFileOpFileMacAlias(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, aliasLeaf.Append(NS_LITERAL_STRING(" alias")); // XXX use GetResourcedString(id) } - rv2 = iFileAlias->Append(NS_ConvertUCS2toUTF8(aliasLeaf)); + rv2 = iFileAlias->Append(aliasLeaf); if (NS_FAILED(rv1) || NS_FAILED(rv2)) { *rval = INT_TO_JSVAL(nsInstall::UNEXPECTED_ERROR); diff --git a/mozilla/xpinstall/src/nsRegisterItem.cpp b/mozilla/xpinstall/src/nsRegisterItem.cpp index 03a6da9a02d..6baaff0d44d 100644 --- a/mozilla/xpinstall/src/nsRegisterItem.cpp +++ b/mozilla/xpinstall/src/nsRegisterItem.cpp @@ -285,7 +285,7 @@ PRInt32 nsRegisterItem::Complete() if (NS_SUCCEEDED(rv)) { - tmp->Append(INSTALL_CHROME_DIR); + tmp->AppendNative(INSTALL_CHROME_DIR); } } nsCOMPtr startupFile( do_QueryInterface(tmp, &rv) ); @@ -297,7 +297,7 @@ PRInt32 nsRegisterItem::Complete() rv = startupFile->Create(nsIFile::DIRECTORY_TYPE, 0755); if (NS_SUCCEEDED(rv)) { - rv = startupFile->Append(NS_LITERAL_CSTRING("installed-chrome.txt")); + rv = startupFile->AppendNative(NS_LITERAL_CSTRING("installed-chrome.txt")); if (NS_SUCCEEDED(rv)) { rv = startupFile->OpenNSPRFileDesc( diff --git a/mozilla/xpinstall/src/nsSoftwareUpdate.cpp b/mozilla/xpinstall/src/nsSoftwareUpdate.cpp index a878e1aca1e..f85e9d2374c 100644 --- a/mozilla/xpinstall/src/nsSoftwareUpdate.cpp +++ b/mozilla/xpinstall/src/nsSoftwareUpdate.cpp @@ -204,7 +204,7 @@ nsSoftwareUpdate::Shutdown() nsCOMPtr tmp; rv = nsSoftwareUpdate::GetProgramDirectory()->Clone(getter_AddRefs(tmp)); #if defined (XP_MAC) - tmp->Append(ESSENTIAL_FILES); + tmp->AppendNative(ESSENTIAL_FILES); #endif pathToCleanupUtility = do_QueryInterface(tmp); @@ -219,7 +219,7 @@ nsSoftwareUpdate::Shutdown() NS_ASSERTION(pathToCleanupUtility,"No path to cleanup utility in nsSoftwareUpdate::Shutdown()"); //Create the Process framework - pathToCleanupUtility->Append(CLEANUP_UTIL); + pathToCleanupUtility->AppendNative(CLEANUP_UTIL); nsCOMPtr cleanupProcess = do_CreateInstance(kIProcessCID); rv = cleanupProcess->Init(pathToCleanupUtility); if (NS_SUCCEEDED(rv)) diff --git a/mozilla/xpinstall/src/nsXPInstallManager.cpp b/mozilla/xpinstall/src/nsXPInstallManager.cpp index 67904d32433..4534df208d3 100644 --- a/mozilla/xpinstall/src/nsXPInstallManager.cpp +++ b/mozilla/xpinstall/src/nsXPInstallManager.cpp @@ -746,7 +746,7 @@ nsXPInstallManager::GetDestinationFile(nsString& url, nsILocalFile* *file) if (NS_SUCCEEDED(rv)) { - userChrome->Append(NS_ConvertUCS2toUTF8(leaf)); + userChrome->Append(leaf); MakeUnique(userChrome); *file = userChrome; NS_IF_ADDREF(*file);