зеркало из https://github.com/mozilla/gecko-dev.git
support i18n friendly names in the datasource by doing some utf8 conversion
This commit is contained in:
Родитель
77e64029b2
Коммит
f4f3c1e6ca
|
@ -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<nsIRDFResource> filterResource;
|
||||
rv = getRDFService()->GetResource(filterUri.GetBuffer(),
|
||||
|
|
|
@ -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<nsIMsgFilter> 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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче