summaryrefslogtreecommitdiff
path: root/qt/qt-2.3.7.patch/qte237-encoding.patch
blob: c2f5c08520d501abbd9e0f0fb02500872d824334 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
German umlaute quite likely french, italian, spanish did
not work due QFile::[decode,encode]Name did call QString
local8Bit,fromLocal8Bit which plainly tried to use utf8
encoding even if not useful. So a filename got changed
and QFileInfo recognized the file not beeing present anymore...
which lead to files not be shown.
Also with Year-Names problem exists as the base system sent
it encoded upstream.

If you want to have UTF-8 encoding use LC_CTYPE as always and
QTextCodec::codecForLocale will use the right UTF-8 encoding.

As fallback the old behaviour was preserved







--- qt-2.3.7-old/src/tools/qstring.cpp	2004-07-23 14:33:02.000000000 +0200
+++ qt-2.3.7/src/tools/qstring.cpp	2004-07-23 14:32:31.000000000 +0200
@@ -14469,7 +14469,11 @@
     return qt_winQString2MB( *this );
 #endif
 #ifdef _WS_QWS_
-    return utf8(); // ##### if there is ANY 8 bit format supported?
+    QTextCodec* codec = QTextCodec::codecForLocale();
+    return codec
+	    ? codec->fromUnicode(*this)
+	    : utf8();
+    //return latin1(); // ##### if there is ANY 8 bit format supported?
 #endif
 #endif
 }
@@ -14515,7 +14519,12 @@
     return qt_winMB2QString( local8Bit );
 #endif
 #ifdef _WS_QWS_
-    return fromUtf8(local8Bit,len);
+    QTextCodec* codec = QTextCodec::codecForLocale();
+    if( len < 0) len = qstrlen(local8Bit);
+    return codec
+	    ? codec->toUnicode(local8Bit, len)
+	    : QString::fromUtf8(local8Bit,len);
+//    return fromLatin1(local8Bit,len);
 #endif
 #endif // QT_NO_TEXTCODEC
 }