diff --git a/mailnews/compose/src/nsMsgCompUtils.cpp b/mailnews/compose/src/nsMsgCompUtils.cpp index fcbfb9690cf6..9aba224a4149 100644 --- a/mailnews/compose/src/nsMsgCompUtils.cpp +++ b/mailnews/compose/src/nsMsgCompUtils.cpp @@ -1909,27 +1909,17 @@ char return finalPath; } -char * -nsMsgPlatformFileToURL (const char *name) +char * +nsMsgPlatformFileToURL (nsFileSpec aFileSpec) { - char *prefix = "file:///"; - char *retVal = (char *)PR_Malloc(PL_strlen(name) + PL_strlen(prefix) + 1); - if (retVal) - { - PL_strcpy(retVal, prefix); - PL_strcat(retVal, name); - } + nsFileURL tURL(aFileSpec); + const char *tPtr = nsnull; - char *ptr = retVal; - while (*ptr) - { - if (*ptr == '\\') *ptr = '/'; - if ( (*ptr == ':') && (ptr > (retVal+4)) ) - *ptr = '|'; - - ++ptr; - } - return retVal; + tPtr = tURL.GetURLString(); + if (tPtr) + return PL_strdup(tPtr); + else + return nsnull; } char * diff --git a/mailnews/compose/src/nsMsgCompUtils.h b/mailnews/compose/src/nsMsgCompUtils.h index 14f98a073cc4..46d743b8b99b 100644 --- a/mailnews/compose/src/nsMsgCompUtils.h +++ b/mailnews/compose/src/nsMsgCompUtils.h @@ -110,7 +110,7 @@ PRBool nsMsgMIMEGetConformToStandard (void); nsresult nsMsgNewURL(nsIURI** aInstancePtrResult, const char * aSpec); PRBool nsMsgIsLocalFile(const char *url); char *nsMsgGetLocalFileFromURL(char *url); -char *nsMsgPlatformFileToURL (const char *name); +char *nsMsgPlatformFileToURL (nsFileSpec aFileSpec); char *nsMsgParseURL(const char *url, int part); diff --git a/mailnews/compose/src/nsMsgCompose.cpp b/mailnews/compose/src/nsMsgCompose.cpp index 188058d71de3..af760410d234 100644 --- a/mailnews/compose/src/nsMsgCompose.cpp +++ b/mailnews/compose/src/nsMsgCompose.cpp @@ -806,7 +806,7 @@ NS_IMETHODIMP QuotingOutputStreamListener::OnStopRequest(nsIChannel * /* aChanne tempFile.close(); // Now load the URL... - nsString urlStr = nsMsgPlatformFileToURL(mComposeObj->mTempComposeFileSpec->GetNativePathCString()); + nsString urlStr = nsMsgPlatformFileToURL(*(mComposeObj->mTempComposeFileSpec)); nsIEditorShell *editor; mComposeObj->GetEditor(&editor); @@ -1472,7 +1472,7 @@ nsMsgCompose::ProcessSignature(nsOutputFileStream *aAppendFileStream) else // We have a match... { if (!aAppendFileStream) // Just load this URL - urlStr = nsMsgPlatformFileToURL(sigFilePath); + urlStr = nsMsgPlatformFileToURL(testSpec); else LoadDataFromFile(sigFilePath, sigData); // Get the data! } @@ -1582,7 +1582,7 @@ nsMsgCompose::BuildBodyMessage() // // Now load the URL... // - nsString urlStr = nsMsgPlatformFileToURL(mTempComposeFileSpec->GetNativePathCString()); + nsString urlStr = nsMsgPlatformFileToURL(*mTempComposeFileSpec); m_editor->LoadUrl(urlStr.GetUnicode()); return NS_OK; } diff --git a/mailnews/compose/src/nsMsgSend.cpp b/mailnews/compose/src/nsMsgSend.cpp index 073737043100..4dffa399d6a0 100644 --- a/mailnews/compose/src/nsMsgSend.cpp +++ b/mailnews/compose/src/nsMsgSend.cpp @@ -536,7 +536,7 @@ nsMsgComposeAndSend::GatherMimeAttachments() goto FAILMEM; m_plaintext->m_mime_delivery_state = this; - char *tempURL = nsMsgPlatformFileToURL (mHTMLFileSpec->GetCString()); + char *tempURL = nsMsgPlatformFileToURL (*mHTMLFileSpec); if (!tempURL || NS_FAILED(nsMsgNewURL(&(m_plaintext->mURL), tempURL))) { delete m_plaintext; diff --git a/mailnews/mime/emitters/src/nsEmitterUtils.cpp b/mailnews/mime/emitters/src/nsEmitterUtils.cpp index 5eff6d8fa1ca..4bcbaefdf995 100644 --- a/mailnews/mime/emitters/src/nsEmitterUtils.cpp +++ b/mailnews/mime/emitters/src/nsEmitterUtils.cpp @@ -280,25 +280,15 @@ nsMsgCreateTempFileName(char *tFileName) return tString; } -char * -nsMimePlatformFileToURL (const char *name) +char * +nsMimePlatformFileToURL (nsFileSpec aFileSpec) { - char *prefix = "file:///"; - char *retVal = (char *)PR_Malloc(PL_strlen(name) + PL_strlen(prefix) + 1); - if (retVal) - { - PL_strcpy(retVal, prefix); - PL_strcat(retVal, name); - } + nsFileURL tURL(aFileSpec); + const char *tPtr = nsnull; - char *ptr = retVal; - while (*ptr) - { - if (*ptr == '\\') *ptr = '/'; - if ( (*ptr == ':') && (ptr > (retVal+4)) ) - *ptr = '|'; - - ++ptr; - } - return retVal; + tPtr = tURL.GetURLString(); + if (tPtr) + return PL_strdup(tPtr); + else + return nsnull; } diff --git a/mailnews/mime/emitters/src/nsEmitterUtils.h b/mailnews/mime/emitters/src/nsEmitterUtils.h index 2cfecd131511..bdc93411fca3 100644 --- a/mailnews/mime/emitters/src/nsEmitterUtils.h +++ b/mailnews/mime/emitters/src/nsEmitterUtils.h @@ -31,7 +31,7 @@ extern "C" char *LocalizeHeaderName(const char *aHeaderName, const char *aDe nsFileSpec *nsMsgCreateTempFileSpec(char *tFileName); char *nsMsgCreateTempFileName(char *tFileName); -char *nsMimePlatformFileToURL (const char *name); +char *nsMimePlatformFileToURL (nsFileSpec aFileSpec); char *GetTheTempDirectoryOnTheSystem(void); diff --git a/mailnews/mime/emitters/src/nsMimeXULEmitter.cpp b/mailnews/mime/emitters/src/nsMimeXULEmitter.cpp index 907e436ea392..116f3bc4395d 100644 --- a/mailnews/mime/emitters/src/nsMimeXULEmitter.cpp +++ b/mailnews/mime/emitters/src/nsMimeXULEmitter.cpp @@ -775,7 +775,7 @@ nsMimeXULEmitter::DumpBody() // char *url = nsnull; if (mBodyFileSpec) - url = nsMimePlatformFileToURL(mBodyFileSpec->GetNativePathCString()); + url = nsMimePlatformFileToURL(*mBodyFileSpec); UtilityWrite("GetIndividualXUL(curHeader, workAddr, &xul); - if (NS_SUCCEEDED(rv) && xul) - UtilityWrite(xul); + if (mMiscStatus) + { + rv = mMiscStatus->GetIndividualXUL(curHeader, workAddr, &xul); + if (NS_SUCCEEDED(rv) && xul) + UtilityWrite(xul); + } PR_FREEIF(workName); PR_FREEIF(workAddr);