From 6dcd03a3648984ef74e1e12ea29c9abcb22bacdf Mon Sep 17 00:00:00 2001 From: "jefft%netscape.com" Date: Wed, 21 Apr 1999 05:13:31 +0000 Subject: [PATCH] adding imap related URI git-svn-id: svn://10.0.0.236/trunk@28437 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/base/util/nsMsgFolder.cpp | 33 ++++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/mozilla/mailnews/base/util/nsMsgFolder.cpp b/mozilla/mailnews/base/util/nsMsgFolder.cpp index 775aaa64909..0718a67b517 100644 --- a/mozilla/mailnews/base/util/nsMsgFolder.cpp +++ b/mozilla/mailnews/base/util/nsMsgFolder.cpp @@ -1622,9 +1622,9 @@ nsURI2Path(const char* rootURI, const char* uriStr, nsFileSpec& pathResult) // news case rv = nsGetNewsRoot(pathResult); } - else if (strcmp(rootURI, kImapMessageRootURI) == 0) { - // imap case - rv = nsGetImapRoot(pathResult); + else if ((strcmp(rootURI, kImapMessageRootURI) == 0) || + (strcmp(rootURI, kImapRootURI) == 0)) { + rv = nsGetImapRoot(pathResult); } else { rv = NS_ERROR_FAILURE; @@ -1710,7 +1710,7 @@ nsPath2URI(const char* rootURI, const nsFileSpec& spec, char **uri) rv = nsGetNewsRoot(root); } else if (strcmp(rootURI, kImapMessageRootURI) == 0) { - rv = nsGetImapRoot(root); + rv = nsGetImapRoot(root); } else { // local mail case @@ -1780,7 +1780,7 @@ nsURI2Name(const char* rootURI, char* uriStr, nsString& name) return uri.Right(name, count); } -/* parses LocalMessageURI and NewsMessageURI */ +/* parses LocalMessageURI, NewsMessageURI, and ImapMessageURI */ nsresult nsParseMessageURI(const char* uri, nsString& folderURI, PRUint32 *key) { if(!key) @@ -1861,7 +1861,6 @@ nsresult nsBuildImapMessageURI(const nsFileSpec& path, PRUint32 key, char** uri) } - nsresult nsGetFolderFromMessage(nsIMessage *message, nsIMsgFolder** folder) { nsresult rv; @@ -1875,9 +1874,25 @@ nsresult nsGetFolderFromMessage(nsIMessage *message, nsIMsgFolder** folder) nsMsgKey key; nsParseMessageURI(uri, messageFolderURIStr, &key); nsString folderOnly, folderURIStr; - messageFolderURIStr.Right(folderOnly, messageFolderURIStr.Length() -nsCRT::strlen(kMailboxMessageRootURI)); - folderURIStr = kMailboxRootURI; - folderURIStr+= folderOnly; + + if (messageFolderURIStr.Find(kMailboxMessageRootURI) != ((PRInt32)-1)) + { + messageFolderURIStr.Right(folderOnly, messageFolderURIStr.Length() -nsCRT::strlen(kMailboxMessageRootURI)); + folderURIStr = kMailboxRootURI; + folderURIStr+= folderOnly; + } + else if (messageFolderURIStr.Find(kNewsMessageRootURI) != ((PRInt32)-1)) + { + messageFolderURIStr.Right(folderOnly, messageFolderURIStr.Length() -nsCRT::strlen(kNewsMessageRootURI)); + folderURIStr = kMailboxRootURI; + folderURIStr+= folderOnly; + } + else if (messageFolderURIStr.Find(kImapMessageRootURI) != ((PRInt32)-1)) + { + messageFolderURIStr.Right(folderOnly, messageFolderURIStr.Length() -nsCRT::strlen(kImapMessageRootURI)); + folderURIStr = kMailboxRootURI; + folderURIStr+= folderOnly; + } nsIRDFResource *folderResource; char *folderURI = folderURIStr.ToNewCString();