From 9bdb311e97bb5ff31eb8a6720242eccd2954bf8a Mon Sep 17 00:00:00 2001 From: "alecf%netscape.com" Date: Tue, 16 May 2000 22:43:23 +0000 Subject: [PATCH] support i18n friendly names in the datasource by doing some utf8 conversion git-svn-id: svn://10.0.0.236/trunk@70130 18797224-902f-48f8-a5cc-f745e15eee43 --- .../base/search/src/nsMsgFilterDataSource.cpp | 7 ++++--- .../search/src/nsMsgFilterDelegateFactory.cpp | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/mozilla/mailnews/base/search/src/nsMsgFilterDataSource.cpp b/mozilla/mailnews/base/search/src/nsMsgFilterDataSource.cpp index 208f7df3e76..9efd29a20e9 100644 --- a/mozilla/mailnews/base/search/src/nsMsgFilterDataSource.cpp +++ b/mozilla/mailnews/base/search/src/nsMsgFilterDataSource.cpp @@ -314,9 +314,10 @@ nsMsgFilterDataSource::getFilterListTargets(nsIMsgFilterList *aFilterList, if (NS_FAILED(rv)) return rv; nsAutoString filterString(filterName); - - // XXX - convert to UTF8 :( - filterUri.AppendWithConversion(filterString); + + char *utf8Name = filterString.ToNewUTF8String(); + filterUri.Append(utf8Name); + Recycle(utf8Name); nsCOMPtr filterResource; rv = getRDFService()->GetResource(filterUri.GetBuffer(), diff --git a/mozilla/mailnews/base/search/src/nsMsgFilterDelegateFactory.cpp b/mozilla/mailnews/base/search/src/nsMsgFilterDelegateFactory.cpp index f94eabdb6a7..2b30b34a268 100644 --- a/mozilla/mailnews/base/search/src/nsMsgFilterDelegateFactory.cpp +++ b/mozilla/mailnews/base/search/src/nsMsgFilterDelegateFactory.cpp @@ -25,6 +25,7 @@ #include "nsCOMPtr.h" #include "nsXPIDLString.h" +#include "nsTextFormatter.h" #include "nsIRDFService.h" #include "nsIRDFResource.h" @@ -36,6 +37,14 @@ static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID); +// unicode "%s" format string +static const PRUnichar unicodeFormatter[] = { + (PRUnichar)'%', + (PRUnichar)'s', + (PRUnichar)0, +}; + + NS_IMPL_ISUPPORTS1(nsMsgFilterDelegateFactory, nsIRDFDelegateFactory) nsMsgFilterDelegateFactory::nsMsgFilterDelegateFactory() @@ -140,7 +149,14 @@ nsMsgFilterDelegateFactory::getFilterDelegate(nsIRDFResource *aOuter, // XXX convert from UTF8 nsAutoString filterString; - filterString.AssignWithConversion(filterName); + PRUnichar *unicodeString = + nsTextFormatter::smprintf(unicodeFormatter, filterName); + NS_ENSURE_TRUE(unicodeString, NS_ERROR_OUT_OF_MEMORY); + + filterString.Assign(unicodeString); + + nsTextFormatter::smprintf_free(unicodeString); + nsCOMPtr filter; rv = filterList->GetFilterNamed(filterString.GetUnicode(), getter_AddRefs(filter)); if (NS_FAILED(rv)) return rv; @@ -161,7 +177,6 @@ nsMsgFilterDelegateFactory::getFilterName(const char *filterTag) const char *filterNameStr = filterTag + MSGFILTER_TAG_LENGTH; - printf("GetFilterName(%s) -> %s\n", filterTag, filterNameStr); return filterNameStr; }