From 26a14368bc275aaae34fa604c4b7ecd0166235b3 Mon Sep 17 00:00:00 2001 From: "cavin%netscape.com" Date: Tue, 21 Aug 2001 18:38:02 +0000 Subject: [PATCH] Bug #55774: In GetListOfFoldersWithPath(), make sure we pass the right folder object to DiscoverChildren(). r=bienvenu, sr=sspitzer. --- mailnews/imap/src/nsImapService.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mailnews/imap/src/nsImapService.cpp b/mailnews/imap/src/nsImapService.cpp index 104528e857e8..cf18d583eeba 100644 --- a/mailnews/imap/src/nsImapService.cpp +++ b/mailnews/imap/src/nsImapService.cpp @@ -3466,8 +3466,19 @@ nsImapService::GetListOfFoldersWithPath(nsIImapIncomingServer *aServer, nsIMsgWi rv = pEventQService->GetThreadEventQueue(NS_CURRENT_THREAD, getter_AddRefs(queue)); if (NS_FAILED(rv)) return rv; + + // Locate the folder so that the correct hierarchical delimiter is used in the folder + // pathnames, otherwise root's (ie, '^') is used and this is wrong. + nsCOMPtr msgFolder; + nsCOMPtr subFolder; + if (rootMsgFolder && folderPath && (*folderPath)) + { + rv = rootMsgFolder->FindSubFolder(folderPath, getter_AddRefs(subFolder)); + if (NS_SUCCEEDED(rv)) + msgFolder = do_QueryInterface(subFolder); + } - rv = DiscoverChildren(queue, rootMsgFolder, listener, folderPath, nsnull); + rv = DiscoverChildren(queue, msgFolder, listener, folderPath, nsnull); if (NS_FAILED(rv)) return rv; return NS_OK;