зеркало из 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;
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
|
||||||
nsAutoString filterString(filterName);
|
nsAutoString filterString(filterName);
|
||||||
|
|
||||||
// XXX - convert to UTF8 :(
|
char *utf8Name = filterString.ToNewUTF8String();
|
||||||
filterUri.AppendWithConversion(filterString);
|
filterUri.Append(utf8Name);
|
||||||
|
Recycle(utf8Name);
|
||||||
|
|
||||||
nsCOMPtr<nsIRDFResource> filterResource;
|
nsCOMPtr<nsIRDFResource> filterResource;
|
||||||
rv = getRDFService()->GetResource(filterUri.GetBuffer(),
|
rv = getRDFService()->GetResource(filterUri.GetBuffer(),
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
|
|
||||||
#include "nsCOMPtr.h"
|
#include "nsCOMPtr.h"
|
||||||
#include "nsXPIDLString.h"
|
#include "nsXPIDLString.h"
|
||||||
|
#include "nsTextFormatter.h"
|
||||||
|
|
||||||
#include "nsIRDFService.h"
|
#include "nsIRDFService.h"
|
||||||
#include "nsIRDFResource.h"
|
#include "nsIRDFResource.h"
|
||||||
|
@ -36,6 +37,14 @@
|
||||||
|
|
||||||
static NS_DEFINE_CID(kRDFServiceCID, NS_RDFSERVICE_CID);
|
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)
|
NS_IMPL_ISUPPORTS1(nsMsgFilterDelegateFactory, nsIRDFDelegateFactory)
|
||||||
|
|
||||||
nsMsgFilterDelegateFactory::nsMsgFilterDelegateFactory()
|
nsMsgFilterDelegateFactory::nsMsgFilterDelegateFactory()
|
||||||
|
@ -140,7 +149,14 @@ nsMsgFilterDelegateFactory::getFilterDelegate(nsIRDFResource *aOuter,
|
||||||
|
|
||||||
// XXX convert from UTF8
|
// XXX convert from UTF8
|
||||||
nsAutoString filterString;
|
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;
|
nsCOMPtr<nsIMsgFilter> filter;
|
||||||
rv = filterList->GetFilterNamed(filterString.GetUnicode(), getter_AddRefs(filter));
|
rv = filterList->GetFilterNamed(filterString.GetUnicode(), getter_AddRefs(filter));
|
||||||
if (NS_FAILED(rv)) return rv;
|
if (NS_FAILED(rv)) return rv;
|
||||||
|
@ -161,7 +177,6 @@ nsMsgFilterDelegateFactory::getFilterName(const char *filterTag)
|
||||||
|
|
||||||
const char *filterNameStr = filterTag + MSGFILTER_TAG_LENGTH;
|
const char *filterNameStr = filterTag + MSGFILTER_TAG_LENGTH;
|
||||||
|
|
||||||
printf("GetFilterName(%s) -> %s\n", filterTag, filterNameStr);
|
|
||||||
return filterNameStr;
|
return filterNameStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче