From a64d6be2bc42d117bd6f8cd7df16a40f15cfa271 Mon Sep 17 00:00:00 2001 From: "sspitzer%netscape.com" Date: Sat, 20 May 2000 02:36:30 +0000 Subject: [PATCH] fix for #39913, no you can subscribe / unsubscribe from imap folders with japanese folder names. r=mscott git-svn-id: svn://10.0.0.236/trunk@70540 18797224-902f-48f8-a5cc-f745e15eee43 --- .../base/public/nsISubscribableServer.idl | 4 ++-- .../imap/src/nsImapIncomingServer.cpp | 19 +++++-------------- .../mailnews/imap/src/nsImapIncomingServer.h | 2 +- .../news/src/nsNntpIncomingServer.cpp | 18 ++++++++---------- 4 files changed, 16 insertions(+), 27 deletions(-) diff --git a/mozilla/mailnews/base/public/nsISubscribableServer.idl b/mozilla/mailnews/base/public/nsISubscribableServer.idl index 3fd6f8433c1..f98ce230212 100644 --- a/mozilla/mailnews/base/public/nsISubscribableServer.idl +++ b/mozilla/mailnews/base/public/nsISubscribableServer.idl @@ -45,7 +45,7 @@ interface nsISubscribableServer : nsISupports { void addToSubscribeDS(in string aName); void setAsSubscribedInSubscribeDS(in string aURI); void updateSubscribedInSubscribeDS(); - void subscribe(in string name); - void unsubscribe(in string name); + void subscribe(in wstring name); + void unsubscribe(in wstring name); }; diff --git a/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp b/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp index 274204ad35e..65a7b9efd3c 100644 --- a/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp +++ b/mozilla/mailnews/imap/src/nsImapIncomingServer.cpp @@ -1986,28 +1986,25 @@ nsImapIncomingServer::GetSubscribeListener(nsISubscribeListener **aListener) } NS_IMETHODIMP -nsImapIncomingServer::Subscribe(const char *aName) +nsImapIncomingServer::Subscribe(const PRUnichar *aName) { return SubscribeToFolder(aName, PR_TRUE); } NS_IMETHODIMP -nsImapIncomingServer::Unsubscribe(const char *aName) +nsImapIncomingServer::Unsubscribe(const PRUnichar *aName) { return SubscribeToFolder(aName, PR_FALSE); } nsresult -nsImapIncomingServer::SubscribeToFolder(const char *aName, PRBool subscribe) +nsImapIncomingServer::SubscribeToFolder(const PRUnichar *aName, PRBool subscribe) { nsresult rv; nsCOMPtr imapService = do_GetService(kImapServiceCID, &rv); if (NS_FAILED(rv)) return rv; if (!imapService) return NS_ERROR_FAILURE; - nsAutoString folderName; - folderName.AssignWithConversion(aName); - nsCOMPtr rootFolder; rv = GetRootFolder(getter_AddRefs(rootFolder)); if (NS_FAILED(rv)) return rv; @@ -2024,21 +2021,15 @@ nsImapIncomingServer::SubscribeToFolder(const char *aName, PRBool subscribe) if (NS_FAILED(rv)) return rv; if (subscribe) { -#ifdef DEBUG_sspitzer - printf("subscribe to folder: %s\n",aName); -#endif rv = imapService->SubscribeFolder(queue, rootMsgFolder, - folderName.GetUnicode(), + aName, nsnull, nsnull); } else { -#ifdef DEBUG_sspitzer - printf("unsubscribe to folder: %s\n",aName); -#endif rv = imapService->UnsubscribeFolder(queue, rootMsgFolder, - folderName.GetUnicode(), + aName, nsnull, nsnull); } diff --git a/mozilla/mailnews/imap/src/nsImapIncomingServer.h b/mozilla/mailnews/imap/src/nsImapIncomingServer.h index 6126489e565..adfdbe243f4 100644 --- a/mozilla/mailnews/imap/src/nsImapIncomingServer.h +++ b/mozilla/mailnews/imap/src/nsImapIncomingServer.h @@ -71,7 +71,7 @@ protected: PRBool AllDescendentsAreNoSelect(nsIFolder *parentFolder); private: - nsresult SubscribeToFolder(const char *aName, PRBool subscribe); + nsresult SubscribeToFolder(const PRUnichar *aName, PRBool subscribe); nsresult CreateImapConnection (nsIEventQueue* aEventQueue, nsIImapUrl* aImapUrl, nsIImapProtocol** aImapConnection); diff --git a/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp b/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp index 23a73823bce..871b1743ff7 100644 --- a/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp +++ b/mozilla/mailnews/news/src/nsNntpIncomingServer.cpp @@ -980,21 +980,19 @@ nsNntpIncomingServer::GetSubscribeListener(nsISubscribeListener **aListener) } NS_IMETHODIMP -nsNntpIncomingServer::Subscribe(const char *aName) +nsNntpIncomingServer::Subscribe(const PRUnichar *aUnicharName) { -#ifdef DEBUG_NEWS - printf("subscribe to news group: %s\n",aName); -#endif - return SubscribeToNewsgroup(aName); + nsCAutoString name; + name.AssignWithConversion(aUnicharName); + return SubscribeToNewsgroup((const char *)name); } NS_IMETHODIMP -nsNntpIncomingServer::Unsubscribe(const char *aName) +nsNntpIncomingServer::Unsubscribe(const PRUnichar *aUnicharName) { nsresult rv; -#ifdef DEBUG_NEWS - printf("unsubscribe to news group: %s\n",aName); -#endif + nsCAutoString name; + name.AssignWithConversion(aUnicharName); nsCOMPtr rootFolder; rv = GetRootFolder(getter_AddRefs(rootFolder)); @@ -1006,7 +1004,7 @@ nsNntpIncomingServer::Unsubscribe(const char *aName) if (!serverFolder) return NS_ERROR_FAILURE; nsCOMPtr subFolder; - rv = serverFolder->FindSubFolder(aName, getter_AddRefs(subFolder)); + rv = serverFolder->FindSubFolder(name, getter_AddRefs(subFolder)); if (NS_FAILED(rv)) return rv; nsCOMPtr newsgroupFolder = do_QueryInterface(subFolder, &rv);