From d2ec0bdc129ba891b1a204eda8b9294e3a8afafd Mon Sep 17 00:00:00 2001 From: "mcmullen%netscape.com" Date: Thu, 24 Dec 1998 00:01:32 +0000 Subject: [PATCH] Allow partial paths. git-svn-id: svn://10.0.0.236/trunk@16860 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/base/src/mac/nsFileSpecMac.cpp | 14 ++++++++++---- mozilla/xpcom/io/nsFileSpecMac.cpp | 14 ++++++++++---- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/mozilla/base/src/mac/nsFileSpecMac.cpp b/mozilla/base/src/mac/nsFileSpecMac.cpp index 7bc58093f1f..d8bd5f45b27 100644 --- a/mozilla/base/src/mac/nsFileSpecMac.cpp +++ b/mozilla/base/src/mac/nsFileSpecMac.cpp @@ -45,7 +45,8 @@ namespace MacFileHelpers OSErr FSSpecFromFullUnixPath( const char * unixPath, FSSpec& outSpec, - Boolean resolveAlias); + Boolean resolveAlias, + Boolean allowPartial = false); char* MacPathFromUnixPath(const char* unixPath); char* EncodeMacPath( char* inPath, // NOT const - gets clobbered @@ -318,7 +319,8 @@ OSErr MacFileHelpers::ResolveAliasFile(FSSpec& inOutSpec, Boolean& wasAliased) OSErr MacFileHelpers::FSSpecFromFullUnixPath( const char * unixPath, FSSpec& outSpec, - Boolean resolveAlias) + Boolean resolveAlias, + Boolean allowPartial) // File spec from URL. Reverses GetURLFromFileSpec // Its input is only the part of the URL // JRM 97/01/08 changed this so that if it's a partial path (doesn't start with '/'), @@ -332,7 +334,10 @@ OSErr MacFileHelpers::FSSpecFromFullUnixPath( return memFullErr; OSErr err = noErr; - NS_ASSERTION(*unixPath == '/' /*full path*/, "Not a Unix path!"); + if (!allowPartial) + { + NS_ASSERTION(*unixPath == '/' /*full path*/, "Not a full Unix path!"); + } err = FSSpecFromPathname(macPath, outSpec); if (err == fnfErr) err = noErr; @@ -466,7 +471,8 @@ nsNativeFileSpec::nsNativeFileSpec(const nsNativeFileSpec& inSpec) nsNativeFileSpec::nsNativeFileSpec(const char* inString) //---------------------------------------------------------------------------------------- { - mError = MacFileHelpers::FSSpecFromFullUnixPath(inString, mSpec, true); + mError = MacFileHelpers::FSSpecFromFullUnixPath(inString, mSpec, true, true); + // allow a partial path if (mError == fnfErr) mError = noErr; } // nsNativeFileSpec::nsNativeFileSpec diff --git a/mozilla/xpcom/io/nsFileSpecMac.cpp b/mozilla/xpcom/io/nsFileSpecMac.cpp index 7bc58093f1f..d8bd5f45b27 100644 --- a/mozilla/xpcom/io/nsFileSpecMac.cpp +++ b/mozilla/xpcom/io/nsFileSpecMac.cpp @@ -45,7 +45,8 @@ namespace MacFileHelpers OSErr FSSpecFromFullUnixPath( const char * unixPath, FSSpec& outSpec, - Boolean resolveAlias); + Boolean resolveAlias, + Boolean allowPartial = false); char* MacPathFromUnixPath(const char* unixPath); char* EncodeMacPath( char* inPath, // NOT const - gets clobbered @@ -318,7 +319,8 @@ OSErr MacFileHelpers::ResolveAliasFile(FSSpec& inOutSpec, Boolean& wasAliased) OSErr MacFileHelpers::FSSpecFromFullUnixPath( const char * unixPath, FSSpec& outSpec, - Boolean resolveAlias) + Boolean resolveAlias, + Boolean allowPartial) // File spec from URL. Reverses GetURLFromFileSpec // Its input is only the part of the URL // JRM 97/01/08 changed this so that if it's a partial path (doesn't start with '/'), @@ -332,7 +334,10 @@ OSErr MacFileHelpers::FSSpecFromFullUnixPath( return memFullErr; OSErr err = noErr; - NS_ASSERTION(*unixPath == '/' /*full path*/, "Not a Unix path!"); + if (!allowPartial) + { + NS_ASSERTION(*unixPath == '/' /*full path*/, "Not a full Unix path!"); + } err = FSSpecFromPathname(macPath, outSpec); if (err == fnfErr) err = noErr; @@ -466,7 +471,8 @@ nsNativeFileSpec::nsNativeFileSpec(const nsNativeFileSpec& inSpec) nsNativeFileSpec::nsNativeFileSpec(const char* inString) //---------------------------------------------------------------------------------------- { - mError = MacFileHelpers::FSSpecFromFullUnixPath(inString, mSpec, true); + mError = MacFileHelpers::FSSpecFromFullUnixPath(inString, mSpec, true, true); + // allow a partial path if (mError == fnfErr) mError = noErr; } // nsNativeFileSpec::nsNativeFileSpec