From 1e9a75db5b35a51bdc6211c9e79c54e9d777e68c Mon Sep 17 00:00:00 2001 From: "sgehani%netscape.com" Date: Mon, 8 May 2000 23:22:15 +0000 Subject: [PATCH] Fix mac aliasing and AppleSingle decoding regressions. Make the Mac installer behave itself once again after being in a coma for two weeks. [b=38313,37568] --- xpinstall/src/nsInstall.cpp | 23 +++++++++-------------- xpinstall/src/nsInstall.h | 2 +- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/xpinstall/src/nsInstall.cpp b/xpinstall/src/nsInstall.cpp index 960598b38133..d32c6076726e 100644 --- a/xpinstall/src/nsInstall.cpp +++ b/xpinstall/src/nsInstall.cpp @@ -126,7 +126,6 @@ nsInstallInfo::~nsInstallInfo() MOZ_COUNT_DTOR(nsInstallInfo); } - static NS_DEFINE_CID(kStandardURLCID, NS_STANDARDURL_CID); static NS_DEFINE_IID(kISoftwareUpdateIID, NS_ISOFTWAREUPDATE_IID); @@ -1986,23 +1985,19 @@ nsInstall::FileOpFileWindowsShortcut(nsIFile* aTarget, nsIFile* aShortcutPath, n } PRInt32 -nsInstall::FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn) +nsInstall::FileOpFileMacAlias(nsIFile *aSourceFile, nsIFile *aAliasFile, PRInt32* aReturn) { *aReturn = nsInstall::SUCCESS; #ifdef XP_MAC - //nsFileSpec nsfsSource(aSourcePath, PR_FALSE); - //nsFileSpec nsfsAlias(aAliasPath, PR_TRUE); - nsCOMPtr nsfsSource; - nsCOMPtr nsfsAlias; - - nsAutoCString tempSource(aSourcePath); - nsAutoCString tempAlias(aAliasPath); - NS_NewLocalFile(tempSource, getter_AddRefs(nsfsSource)); - NS_NewLocalFile(tempAlias, getter_AddRefs(nsfsAlias)); - nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_MAC_ALIAS, nsfsSource, nsfsAlias, aReturn); - + nsInstallFileOpItem* ifop = new nsInstallFileOpItem(this, NS_FOP_MAC_ALIAS, aSourceFile, aAliasFile, aReturn); + if (!ifop) + { + *aReturn = SaveError(nsInstall::OUT_OF_MEMORY); + return NS_OK; + } + PRInt32 result = SanityCheck(); if (result != nsInstall::SUCCESS) { @@ -2450,7 +2445,7 @@ nsInstall::ExtractFileFromJar(const nsString& aJarfile, nsIFile* aSuggestedName, nsCOMPtr tempExtractHereSpec; tempExtractHereSpec = do_QueryInterface(extractHereSpec, &rv); - tempExtractHereSpec->GetFSSpec(&extractedSpec); + tempExtractHereSpec->GetResolvedFSSpec(&extractedSpec); if ( nsAppleSingleDecoder::IsAppleSingleFile(&extractedSpec) ) { diff --git a/xpinstall/src/nsInstall.h b/xpinstall/src/nsInstall.h index fc342b805752..8a57e6f57051 100644 --- a/xpinstall/src/nsInstall.h +++ b/xpinstall/src/nsInstall.h @@ -245,7 +245,7 @@ class nsInstall PRInt32 FileOpFileMove(nsInstallFolder& aSrc, nsInstallFolder& aTarget, PRInt32* aReturn); PRInt32 FileOpFileRename(nsInstallFolder& aSrc, nsString& aTarget, PRInt32* aReturn); PRInt32 FileOpFileWindowsShortcut(nsIFile* aTarget, nsIFile* aShortcutPath, nsString& aDescription, nsIFile* aWorkingPath, nsString& aParams, nsIFile* aIcon, PRInt32 aIconId, PRInt32* aReturn); - PRInt32 FileOpFileMacAlias(nsString& aSourcePath, nsString& aAliasPath, PRInt32* aReturn); + PRInt32 FileOpFileMacAlias(nsIFile *aSourceFile, nsIFile *aAliasFile, PRInt32* aReturn); PRInt32 FileOpFileUnixLink(nsInstallFolder& aTarget, PRInt32 aFlags, PRInt32* aReturn); void LogComment(nsString& aComment);