Fix for bug 224231 (Need AppendASCIItoUTF16). r=jst, sr=dbaron.

git-svn-id: svn://10.0.0.236/trunk@148683 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
peter%propagandism.org
2003-11-01 09:35:48 +00:00
parent 3f3462ac17
commit e303e4bc71
2 changed files with 68 additions and 18 deletions

View File

@@ -150,30 +150,16 @@ NS_COM
void
LossyCopyUTF16toASCII( const nsAString& aSource, nsACString& aDest )
{
// right now, this won't work on multi-fragment destinations
aDest.SetLength(aSource.Length());
nsAString::const_iterator fromBegin, fromEnd;
nsACString::iterator toBegin;
LossyConvertEncoding<PRUnichar, char> converter(aDest.BeginWriting(toBegin).get());
copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);
aDest.Truncate();
LossyAppendUTF16toASCII(aSource, aDest);
}
NS_COM
void
CopyASCIItoUTF16( const nsACString& aSource, nsAString& aDest )
{
// right now, this won't work on multi-fragment destinations
aDest.SetLength(aSource.Length());
nsACString::const_iterator fromBegin, fromEnd;
nsAString::iterator toBegin;
LossyConvertEncoding<char, PRUnichar> converter(aDest.BeginWriting(toBegin).get());
copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);
aDest.Truncate();
AppendASCIItoUTF16(aSource, aDest);
}
NS_COM
@@ -208,6 +194,64 @@ CopyUTF8toUTF16( const char* aSource, nsAString& aDest )
AppendUTF8toUTF16(aSource, aDest);
}
NS_COM
void
LossyAppendUTF16toASCII( const nsAString& aSource, nsACString& aDest )
{
PRUint32 old_dest_length = aDest.Length();
aDest.SetLength(old_dest_length + aSource.Length());
nsAString::const_iterator fromBegin, fromEnd;
nsACString::iterator dest;
aDest.BeginWriting(dest);
dest.advance(old_dest_length);
// right now, this won't work on multi-fragment destinations
LossyConvertEncoding<PRUnichar, char> converter(dest.get());
copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);
}
NS_COM
void
AppendASCIItoUTF16( const nsACString& aSource, nsAString& aDest )
{
PRUint32 old_dest_length = aDest.Length();
aDest.SetLength(old_dest_length + aSource.Length());
nsACString::const_iterator fromBegin, fromEnd;
nsAString::iterator dest;
aDest.BeginWriting(dest);
dest.advance(old_dest_length);
// right now, this won't work on multi-fragment destinations
LossyConvertEncoding<char, PRUnichar> converter(dest.get());
copy_string(aSource.BeginReading(fromBegin), aSource.EndReading(fromEnd), converter);
}
NS_COM
void
LossyAppendUTF16toASCII( const PRUnichar* aSource, nsACString& aDest )
{
if (aSource) {
LossyAppendUTF16toASCII(nsDependentString(aSource), aDest);
}
}
NS_COM
void
AppendASCIItoUTF16( const char* aSource, nsAString& aDest )
{
if (aSource) {
AppendASCIItoUTF16(nsDependentCString(aSource), aDest);
}
}
NS_COM
void
AppendUTF16toUTF8( const nsAString& aSource, nsACString& aDest )