From fc2be00a11094680abb8bf814537c5efc7256e84 Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Tue, 15 Jun 1999 23:18:57 +0000 Subject: [PATCH] implement FindSubFolder git-svn-id: svn://10.0.0.236/trunk@35467 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/base/util/nsMsgFolder.cpp | 31 ++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/mozilla/mailnews/base/util/nsMsgFolder.cpp b/mozilla/mailnews/base/util/nsMsgFolder.cpp index 2e52501cfbb..280f5147fea 100644 --- a/mozilla/mailnews/base/util/nsMsgFolder.cpp +++ b/mozilla/mailnews/base/util/nsMsgFolder.cpp @@ -166,9 +166,36 @@ nsMsgFolder::GetSubFolders(nsIEnumerator* *result) } NS_IMETHODIMP -nsMsgFolder::FindSubFolder(const char *subFolderName, nsIFolder **folder) +nsMsgFolder::FindSubFolder(const char *subFolderName, nsIFolder **aFolder) { - return NS_ERROR_NOT_IMPLEMENTED; + nsresult rv = NS_OK; + NS_WITH_SERVICE(nsIRDFService, rdf, kRDFServiceCID, &rv); + + if(NS_FAILED(rv)) + return rv; + + nsString2 uri(eOneByte); + uri.Append(mURI); + uri.Append('/'); + + uri.Append(subFolderName); + + nsCOMPtr res; + rv = rdf->GetResource(uri.GetBuffer(), getter_AddRefs(res)); + if (NS_FAILED(rv)) + return rv; + + nsCOMPtr folder(do_QueryInterface(res, &rv)); + if (NS_FAILED(rv)) + return rv; + if (aFolder) + { + *aFolder = folder; + NS_ADDREF(*aFolder); + return NS_OK; + } + else + return NS_ERROR_NULL_POINTER; } NS_IMETHODIMP