diff -ur qt-1.44.orig/include/qfont.h qt-1.44/include/qfont.h --- qt-1.44.orig/include/qfont.h Fri Dec 24 21:40:47 1999 +++ qt-1.44/include/qfont.h Fri Dec 24 21:45:06 1999 @@ -55,7 +55,9 @@ Latin7, ISO_8859_7 = Latin7, Latin8, ISO_8859_8 = Latin8, Latin9, ISO_8859_9 = Latin9, - KOI8R }; + KOI8R, + KOI8U, + CP1251 }; QFont(); // default font QFont( const char *family, int pointSize = 12, diff -ur qt-1.44.orig/src/kernel/qapplication_x11.cpp qt-1.44/src/kernel/qapplication_x11.cpp --- qt-1.44.orig/src/kernel/qapplication_x11.cpp Fri Dec 24 21:40:50 1999 +++ qt-1.44/src/kernel/qapplication_x11.cpp Fri Dec 24 21:44:40 1999 @@ -408,6 +408,8 @@ { "ISO8859-8", QFont::Latin8 }, { "ISO8859-9", QFont::Latin9 }, { "KOI8-R", QFont::KOI8R }, + { "KOI8-U", QFont::KOI8U }, + { "CP1251", QFont::CP1251 }, { 0, /* anything */ QFont::Latin1 } }; diff -ur qt-1.44.orig/src/kernel/qfont.h qt-1.44/src/kernel/qfont.h --- qt-1.44.orig/src/kernel/qfont.h Fri Dec 24 21:40:51 1999 +++ qt-1.44/src/kernel/qfont.h Fri Dec 24 21:45:06 1999 @@ -55,7 +55,9 @@ Latin7, ISO_8859_7 = Latin7, Latin8, ISO_8859_8 = Latin8, Latin9, ISO_8859_9 = Latin9, - KOI8R }; + KOI8R, + KOI8U, + CP1251 }; QFont(); // default font QFont( const char *family, int pointSize = 12, diff -ur qt-1.44.orig/src/kernel/qfont_x11.cpp qt-1.44/src/kernel/qfont_x11.cpp --- qt-1.44.orig/src/kernel/qfont_x11.cpp Fri Dec 24 21:40:51 1999 +++ qt-1.44/src/kernel/qfont_x11.cpp Fri Dec 24 21:52:10 1999 @@ -496,6 +496,12 @@ } else if( strcmp( tokens[CharsetRegistry], "koi8" ) == 0 && strcmp( tokens[CharsetEncoding], "r" ) == 0) { f->s.charSet = QFont::KOI8R; + } else if( strcmp( tokens[CharsetRegistry], "koi8" ) == 0 && + strcmp( tokens[CharsetEncoding], "u" ) == 0) { + f->s.charSet = QFont::KOI8U; + } else if( strcmp( tokens[CharsetEncoding], "cp1251" ) == 0 || + strcmp( tokens[CharsetEncoding], "1251" ) == 0) { + f->s.charSet = QFont::CP1251; } else { f->s.charSet = QFont::AnyCharSet; } @@ -645,9 +651,21 @@ if ( charSet() == AnyCharSet ) { score |= CharSetScore; - } else if ( charSet() == KOI8R ) { + } else if ( charSet() == KOI8R ) { if ( strcmp( tokens[CharsetRegistry], "koi8" ) == 0 && strcmp( tokens[CharsetEncoding], "r" ) == 0 ) + score |= CharSetScore; + else + exactMatch = FALSE; + } else if ( charSet() == KOI8U ) { + if ( strcmp( tokens[CharsetRegistry], "koi8" ) == 0 && + strcmp( tokens[CharsetEncoding], "u" ) == 0 ) + score |= CharSetScore; + else + exactMatch = FALSE; + } else if ( charSet() == CP1251 ) { + if ( strcmp( tokens[CharsetEncoding], "cp1251" ) == 0 || + strcmp( tokens[CharsetEncoding], "1251" ) == 0 ) score |= CharSetScore; else exactMatch = FALSE; diff -ur qt-1.44.orig/src/kernel/qpsprinter.cpp qt-1.44/src/kernel/qpsprinter.cpp --- qt-1.44.orig/src/kernel/qpsprinter.cpp Fri Dec 24 21:40:52 1999 +++ qt-1.44/src/kernel/qpsprinter.cpp Fri Dec 24 21:51:36 1999 @@ -1637,6 +1637,43 @@ 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } }, + // from RFC 2319, http://ds.internic.net/rfc/rfc2319.txt + { QFont::KOI8U, + { 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, + 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, + 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219/**/, 0x221A, 0x2248, + 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, + 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457, + 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E, + 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9, + 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, + 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, + 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, + 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A } }, + + { QFont::CP1251, + { 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, + 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040c, 0x040b, 0x040F, + 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, + 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, + 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, + 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, + 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F } }, + // next bits generated from tables on the Unicode 2.0 CD. we can // use these tables since this is part of the transition to using // unicode everywhere in qt. Only in qt-1.44/src/kernel: xx