Ako pokracuje Netscape?
Tomas Brodsky
brodsky na cfar.umd.edu
Pátek Červenec 3 20:09:55 CEST 1998
Jaromir Koutek wrote:
> > > Preloz si posledni zdrojaky a uvidis.
> > > > Je to fakt. Mely by se konecne vyresit problemy s CP1250,
> > > Se to vyresilo. (Diky Tomasi Brodskemu.)
> > Je to niekde skompilovane a stiahnutelne?
> Tady:
> http://www.wynholds.com/mike/mozilla/
Do te doby nez bude Mozilla stabilni pro bezne pouzivani (mozna uz
je), daji se problemy s CP1250 vyresit malou zmenou starsi binarky.
Mam nainstalovane Latin2 fonty, ve kterych jsou i ceska pismena podle
CP1250 - nekolikrat se o nich mluvilo tady v konferenci. Takze vetsina
WWW stranek v CP1250 se zobrazuje spravne. Problemy jsou jenom se
strankami, ktere jsou v CP1250 a v meta tagu to (spravne) oznamuji.
Bohuzel Netscape kdyz vidi CP1250, tak se na Unixu pokusi o
prekodovani na Latin2 a protoze takovou polozku nema v konverzni
tabulce, tupe zacne pouzivat Latin1 font (misto defaultu). No, ale ted
kdyz mame zdrojaky, tak muzeme provadet dedukce o starsich verzich. Ta
konverzni tabulka je minimalne od verze 3 stejna a taky interni cisla
kodovych stranek se nezmenily.
Pro zajemce, tady je jedna polozka te konverzni tabulky, v binarce je
zarovnana na 32 bytu:
typedef struct {
int16 from_csid; /* "from" codeset ID */
int16 to_csid; /* "to" codeset ID */
int16 autoselect; /* autoselectable */
CCCFunc cvtmethod; /* char. codeset conv method */
int32 cvtflag; /* conv func dependent flag */
} cscvt_t;
CP1250 ma csid 44 (=0x2C), Latin2 ma csid 10 (=0x0A). Takze staci
najit tu tabulku a preplacnout jednu polozku sekvenci
00 2C 00 0A 00 ... (zbytek same nuly). Tim se vyrobi prevodni metoda z
CP1250 do Latin2 pouzivajici funkci NULL, ktera ten text necha beze
zmeny.
Nejjednodussi je preplacnuti polozek, ktere jsou skoro spravne a
clovek je nepotrebuje. Ja jsem zmenil iso-8859-9 (turectina), s csid
20 (=0x14). Dalsi jednoducha moznost je iso-8859-7 (rectina) s csid 18
(=0x12).
Staci najit v binarce retezec (v hex):
00 14 00 14 00 00 00 00 00 00 ... (tech nul by melo byt 28)
a nahradit 2 byty:
00 2C 00 0A 00 00 00 00 00 00 ...
Funguje mi to takhle v Netscape 3 na Linuxu i na Solarisu k plne
spokojenosti. Ve verzi 4 by to melo taky fungovat, ale nezkousel jsem
to.
Tom
======================================================================
| Tomas Brodsky | Microsoft is not the answer. |
| CfAR, Univ. of Md at College Park | Microsoft is the question and |
| Email: brodsky na cfar.umd.edu | the answer is no. |
| http://www.cfar.umd.edu/~brodsky | |
======================================================================
Další informace o konferenci Linux