[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/taglib/toolkit
From: Scott Wheeler <wheeler () kde ! org>
Date: 2005-07-21 18:45:16
Message-ID: 1121971516.941475.29090.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 437399 by wheeler:
Add UTF16LE support. Patch mostly by Umesh Shankar.
BUG:106815
M +21 -3 tstring.cpp
M +5 -1 tstring.h
--- trunk/kdesupport/taglib/toolkit/tstring.cpp #437398:437399
@@ -83,7 +83,7 @@
{
d = new StringPrivate;
- if(t == UTF16 || t == UTF16BE) {
+ if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
debug("String::String() -- A std::string should not contain UTF16.");
return;
}
@@ -116,7 +116,7 @@
{
d = new StringPrivate;
- if(t == UTF16 || t == UTF16BE) {
+ if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
debug("String::String() -- A const char * should not contain UTF16.");
return;
}
@@ -145,7 +145,7 @@
{
d = new StringPrivate;
- if(t == UTF16 || t == UTF16BE) {
+ if(t == UTF16 || t == UTF16BE || t == UTF16LE) {
debug("String::String() -- A std::string should not contain UTF16.");
return;
}
@@ -378,7 +378,19 @@
}
break;
}
+ case UTF16LE:
+ {
+ for(wstring::const_iterator it = d->data.begin(); it != d->data.end(); it++) {
+
+ char c1 = *it & 0xff;
+ char c2 = *it >> 8;
+
+ v.append(c1);
+ v.append(c2);
+ }
+ break;
}
+ }
return v;
}
@@ -686,6 +698,12 @@
delete [] sourceBuffer;
delete [] targetBuffer;
}
+ case UTF16LE:
+ {
+ for(uint i = 0; i < d->data.size(); i++)
+ d->data[i] = byteSwap((unsigned short)d->data[i]);
+ break;
+ }
default:
break;
}
--- trunk/kdesupport/taglib/toolkit/tstring.h #437398:437399
@@ -90,7 +90,11 @@
/*!
* UTF8 encoding. Characters are usually 8 bits but can be up to 32.
*/
- UTF8 = 3
+ UTF8 = 3,
+ /*!
+ * UTF16 <i>little endian</i>. 16 bit characters.
+ */
+ UTF16LE = 4
};
/*!
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic