Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-staging: Fix inconsistency between Qt and ICU in Shift-JIS codec with regards to ASCII range
This commit is contained in:
commit
d3b376865e
@ -155,7 +155,9 @@ QString QSjisCodec::convertToUnicode(const char* chars, int len, ConverterState
|
|||||||
uchar ch = chars[i];
|
uchar ch = chars[i];
|
||||||
switch (nbuf) {
|
switch (nbuf) {
|
||||||
case 0:
|
case 0:
|
||||||
if (ch < 0x80 || IsKana(ch)) {
|
if (ch < 0x80) {
|
||||||
|
result += QValidChar(ch);
|
||||||
|
} else if (IsKana(ch)) {
|
||||||
// JIS X 0201 Latin or JIS X 0201 Kana
|
// JIS X 0201 Latin or JIS X 0201 Kana
|
||||||
u = conv->jisx0201ToUnicode(ch);
|
u = conv->jisx0201ToUnicode(ch);
|
||||||
result += QValidChar(u);
|
result += QValidChar(u);
|
||||||
|
@ -106,6 +106,8 @@ private slots:
|
|||||||
|
|
||||||
void moreToFromUnicode_data();
|
void moreToFromUnicode_data();
|
||||||
void moreToFromUnicode();
|
void moreToFromUnicode();
|
||||||
|
|
||||||
|
void shiftJis();
|
||||||
};
|
};
|
||||||
|
|
||||||
void tst_QTextCodec::toUnicode_data()
|
void tst_QTextCodec::toUnicode_data()
|
||||||
@ -2236,6 +2238,19 @@ void tst_QTextCodec::moreToFromUnicode()
|
|||||||
QCOMPARE(testData, cStr);
|
QCOMPARE(testData, cStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QTextCodec::shiftJis()
|
||||||
|
{
|
||||||
|
QByteArray backslashTilde("\\~");
|
||||||
|
QTextCodec* codec = QTextCodec::codecForName("shift_jis");
|
||||||
|
QString string = codec->toUnicode(backslashTilde);
|
||||||
|
QCOMPARE(string.length(), 2);
|
||||||
|
QCOMPARE(string.at(0), QChar(QLatin1Char('\\')));
|
||||||
|
QCOMPARE(string.at(1), QChar(QLatin1Char('~')));
|
||||||
|
|
||||||
|
QByteArray encoded = codec->fromUnicode(string);
|
||||||
|
QCOMPARE(encoded, backslashTilde);
|
||||||
|
}
|
||||||
|
|
||||||
struct DontCrashAtExit {
|
struct DontCrashAtExit {
|
||||||
~DontCrashAtExit() {
|
~DontCrashAtExit() {
|
||||||
QTextCodec *c = QTextCodec::codecForName("utf8");
|
QTextCodec *c = QTextCodec::codecForName("utf8");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user