support i18n friendly names in the datasource by doing some utf8 conversion

This commit is contained in:
alecf%netscape.com 2000-05-16 22:43:23 +00:00
Родитель 77e64029b2
Коммит f4f3c1e6ca
2 изменённых файлов: 21 добавлений и 5 удалений

Просмотреть файл

@ -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;
}