[kde-russian] Re: mc in qt

Leon Kanter =?iso-8859-1?q?leon_=CE=C1_blackcatlinux=2Ecom?=
Чт Окт 24 15:52:53 MSD 2002


Nikita V. Youshchenko wrote:

>Видимо, проблема такая.
>Некоторые iso8859 шрифты имеют символы-рамочки в диапазоне 0x8-0x1F, 
>
Вот их и надо использовать

>некоторые не имеют. Некоторые koi шрифты имеют эти символы в диапазоне 
>0x8-0x1F, 
>

>некоторые - в диапазоне 0x80-0x97
>
а вот эти использовать нельзя

>, а некоторые вовсе не имеют.
>В xfd все это прекрасно видно.
>Похоже, раньше в Qt стояло, что символы есть в диапозоне 0x8-0x1f, но потом 
>господам из trolltech надоело, что в зависимости от конкретного шрифта 
>рамочки то есть, то нет. И они решили, что пусть все либо используют 
>юникод (с которым все работает), либо сидят без рамочек.
>
>Кажется, стандарте koi8 символы вроде как обязаны находится в диапазоне 
>0x80-0x97 (я не уверен, но по крайней мере freetype их туда помещает).
>Но, скажем, в шрифтах cronyx нет их там ...
>
А что делать тем, у кого cp1251 или iso8859-5? псевдографика  0x8-0x1f - 
это стандарт, который поддерживается практически во всех шрифтах misc-fixed.

>------------------------------------------------------------------------
>
>diff -ur qt-x11-free-3.0.5.orig/src/kernel/qfont_x11.cpp qt-x11-free-3.0.5/src/kernel/qfont_x11.cpp
>--- qt-x11-free-3.0.5.orig/src/kernel/qfont_x11.cpp	Mon Jul  8 14:27:02 2002
>+++ qt-x11-free-3.0.5/src/kernel/qfont_x11.cpp	Wed Oct 23 13:49:39 2002
>@@ -108,6 +108,8 @@
> static const char * const latinA14_encodings[] = { "iso8859-14", 0 };
> static const char * const latinA15_encodings[] = { "iso8859-15", 0 };
> 
>+static const char * const geometric_encodings[] = { "koi8-r", 0 };
>+
> // we select on of these at initialization time for Han use
> static const char * const hancn_encodings[] =
> { "gb18030-0", /*"gb18030.2000-1",*/ "gb18030.2000-0", "gbk-0", "gb2312.1980-0", "big5*-*", "jisx0208.1983-0", "ksc5601.1987-0", 0 };
>@@ -215,7 +217,7 @@
>     // TechnicalSymbols
>     { 0, empty_encodings },
>     // GeometricSymbols
>-    { 0, empty_encodings },
>+    { 0, geometric_encodings },
>     // MiscellaneousSymbols
>     { 0, empty_encodings },
>     // EnclosedAndSquare
>@@ -2280,7 +2282,7 @@
>     case QFont::NumberForms:               row = 0x21; cell = 0x5b; break;
>     case QFont::MathematicalOperators:     row = 0x22; cell = 0x2b; break;
>     case QFont::TechnicalSymbols:          row = 0x24; cell = 0x40; break;
>-    case QFont::GeometricSymbols:          row = 0x25; cell = 0xa1; break;
>+    case QFont::GeometricSymbols:          row = 0x25; cell = 0x02; break;
>     case QFont::MiscellaneousSymbols:      row = 0x26; cell = 0x00; break;
>     case QFont::EnclosedAndSquare:         row = 0x24; cell = 0x60; break;
>     case QFont::Braille:                   row = 0x28; cell = 0x00; break;
>  
>





Подробная информация о списке рассылки kde-russian