CESTINA X11

Smolik Daniel smolikdan na email.cz
Pondělí Březen 23 09:27:09 CET 1998


Stanislav Meduna wrote:
> 
> Smolik Daniel <smolikdan na hotmail.com> wrote:
> 
> : Otestujte cestinu do X, kterou pouzivam. Konecne se mi ji povedlo nekde
> : vystavit.
> :  Je to patchnuta libX11. Fungue zde bez problemu prepinani dvou
> : klavesnic a deadkeys.
> 
> Mohli by ste strucne ten patch popisat ? Nemam momentalne cas to tahat
> a prezerat, ale zaujimalo by ma, aky pristup ste pouzili.
 Reknu kolegovi, ktery je autor aby Vam mailnul. Prece jenom to
programoval on.

 
                          Stano

-- 

                      Smolik Daniel

E-mail: smolikdan na email.cz
Tel. work: 644 13 42
------------- další část ---------------
Uprava XKB rozsireni knihovny libX11 pro zajisteni funkcnosti mrtvych klaves
----------------------------------------------------------------------------

Vychazime z baliku XKB-cz-X11R6.3 , ktery resi pouziti ceske klavesnice pod 
XFree 3.2 naprogramovanim XKB rozsireni. Bohuzel nam nikdy nefungovalo to, 
co si predstavujeme pod pojmem mrtve klavesy. V nasem pojeti mrtva klavesa je
klavesa, jejimz stiskem se negeneruje zadny znak, ale tento stisk je
zapamatovan a v zavislosti na nem se meni funkcnost nejake dalsi stisknute
klavesy - napriklad carka a hacek v na ceske klavesnici. Doufali jsme, ze
problem vyresi nastupujici nova verze XFree 3.3, ale bud se tak nestalo,
nebo se nam nepodarilo zajistit, jak XKB spravne pouzivat. Proto jsme
zvolili pomerne radikalni reseni - patch na knihonvu libX11.

Vetsina programu, kterych se problem mrtvych klaves tyka, pouziva pro
interni dekodovani znaku funkci XLookupString. Ta zajisti prevedeni
informace z udalosti X-Window na retezec, odpovidajici naprogramovani
klavesnice (konfiguraci XKB rozsireni). V adresari /var/X11/lib/locale jsme
objevili soubory, popisujici chovani mrtvych klaves, ktere ale patrne nejsou
nikdy vyuzivany. Patch zajistuje jejich vyuziti u vsech programu, ktere
vyuzivaji k dekodovani znaku funkci XLookupString (tedy temer vsechny
programy, ktere jsme meli moznost testovat, vcetne rozsirenych toolkitu
Athena Widget Set, XForms, Motif 2.0 a znamych aplikaci jako Netscape,
Applixware apod.).

aktivace patche:

XKB_HACK_COMPOSES=1 aktivuje patch
XKB_HACK_COMP_FILE=jmeno souboru z locale Compose

Bugs:
	- mnoho neodhalenych
	- pri prvnim pouziti XLookupString se vytvori tabulka pro preklady mrtvych
klaves a pro ni se zaalokuje potrebne mnozstvi pameti. Tato pamet neni nikdy
odalokovana.
	- vlastni kod pro cteni Compose souboru neni 'blbuvzdorny' - pri spatnem
(tedy jinem, nez jaky byl format naseho...) formatu souboru se bud vytvori
nesmyslna tabulka mrtvych klaves (a ta se pak pouziva), nebo prognam ve
funkci XLookupSting havaruje

archiv obsahuje tyto souboru:

Readme
Compose - nase definice mrtvych klaves (prevzata z distribuce XFree 3.3)
xkb.patch - patch na zdrojove texty libX11 verze 6.1
libX11.so.6.1 - zkompilovana knihovna libX11

Tomas Zikmund

e-mail:tzikmund na iccc.cz
 


Další informace o konferenci Linux