fixes bug 239303 "provide basic string conversion routines for the Gecko SDK" r=bsmedberg sr=dbaron a=chofmann

git-svn-id: svn://10.0.0.236/trunk@154433 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
darin%meer.net
2004-04-01 20:47:48 +00:00
parent 1b69a7515b
commit 17b87fb59e
8 changed files with 391 additions and 119 deletions

View File

@@ -42,6 +42,7 @@
#define nsACString_external nsACString_external_
#include "nsStringAPI.h"
#include "nsNativeCharsetUtils.h"
/* ------------------------------------------------------------------------- */
@@ -192,3 +193,51 @@ NS_CStringCopy(nsACString &aDest, const nsACString &aSrc)
{
aDest.Assign(aSrc);
}
/* ------------------------------------------------------------------------- */
NS_STRINGAPI(nsresult)
NS_CStringToUTF16(const nsACString &aSrc, PRUint32 aSrcEncoding, nsAString &aDest)
{
// XXX handle errors
switch (aSrcEncoding)
{
case NS_ENCODING_ASCII:
CopyASCIItoUTF16(aSrc, aDest);
break;
case NS_ENCODING_UTF8:
CopyUTF8toUTF16(aSrc, aDest);
break;
case NS_ENCODING_NATIVE_FILESYSTEM:
NS_CopyNativeToUnicode(aSrc, aDest);
break;
default:
return NS_ERROR_NOT_IMPLEMENTED;
}
return NS_OK;
}
NS_STRINGAPI(nsresult)
NS_UTF16ToCString(const nsAString &aSrc, PRUint32 aDestEncoding, nsACString &aDest)
{
// XXX handle errors
switch (aDestEncoding)
{
case NS_ENCODING_ASCII:
LossyCopyUTF16toASCII(aSrc, aDest);
break;
case NS_ENCODING_UTF8:
CopyUTF16toUTF8(aSrc, aDest);
break;
case NS_ENCODING_NATIVE_FILESYSTEM:
NS_CopyUnicodeToNative(aSrc, aDest);
break;
default:
return NS_ERROR_NOT_IMPLEMENTED;
}
return NS_OK;
}