1.01wip
authorAlexey Gladkov <legion@altlinux.org>
Mon, 15 Jan 2007 11:23:56 +0000 (14:23 +0300)
committerAlexey Gladkov <legion@altlinux.org>
Mon, 15 Jan 2007 11:23:56 +0000 (14:23 +0300)
616 files changed:
CHANGES
COPYING
Makefile.in
README
configure
consolefonts/737.cp [deleted file]
consolefonts/Cyr_a8x14 [deleted file]
consolefonts/Cyr_a8x16 [deleted file]
consolefonts/README [deleted file]
consolefonts/README.Greek [deleted file]
consolefonts/README.psf [deleted file]
consolefonts/alt-8x16 [deleted file]
consolefonts/cp850-8x14 [deleted file]
consolefonts/cp850-8x16 [deleted file]
consolefonts/cp850-8x8 [deleted file]
consolefonts/cp865-8x14 [deleted file]
consolefonts/cp865-8x16 [deleted file]
consolefonts/cp865-8x8 [deleted file]
consolefonts/def2_8x16 [deleted file]
consolefonts/default8x16 [deleted file]
consolefonts/default8x9 [deleted file]
consolefonts/gr737-8x11 [deleted file]
consolefonts/gr737-8x8 [deleted file]
consolefonts/gr737-8x8-2 [deleted file]
consolefonts/gr737-9x14 [deleted file]
consolefonts/gr737-9x14-2 [deleted file]
consolefonts/gr737-9x16 [deleted file]
consolefonts/gr737-9x16-2 [deleted file]
consolefonts/gr737-9x16-medieval [deleted file]
consolefonts/gr8x14 [deleted file]
consolefonts/gr8x16 [deleted file]
consolefonts/gr8x6 [deleted file]
consolefonts/gr8x7 [deleted file]
consolefonts/gr8x8 [deleted file]
consolefonts/grfixed [deleted file]
consolefonts/iso01.f08 [deleted file]
consolefonts/iso01.f14 [deleted file]
consolefonts/iso01.f16 [deleted file]
consolefonts/iso01a-8x14 [deleted file]
consolefonts/iso01a-8x16 [deleted file]
consolefonts/iso01a-8x8 [deleted file]
consolefonts/iso02.f08 [deleted file]
consolefonts/iso02.f14 [deleted file]
consolefonts/iso02.f16 [deleted file]
consolefonts/iso03.f08 [deleted file]
consolefonts/iso03.f14 [deleted file]
consolefonts/iso03.f16 [deleted file]
consolefonts/iso04.f08 [deleted file]
consolefonts/iso04.f14 [deleted file]
consolefonts/iso04.f16 [deleted file]
consolefonts/iso05.f08 [deleted file]
consolefonts/iso05.f14 [deleted file]
consolefonts/iso05.f16 [deleted file]
consolefonts/iso06.f08 [deleted file]
consolefonts/iso06.f14 [deleted file]
consolefonts/iso06.f16 [deleted file]
consolefonts/iso07.f08 [deleted file]
consolefonts/iso07.f14 [deleted file]
consolefonts/iso07.f16 [deleted file]
consolefonts/iso08.f08 [deleted file]
consolefonts/iso08.f14 [deleted file]
consolefonts/iso08.f16 [deleted file]
consolefonts/iso09.f08 [deleted file]
consolefonts/iso09.f14 [deleted file]
consolefonts/iso09.f16 [deleted file]
consolefonts/iso10.f08 [deleted file]
consolefonts/iso10.f14 [deleted file]
consolefonts/iso10.f16 [deleted file]
consolefonts/koi8-8x16 [deleted file]
consolefonts/koi8r-8x8 [deleted file]
consoletrans/koi8.uni [deleted file]
contrib/codepage.c
data/Makefile [new file with mode: 0644]
data/consolefonts/161.cp [moved from consolefonts/161.cp with 100% similarity]
data/consolefonts/162.cp [moved from consolefonts/162.cp with 100% similarity]
data/consolefonts/163.cp [moved from consolefonts/163.cp with 100% similarity]
data/consolefonts/164.cp [moved from consolefonts/164.cp with 100% similarity]
data/consolefonts/165.cp [moved from consolefonts/165.cp with 100% similarity]
data/consolefonts/737.cp [new file with mode: 0644]
data/consolefonts/880.cp [moved from consolefonts/880.cp with 100% similarity]
data/consolefonts/928.cp [new file with mode: 0644]
data/consolefonts/972.cp [moved from consolefonts/972.cp with 100% similarity]
data/consolefonts/Agafari-12.psfu [moved from consolefonts/Agafari-12.psfu with 100% similarity]
data/consolefonts/Agafari-14.psfu [moved from consolefonts/Agafari-14.psfu with 100% similarity]
data/consolefonts/Agafari-16.psfu [moved from consolefonts/Agafari-16.psfu with 100% similarity]
data/consolefonts/Cyr_a8x14.psfu [new file with mode: 0644]
data/consolefonts/Cyr_a8x16.psfu [new file with mode: 0644]
data/consolefonts/Cyr_a8x8.psfu [moved from consolefonts/ruscii_8x8.psf with 62% similarity]
data/consolefonts/ERRORS [moved from consolefonts/ERRORS with 100% similarity]
data/consolefonts/Goha-12.psfu [moved from consolefonts/Goha-12.psfu with 100% similarity]
data/consolefonts/Goha-14.psfu [moved from consolefonts/Goha-14.psfu with 100% similarity]
data/consolefonts/Goha-16.psfu [moved from consolefonts/Goha-16.psfu with 100% similarity]
data/consolefonts/GohaClassic-12.psfu [moved from consolefonts/GohaClassic-12.psfu with 100% similarity]
data/consolefonts/GohaClassic-14.psfu [moved from consolefonts/GohaClassic-14.psfu with 100% similarity]
data/consolefonts/GohaClassic-16.psfu [moved from consolefonts/GohaClassic-16.psfu with 100% similarity]
data/consolefonts/LatArCyrHeb-08.psfu [moved from consolefonts/LatArCyrHeb-08.psfu with 100% similarity]
data/consolefonts/LatArCyrHeb-14.psfu [moved from consolefonts/LatArCyrHeb-14.psfu with 100% similarity]
data/consolefonts/LatArCyrHeb-16+.psfu [moved from consolefonts/LatArCyrHeb-16+.psfu with 100% similarity]
data/consolefonts/LatArCyrHeb-16.psfu [moved from consolefonts/LatArCyrHeb-16.psfu with 100% similarity]
data/consolefonts/LatArCyrHeb-19.psfu [moved from consolefonts/LatArCyrHeb-19.psfu with 100% similarity]
data/consolefonts/Mik_8x16 [moved from consolefonts/Mik_8x16 with 100% similarity]
data/consolefonts/README.Arabic [moved from consolefonts/README.Arabic with 100% similarity]
data/consolefonts/README.Cyrillic [moved from consolefonts/README.Cyrillic with 79% similarity]
data/consolefonts/README.Ethiopic [moved from consolefonts/README.Ethiopic with 100% similarity]
data/consolefonts/README.Greek [new file with mode: 0644]
data/consolefonts/README.Hebrew [moved from consolefonts/README.Hebrew with 100% similarity]
data/consolefonts/README.lat0 [moved from consolefonts/README.lat0 with 100% similarity]
data/consolefonts/README.lat7 [new file with mode: 0644]
data/consolefonts/README.lat9 [new file with mode: 0644]
data/consolefonts/README.psfu [moved from consolefonts/README.psfu with 100% similarity]
data/consolefonts/alt-8x14 [moved from consolefonts/alt-8x14 with 100% similarity]
data/consolefonts/alt-8x16 [moved from consolefonts/altb-8x16 with 100% similarity]
data/consolefonts/alt-8x8 [moved from consolefonts/alt-8x8 with 100% similarity]
data/consolefonts/altc-8x16 [moved from consolefonts/altc-8x16 with 100% similarity]
data/consolefonts/aply16.psf [moved from consolefonts/aply16.psf with 100% similarity]
data/consolefonts/arm8.fnt [moved from consolefonts/arm8.fnt with 100% similarity]
data/consolefonts/cp850-8x14.psfu [new file with mode: 0644]
data/consolefonts/cp850-8x16.psfu [new file with mode: 0644]
data/consolefonts/cp850-8x8.psfu [new file with mode: 0644]
data/consolefonts/cp865-8x14.psfu [new file with mode: 0644]
data/consolefonts/cp865-8x16.psfu [new file with mode: 0644]
data/consolefonts/cp865-8x8.psfu [new file with mode: 0644]
data/consolefonts/cp866-8x14.psf [new file with mode: 0644]
data/consolefonts/cp866-8x16.psf [new file with mode: 0644]
data/consolefonts/cp866-8x8.psf [moved from consolefonts/Cyr_a8x8 with 77% similarity]
data/consolefonts/default8x16.psfu [new file with mode: 0644]
data/consolefonts/default8x9.psfu [new file with mode: 0644]
data/consolefonts/gr.f14 [moved from consolefonts/gr.f14 with 100% similarity]
data/consolefonts/gr.f16 [moved from consolefonts/gr.f16 with 100% similarity]
data/consolefonts/gr737a-8x8.psfu [new file with mode: 0644]
data/consolefonts/gr737a-9x14.psfu [new file with mode: 0644]
data/consolefonts/gr737a-9x16.psfu [new file with mode: 0644]
data/consolefonts/gr737b-8x11.psfu [new file with mode: 0644]
data/consolefonts/gr737b-9x16-medieval.psfu [new file with mode: 0644]
data/consolefonts/gr737c-8x14.psfu [new file with mode: 0644]
data/consolefonts/gr737c-8x16.psfu [new file with mode: 0644]
data/consolefonts/gr737c-8x6.psfu [new file with mode: 0644]
data/consolefonts/gr737c-8x7.psfu [new file with mode: 0644]
data/consolefonts/gr737c-8x8.psfu [new file with mode: 0644]
data/consolefonts/gr928-9x14 [moved from consolefonts/gr928-9x14 with 100% similarity]
data/consolefonts/gr928-9x16 [moved from consolefonts/gr928-9x16 with 100% similarity]
data/consolefonts/gr928thin.fnt [new file with mode: 0644]
data/consolefonts/greek.16 [moved from consolefonts/greek with 100% similarity]
data/consolefonts/grfixed.16 [new file with mode: 0644]
data/consolefonts/iso01.08 [new file with mode: 0644]
data/consolefonts/iso01.14 [new file with mode: 0644]
data/consolefonts/iso01.16 [new file with mode: 0644]
data/consolefonts/iso02.08 [new file with mode: 0644]
data/consolefonts/iso02.14 [new file with mode: 0644]
data/consolefonts/iso02.16 [new file with mode: 0644]
data/consolefonts/iso03.08 [new file with mode: 0644]
data/consolefonts/iso03.14 [new file with mode: 0644]
data/consolefonts/iso03.16 [new file with mode: 0644]
data/consolefonts/iso04.08 [new file with mode: 0644]
data/consolefonts/iso04.14 [new file with mode: 0644]
data/consolefonts/iso04.16 [new file with mode: 0644]
data/consolefonts/iso05.08 [new file with mode: 0644]
data/consolefonts/iso05.14 [new file with mode: 0644]
data/consolefonts/iso05.16 [new file with mode: 0644]
data/consolefonts/iso06.08 [new file with mode: 0644]
data/consolefonts/iso06.14 [new file with mode: 0644]
data/consolefonts/iso06.16 [new file with mode: 0644]
data/consolefonts/iso07.08 [new file with mode: 0644]
data/consolefonts/iso07.14 [new file with mode: 0644]
data/consolefonts/iso07.16 [new file with mode: 0644]
data/consolefonts/iso07courier.16.psfu [moved from consolefonts/grcourier with 69% similarity]
data/consolefonts/iso08.08 [new file with mode: 0644]
data/consolefonts/iso08.14 [new file with mode: 0644]
data/consolefonts/iso08.16 [new file with mode: 0644]
data/consolefonts/iso09.08 [new file with mode: 0644]
data/consolefonts/iso09.14 [new file with mode: 0644]
data/consolefonts/iso09.16 [new file with mode: 0644]
data/consolefonts/iso10.08 [new file with mode: 0644]
data/consolefonts/iso10.14 [new file with mode: 0644]
data/consolefonts/iso10.16 [new file with mode: 0644]
data/consolefonts/koi8-14.psf [moved from consolefonts/koi8-14.psf with 100% similarity]
data/consolefonts/koi8c-8x16 [moved from consolefonts/koi8c-8x16 with 100% similarity]
data/consolefonts/koi8r-8x14 [moved from consolefonts/koi8-8x14 with 100% similarity]
data/consolefonts/koi8r-8x16 [moved from consolefonts/koi8b-8x16 with 100% similarity]
data/consolefonts/koi8r-8x8 [moved from consolefonts/koi8-8x8 with 100% similarity]
data/consolefonts/koi8r.8x8.psfu [new file with mode: 0644]
data/consolefonts/koi8u_8x14.psf [moved from consolefonts/koi8u_8x14.psf with 100% similarity]
data/consolefonts/koi8u_8x16.psf [moved from consolefonts/koi8u_8x16.psf with 100% similarity]
data/consolefonts/koi8u_8x8.psf [moved from consolefonts/koi8u_8x8.psf with 100% similarity]
data/consolefonts/lat0-08.psfu [moved from consolefonts/lat0-08.psfu with 100% similarity]
data/consolefonts/lat0-10.psfu [moved from consolefonts/lat0-10.psfu with 100% similarity]
data/consolefonts/lat0-12.psfu [moved from consolefonts/lat0-12.psfu with 100% similarity]
data/consolefonts/lat0-14.psfu [moved from consolefonts/lat0-14.psfu with 100% similarity]
data/consolefonts/lat0-16.psfu [moved from consolefonts/lat0-16.psfu with 100% similarity]
data/consolefonts/lat1-08.psfu [moved from consolefonts/lat1-08.psfu with 100% similarity]
data/consolefonts/lat1-10.psfu [moved from consolefonts/lat1-10.psfu with 100% similarity]
data/consolefonts/lat1-12.psfu [moved from consolefonts/lat1-12.psfu with 100% similarity]
data/consolefonts/lat1-14.psfu [moved from consolefonts/lat1-14.psfu with 100% similarity]
data/consolefonts/lat1-16.psfu [moved from consolefonts/lat1-16.psfu with 100% similarity]
data/consolefonts/lat2-08.psfu [moved from consolefonts/lat2-08.psf with 64% similarity]
data/consolefonts/lat2-10.psfu [moved from consolefonts/lat2-10.psf with 70% similarity]
data/consolefonts/lat2-12.psfu [moved from consolefonts/lat2-12.psf with 73% similarity]
data/consolefonts/lat2-14.psfu [moved from consolefonts/lat2-14.psf with 76% similarity]
data/consolefonts/lat2-16.psfu [moved from consolefonts/lat2-16.psf with 78% similarity]
data/consolefonts/lat2a-16.psfu [new file with mode: 0644]
data/consolefonts/lat4-08.psfu [moved from consolefonts/lat4-08.psfu with 100% similarity]
data/consolefonts/lat4-10.psfu [moved from consolefonts/lat4-10.psfu with 100% similarity]
data/consolefonts/lat4-12.psfu [moved from consolefonts/lat4-12.psfu with 100% similarity]
data/consolefonts/lat4-14.psfu [moved from consolefonts/lat4-14.psfu with 100% similarity]
data/consolefonts/lat4-16+.psfu [moved from consolefonts/lat4-16+.psfu with 100% similarity]
data/consolefonts/lat4-16.psfu [moved from consolefonts/lat4-16.psfu with 100% similarity]
data/consolefonts/lat4-19.psfu [moved from consolefonts/lat4-19.psfu with 100% similarity]
data/consolefonts/lat4a-08.psfu [moved from consolefonts/lat4a-08.psfu with 100% similarity]
data/consolefonts/lat4a-10.psfu [moved from consolefonts/lat4a-10.psfu with 100% similarity]
data/consolefonts/lat4a-12.psfu [moved from consolefonts/lat4a-12.psfu with 100% similarity]
data/consolefonts/lat4a-14.psfu [moved from consolefonts/lat4a-14.psfu with 100% similarity]
data/consolefonts/lat4a-16+.psfu [moved from consolefonts/lat4a-16+.psfu with 100% similarity]
data/consolefonts/lat4a-16.psfu [moved from consolefonts/lat4a-16.psfu with 100% similarity]
data/consolefonts/lat4a-19.psfu [moved from consolefonts/lat4a-19.psfu with 100% similarity]
data/consolefonts/lat5-12.psfu [new file with mode: 0644]
data/consolefonts/lat5-14.psfu [new file with mode: 0644]
data/consolefonts/lat5-16.psfu [new file with mode: 0644]
data/consolefonts/lat7-16.psfu [new file with mode: 0644]
data/consolefonts/lat9-08.psf [moved from consolefonts/lat1-08.psf with 87% similarity]
data/consolefonts/lat9-10.psf [moved from consolefonts/lat1-10.psf with 85% similarity]
data/consolefonts/lat9-12.psf [moved from consolefonts/lat1-12.psf with 89% similarity]
data/consolefonts/lat9-12.psfu [new file with mode: 0644]
data/consolefonts/lat9-14.psf [moved from consolefonts/lat1-14.psf with 90% similarity]
data/consolefonts/lat9-14.psfu [new file with mode: 0644]
data/consolefonts/lat9-16.psf [moved from consolefonts/lat1-16.psf with 92% similarity]
data/consolefonts/lat9-16.psfu [new file with mode: 0644]
data/consolefonts/lat9u-08.psf [new file with mode: 0644]
data/consolefonts/lat9u-10.psf [new file with mode: 0644]
data/consolefonts/lat9u-12.psf [new file with mode: 0644]
data/consolefonts/lat9u-14.psf [new file with mode: 0644]
data/consolefonts/lat9u-16.psf [new file with mode: 0644]
data/consolefonts/lat9v-08.psf [new file with mode: 0644]
data/consolefonts/lat9v-10.psf [new file with mode: 0644]
data/consolefonts/lat9v-12.psf [new file with mode: 0644]
data/consolefonts/lat9v-14.psf [new file with mode: 0644]
data/consolefonts/lat9v-16.psf [new file with mode: 0644]
data/consolefonts/lat9w-08.psf [new file with mode: 0644]
data/consolefonts/lat9w-10.psf [new file with mode: 0644]
data/consolefonts/lat9w-12.psf [new file with mode: 0644]
data/consolefonts/lat9w-14.psf [new file with mode: 0644]
data/consolefonts/lat9w-16.psf [new file with mode: 0644]
data/consolefonts/ruscii_8x16.psfu [moved from consolefonts/ruscii_8x16.psf with 100% similarity]
data/consolefonts/ruscii_8x8.psfu [moved from consolefonts/ruscii_8x14.psf with 100% similarity]
data/consolefonts/t.fnt [moved from consolefonts/t.fnt with 100% similarity]
data/consolefonts/t850b.fnt [moved from consolefonts/t850b.fnt with 100% similarity]
data/consolefonts/tcvn8x16.psf [moved from consolefonts/tcvn8x16.psf with 100% similarity]
data/consolefonts/viscii10-8x16.psfu [moved from consolefonts/viscii10-8x16.psfu with 100% similarity]
data/consoletrans/baltic.trans [new file with mode: 0644]
data/consoletrans/cp437_to_iso01.trans [moved from consoletrans/cp437_to_iso01.trans with 100% similarity]
data/consoletrans/cp850_to_iso01.trans [moved from consoletrans/cp850_to_iso01.trans with 100% similarity]
data/consoletrans/koi2alt [moved from consoletrans/koi2alt with 100% similarity]
data/consoletrans/koi8u2ruscii [moved from consoletrans/koi8u2ruscii with 100% similarity]
data/consoletrans/latin2u.trans [new file with mode: 0644]
data/consoletrans/null [moved from consoletrans/null with 100% similarity]
data/consoletrans/space [moved from consoletrans/space with 100% similarity]
data/consoletrans/trivial [moved from consoletrans/trivial with 100% similarity]
data/consoletrans/utflist [moved from consoletrans/utflist with 100% similarity]
data/consoletrans/vga2iso [moved from consoletrans/vga2iso with 100% similarity]
data/consoletrans/viscii1.0_to_tcvn.trans [moved from consoletrans/viscii1.0_to_tcvn.trans with 100% similarity]
data/consoletrans/viscii1.0_to_viscii1.1.trans [moved from consoletrans/viscii1.0_to_viscii1.1.trans with 100% similarity]
data/consoletrans/zero [moved from consoletrans/zero with 100% similarity]
data/keymaps/README [moved from keymaps/README with 97% similarity]
data/keymaps/amiga/amiga-de.map [moved from keymaps/amiga/amiga-de.map with 100% similarity]
data/keymaps/amiga/amiga-us.map [moved from keymaps/amiga/amiga-us.map with 100% similarity]
data/keymaps/atari/atari-de.map [moved from keymaps/atari/atari-de.map with 100% similarity]
data/keymaps/atari/atari-se.map [moved from keymaps/atari/atari-se.map with 100% similarity]
data/keymaps/atari/atari-uk-falcon.map [moved from keymaps/atari/atari-uk-falcon.map with 100% similarity]
data/keymaps/atari/atari-us.map [moved from keymaps/atari/atari-us.map with 100% similarity]
data/keymaps/i386/README [moved from keymaps/i386/README with 100% similarity]
data/keymaps/i386/azerty/azerty.map [moved from keymaps/i386/azerty/azerty.map with 100% similarity]
data/keymaps/i386/azerty/be-latin1.map [moved from keymaps/i386/azerty/be-latin1.map with 100% similarity]
data/keymaps/i386/azerty/be2-latin1.map [moved from keymaps/i386/azerty/be2-latin1.map with 100% similarity]
data/keymaps/i386/azerty/fr-latin0.map [moved from keymaps/i386/azerty/fr-latin0.map with 100% similarity]
data/keymaps/i386/azerty/fr-latin1.map [moved from keymaps/i386/azerty/fr-latin1.map with 100% similarity]
data/keymaps/i386/azerty/fr-pc.map [moved from keymaps/i386/azerty/fr-pc.map with 100% similarity]
data/keymaps/i386/azerty/fr.map [moved from keymaps/i386/azerty/fr.map with 100% similarity]
data/keymaps/i386/azerty/wangbe.map [moved from keymaps/i386/azerty/wangbe.map with 100% similarity]
data/keymaps/i386/azerty/wangbe2.map [new file with mode: 0644]
data/keymaps/i386/dvorak/ANSI-dvorak.map [moved from keymaps/i386/dvorak/ANSI-dvorak.map with 100% similarity]
data/keymaps/i386/dvorak/dvorak-l.map [moved from keymaps/i386/dvorak/dvorak-l.map with 100% similarity]
data/keymaps/i386/dvorak/dvorak-r.map [moved from keymaps/i386/dvorak/dvorak-r.map with 100% similarity]
data/keymaps/i386/dvorak/dvorak.map [moved from keymaps/i386/dvorak/dvorak.map with 82% similarity]
data/keymaps/i386/fgGIod/tr_f-latin5.map [moved from keymaps/i386/fgGIod/tr_f-latin5.map with 100% similarity]
data/keymaps/i386/fgGIod/trf.map [new file with mode: 0644]
data/keymaps/i386/include/applkey.map [new file with mode: 0644]
data/keymaps/i386/include/azerty-layout.inc [moved from keymaps/i386/include/azerty-layout.inc with 100% similarity]
data/keymaps/i386/include/backspace.map [moved from keymaps/i386/include/backspace.map with 100% similarity]
data/keymaps/i386/include/ctrl.map [moved from keymaps/i386/include/ctrl.map with 100% similarity]
data/keymaps/i386/include/euro.map [moved from keymaps/i386/include/euro.map with 100% similarity]
data/keymaps/i386/include/keypad.map [moved from keymaps/i386/include/keypad.map with 100% similarity]
data/keymaps/i386/include/linux-keys-bare.inc [moved from keymaps/i386/include/linux-keys-bare.inc with 100% similarity]
data/keymaps/i386/include/linux-keys-extd.inc [moved from keymaps/i386/include/linux-keys-extd.inc with 100% similarity]
data/keymaps/i386/include/linux-with-alt-and-altgr.inc [moved from keymaps/i386/include/linux-with-alt-and-altgr.inc with 100% similarity]
data/keymaps/i386/include/linux-with-modeshift-altgr.inc [moved from keymaps/i386/include/linux-with-modeshift-altgr.inc with 100% similarity]
data/keymaps/i386/include/linux-with-two-alt-keys.inc [moved from keymaps/i386/include/linux-with-two-alt-keys.inc with 100% similarity]
data/keymaps/i386/include/qwerty-layout.inc [moved from keymaps/i386/include/qwerty-layout.inc with 100% similarity]
data/keymaps/i386/include/qwertz-layout.inc [moved from keymaps/i386/include/qwertz-layout.inc with 100% similarity]
data/keymaps/i386/include/unicode.map [new file with mode: 0644]
data/keymaps/i386/include/windowkeys.map [moved from keymaps/i386/include/windowkeys.map with 100% similarity]
data/keymaps/i386/mk_modmap [moved from keymaps/i386/mk_modmap with 100% similarity]
data/keymaps/i386/qwerty/bg.map [moved from keymaps/i386/qwerty/bg.map with 100% similarity]
data/keymaps/i386/qwerty/br-abnt.map [new file with mode: 0644]
data/keymaps/i386/qwerty/br-abnt2.map [moved from keymaps/i386/qwerty/br-abnt2.map with 80% similarity]
data/keymaps/i386/qwerty/cf.map [moved from keymaps/i386/qwerty/cf.map with 100% similarity]
data/keymaps/i386/qwerty/cz-lat2-prog.map [moved from keymaps/i386/qwerty/cz-lat2-prog.map with 96% similarity]
data/keymaps/i386/qwerty/cz-lat2.map [moved from keymaps/i386/qwerty/cz-lat2.map with 97% similarity]
data/keymaps/i386/qwerty/defkeymap.map [moved from keymaps/i386/qwerty/defkeymap.map with 100% similarity]
data/keymaps/i386/qwerty/defkeymap_V1.0.map [moved from keymaps/i386/qwerty/defkeymap_V1.0.map with 100% similarity]
data/keymaps/i386/qwerty/dk-latin1.map [moved from keymaps/i386/qwerty/dk-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/dk.map [moved from keymaps/i386/qwerty/dk.map with 100% similarity]
data/keymaps/i386/qwerty/emacs.map [moved from keymaps/i386/qwerty/emacs.map with 100% similarity]
data/keymaps/i386/qwerty/emacs2.map [moved from keymaps/i386/qwerty/emacs2.map with 100% similarity]
data/keymaps/i386/qwerty/es-cp850.map [moved from keymaps/i386/qwerty/es-cp850.map with 64% similarity]
data/keymaps/i386/qwerty/es.map [moved from keymaps/i386/qwerty/es.map with 100% similarity]
data/keymaps/i386/qwerty/et-nodeadkeys.map [new file with mode: 0644]
data/keymaps/i386/qwerty/et.map [new file with mode: 0644]
data/keymaps/i386/qwerty/fi-latin1.map [moved from keymaps/i386/qwerty/fi-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/fi.map [moved from keymaps/i386/qwerty/fi.map with 100% similarity]
data/keymaps/i386/qwerty/gr-pc.map [moved from keymaps/i386/qwerty/gr-pc.map with 100% similarity]
data/keymaps/i386/qwerty/gr.map [moved from keymaps/i386/qwerty/gr.map with 100% similarity]
data/keymaps/i386/qwerty/hebrew.map [moved from keymaps/i386/qwerty/hebrew.map with 100% similarity]
data/keymaps/i386/qwerty/hu101.map [moved from keymaps/i386/qwerty/hu101.map with 100% similarity]
data/keymaps/i386/qwerty/hypermap.m4 [moved from keymaps/i386/qwerty/hypermap.m4 with 100% similarity]
data/keymaps/i386/qwerty/is-latin1.map [moved from keymaps/i386/qwerty/is-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/it-ibm.map [moved from keymaps/i386/qwerty/it-ibm.map with 100% similarity]
data/keymaps/i386/qwerty/it.map [moved from keymaps/i386/qwerty/it.map with 100% similarity]
data/keymaps/i386/qwerty/it2.map [moved from keymaps/i386/qwerty/it2.map with 100% similarity]
data/keymaps/i386/qwerty/jp106.map [moved from keymaps/i386/qwerty/jp106.map with 100% similarity]
data/keymaps/i386/qwerty/la-latin1.map [moved from keymaps/i386/qwerty/la-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/lt.baltic.map [new file with mode: 0644]
data/keymaps/i386/qwerty/lt.l4.map [new file with mode: 0644]
data/keymaps/i386/qwerty/lt.map [moved from keymaps/i386/qwerty/lt.map with 87% similarity]
data/keymaps/i386/qwerty/mk.map [moved from keymaps/i386/qwerty/mk.map with 100% similarity]
data/keymaps/i386/qwerty/nl.map [moved from keymaps/i386/qwerty/nl.map with 84% similarity]
data/keymaps/i386/qwerty/nl2.map [new file with mode: 0644]
data/keymaps/i386/qwerty/nl3.map [new file with mode: 0644]
data/keymaps/i386/qwerty/no-latin1.doc [moved from keymaps/i386/qwerty/no-latin1.doc with 100% similarity]
data/keymaps/i386/qwerty/no-latin1.map [moved from keymaps/i386/qwerty/no-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/no.map [moved from keymaps/i386/qwerty/no.map with 100% similarity]
data/keymaps/i386/qwerty/pc110.map [moved from keymaps/i386/qwerty/pc110.map with 100% similarity]
data/keymaps/i386/qwerty/pl.map [moved from keymaps/i386/qwerty/pl.map with 100% similarity]
data/keymaps/i386/qwerty/pl2.map [new file with mode: 0644]
data/keymaps/i386/qwerty/pt-latin1.map [moved from keymaps/i386/qwerty/pt-latin1.map with 98% similarity]
data/keymaps/i386/qwerty/ru-cp1251.map [moved from keymaps/i386/qwerty/ru-cp1251.map with 100% similarity]
data/keymaps/i386/qwerty/ru-ms.map [moved from keymaps/i386/qwerty/ru-ms.map with 100% similarity]
data/keymaps/i386/qwerty/ru-yawerty.map [moved from keymaps/i386/qwerty/ru-yawerty.map with 100% similarity]
data/keymaps/i386/qwerty/ru.map [moved from keymaps/i386/qwerty/ru.map with 100% similarity]
data/keymaps/i386/qwerty/ru1.map [moved from keymaps/i386/qwerty/ru1.map with 100% similarity]
data/keymaps/i386/qwerty/ru2.map [moved from keymaps/i386/qwerty/ru2.map with 100% similarity]
data/keymaps/i386/qwerty/ru3.map [moved from keymaps/i386/qwerty/ru3.map with 100% similarity]
data/keymaps/i386/qwerty/ru4.map [moved from keymaps/i386/qwerty/ru4.map with 100% similarity]
data/keymaps/i386/qwerty/ru_win.map [moved from keymaps/i386/qwerty/ru_win.map with 100% similarity]
data/keymaps/i386/qwerty/se-latin1.map [moved from keymaps/i386/qwerty/se-latin1.map with 92% similarity]
data/keymaps/i386/qwerty/sk-prog-qwerty.map [moved from keymaps/i386/qwerty/sk-prog.map with 90% similarity]
data/keymaps/i386/qwerty/sk-qwerty.map [new file with mode: 0644]
data/keymaps/i386/qwerty/tr_q-latin5.map [moved from keymaps/i386/qwerty/tr_q-latin5.map with 100% similarity]
data/keymaps/i386/qwerty/tralt.map [moved from keymaps/i386/qwerty/tralt.map with 98% similarity]
data/keymaps/i386/qwerty/trq.map [moved from keymaps/i386/qwerty/trq.map with 98% similarity]
data/keymaps/i386/qwerty/ua-utf-ws.map [moved from keymaps/i386/qwerty/ua-utf-ws.map with 99% similarity]
data/keymaps/i386/qwerty/ua-utf.map [moved from keymaps/i386/qwerty/ua-utf.map with 99% similarity]
data/keymaps/i386/qwerty/ua-ws.map [moved from keymaps/i386/qwerty/ua-ws.map with 100% similarity]
data/keymaps/i386/qwerty/ua.map [moved from keymaps/i386/qwerty/ua.map with 100% similarity]
data/keymaps/i386/qwerty/uk.map [moved from keymaps/i386/qwerty/uk.map with 100% similarity]
data/keymaps/i386/qwerty/us-acentos.map [new file with mode: 0644]
data/keymaps/i386/qwerty/us.map [moved from keymaps/i386/qwerty/us.map with 96% similarity]
data/keymaps/i386/qwertz/croat.map [moved from keymaps/i386/qwertz/croat.map with 100% similarity]
data/keymaps/i386/qwertz/cz-us-qwertz.map [moved from keymaps/i386/qwertz/cz-us-qwertz.map with 97% similarity]
data/keymaps/i386/qwertz/de-latin1-nodeadkeys.map [moved from keymaps/i386/qwertz/de-latin1-nodeadkeys.map with 100% similarity]
data/keymaps/i386/qwertz/de-latin1.map [moved from keymaps/i386/qwertz/de-latin1.map with 100% similarity]
data/keymaps/i386/qwertz/de.map [moved from keymaps/i386/qwertz/de.map with 100% similarity]
data/keymaps/i386/qwertz/fr_CH-latin1.map [moved from keymaps/i386/qwertz/fr_CH-latin1.map with 100% similarity]
data/keymaps/i386/qwertz/fr_CH.map [moved from keymaps/i386/qwertz/fr_CH.map with 100% similarity]
data/keymaps/i386/qwertz/hu.map [moved from keymaps/i386/qwertz/hu.map with 100% similarity]
data/keymaps/i386/qwertz/sg-latin1-lk450.map [moved from keymaps/i386/qwertz/sg-latin1-lk450.map with 100% similarity]
data/keymaps/i386/qwertz/sg-latin1.map [moved from keymaps/i386/qwertz/sg-latin1.map with 100% similarity]
data/keymaps/i386/qwertz/sg.map [moved from keymaps/i386/qwertz/sg.map with 100% similarity]
data/keymaps/i386/qwertz/sk-prog-qwertz.map [moved from keymaps/i386/qwertz/sk-qwertz.map with 71% similarity]
data/keymaps/i386/qwertz/sk-qwertz.map [moved from keymaps/i386/qwerty/sk-qwerty.map with 89% similarity]
data/keymaps/i386/qwertz/slovene.map [moved from keymaps/i386/qwertz/slovene.map with 100% similarity]
data/keymaps/include/compose.8859_7 [moved from keymaps/include/compose.8859_7 with 100% similarity]
data/keymaps/include/compose.8859_8 [moved from keymaps/include/compose.8859_8 with 100% similarity]
data/keymaps/include/compose.latin [moved from keymaps/include/compose.latin with 100% similarity]
data/keymaps/include/compose.latin1 [moved from keymaps/include/compose.latin1 with 100% similarity]
data/keymaps/include/compose.latin2 [moved from keymaps/include/compose.latin2 with 100% similarity]
data/keymaps/include/compose.latin3 [moved from keymaps/include/compose.latin3 with 100% similarity]
data/keymaps/include/compose.latin4 [moved from keymaps/include/compose.latin4 with 100% similarity]
data/keymaps/include/vim-compose.latin1 [moved from keymaps/include/vim-compose.latin1 with 100% similarity]
data/keymaps/mac/mac-de-latin1-nodeadkeys.map [moved from keymaps/mac/mac-de-latin1-nodeadkeys.map with 100% similarity]
data/keymaps/mac/mac-de2-ext.map [new file with mode: 0644]
data/keymaps/mac/mac-fr2-ext.map [moved from keymaps/mac/mac-fr2-ext.map with 100% similarity]
data/keymaps/mac/mac-us-ext.map [moved from keymaps/mac/mac-us-ext.map with 100% similarity]
data/keymaps/mac/mac-us-std.map [moved from keymaps/mac/mac-us-std.map with 100% similarity]
data/keymaps/sun/sun-pl-altgraph.map [moved from keymaps/sun/sun-pl-altgraph.map with 100% similarity]
data/keymaps/sun/sun-pl.map [moved from keymaps/sun/sun-pl.map with 100% similarity]
data/keymaps/sun/sunkeymap.map [moved from keymaps/sun/sunkeymap.map with 99% similarity]
data/keymaps/sun/sunt4-es.map [moved from keymaps/sun/sunt4-es.map with 100% similarity]
data/keymaps/sun/sunt4-fi-latin1.map [new file with mode: 0644]
data/keymaps/sun/sunt5-de-latin1.map [moved from keymaps/sun/sunt5-de-latin1.map with 100% similarity]
data/keymaps/sun/sunt5-es.map [moved from keymaps/sun/sunt5-es.map with 100% similarity]
data/keymaps/sun/sunt5-fi-latin1.map [moved from keymaps/sun/sunt5-fi-latin1.map with 100% similarity]
data/keymaps/sun/sunt5-fr-latin1.map [moved from keymaps/sun/sunt5-fr-latin1.map with 100% similarity]
data/keymaps/sun/sunt5-ru.map [moved from keymaps/sun/sunt5-ru.map with 100% similarity]
data/partialfonts/8859-1.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-1.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-1.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-10.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-10.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-10.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-2.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-2.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-2.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-3.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-3.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-3.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-4.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-4.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-4.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-5.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-5.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-5.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-6.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-6.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-6.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-7.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-7.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-7.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-8.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-8.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-8.a0-ff.16 [new file with mode: 0644]
data/partialfonts/8859-9.a0-ff.08 [new file with mode: 0644]
data/partialfonts/8859-9.a0-ff.14 [new file with mode: 0644]
data/partialfonts/8859-9.a0-ff.16 [new file with mode: 0644]
data/partialfonts/ascii.20-7f.08 [new file with mode: 0644]
data/partialfonts/ascii.20-7f.14 [new file with mode: 0644]
data/partialfonts/ascii.20-7f.16 [new file with mode: 0644]
data/partialfonts/cp437.00-1f.08 [new file with mode: 0644]
data/partialfonts/cp437.00-1f.14 [new file with mode: 0644]
data/partialfonts/cp437.00-1f.16 [new file with mode: 0644]
data/partialfonts/none.00-17.08 [new file with mode: 0644]
data/partialfonts/none.00-17.14 [new file with mode: 0644]
data/partialfonts/none.00-17.16 [new file with mode: 0644]
data/unimaps/8859-1.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-10.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-13.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-14.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-15.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-2.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-3.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-4.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-5.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-6.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-7.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-8.a0-ff.uni [new file with mode: 0644]
data/unimaps/8859-9.a0-ff.uni [new file with mode: 0644]
data/unimaps/ECMA144.uni [moved from consoletrans/ECMA144.uni with 100% similarity]
data/unimaps/README [moved from consoletrans/README with 100% similarity]
data/unimaps/armscii8.uni [moved from consoletrans/armscii8.uni with 100% similarity]
data/unimaps/ascii.20-7f.uni [new file with mode: 0644]
data/unimaps/cp437.00-1f.uni [new file with mode: 0644]
data/unimaps/cp437.uni [moved from consoletrans/cp437.uni with 100% similarity]
data/unimaps/cp737.uni [new file with mode: 0644]
data/unimaps/cp737a.uni [new file with mode: 0644]
data/unimaps/cp737b.uni [new file with mode: 0644]
data/unimaps/cp737c.uni [new file with mode: 0644]
data/unimaps/cp850.uni [new file with mode: 0644]
data/unimaps/cp850a.uni [new file with mode: 0644]
data/unimaps/cp850b.uni [moved from consoletrans/cp850b.uni with 100% similarity]
data/unimaps/cp850z.uni [moved from consoletrans/cp850.uni with 100% similarity]
data/unimaps/cp865.uni [new file with mode: 0644]
data/unimaps/cp865a.uni [new file with mode: 0644]
data/unimaps/cp866.uni [new file with mode: 0644]
data/unimaps/cp866a.uni [new file with mode: 0644]
data/unimaps/cyralt.uni [new file with mode: 0644]
data/unimaps/def.uni [moved from consoletrans/def.uni with 100% similarity]
data/unimaps/empty.uni [moved from consoletrans/empty.uni with 100% similarity]
data/unimaps/ethiopic.uni [moved from consoletrans/ethiopic.uni with 100% similarity]
data/unimaps/iso01.uni [moved from consoletrans/iso01.uni with 100% similarity]
data/unimaps/iso02.uni [moved from consoletrans/iso02.uni with 100% similarity]
data/unimaps/iso03.uni [moved from consoletrans/iso03.uni with 100% similarity]
data/unimaps/iso04.uni [moved from consoletrans/iso04.uni with 100% similarity]
data/unimaps/iso05.uni [moved from consoletrans/iso05.uni with 100% similarity]
data/unimaps/iso06.uni [moved from consoletrans/iso06.uni with 100% similarity]
data/unimaps/iso07.uni [moved from consoletrans/iso07.uni with 100% similarity]
data/unimaps/iso08.uni [moved from consoletrans/iso08.uni with 100% similarity]
data/unimaps/iso09.uni [moved from consoletrans/iso09.uni with 100% similarity]
data/unimaps/iso10.uni [moved from consoletrans/iso10.uni with 100% similarity]
data/unimaps/iso15.uni [moved from consoletrans/iso15.uni with 100% similarity]
data/unimaps/koi8r.uni [new file with mode: 0644]
data/unimaps/koi8u.uni [moved from consoletrans/koi8u.uni with 100% similarity]
data/unimaps/lat1.uni [moved from consoletrans/lat1.uni with 100% similarity]
data/unimaps/lat1u.uni [moved from consoletrans/lat1u.uni with 100% similarity]
data/unimaps/lat2.uni [new file with mode: 0644]
data/unimaps/lat2u.uni [moved from consoletrans/lat2u.uni with 100% similarity]
data/unimaps/lat4.uni [moved from consoletrans/lat4.uni with 100% similarity]
data/unimaps/lat4u.uni [moved from consoletrans/lat4u.uni with 100% similarity]
data/unimaps/lat7u.uni [new file with mode: 0644]
data/unimaps/lat9u.uni [new file with mode: 0644]
data/unimaps/lat9v.uni [new file with mode: 0644]
data/unimaps/lat9w.uni [new file with mode: 0644]
data/unimaps/ruscii.uni [moved from consoletrans/ruscii.uni with 100% similarity]
data/unimaps/tcvn.uni [moved from consoletrans/tcvn.uni with 100% similarity]
data/unimaps/viscii.uni [moved from consoletrans/viscii.uni with 100% similarity]
doc/kbd.FAQ-1.html
doc/kbd.FAQ-10.html
doc/kbd.FAQ-11.html
doc/kbd.FAQ-12.html
doc/kbd.FAQ-13.html
doc/kbd.FAQ-14.html
doc/kbd.FAQ-15.html
doc/kbd.FAQ-16.html
doc/kbd.FAQ-17.html
doc/kbd.FAQ-18.html
doc/kbd.FAQ-19.html
doc/kbd.FAQ-2.html
doc/kbd.FAQ-20.html
doc/kbd.FAQ-21.html
doc/kbd.FAQ-22.html
doc/kbd.FAQ-23.html
doc/kbd.FAQ-3.html
doc/kbd.FAQ-4.html
doc/kbd.FAQ-5.html
doc/kbd.FAQ-6.html
doc/kbd.FAQ-7.html
doc/kbd.FAQ-8.html
doc/kbd.FAQ-9.html
doc/kbd.FAQ.html
doc/kbd.FAQ.sgml
doc/kbd.FAQ.txt
doc/utf/utfdemo
keymaps/i386/fgGIod/trf.map [deleted file]
keymaps/i386/qwerty/lt.l4.map [deleted file]
keymaps/i386/qwerty/se.readme [deleted file]
man/Makefile [new file with mode: 0644]
man/man1/chvt.1 [moved from man1/chvt.1 with 100% similarity]
man/man1/deallocvt.1 [moved from man1/deallocvt.1 with 100% similarity]
man/man1/dumpkeys.1.in [moved from man1/dumpkeys.1.in with 100% similarity]
man/man1/kbd_mode.1 [moved from man1/kbd_mode.1 with 100% similarity]
man/man1/loadkeys.1.in [moved from man1/loadkeys.1.in with 100% similarity]
man/man1/psfaddtable.1 [moved from man1/psfaddtable.1 with 67% similarity]
man/man1/psfgettable.1 [moved from man1/psfgettable.1 with 100% similarity]
man/man1/psfstriptable.1 [moved from man1/psfstriptable.1 with 61% similarity]
man/man1/setleds.1 [moved from man1/setleds.1 with 100% similarity]
man/man1/setmetamode.1 [moved from man1/setmetamode.1 with 100% similarity]
man/man1/showkey.1 [moved from man1/showkey.1 with 100% similarity]
man/man5/keymaps.5 [moved from man5/keymaps.5 with 99% similarity]
man/man8/getkeycodes.8 [moved from man8/getkeycodes.8 with 100% similarity]
man/man8/kbdrate.8 [new file with mode: 0644]
man/man8/loadunimap.8 [moved from man8/loadunimap.8 with 100% similarity]
man/man8/mapscrn.8 [moved from man8/mapscrn.8 with 100% similarity]
man/man8/resizecons.8 [moved from man8/resizecons.8 with 100% similarity]
man/man8/setfont.8.in [moved from man8/setfont.8.in with 92% similarity]
man/man8/setkeycodes.8 [moved from man8/setkeycodes.8 with 100% similarity]
openvt/Makefile
openvt/nls.h [new file with mode: 0644]
openvt/openvt.c
po/Makefile
po/POTFILES.in
po/cat-id-tbl.c
po/nl.po
po/ru.po
po/update-potfiles
rc/sample.rc [moved from sample.rc with 100% similarity]
rc/suse-kbd.rc [new file with mode: 0644]
src/CHANGELOG [new file with mode: 0644]
src/Makefile.in
src/README.psftable [deleted file]
src/analyze.l
src/chvt.c
src/clrunimap.c
src/cyrillic.syms.h [deleted file]
src/deallocvt.c
src/dumpkeys.c
src/ethiopic.syms.h
src/fgconsole.c
src/findfile.c
src/findfile.h [new file with mode: 0644]
src/getfd.c
src/getfd.h [new file with mode: 0644]
src/getkeycodes.c
src/getunimap.c
src/kbd_mode.c
src/kbdrate.c [new file with mode: 0644]
src/kdfontop.c
src/kdfontop.h [new file with mode: 0644]
src/koi8.syms.h [new file with mode: 0644]
src/ksyms.c
src/ksyms.h
src/loadkeys.y
src/loadunimap.c
src/loadunimap.h [new file with mode: 0644]
src/mapscrn.c
src/outpsfheader.c [new file with mode: 0644]
src/paths.h
src/psf.h
src/psf.magic
src/psfaddtable.c [deleted file]
src/psffontop.c [new file with mode: 0644]
src/psffontop.h [new file with mode: 0644]
src/psfgettable.c [deleted file]
src/psfstriptable.c [deleted file]
src/psfxtable.c [new file with mode: 0644]
src/resizecons.c
src/screendump.c
src/setfont.c
src/setkeycodes.c
src/setleds.c
src/setmetamode.c
src/setvesablank.c
src/showfont.c
src/showkey.c
src/spawn_console.c
src/spawn_login.c
src/version.h [new file with mode: 0644]
src/wctomb.c
src/xmalloc.c [new file with mode: 0644]
src/xmalloc.h [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index 5223d95..045eb8c 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -105,3 +105,18 @@ o Added -a option to showkey.
 Changes for 0.98 (aeb):
 
 o Added internationalization and Dutch texts (nl.po)
+
+Changes for 1.00 (aeb):
+
+o Introduced psf2 fonts, allowing one to describe a font position
+  with a Unicode sequence (base character with combining accents).
+o Reorganized fonts; added Unicode table to most of them.
+  The consolefonts directory got a subdirectory partialfonts.
+  The Unicode maps got a directory of their own.
+o Moved kbdrate from util-linux to here.
+o Added -s (sort) option to getunimap.c.
+o Setfont now accepts several psf2 fonts, each of arbitrary length.
+  Setfont now accepts certain codepage fonts.
+  Setfont now accepts a text file containing a list of fonts to load.
+o Made distinction between koi8-r and koi8-u.
+o spawn_console and spawn_login invoke openvt, not open.
diff --git a/COPYING b/COPYING
index a8ddbef..ad1325d 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,3 +1,7 @@
+The file
+       kbdrate.c
+is Copyright (C) 1992 Rickard E. Faith.
+
 The files
        dumpkeys.c loadkeys.y analyze.l ksyms.c ksyms.h
        showkey.c keymaps.5 loadkeys.1 dumpkeys.1 showkey.1
@@ -9,21 +13,20 @@ The files
 are Copyright (C) 1993 Eugene G. Crosser.
 
 The files
-       psfaddtable.c psfgettable.c psfstriptable.c
        psfaddtable.1 psfgettable.1 psfstriptable.1
 are Copyright (C) 1994 H. Peter Anvin.
 
 The files
        chvt.c clrunimap.c deallocvt.c fgconsole.c findfile.c
        getfd.c getkeycodes.c getunimap.c kbd_mode.c loadunimap.c
-       resizecons.c screendump.c setkeycodes.c setleds.c
-       setmetamode.c setvesablank.c showfont.c spawn_console.c
+       psffontop.c psfxtable.c resizecons.c screendump.c setkeycodes.c
+       setleds.c setmetamode.c setvesablank.c showfont.c spawn_console.c
        spawn_login.c
        chvt.1 deallocvt.1 kbd_mode.1 setleds.1 setmetamode.1
        getkeycodes.8 loadunimap.8 resizecons.8 setkeycodes.8
        kbd.FAQ.*
 (and changes to earlier mentioned programs)
-are Copyright (C) 1994-1998 Andries E. Brouwer.
+are Copyright (C) 1994-1999 Andries E. Brouwer.
 
 All files in this package may be freely copied under the terms
 of the GNU General Public License (GPL), version 2, or at your
index 5616014..9e66f6b 100644 (file)
@@ -6,77 +6,46 @@ DATADIR = $(DESTDIR)@datadir@
 # also change paths.h.
 OLDKEYMAPDIR = keytables
 KEYMAPDIR = keymaps
+UNIMAPDIR = unimaps
 FONTDIR   = consolefonts
+PARTIALDIR= partialfonts
 TRANSDIR  = consoletrans
 KEYMAPSUBDIRS = include sun amiga atari mac i386/azerty i386/dvorak i386/fgGIod i386/qwerty i386/qwertz i386/include
 
 # Do not use GZIP - it is interpreted by gzip
 MYGZIP = gzip -f -9
 
-DIR    = kbd-0.99
+DIR    = kbd-1.01wip
 
-SUBDIRS = src openvt
-
-include ./make_include
-ifeq "$(ENABLE_NLS)" "yes"
-SUBDIRS := $(SUBDIRS) po
-endif
+SUBDIRS = src openvt po
 
 .EXPORT_ALL_VARIABLES:
 
 all:
        for i in $(SUBDIRS); do (cd $$i && $(MAKE) all); done
-       case `arch` in *86*) \
-               cd src && $(MAKE) i386 ;; \
-       esac
        @echo "Done. You can now do  make install"
 
-# compress data files - do not touch the distribution but copy first
-$(KEYMAPDIR)_Z:
-       cp -r $(KEYMAPDIR) $(KEYMAPDIR)_Z
-       cd $(KEYMAPDIR)_Z && $(MYGZIP) */*.map */*/*.map
-
-$(FONTDIR)_Z:
-       cp -r $(FONTDIR) $(FONTDIR)_Z
-       cd $(FONTDIR)_Z && $(MYGZIP) * && gunzip README*
-# (not yet screenmaps - some other time)
+install:       install-progs install-data install-man
 
-install:       $(KEYMAPDIR)_Z $(FONTDIR)_Z
+install-progs:
        for i in $(SUBDIRS); do (cd $$i && $(MAKE) install); done
-       case `arch` in *86*) \
-               cd src && $(MAKE) install386 ;; \
-       esac
-       for i in man?; do \
-               install -d -m 755 $(MANDIR)/$$i; \
-               install -m 644 $$i/*.[0-9] $(MANDIR)/$$i; \
-       done
-       rm -f $(MANDIR)/man5/keytables.5
-       install -d -m 755 $(DATADIR)
-       install -d -m 755 $(DATADIR)/$(FONTDIR)
-       install -m 644 $(FONTDIR)_Z/* $(DATADIR)/$(FONTDIR)
-       install -d -m 755 $(DATADIR)/$(TRANSDIR)
-       install -m 644 $(TRANSDIR)/* $(DATADIR)/$(TRANSDIR)
-       install -d -m 755 $(DATADIR)/$(KEYMAPDIR)
-       install -d -m 755 $(DATADIR)/$(KEYMAPDIR)/i386
-       for i in $(KEYMAPSUBDIRS); do \
-               install -d -m 755 $(DATADIR)/$(KEYMAPDIR)/$$i ;\
-               install -m 644 $(KEYMAPDIR)_Z/$$i/* $(DATADIR)/$(KEYMAPDIR)/$$i ;\
-       done
-       @echo "Done. You may want to remove old keymaps with"
-       @echo "  rm -rf $(DATADIR)/$(OLDKEYMAPDIR)"
-       @echo "But be careful to preserve your default map if it is"
-       @echo "nonstandard, and to adapt any scripts in rc.local or so."
+
+install-man:
+       cd man && $(MAKE) install
+
+install-data:
+       cd data && $(MAKE) install
 
 tar: reallyclean # analyze.c loadkeys.c
        cd ..;  tar cvfz $(DIR).tar.gz ./$(DIR)
 
 clean:
        for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean); done
-       rm -rf $(KEYMAPDIR)_Z $(FONTDIR)_Z
+       cd man && $(MAKE) clean
+       cd data && $(MAKE) clean
 
 reallyclean distclean spotless: clean
        find . -name "*~" -exec rm {} ";"
        for i in $(SUBDIRS); do (cd $$i && $(MAKE) distclean); done
        rm -f Makefile src/Makefile make_include defines.h
-       rm -f man1/dumpkeys.1 man1/loadkeys.1 man8/setfont.8
 
diff --git a/README b/README
index be9d76d..4986e77 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is kbd-0.98.tar.gz
+This is kbd-1.00.tar.gz
 
 This package contains keytable files and keyboard utilities compatible
 with kernel version 1.1.54 and later. Setfont requires 1.1.92 or later.
@@ -9,8 +9,8 @@ kernel version - compile them yourself.
 To install this package, unpack it somewhere and issue the commands
 "./configure", "make" and "make install".  This copies the utilities
 to /usr/bin, man pages to /usr/man/man{1,4,5,8} and data files to the
-subdirectories keymaps, consolefonts, consoletrans and videomodes of
-the datadirectory chosen during configure, probably /usr/lib/kbd.
+subdirectories keymaps, unimaps, consolefonts, consoletrans and videomodes
+of the datadirectory chosen during configure, probably /usr/lib/kbd.
 
 Older versions of kbd used /usr/lib/kbd/keytables (instead of .../keymaps).
 This directory can now be removed. (Just to be sure, preserve a copy
@@ -19,6 +19,6 @@ Note that it may be used from a script in /etc/rc.d/rc.local or so.)
 
 Report problems with this package to Andries Brouwer <aeb@cwi.nl>.
 
-March 1999
+September 1999
 
 
index 5a29dc8..8af07af 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,7 +1,5 @@
 #!/bin/sh
 #
-# Very simple configure: only DATADIR is variable.
-#
 # Call:
 #  ./configure
 # or
@@ -57,7 +55,7 @@ case "$datadir" in
                ;;
 esac
 
-for i in Makefile src/Makefile man1/dumpkeys.1 man1/loadkeys.1 man8/setfont.8; do
+for i in Makefile src/Makefile man/man1/dumpkeys.1 man/man1/loadkeys.1 man/man8/setfont.8; do
        sed -e "
 s,@datadir@,$datadir,
 " $i.in > $i
@@ -83,7 +81,13 @@ CFLAGS=${CFLAGS-"-O"}
 compile="$CC $CFLAGS $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1"
 static_compile="$CC -static $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1"
 
-rm -f make_include conftest.c conftest
+rm -f conftest.c conftest
+
+#
+# 0. Figure out architecture (one of i386, alpha, sparc, arm, m68k, mips)
+#
+ARCH=`uname -m | sed s/i.86/i386/`
+echo "ARCH=$ARCH" >> make_include
 
 #
 # 1. Do we have <locale.h>?
@@ -102,27 +106,47 @@ fi
 rm -f conftest conftest.c
 
 #
-# 2. Do we have <libintl.h>?
+# 2. For lib/nls.h: do we have <libintl.h> and gettext() ?
 #
-echo "
+echo '
 #include <libintl.h>
-main(){ exit(0); }
-" > conftest.c
+main(int a, char **v){
+  if (a == -1)  /* false */
+        gettext("There is no gettext man page\n");
+  exit(0);
+}
+' > conftest.c
 eval $compile
 if [ $nls = 1 ]; then
        if test -s conftest && ./conftest 2>/dev/null; then
-               echo '#define HAVE_libintl_h' >> defines.h
-               echo "You have <libintl.h>"
-               echo '#define ENABLE_NLS' >> defines.h
-               echo 'ENABLE_NLS=yes' >> make_include
-               echo "Assuming that you want to enable NLS support."
-               echo "(Otherwise, edit defines.h)"
+               echo '#define HAVE_libintl_h' >> defines.h
+               echo "You have <libintl.h> and gettext()"
+               echo '#define ENABLE_NLS' >> defines.h
+               echo "Assuming that you want to enable NLS support."
+               echo "(Otherwise, edit defines.h and delete the line with ENABLE_NLS)"
+               ENABLE_NLS=yes
        else
                echo "You don't have <libintl.h>"
-               echo 'ENABLE_NLS=no' >> make_include
+               ENABLE_NLS=no
        fi
 else
        echo "NLS disabled"
-       echo 'ENABLE_NLS=no' >> make_include
+       ENABLE_NLS=no
 fi
 rm -f conftest conftest.c
+
+
+#
+# 3. Does xgettext exist and take the option --foreign-user?
+#
+if (test $ENABLE_NLS = yes && type xgettext > /dev/null 2>&1); then
+       msg=`xgettext --foreign-user 2>&1 | grep unrecognized`
+       if test -n "$msg"; then
+               echo "FOREIGN = " >> make_include
+       else
+               echo "FOREIGN = --foreign-user" >> make_include
+       fi
+       echo "HAVE_XGETTEXT=yes" >> make_include
+else
+       echo "HAVE_XGETTEXT=no" >> make_include
+fi
diff --git a/consolefonts/737.cp b/consolefonts/737.cp
deleted file mode 100644 (file)
index e435177..0000000
Binary files a/consolefonts/737.cp and /dev/null differ
diff --git a/consolefonts/Cyr_a8x14 b/consolefonts/Cyr_a8x14
deleted file mode 100644 (file)
index 67a7d13..0000000
Binary files a/consolefonts/Cyr_a8x14 and /dev/null differ
diff --git a/consolefonts/Cyr_a8x16 b/consolefonts/Cyr_a8x16
deleted file mode 100644 (file)
index 02ac5c7..0000000
Binary files a/consolefonts/Cyr_a8x16 and /dev/null differ
diff --git a/consolefonts/README b/consolefonts/README
deleted file mode 100644 (file)
index 4c73adf..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-Fragment of the "readme" file in Joel Hoffman's codepage.tar.Z
-==============================================================
-
-File readme.  June 14, 1992.
-
-...
-I have included two sample fonts, one written by myself and the other
-by Dimitri Vulis (dlv@cunyvms1.BITNET).  Both are in the public
-domain.  My font, 972.cp, is a Hebrew font.  The other is 880.cp, a
-Cyrilic font (Russian etc.).
-
-The Hebrew font uses the same encoding scheme as the VT-100's in
-Israel, so any software that works on those will now run on Linux
-(e.g., my hebrew.el package for GNU Emacs).
-
-I'm told 880.cp follows the relevent Russian standard, so I suppose it
-does.
-
-This package, while (c) 1992 by Joel M. Hoffman, can be used as freely
-as any other part of Linux.  
-
-Files:
-       972.cp          Font data for 25-line Hebrew font.
-       880.cp          Font data for Cyrilic font.
-
-===========================================================
-
-Elsewhere I found fonts 880-14.psf, 880-16.psf, 972-14.psf, 972-16.psf,
-but these turn out to come from 880.cp and 972.cp, and since setfont
-now also understands *.cp files I deleted the four abovementioned fonts.
-
-===========================================================
-
-H. Peter Anvin writes:
-...
-I developed the Latin-1 *.psf fonts; Pavel Zaboj did the Latin-2
-ones.  SLS took them directly from Pavel's national package.
-A DOS-hosted PSF font editor is available on eecs.nwu.edu.
-
-Daniel Quinlan sent a new version of lat1-16.psf due to hpa and him.
-
-Primoz Peterlin <peterlin@biofiz.mf.uni-lj.si> corrected lat2-??.psf.
-
-===========================================================
-
-The font default8x16 is from my hardware.
-Bruno Haible contributed def2_8x16.
-
-The fonts iso*.* are due to Kosta Kostis (kosta@blues.sub.de)
-and were obtained from 
-ftp.uni-erlangen.de:pub/doc/ISO/charset/isofont101.tar.gz
-
-The fonts gr.* are due to Sarantos Kapidakis (sarantos@ics.forth.gr).
-He writes: "I am sending you the greek fonts, for 8x14 and 8x16.
-They follow the ELOT928 standard."
-
-Paul Gortmaker (paul@rasty.anu.edu.au) contributed ugly_l
-(which I removed again because now it can be found as 8x16alt
-in his collection of fonts kbd_fonts.tar.gz obtainable from
-sunsite.unc.edu:/pub/Linux/system/Keyboards/ and from
-tsx-11.mit.edu:/pub/linux/sources/system/ ).
-
-Some more fonts can be found in
-sunsite.unc.edu:/pub/Linux/system/Keyboards/fontpack.tgz
-
-Raul D. Miller (rockwell@nova.umd.edu) made aply16.psf.
-Angelos Karageorgiou (angelos@netaxis.com) contributed gr*.psf.
-Ahmed Naas (ahmed@oea.xs4all.nl) contributed 16[1-5].cp.
-Daniel Yacob contributed the Ethiopic fonts (see README.Ethiopic).
-Ricardas Cepas (rch@pub.osf.lt) contributed LatArCyrHeb-*.psf
-and the lat4* fonts.
-==============================================================
-
-Since kbd-0.96, setfont will load compressed fonts.
-When I tried gzip and bzip2, the former was superior:
-uncompressed 543332 bytes, bzip2: 225285 bytes, gzip: 204039 bytes.
-
-aeb@cwi.nl
-
diff --git a/consolefonts/README.Greek b/consolefonts/README.Greek
deleted file mode 100644 (file)
index 9f433ec..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Greek fonts:
-
-iso07.* follows ISO 8859-7.
-
-737.cp - the MS/DOS code page 737.
-
-greek.psf and the files gr8x*.psf are very similar, but replace
-       I-diaeresis, Y-diaeresis by integral (upper and lower half).
-
-Sotiris Tsimbonis <tsimbonis@rosehill-1.irc.gr> contributed
-gr737-8x11, gr737-8x8, gr737-8x8-2
-gr737-9x14, gr737-9x14-2, gr737-9x16, gr737-9x16-2
-gr737-9x16-medieval, gr928-9x14, gr928-9x16
-grcourier, grfixed
-(Too many similar fonts. Please tell me which I should delete.)
diff --git a/consolefonts/README.psf b/consolefonts/README.psf
deleted file mode 100644 (file)
index 320c0f0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-The format of a .PSF file is as follows:
-Byte    Size of field           Contents
-0       Word                    File ID, always 0436h
-2       Byte                    File mode
-
-=== FILE MODE 0:  256 character byte-aligned monofont (as used by EGA/VGA)
-
-3       Byte                    Height of characters in scan lines
-4...    256x[byte 3] bytes      Font data; each character contains one byte
-                                    per scan line, characters continuous
-
-=== FILE MODE 1:  512 character byte-aligned monofont
-
-3       Byte                    Height of characters in scan lines
-4...    512x[byte 3] bytes      Font data; each character contains one byte
-                                    per scan line, characters continuous
diff --git a/consolefonts/alt-8x16 b/consolefonts/alt-8x16
deleted file mode 100644 (file)
index 1ffba06..0000000
Binary files a/consolefonts/alt-8x16 and /dev/null differ
diff --git a/consolefonts/cp850-8x14 b/consolefonts/cp850-8x14
deleted file mode 100644 (file)
index cc9d30e..0000000
Binary files a/consolefonts/cp850-8x14 and /dev/null differ
diff --git a/consolefonts/cp850-8x16 b/consolefonts/cp850-8x16
deleted file mode 100644 (file)
index a671c01..0000000
Binary files a/consolefonts/cp850-8x16 and /dev/null differ
diff --git a/consolefonts/cp850-8x8 b/consolefonts/cp850-8x8
deleted file mode 100644 (file)
index 6d72f9c..0000000
Binary files a/consolefonts/cp850-8x8 and /dev/null differ
diff --git a/consolefonts/cp865-8x14 b/consolefonts/cp865-8x14
deleted file mode 100644 (file)
index cd8fd74..0000000
Binary files a/consolefonts/cp865-8x14 and /dev/null differ
diff --git a/consolefonts/cp865-8x16 b/consolefonts/cp865-8x16
deleted file mode 100644 (file)
index 53e16af..0000000
Binary files a/consolefonts/cp865-8x16 and /dev/null differ
diff --git a/consolefonts/cp865-8x8 b/consolefonts/cp865-8x8
deleted file mode 100644 (file)
index 03281c5..0000000
Binary files a/consolefonts/cp865-8x8 and /dev/null differ
diff --git a/consolefonts/def2_8x16 b/consolefonts/def2_8x16
deleted file mode 100644 (file)
index 7193156..0000000
Binary files a/consolefonts/def2_8x16 and /dev/null differ
diff --git a/consolefonts/default8x16 b/consolefonts/default8x16
deleted file mode 100644 (file)
index 8eea59f..0000000
Binary files a/consolefonts/default8x16 and /dev/null differ
diff --git a/consolefonts/default8x9 b/consolefonts/default8x9
deleted file mode 100644 (file)
index a2a9ee2..0000000
Binary files a/consolefonts/default8x9 and /dev/null differ
diff --git a/consolefonts/gr737-8x11 b/consolefonts/gr737-8x11
deleted file mode 100644 (file)
index 945d487..0000000
Binary files a/consolefonts/gr737-8x11 and /dev/null differ
diff --git a/consolefonts/gr737-8x8 b/consolefonts/gr737-8x8
deleted file mode 100644 (file)
index 1957057..0000000
Binary files a/consolefonts/gr737-8x8 and /dev/null differ
diff --git a/consolefonts/gr737-8x8-2 b/consolefonts/gr737-8x8-2
deleted file mode 100644 (file)
index 391c0b9..0000000
Binary files a/consolefonts/gr737-8x8-2 and /dev/null differ
diff --git a/consolefonts/gr737-9x14 b/consolefonts/gr737-9x14
deleted file mode 100644 (file)
index b094158..0000000
Binary files a/consolefonts/gr737-9x14 and /dev/null differ
diff --git a/consolefonts/gr737-9x14-2 b/consolefonts/gr737-9x14-2
deleted file mode 100644 (file)
index b546030..0000000
Binary files a/consolefonts/gr737-9x14-2 and /dev/null differ
diff --git a/consolefonts/gr737-9x16 b/consolefonts/gr737-9x16
deleted file mode 100644 (file)
index 6801e21..0000000
Binary files a/consolefonts/gr737-9x16 and /dev/null differ
diff --git a/consolefonts/gr737-9x16-2 b/consolefonts/gr737-9x16-2
deleted file mode 100644 (file)
index 19c0270..0000000
Binary files a/consolefonts/gr737-9x16-2 and /dev/null differ
diff --git a/consolefonts/gr737-9x16-medieval b/consolefonts/gr737-9x16-medieval
deleted file mode 100644 (file)
index 309d18d..0000000
Binary files a/consolefonts/gr737-9x16-medieval and /dev/null differ
diff --git a/consolefonts/gr8x14 b/consolefonts/gr8x14
deleted file mode 100644 (file)
index 59c7975..0000000
Binary files a/consolefonts/gr8x14 and /dev/null differ
diff --git a/consolefonts/gr8x16 b/consolefonts/gr8x16
deleted file mode 100644 (file)
index ceee00e..0000000
Binary files a/consolefonts/gr8x16 and /dev/null differ
diff --git a/consolefonts/gr8x6 b/consolefonts/gr8x6
deleted file mode 100644 (file)
index e51dac1..0000000
Binary files a/consolefonts/gr8x6 and /dev/null differ
diff --git a/consolefonts/gr8x7 b/consolefonts/gr8x7
deleted file mode 100644 (file)
index 2ac2731..0000000
Binary files a/consolefonts/gr8x7 and /dev/null differ
diff --git a/consolefonts/gr8x8 b/consolefonts/gr8x8
deleted file mode 100644 (file)
index 2dea239..0000000
Binary files a/consolefonts/gr8x8 and /dev/null differ
diff --git a/consolefonts/grfixed b/consolefonts/grfixed
deleted file mode 100644 (file)
index 9980bda..0000000
Binary files a/consolefonts/grfixed and /dev/null differ
diff --git a/consolefonts/iso01.f08 b/consolefonts/iso01.f08
deleted file mode 100644 (file)
index b3bcf29..0000000
Binary files a/consolefonts/iso01.f08 and /dev/null differ
diff --git a/consolefonts/iso01.f14 b/consolefonts/iso01.f14
deleted file mode 100644 (file)
index 063dcb1..0000000
Binary files a/consolefonts/iso01.f14 and /dev/null differ
diff --git a/consolefonts/iso01.f16 b/consolefonts/iso01.f16
deleted file mode 100644 (file)
index bd3cea9..0000000
Binary files a/consolefonts/iso01.f16 and /dev/null differ
diff --git a/consolefonts/iso01a-8x14 b/consolefonts/iso01a-8x14
deleted file mode 100644 (file)
index 8a8d2f9..0000000
Binary files a/consolefonts/iso01a-8x14 and /dev/null differ
diff --git a/consolefonts/iso01a-8x16 b/consolefonts/iso01a-8x16
deleted file mode 100644 (file)
index 571df31..0000000
Binary files a/consolefonts/iso01a-8x16 and /dev/null differ
diff --git a/consolefonts/iso01a-8x8 b/consolefonts/iso01a-8x8
deleted file mode 100644 (file)
index 62e50a8..0000000
Binary files a/consolefonts/iso01a-8x8 and /dev/null differ
diff --git a/consolefonts/iso02.f08 b/consolefonts/iso02.f08
deleted file mode 100644 (file)
index 2be6058..0000000
Binary files a/consolefonts/iso02.f08 and /dev/null differ
diff --git a/consolefonts/iso02.f14 b/consolefonts/iso02.f14
deleted file mode 100644 (file)
index f341635..0000000
Binary files a/consolefonts/iso02.f14 and /dev/null differ
diff --git a/consolefonts/iso02.f16 b/consolefonts/iso02.f16
deleted file mode 100644 (file)
index 4c70814..0000000
Binary files a/consolefonts/iso02.f16 and /dev/null differ
diff --git a/consolefonts/iso03.f08 b/consolefonts/iso03.f08
deleted file mode 100644 (file)
index 8c18e9a..0000000
Binary files a/consolefonts/iso03.f08 and /dev/null differ
diff --git a/consolefonts/iso03.f14 b/consolefonts/iso03.f14
deleted file mode 100644 (file)
index 3dae111..0000000
Binary files a/consolefonts/iso03.f14 and /dev/null differ
diff --git a/consolefonts/iso03.f16 b/consolefonts/iso03.f16
deleted file mode 100644 (file)
index 7b768ef..0000000
Binary files a/consolefonts/iso03.f16 and /dev/null differ
diff --git a/consolefonts/iso04.f08 b/consolefonts/iso04.f08
deleted file mode 100644 (file)
index 50cd951..0000000
Binary files a/consolefonts/iso04.f08 and /dev/null differ
diff --git a/consolefonts/iso04.f14 b/consolefonts/iso04.f14
deleted file mode 100644 (file)
index 6146a27..0000000
Binary files a/consolefonts/iso04.f14 and /dev/null differ
diff --git a/consolefonts/iso04.f16 b/consolefonts/iso04.f16
deleted file mode 100644 (file)
index bc7f9df..0000000
Binary files a/consolefonts/iso04.f16 and /dev/null differ
diff --git a/consolefonts/iso05.f08 b/consolefonts/iso05.f08
deleted file mode 100644 (file)
index d874984..0000000
Binary files a/consolefonts/iso05.f08 and /dev/null differ
diff --git a/consolefonts/iso05.f14 b/consolefonts/iso05.f14
deleted file mode 100644 (file)
index 3ea59e7..0000000
Binary files a/consolefonts/iso05.f14 and /dev/null differ
diff --git a/consolefonts/iso05.f16 b/consolefonts/iso05.f16
deleted file mode 100644 (file)
index 7930b07..0000000
Binary files a/consolefonts/iso05.f16 and /dev/null differ
diff --git a/consolefonts/iso06.f08 b/consolefonts/iso06.f08
deleted file mode 100644 (file)
index e4265d0..0000000
Binary files a/consolefonts/iso06.f08 and /dev/null differ
diff --git a/consolefonts/iso06.f14 b/consolefonts/iso06.f14
deleted file mode 100644 (file)
index eff17b1..0000000
Binary files a/consolefonts/iso06.f14 and /dev/null differ
diff --git a/consolefonts/iso06.f16 b/consolefonts/iso06.f16
deleted file mode 100644 (file)
index 2b4b428..0000000
Binary files a/consolefonts/iso06.f16 and /dev/null differ
diff --git a/consolefonts/iso07.f08 b/consolefonts/iso07.f08
deleted file mode 100644 (file)
index c922fbf..0000000
Binary files a/consolefonts/iso07.f08 and /dev/null differ
diff --git a/consolefonts/iso07.f14 b/consolefonts/iso07.f14
deleted file mode 100644 (file)
index 5497920..0000000
Binary files a/consolefonts/iso07.f14 and /dev/null differ
diff --git a/consolefonts/iso07.f16 b/consolefonts/iso07.f16
deleted file mode 100644 (file)
index 6e49ddd..0000000
Binary files a/consolefonts/iso07.f16 and /dev/null differ
diff --git a/consolefonts/iso08.f08 b/consolefonts/iso08.f08
deleted file mode 100644 (file)
index 56f17b1..0000000
Binary files a/consolefonts/iso08.f08 and /dev/null differ
diff --git a/consolefonts/iso08.f14 b/consolefonts/iso08.f14
deleted file mode 100644 (file)
index de4225e..0000000
Binary files a/consolefonts/iso08.f14 and /dev/null differ
diff --git a/consolefonts/iso08.f16 b/consolefonts/iso08.f16
deleted file mode 100644 (file)
index 2b987cd..0000000
Binary files a/consolefonts/iso08.f16 and /dev/null differ
diff --git a/consolefonts/iso09.f08 b/consolefonts/iso09.f08
deleted file mode 100644 (file)
index 6ead6dd..0000000
Binary files a/consolefonts/iso09.f08 and /dev/null differ
diff --git a/consolefonts/iso09.f14 b/consolefonts/iso09.f14
deleted file mode 100644 (file)
index 467316c..0000000
Binary files a/consolefonts/iso09.f14 and /dev/null differ
diff --git a/consolefonts/iso09.f16 b/consolefonts/iso09.f16
deleted file mode 100644 (file)
index 162ce75..0000000
Binary files a/consolefonts/iso09.f16 and /dev/null differ
diff --git a/consolefonts/iso10.f08 b/consolefonts/iso10.f08
deleted file mode 100644 (file)
index 2803777..0000000
Binary files a/consolefonts/iso10.f08 and /dev/null differ
diff --git a/consolefonts/iso10.f14 b/consolefonts/iso10.f14
deleted file mode 100644 (file)
index 01b7984..0000000
Binary files a/consolefonts/iso10.f14 and /dev/null differ
diff --git a/consolefonts/iso10.f16 b/consolefonts/iso10.f16
deleted file mode 100644 (file)
index 6ab789e..0000000
Binary files a/consolefonts/iso10.f16 and /dev/null differ
diff --git a/consolefonts/koi8-8x16 b/consolefonts/koi8-8x16
deleted file mode 100644 (file)
index 59bb441..0000000
Binary files a/consolefonts/koi8-8x16 and /dev/null differ
diff --git a/consolefonts/koi8r-8x8 b/consolefonts/koi8r-8x8
deleted file mode 100644 (file)
index ca9ddb8..0000000
Binary files a/consolefonts/koi8r-8x8 and /dev/null differ
diff --git a/consoletrans/koi8.uni b/consoletrans/koi8.uni
deleted file mode 100644 (file)
index 8e79617..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-# This corresponds to KOI-8R except control characters (00-1F, 7F).
-# count=260
-0x000  U+0000  #  
-0x001  U+263a  # ☺ 
-0x002  U+263b  # ☻ 
-0x003  U+2665  # ♥ 
-0x004  U+2666  # ♦ 
-0x005  U+2663  # ♣ 
-0x006  U+2660  # ♠ 
-0x007  U+2022  # • 
-0x008  U+25d8  # ◘ 
-0x009  U+25cb  # ○ 
-0x00a  U+25d9  # ◙ 
-0x00b  U+2642  # ♂ 
-0x00c  U+2640  # ♀ 
-0x00d  U+266a  # ♪ 
-0x00e  U+266b  # ♫ 
-0x00e  U+266c  # ♬ 
-0x00f  U+263c  # ☼ 
-0x010  U+25b6  # ▶ 
-0x010  U+25ba  # ► 
-0x011  U+25c0  # ◀ 
-0x011  U+25c4  # ◄ 
-0x012  U+2195  # ↕ 
-0x013  U+203c  # ‼ 
-0x014  U+00b6  # ¶ 
-0x015  U+00a7  # § 
-0x016  U+25ac  # ▬ 
-0x017  U+21a8  # ↨ 
-0x018  U+2191  # ↑ 
-0x019  U+2193  # ↓ 
-0x01a  U+2192  # → 
-0x01b  U+2190  # ← 
-0x01c  U+221f  # ∟ 
-0x01c  U+2319  # ⌙ 
-0x01d  U+2194  # ↔ 
-0x01e  U+25b2  # ▲ 
-0x01f  U+25bc  # ▼ 
-0x020  U+0020  #   
-0x021  U+0021  # ! 
-0x022  U+0022  # " 
-0x023  U+0023  # # 
-0x024  U+0024  # $ 
-0x025  U+0025  # % 
-0x026  U+0026  # & 
-0x027  U+0027  # ' 
-0x028  U+0028  # ( 
-0x029  U+0029  # ) 
-0x02a  U+002a  # * 
-0x02b  U+002b  # + 
-0x02c  U+002c  # , 
-0x02d  U+002d  # - 
-0x02e  U+002e  # . 
-0x02f  U+002f  # / 
-0x030  U+0030  # 0 
-0x031  U+0031  # 1 
-0x032  U+0032  # 2 
-0x033  U+0033  # 3 
-0x034  U+0034  # 4 
-0x035  U+0035  # 5 
-0x036  U+0036  # 6 
-0x037  U+0037  # 7 
-0x038  U+0038  # 8 
-0x039  U+0039  # 9 
-0x03a  U+003a  # : 
-0x03b  U+003b  # ; 
-0x03c  U+003c  # < 
-0x03d  U+003d  # = 
-0x03e  U+003e  # > 
-0x03f  U+003f  # ? 
-0x040  U+0040  # @ 
-0x041  U+0041  # A 
-0x042  U+0042  # B 
-0x043  U+0043  # C 
-0x044  U+0044  # D 
-0x045  U+0045  # E 
-0x046  U+0046  # F 
-0x047  U+0047  # G 
-0x048  U+0048  # H 
-0x049  U+0049  # I 
-0x04a  U+004a  # J 
-0x04b  U+004b  # K 
-0x04c  U+004c  # L 
-0x04d  U+004d  # M 
-0x04e  U+004e  # N 
-0x04f  U+004f  # O 
-0x050  U+0050  # P 
-0x051  U+0051  # Q 
-0x052  U+0052  # R 
-0x053  U+0053  # S 
-0x054  U+0054  # T 
-0x055  U+0055  # U 
-0x056  U+0056  # V 
-0x057  U+0057  # W 
-0x058  U+0058  # X 
-0x059  U+0059  # Y 
-0x05a  U+005a  # Z 
-0x05b  U+005b  # [ 
-0x05c  U+005c  # \ 
-0x05d  U+005d  # ] 
-0x05e  U+005e  # ^ 
-0x05f  U+005f  # _ 
-0x060  U+0060  # ` 
-0x061  U+0061  # a 
-0x062  U+0062  # b 
-0x063  U+0063  # c 
-0x064  U+0064  # d 
-0x065  U+0065  # e 
-0x066  U+0066  # f 
-0x067  U+0067  # g 
-0x068  U+0068  # h 
-0x069  U+0069  # i 
-0x06a  U+006a  # j 
-0x06b  U+006b  # k 
-0x06c  U+006c  # l 
-0x06d  U+006d  # m 
-0x06e  U+006e  # n 
-0x06f  U+006f  # o 
-0x070  U+0070  # p 
-0x071  U+0071  # q 
-0x072  U+0072  # r 
-0x073  U+0073  # s 
-0x074  U+0074  # t 
-0x075  U+0075  # u 
-0x076  U+0076  # v 
-0x077  U+0077  # w 
-0x078  U+0078  # x 
-0x079  U+0079  # y 
-0x07a  U+007a  # z 
-0x07b  U+007b  # { 
-0x07c  U+007c  # | 
-0x07d  U+007d  # } 
-0x07e  U+007e  # ~ 
-0x07f  U+2302  # ⌂ 
-0x080  U+2500  # ─ 
-0x081  U+2502  # │ 
-0x082  U+250c  # ┌ 
-0x083  U+2510  # ┐ 
-0x084  U+2514  # └ 
-0x085  U+2518  # ┘ 
-0x086  U+251c  # ├ 
-0x087  U+2524  # ┤ 
-0x088  U+252c  # ┬ 
-0x089  U+2534  # ┴ 
-0x08a  U+253c  # ┼ 
-0x08b  U+2580  # ▀ 
-0x08c  U+2584  # ▄ 
-0x08d  U+2588  # █ 
-0x08e  U+258c  # ▌ 
-0x08f  U+2590  # ▐ 
-0x090  U+2591  # ░ 
-0x091  U+2592  # ▒ 
-0x092  U+2593  # ▓ 
-0x093  U+2320  # ⌠ 
-0x094  U+25a0  # ■ 
-0x095  U+2219  # ∙ 
-0x096  U+221a  # √ 
-0x097  U+2248  # ≈ 
-0x098  U+2264  # ≤ 
-0x099  U+2265  # ≥ 
-0x09a  U+00a0  #   
-0x09b  U+2321  # ⌡ 
-0x09c  U+00b0  # ° 
-0x09d  U+00b2  # ² 
-0x09e  U+00b7  # · 
-0x09f  U+00f7  # ÷ 
-0x0a0  U+2550  # ═ 
-0x0a1  U+2551  # ║ 
-0x0a2  U+2552  # ╒ 
-0x0a3  U+0451  # ё 
-0x0a4  U+2553  # ╓ 
-0x0a5  U+2554  # ╔ 
-0x0a6  U+2555  # ╕ 
-0x0a7  U+2556  # ╖ 
-0x0a8  U+2557  # ╗ 
-0x0a9  U+2558  # ╘ 
-0x0aa  U+2559  # ╙ 
-0x0ab  U+255a  # ╚ 
-0x0ac  U+255b  # ╛ 
-0x0ad  U+255c  # ╜ 
-0x0ae  U+255d  # ╝ 
-0x0af  U+255e  # ╞ 
-0x0b0  U+255f  # ╟ 
-0x0b1  U+2560  # ╠ 
-0x0b2  U+2561  # ╡ 
-0x0b3  U+0401  # Ё 
-0x0b4  U+2562  # ╢ 
-0x0b5  U+2563  # ╣ 
-0x0b6  U+2564  # ╤ 
-0x0b7  U+2565  # ╥ 
-0x0b8  U+2566  # ╦ 
-0x0b9  U+2567  # ╧ 
-0x0ba  U+2568  # ╨ 
-0x0bb  U+2569  # ╩ 
-0x0bc  U+256a  # ╪ 
-0x0bd  U+256b  # ╫ 
-0x0be  U+256c  # ╬ 
-0x0bf  U+00a9  # © 
-0x0c0  U+044e  # ю 
-0x0c1  U+0430  # а 
-0x0c2  U+0431  # б 
-0x0c3  U+0446  # ц 
-0x0c4  U+0434  # д 
-0x0c5  U+0435  # е 
-0x0c6  U+0444  # ф 
-0x0c7  U+0433  # г 
-0x0c8  U+0445  # х 
-0x0c9  U+0438  # и 
-0x0ca  U+0439  # й 
-0x0cb  U+043a  # к 
-0x0cc  U+043b  # л 
-0x0cd  U+043c  # м 
-0x0ce  U+043d  # н 
-0x0cf  U+043e  # о 
-0x0d0  U+043f  # п 
-0x0d1  U+044f  # я 
-0x0d2  U+0440  # р 
-0x0d3  U+0441  # с 
-0x0d4  U+0442  # т 
-0x0d5  U+0443  # у 
-0x0d6  U+0436  # ж 
-0x0d7  U+0432  # в 
-0x0d8  U+044c  # ь 
-0x0d9  U+044b  # ы 
-0x0da  U+0437  # з 
-0x0db  U+0448  # ш 
-0x0dc  U+044d  # э 
-0x0dd  U+0449  # щ 
-0x0de  U+0447  # ч 
-0x0df  U+044a  # ъ 
-0x0e0  U+042e  # Ю 
-0x0e1  U+0410  # А 
-0x0e2  U+0411  # Б 
-0x0e3  U+0426  # Ц 
-0x0e4  U+0414  # Д 
-0x0e5  U+0415  # Е 
-0x0e6  U+0424  # Ф 
-0x0e7  U+0413  # Г 
-0x0e8  U+0425  # Х 
-0x0e9  U+0418  # И 
-0x0ea  U+0419  # Й 
-0x0eb  U+041a  # К 
-0x0ec  U+041b  # Л 
-0x0ed  U+041c  # М 
-0x0ee  U+041d  # Н 
-0x0ef  U+041e  # О 
-0x0f0  U+041f  # П 
-0x0f1  U+042f  # Я 
-0x0f2  U+0420  # Р 
-0x0f3  U+0421  # С 
-0x0f4  U+0422  # Т 
-0x0f5  U+0423  # У 
-0x0f6  U+0416  # Ж 
-0x0f7  U+0412  # В 
-0x0f8  U+042c  # Ь 
-0x0f9  U+042b  # Ы 
-0x0fa  U+0417  # З 
-0x0fb  U+0428  # Ш 
-0x0fc  U+042d  # Э 
-0x0fd  U+0429  # Щ 
-0x0fe  U+0427  # Ч 
-0x0ff  U+042a  # Ъ 
index d77f16c..0f6a43d 100644 (file)
@@ -4,7 +4,7 @@
  * Compiles under Linux & DOS (using BC++ 3.1).
  *
  * Compile: gcc -o cpi cpi.c
- * Call: codepage file.cpi [-a|-l|nnn]
+ * Call: codepage [-a|-l|nnn] file.cpi
  *
  * Author: Ahmed M. Naas (ahmed@oea.xs4all.nl)
  * Many changes: aeb@cwi.nl  [changed until it would handle all
@@ -76,18 +76,12 @@ extern char *optarg;
 
 unsigned short codepage;
 
-int main (int argc, char *argv[])
-{
+int main (int argc, char *argv[]) {
        if (argc < 2)
                usage();
 
-       if ((in = fopen(argv[1], "r")) == NULL) {
-               printf("\nUnable to open file %s.\n", argv[1]);
-               exit(0);
-       }
-
        opta = optc = optl = optL = optx = 0;
-       optind = 2;
+
        if (argc == 2)
                optl = 1;
        else
@@ -113,6 +107,16 @@ int main (int argc, char *argv[])
            }
            break;
         }
+
+       if (optind < argc) {
+           if ((in = fopen(argv[optind], "r")) == NULL) {
+               printf("\nUnable to open file %s.\n", argv[optind]);
+               exit(0);
+           }
+           optind++;
+        } else
+           usage();
+       
        if (optind != argc) {
            if (optind != argc-1 || opta)
              usage();
diff --git a/data/Makefile b/data/Makefile
new file mode 100644 (file)
index 0000000..589143f
--- /dev/null
@@ -0,0 +1,39 @@
+install: $(KEYMAPDIR)_Z $(FONTDIR)_Z
+       install -d -m 755 $(DATADIR)
+       install -d -m 755 $(DATADIR)/$(FONTDIR)
+       install -m 644 $(FONTDIR)_Z/* $(DATADIR)/$(FONTDIR)
+       install -d -m 755 $(DATADIR)/$(FONTDIR)/$(PARTIALDIR)
+       install -m 644 $(PARTIALDIR)_Z/* $(DATADIR)/$(FONTDIR)/$(PARTIALDIR)
+       install -d -m 755 $(DATADIR)/$(TRANSDIR)
+       install -m 644 $(TRANSDIR)/* $(DATADIR)/$(TRANSDIR)
+       install -d -m 755 $(DATADIR)/$(UNIMAPDIR)
+       install -m 644 $(TRANSDIR)/* $(DATADIR)/$(UNIMAPDIR)
+       install -d -m 755 $(DATADIR)/$(KEYMAPDIR)
+       install -d -m 755 $(DATADIR)/$(KEYMAPDIR)/i386
+       for i in $(KEYMAPSUBDIRS); do \
+               install -d -m 755 $(DATADIR)/$(KEYMAPDIR)/$$i ;\
+               install -m 644 $(KEYMAPDIR)_Z/$$i/* $(DATADIR)/$(KEYMAPDIR)/$$i ;\
+       done
+       rm -f $(DATADIR)/$(KEYMAPDIR)/ppc; ln -s mac $(DATADIR)/$(KEYMAPDIR)/ppc
+       @if [ -f $(DATADIR)/$(OLDKEYMAPDIR) ]; then \
+         echo "Done. You may want to remove old keymaps with" ; \
+         echo "  rm -rf $(DATADIR)/$(OLDKEYMAPDIR)" ; \
+         echo "But be careful to preserve your default map if it is" ; \
+         echo "nonstandard, and to adapt any scripts in rc.local or so." ; \
+       fi
+
+
+# compress data files - do not touch the distribution but copy first
+$(KEYMAPDIR)_Z:
+       cp -r $(KEYMAPDIR) $(KEYMAPDIR)_Z
+       cd $(KEYMAPDIR)_Z && $(MYGZIP) */*.map */*/*.map
+
+$(FONTDIR)_Z:
+       cp -r $(FONTDIR) $(FONTDIR)_Z
+       cp -r $(PARTIALDIR) $(PARTIALDIR)_Z
+       cd $(FONTDIR)_Z && $(MYGZIP) * && gunzip README*
+       cd $(PARTIALDIR)_Z && $(MYGZIP) *
+# (not yet screenmaps - some other time)
+
+clean:
+       rm -rf $(KEYMAPDIR)_Z $(FONTDIR)_Z $(PARTIALDIR)_Z
similarity index 100%
rename from consolefonts/161.cp
rename to data/consolefonts/161.cp
similarity index 100%
rename from consolefonts/162.cp
rename to data/consolefonts/162.cp
similarity index 100%
rename from consolefonts/163.cp
rename to data/consolefonts/163.cp
similarity index 100%
rename from consolefonts/164.cp
rename to data/consolefonts/164.cp
similarity index 100%
rename from consolefonts/165.cp
rename to data/consolefonts/165.cp
diff --git a/data/consolefonts/737.cp b/data/consolefonts/737.cp
new file mode 100644 (file)
index 0000000..90c78be
Binary files /dev/null and b/data/consolefonts/737.cp differ
similarity index 100%
rename from consolefonts/880.cp
rename to data/consolefonts/880.cp
diff --git a/data/consolefonts/928.cp b/data/consolefonts/928.cp
new file mode 100644 (file)
index 0000000..625dad8
Binary files /dev/null and b/data/consolefonts/928.cp differ
similarity index 100%
rename from consolefonts/972.cp
rename to data/consolefonts/972.cp
diff --git a/data/consolefonts/Cyr_a8x14.psfu b/data/consolefonts/Cyr_a8x14.psfu
new file mode 100644 (file)
index 0000000..c18c82e
Binary files /dev/null and b/data/consolefonts/Cyr_a8x14.psfu differ
diff --git a/data/consolefonts/Cyr_a8x16.psfu b/data/consolefonts/Cyr_a8x16.psfu
new file mode 100644 (file)
index 0000000..41cec9c
Binary files /dev/null and b/data/consolefonts/Cyr_a8x16.psfu differ
similarity index 62%
rename from consolefonts/ruscii_8x8.psf
rename to data/consolefonts/Cyr_a8x8.psfu
index 177e6ef..a73ad5e 100644 (file)
Binary files a/consolefonts/ruscii_8x8.psf and b/data/consolefonts/Cyr_a8x8.psfu differ
similarity index 100%
rename from consolefonts/ERRORS
rename to data/consolefonts/ERRORS
similarity index 79%
rename from consolefonts/README.Cyrillic
rename to data/consolefonts/README.Cyrillic
index 4f526af..0307932 100644 (file)
@@ -19,13 +19,16 @@ Cyr_a8xN follows cp866 in the positions 0200-0257 and
 
 Type B. Koi8
 
-[Reference: RFC 1489]
+[Reference: RFC 1489 for koi8-r, RFC 2319 for koi8-u]
 
-The koi8* fonts are the koi8 equivalents of the alt*
-fonts above; in particular, koi8c-8x16 also has
-additional slavic characters.
+The koi8-r and koi8-u character sets are almost identical.
+For the 8 letters in koi8-u, not in koi8-r, see src/koi8.syms.h.
 
-koi8-14.psf follows koi8 in the positions 0300-0377
+The koi8* fonts here are the koi8 equivalents of the alt*
+fonts above; in particular, koi8c-8x16 includes koi8u but
+has additional slavic characters.
+
+koi8-14.psf follows koi8r in the positions 0300-0377
 (and has some iso-8859-5 symbols in 0240-0277,
 and yat, fita, izhitsa in 0200-0202, 0220-0222).
 In particular, it does not have the io and IO at
diff --git a/data/consolefonts/README.Greek b/data/consolefonts/README.Greek
new file mode 100644 (file)
index 0000000..b905c45
--- /dev/null
@@ -0,0 +1,11 @@
+Greek fonts found in kbd-1.00.tar.gz:
+
+iso07.* follows ISO 8859-7.
+
+gr737* somewhat follow cp737.
+(gr737a* is cp737 with cp437 control chars;
+ gr737b* is gr737a with end replaced by cp865;
+ gr737c* is gr737a with I-diaeresis, Y-diaeresis replaced by integral)
+
+Some of these are derived from fonts contributed by
+Sotiris Tsimbonis <tsimbonis@rosehill-1.irc.gr>.
diff --git a/data/consolefonts/README.lat7 b/data/consolefonts/README.lat7
new file mode 100644 (file)
index 0000000..23accbe
--- /dev/null
@@ -0,0 +1,35 @@
+
+GERMAN -- ENGLISH BELOW
+
+Im iso07-Zeichensatz sind die Zeichen 0x80-0x9f, 0xa0, 0xa4,
+0xa5, 0xaa, 0xae, 0xd2 und 0xff unbelegt.
+Die SuSE-Erweiterung lat7u.psfu belegt diese Stellen mit Grafikzeichen, damit 
+YaST aussieht wie gewohnt. Die integrierte Unicodebelegungstabelle wurde
+ entsprechend erweitert.
+Belegungsplan:
+0x80-0x9f      wie in lat1u-16.psf 0xc0-0xdf
+0xa0           wie in lat1u-16.psf 0x08
+0xa4           wie in lat1u-16.psf 0x09
+0xa5           wie in lat1u-16.psf 0x0a
+0xaa           wie in lat1u-16.psf 0x0b
+0xae           wie in lat1u-16.psf 0x0c
+0xff           wie in lat1u-16.psf 0x0e
+0xd2           wie in lat1u-16.psf 0xca (Unicode U+2500)
+
+ENGLISH
+The iso07-codepage has some unused characters. ( 0x80-0x9f, 0xa0, 0xa4,
+0xa5, 0xaa, 0xae, 0xd2 and 0xff ) The SuSE-extension lat7u.psfu uses 
+this formerly unused places for graphical symbols to make yast look 
+similar to the way it looks when used with lat1-fonts.
+
+What we did:
+0x80-0x9f       as in lat1u-16.psf 0xc0-0xdf
+0xa0            as in lat1u-16.psf 0x08
+0xa4            as in lat1u-16.psf 0x09
+0xa5            as in lat1u-16.psf 0x0a
+0xaa            as in lat1u-16.psf 0x0b
+0xae            as in lat1u-16.psf 0x0c
+0xff            as in lat1u-16.psf 0x0e
+0xd2            as in lat1u-16.psf 0xca (U+2500)  
+
+Martin Lohner, ml@suse.de
diff --git a/data/consolefonts/README.lat9 b/data/consolefonts/README.lat9
new file mode 100644 (file)
index 0000000..280377a
--- /dev/null
@@ -0,0 +1,65 @@
+From: Guylhem AZNAR <guylhem@oeil.qc.ca>, GPL
+
+Basically, lat is psf, latu is psfu (currency is replaced by EURO), latv
+is pure unicode (currency will not be replaced by EURO symbol, only
+unicode EURO are replaced) and latw replaces unicode EURO and currency
+by EURO.
+
+Here's a chart, please tell me if it isn't clear enough (I wanted font
+support to become exhaustive since many people asked for special
+replacement of currency or instead non replacement since they already
+use UNICODE, etcetera......)
+
+      |  Iso encoding | Unicode map |     Single    |      Cross
+      |  within font  |  included   | compatibility | compatibility
+-------------------------------------------------------------------
+lat9  |      y        |      n      |       n       |   lat1 + lat9
+-------------------------------------------------------------------
+lat9u |      n        |      y      |       n       |   lat1 + lat9
+-------------------------------------------------------------------
+lat9v |      y        |      y      |   unicode     |       n  
+-------------------------------------------------------------------
+lat9w |      y        |      y      |       n       |   lat1 + lat9
+      |               |             |               |    + unicode
+-------------------------------------------------------------------
+
+                * lat9 fonts do not include any unicode translation map,
+therefore each currency sign will look like euro, what could cause
+compatibility problems for files coming from windows computers (cp1252 or
+latin1 are "incompatible" with latin9) but the huge advantage is it works
+right now with linux.
+
+                * lat9u fonts are encoded in a non standard sequence (but
+identical to latXu fonts from kbd) compared to the latter, therefore it
+brings the same problems with cp1252 and latin1 but the unicode translation
+map allows nice chars. for semi graphical applications like Yast, mc or
+other ncurses or dialog based programs.
+
+                * lat9v encoded in iso official sequence just like lat9 but
+with a full fledged unicode translation map, so no currency sign will be
+replaced by euro
+This avoids export problems if you use pure unicode and a unicode keymap :
+each latin9 char. is replaced by the adequate unicode char. and then
+displayed what is not only technically elegant but also useless with
+"standard" linux console. Very few systems are unicode ready !
+
+Therefore only use lat9, lat9u or lat9v fonts if you know what you are
+doing, else you can go with lat9w, the best compromise : you can
+be latin9 compatible immediately.
+There is no obligation of unicode or whatever, semi graphical chars.  are
+not messed up and if you feel like trying unicode, latin9 chars are
+displayed correctly (only the 0.3% latin9 incompatible chars. from latin1
+lack)
+
+You do not need to understand anything to use euro in everyday life, and if
+you still hesitate, trust my choice : lat9w.
+
+In order to use lat9-16.psf (or another lat9 .psf), you must supply a
+unicode map :
+
+               loadunimap lat9.uni
+               setfont lat9-16.psf
+
+To use lat9w-16.psf (or another lat9u, lat9v or lat9w) :
+
+                setfont lat9w-16.psf
diff --git a/data/consolefonts/cp850-8x14.psfu b/data/consolefonts/cp850-8x14.psfu
new file mode 100644 (file)
index 0000000..bb949b0
Binary files /dev/null and b/data/consolefonts/cp850-8x14.psfu differ
diff --git a/data/consolefonts/cp850-8x16.psfu b/data/consolefonts/cp850-8x16.psfu
new file mode 100644 (file)
index 0000000..0e74714
Binary files /dev/null and b/data/consolefonts/cp850-8x16.psfu differ
diff --git a/data/consolefonts/cp850-8x8.psfu b/data/consolefonts/cp850-8x8.psfu
new file mode 100644 (file)
index 0000000..49f5972
Binary files /dev/null and b/data/consolefonts/cp850-8x8.psfu differ
diff --git a/data/consolefonts/cp865-8x14.psfu b/data/consolefonts/cp865-8x14.psfu
new file mode 100644 (file)
index 0000000..1605994
Binary files /dev/null and b/data/consolefonts/cp865-8x14.psfu differ
diff --git a/data/consolefonts/cp865-8x16.psfu b/data/consolefonts/cp865-8x16.psfu
new file mode 100644 (file)
index 0000000..73b70a9
Binary files /dev/null and b/data/consolefonts/cp865-8x16.psfu differ
diff --git a/data/consolefonts/cp865-8x8.psfu b/data/consolefonts/cp865-8x8.psfu
new file mode 100644 (file)
index 0000000..c2af293
Binary files /dev/null and b/data/consolefonts/cp865-8x8.psfu differ
diff --git a/data/consolefonts/cp866-8x14.psf b/data/consolefonts/cp866-8x14.psf
new file mode 100644 (file)
index 0000000..f2cedce
Binary files /dev/null and b/data/consolefonts/cp866-8x14.psf differ
diff --git a/data/consolefonts/cp866-8x16.psf b/data/consolefonts/cp866-8x16.psf
new file mode 100644 (file)
index 0000000..ed8d573
Binary files /dev/null and b/data/consolefonts/cp866-8x16.psf differ
similarity index 77%
rename from consolefonts/Cyr_a8x8
rename to data/consolefonts/cp866-8x8.psf
index c739417..095a1b0 100644 (file)
Binary files a/consolefonts/Cyr_a8x8 and b/data/consolefonts/cp866-8x8.psf differ
diff --git a/data/consolefonts/default8x16.psfu b/data/consolefonts/default8x16.psfu
new file mode 100644 (file)
index 0000000..2d8df51
Binary files /dev/null and b/data/consolefonts/default8x16.psfu differ
diff --git a/data/consolefonts/default8x9.psfu b/data/consolefonts/default8x9.psfu
new file mode 100644 (file)
index 0000000..a383fa2
Binary files /dev/null and b/data/consolefonts/default8x9.psfu differ
similarity index 100%
rename from consolefonts/gr.f14
rename to data/consolefonts/gr.f14
similarity index 100%
rename from consolefonts/gr.f16
rename to data/consolefonts/gr.f16
diff --git a/data/consolefonts/gr737a-8x8.psfu b/data/consolefonts/gr737a-8x8.psfu
new file mode 100644 (file)
index 0000000..e218d96
Binary files /dev/null and b/data/consolefonts/gr737a-8x8.psfu differ
diff --git a/data/consolefonts/gr737a-9x14.psfu b/data/consolefonts/gr737a-9x14.psfu
new file mode 100644 (file)
index 0000000..4f20001
Binary files /dev/null and b/data/consolefonts/gr737a-9x14.psfu differ
diff --git a/data/consolefonts/gr737a-9x16.psfu b/data/consolefonts/gr737a-9x16.psfu
new file mode 100644 (file)
index 0000000..a1ac27d
Binary files /dev/null and b/data/consolefonts/gr737a-9x16.psfu differ
diff --git a/data/consolefonts/gr737b-8x11.psfu b/data/consolefonts/gr737b-8x11.psfu
new file mode 100644 (file)
index 0000000..17c7c93
Binary files /dev/null and b/data/consolefonts/gr737b-8x11.psfu differ
diff --git a/data/consolefonts/gr737b-9x16-medieval.psfu b/data/consolefonts/gr737b-9x16-medieval.psfu
new file mode 100644 (file)
index 0000000..49c62bd
Binary files /dev/null and b/data/consolefonts/gr737b-9x16-medieval.psfu differ
diff --git a/data/consolefonts/gr737c-8x14.psfu b/data/consolefonts/gr737c-8x14.psfu
new file mode 100644 (file)
index 0000000..2cd1488
Binary files /dev/null and b/data/consolefonts/gr737c-8x14.psfu differ
diff --git a/data/consolefonts/gr737c-8x16.psfu b/data/consolefonts/gr737c-8x16.psfu
new file mode 100644 (file)
index 0000000..ed15679
Binary files /dev/null and b/data/consolefonts/gr737c-8x16.psfu differ
diff --git a/data/consolefonts/gr737c-8x6.psfu b/data/consolefonts/gr737c-8x6.psfu
new file mode 100644 (file)
index 0000000..1c91316
Binary files /dev/null and b/data/consolefonts/gr737c-8x6.psfu differ
diff --git a/data/consolefonts/gr737c-8x7.psfu b/data/consolefonts/gr737c-8x7.psfu
new file mode 100644 (file)
index 0000000..2c3b4f2
Binary files /dev/null and b/data/consolefonts/gr737c-8x7.psfu differ
diff --git a/data/consolefonts/gr737c-8x8.psfu b/data/consolefonts/gr737c-8x8.psfu
new file mode 100644 (file)
index 0000000..e62c343
Binary files /dev/null and b/data/consolefonts/gr737c-8x8.psfu differ
diff --git a/data/consolefonts/gr928thin.fnt b/data/consolefonts/gr928thin.fnt
new file mode 100644 (file)
index 0000000..2c79520
Binary files /dev/null and b/data/consolefonts/gr928thin.fnt differ
diff --git a/data/consolefonts/grfixed.16 b/data/consolefonts/grfixed.16
new file mode 100644 (file)
index 0000000..524632a
Binary files /dev/null and b/data/consolefonts/grfixed.16 differ
diff --git a/data/consolefonts/iso01.08 b/data/consolefonts/iso01.08
new file mode 100644 (file)
index 0000000..83f092f
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-1.a0-ff.08
diff --git a/data/consolefonts/iso01.14 b/data/consolefonts/iso01.14
new file mode 100644 (file)
index 0000000..9f8fdec
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-1.a0-ff.14
diff --git a/data/consolefonts/iso01.16 b/data/consolefonts/iso01.16
new file mode 100644 (file)
index 0000000..90998e7
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-1.a0-ff.16
diff --git a/data/consolefonts/iso02.08 b/data/consolefonts/iso02.08
new file mode 100644 (file)
index 0000000..1cc94fa
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-2.a0-ff.08
diff --git a/data/consolefonts/iso02.14 b/data/consolefonts/iso02.14
new file mode 100644 (file)
index 0000000..a23f3ae
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-2.a0-ff.14
diff --git a/data/consolefonts/iso02.16 b/data/consolefonts/iso02.16
new file mode 100644 (file)
index 0000000..2d858da
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-2.a0-ff.16
diff --git a/data/consolefonts/iso03.08 b/data/consolefonts/iso03.08
new file mode 100644 (file)
index 0000000..de7ccc5
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-3.a0-ff.08
diff --git a/data/consolefonts/iso03.14 b/data/consolefonts/iso03.14
new file mode 100644 (file)
index 0000000..f8eb90d
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-3.a0-ff.14
diff --git a/data/consolefonts/iso03.16 b/data/consolefonts/iso03.16
new file mode 100644 (file)
index 0000000..0dd8457
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-3.a0-ff.16
diff --git a/data/consolefonts/iso04.08 b/data/consolefonts/iso04.08
new file mode 100644 (file)
index 0000000..6de2b3a
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-4.a0-ff.08
diff --git a/data/consolefonts/iso04.14 b/data/consolefonts/iso04.14
new file mode 100644 (file)
index 0000000..0231d69
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-4.a0-ff.14
diff --git a/data/consolefonts/iso04.16 b/data/consolefonts/iso04.16
new file mode 100644 (file)
index 0000000..983703a
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-4.a0-ff.16
diff --git a/data/consolefonts/iso05.08 b/data/consolefonts/iso05.08
new file mode 100644 (file)
index 0000000..7073681
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-5.a0-ff.08
diff --git a/data/consolefonts/iso05.14 b/data/consolefonts/iso05.14
new file mode 100644 (file)
index 0000000..dc6294a
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-5.a0-ff.14
diff --git a/data/consolefonts/iso05.16 b/data/consolefonts/iso05.16
new file mode 100644 (file)
index 0000000..ac4f7c2
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-5.a0-ff.16
diff --git a/data/consolefonts/iso06.08 b/data/consolefonts/iso06.08
new file mode 100644 (file)
index 0000000..0959823
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-6.a0-ff.08
diff --git a/data/consolefonts/iso06.14 b/data/consolefonts/iso06.14
new file mode 100644 (file)
index 0000000..6911174
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-6.a0-ff.14
diff --git a/data/consolefonts/iso06.16 b/data/consolefonts/iso06.16
new file mode 100644 (file)
index 0000000..b61299a
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-6.a0-ff.16
diff --git a/data/consolefonts/iso07.08 b/data/consolefonts/iso07.08
new file mode 100644 (file)
index 0000000..f44360f
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-7.a0-ff.08
diff --git a/data/consolefonts/iso07.14 b/data/consolefonts/iso07.14
new file mode 100644 (file)
index 0000000..7f1b3f2
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-7.a0-ff.14
diff --git a/data/consolefonts/iso07.16 b/data/consolefonts/iso07.16
new file mode 100644 (file)
index 0000000..20f4e6c
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-7.a0-ff.16
similarity index 69%
rename from consolefonts/grcourier
rename to data/consolefonts/iso07courier.16.psfu
index f59bed3..163482b 100644 (file)
Binary files a/consolefonts/grcourier and b/data/consolefonts/iso07courier.16.psfu differ
diff --git a/data/consolefonts/iso08.08 b/data/consolefonts/iso08.08
new file mode 100644 (file)
index 0000000..0fe0dc3
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-8.a0-ff.08
diff --git a/data/consolefonts/iso08.14 b/data/consolefonts/iso08.14
new file mode 100644 (file)
index 0000000..c946c2a
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-8.a0-ff.14
diff --git a/data/consolefonts/iso08.16 b/data/consolefonts/iso08.16
new file mode 100644 (file)
index 0000000..1c9cffa
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-8.a0-ff.16
diff --git a/data/consolefonts/iso09.08 b/data/consolefonts/iso09.08
new file mode 100644 (file)
index 0000000..e801dd5
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-9.a0-ff.08
diff --git a/data/consolefonts/iso09.14 b/data/consolefonts/iso09.14
new file mode 100644 (file)
index 0000000..59c596d
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-9.a0-ff.14
diff --git a/data/consolefonts/iso09.16 b/data/consolefonts/iso09.16
new file mode 100644 (file)
index 0000000..84f4017
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-9.a0-ff.16
diff --git a/data/consolefonts/iso10.08 b/data/consolefonts/iso10.08
new file mode 100644 (file)
index 0000000..8405afe
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.08
+ascii.20-7f.08
+none.00-17.08
+8859-10.a0-ff.08
diff --git a/data/consolefonts/iso10.14 b/data/consolefonts/iso10.14
new file mode 100644 (file)
index 0000000..a6c7257
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.14
+ascii.20-7f.14
+none.00-17.14
+8859-10.a0-ff.14
diff --git a/data/consolefonts/iso10.16 b/data/consolefonts/iso10.16
new file mode 100644 (file)
index 0000000..f8a4727
--- /dev/null
@@ -0,0 +1,5 @@
+# combine partial fonts
+none.00-17.16
+ascii.20-7f.16
+none.00-17.16
+8859-10.a0-ff.16
diff --git a/data/consolefonts/koi8r.8x8.psfu b/data/consolefonts/koi8r.8x8.psfu
new file mode 100644 (file)
index 0000000..0c7ea2a
Binary files /dev/null and b/data/consolefonts/koi8r.8x8.psfu differ
similarity index 64%
rename from consolefonts/lat2-08.psf
rename to data/consolefonts/lat2-08.psfu
index 61262ed..978ac62 100644 (file)
Binary files a/consolefonts/lat2-08.psf and b/data/consolefonts/lat2-08.psfu differ
similarity index 70%
rename from consolefonts/lat2-10.psf
rename to data/consolefonts/lat2-10.psfu
index 2b86f24..719fa39 100644 (file)
Binary files a/consolefonts/lat2-10.psf and b/data/consolefonts/lat2-10.psfu differ
similarity index 73%
rename from consolefonts/lat2-12.psf
rename to data/consolefonts/lat2-12.psfu
index 27b6df5..b3f4802 100644 (file)
Binary files a/consolefonts/lat2-12.psf and b/data/consolefonts/lat2-12.psfu differ
similarity index 76%
rename from consolefonts/lat2-14.psf
rename to data/consolefonts/lat2-14.psfu
index 88ebbb9..44ebd0b 100644 (file)
Binary files a/consolefonts/lat2-14.psf and b/data/consolefonts/lat2-14.psfu differ
similarity index 78%
rename from consolefonts/lat2-16.psf
rename to data/consolefonts/lat2-16.psfu
index f293d14..ad93100 100644 (file)
Binary files a/consolefonts/lat2-16.psf and b/data/consolefonts/lat2-16.psfu differ
diff --git a/data/consolefonts/lat2a-16.psfu b/data/consolefonts/lat2a-16.psfu
new file mode 100644 (file)
index 0000000..29c5cc3
Binary files /dev/null and b/data/consolefonts/lat2a-16.psfu differ
diff --git a/data/consolefonts/lat5-12.psfu b/data/consolefonts/lat5-12.psfu
new file mode 100644 (file)
index 0000000..bb906fe
Binary files /dev/null and b/data/consolefonts/lat5-12.psfu differ
diff --git a/data/consolefonts/lat5-14.psfu b/data/consolefonts/lat5-14.psfu
new file mode 100644 (file)
index 0000000..0e2e2bf
Binary files /dev/null and b/data/consolefonts/lat5-14.psfu differ
diff --git a/data/consolefonts/lat5-16.psfu b/data/consolefonts/lat5-16.psfu
new file mode 100644 (file)
index 0000000..1cb3ac5
Binary files /dev/null and b/data/consolefonts/lat5-16.psfu differ
diff --git a/data/consolefonts/lat7-16.psfu b/data/consolefonts/lat7-16.psfu
new file mode 100644 (file)
index 0000000..11cfdca
Binary files /dev/null and b/data/consolefonts/lat7-16.psfu differ
similarity index 87%
rename from consolefonts/lat1-08.psf
rename to data/consolefonts/lat9-08.psf
index e013c52..a8bc641 100644 (file)
Binary files a/consolefonts/lat1-08.psf and b/data/consolefonts/lat9-08.psf differ
similarity index 85%
rename from consolefonts/lat1-10.psf
rename to data/consolefonts/lat9-10.psf
index e7856e0..82ecbf8 100644 (file)
Binary files a/consolefonts/lat1-10.psf and b/data/consolefonts/lat9-10.psf differ
similarity index 89%
rename from consolefonts/lat1-12.psf
rename to data/consolefonts/lat9-12.psf
index 02e54d7..912ad7c 100644 (file)
Binary files a/consolefonts/lat1-12.psf and b/data/consolefonts/lat9-12.psf differ
diff --git a/data/consolefonts/lat9-12.psfu b/data/consolefonts/lat9-12.psfu
new file mode 100644 (file)
index 0000000..864d4ab
Binary files /dev/null and b/data/consolefonts/lat9-12.psfu differ
similarity index 90%
rename from consolefonts/lat1-14.psf
rename to data/consolefonts/lat9-14.psf
index dacfd05..b1bcbb1 100644 (file)
Binary files a/consolefonts/lat1-14.psf and b/data/consolefonts/lat9-14.psf differ
diff --git a/data/consolefonts/lat9-14.psfu b/data/consolefonts/lat9-14.psfu
new file mode 100644 (file)
index 0000000..132cddb
Binary files /dev/null and b/data/consolefonts/lat9-14.psfu differ
similarity index 92%
rename from consolefonts/lat1-16.psf
rename to data/consolefonts/lat9-16.psf
index 997c679..e806960 100644 (file)
Binary files a/consolefonts/lat1-16.psf and b/data/consolefonts/lat9-16.psf differ
diff --git a/data/consolefonts/lat9-16.psfu b/data/consolefonts/lat9-16.psfu
new file mode 100644 (file)
index 0000000..57500ea
Binary files /dev/null and b/data/consolefonts/lat9-16.psfu differ
diff --git a/data/consolefonts/lat9u-08.psf b/data/consolefonts/lat9u-08.psf
new file mode 100644 (file)
index 0000000..a216df3
Binary files /dev/null and b/data/consolefonts/lat9u-08.psf differ
diff --git a/data/consolefonts/lat9u-10.psf b/data/consolefonts/lat9u-10.psf
new file mode 100644 (file)
index 0000000..db103e8
Binary files /dev/null and b/data/consolefonts/lat9u-10.psf differ
diff --git a/data/consolefonts/lat9u-12.psf b/data/consolefonts/lat9u-12.psf
new file mode 100644 (file)
index 0000000..4211281
Binary files /dev/null and b/data/consolefonts/lat9u-12.psf differ
diff --git a/data/consolefonts/lat9u-14.psf b/data/consolefonts/lat9u-14.psf
new file mode 100644 (file)
index 0000000..031fd68
Binary files /dev/null and b/data/consolefonts/lat9u-14.psf differ
diff --git a/data/consolefonts/lat9u-16.psf b/data/consolefonts/lat9u-16.psf
new file mode 100644 (file)
index 0000000..323ef38
Binary files /dev/null and b/data/consolefonts/lat9u-16.psf differ
diff --git a/data/consolefonts/lat9v-08.psf b/data/consolefonts/lat9v-08.psf
new file mode 100644 (file)
index 0000000..6155d59
Binary files /dev/null and b/data/consolefonts/lat9v-08.psf differ
diff --git a/data/consolefonts/lat9v-10.psf b/data/consolefonts/lat9v-10.psf
new file mode 100644 (file)
index 0000000..19d1007
Binary files /dev/null and b/data/consolefonts/lat9v-10.psf differ
diff --git a/data/consolefonts/lat9v-12.psf b/data/consolefonts/lat9v-12.psf
new file mode 100644 (file)
index 0000000..50b778b
Binary files /dev/null and b/data/consolefonts/lat9v-12.psf differ
diff --git a/data/consolefonts/lat9v-14.psf b/data/consolefonts/lat9v-14.psf
new file mode 100644 (file)
index 0000000..db24b5f
Binary files /dev/null and b/data/consolefonts/lat9v-14.psf differ
diff --git a/data/consolefonts/lat9v-16.psf b/data/consolefonts/lat9v-16.psf
new file mode 100644 (file)
index 0000000..79c7774
Binary files /dev/null and b/data/consolefonts/lat9v-16.psf differ
diff --git a/data/consolefonts/lat9w-08.psf b/data/consolefonts/lat9w-08.psf
new file mode 100644 (file)
index 0000000..a406dda
Binary files /dev/null and b/data/consolefonts/lat9w-08.psf differ
diff --git a/data/consolefonts/lat9w-10.psf b/data/consolefonts/lat9w-10.psf
new file mode 100644 (file)
index 0000000..b1da752
Binary files /dev/null and b/data/consolefonts/lat9w-10.psf differ
diff --git a/data/consolefonts/lat9w-12.psf b/data/consolefonts/lat9w-12.psf
new file mode 100644 (file)
index 0000000..833d533
Binary files /dev/null and b/data/consolefonts/lat9w-12.psf differ
diff --git a/data/consolefonts/lat9w-14.psf b/data/consolefonts/lat9w-14.psf
new file mode 100644 (file)
index 0000000..27e3ca7
Binary files /dev/null and b/data/consolefonts/lat9w-14.psf differ
diff --git a/data/consolefonts/lat9w-16.psf b/data/consolefonts/lat9w-16.psf
new file mode 100644 (file)
index 0000000..7a22e94
Binary files /dev/null and b/data/consolefonts/lat9w-16.psf differ
similarity index 100%
rename from consolefonts/t.fnt
rename to data/consolefonts/t.fnt
diff --git a/data/consoletrans/baltic.trans b/data/consoletrans/baltic.trans
new file mode 100644 (file)
index 0000000..b2a7a6c
--- /dev/null
@@ -0,0 +1,129 @@
+# Internal value       Output character\r
+0x80    0xC0\r
+0x81    0xC1\r
+0x82    0xC2\r
+0x83    0xC3\r
+0x84    0xC4\r
+0x85    0xC5\r
+0x86    0xC6\r
+0x87    0xC7\r
+0x88    0xC8\r
+0x89    0xC9\r
+0x8A    0xCA\r
+0x8B    0xCB\r
+0x8C    0xCC\r
+0x8D    0xCD\r
+0x8E    0xCE\r
+0x8F    0xCF\r
+0x90    0xD0\r
+0x91    0xD1\r
+0x92    0xD2\r
+0x93    0xD3\r
+0x94    0xD4\r
+0x95    0xD5\r
+0x96    0xD6\r
+0x97    0xD7\r
+0x98    0xD8\r
+0x99    0xD9\r
+0x9A    0xDA\r
+0x9B    0xDB\r
+0x9C    0xDC\r
+0x9D    0xDD\r
+0x9E    0xDE\r
+0x9F    0xDF\r
+0xA0    0xA0\r
+0xA1    0xA1\r
+0xA2    0xA2\r
+0xA3    0xA3\r
+0xA4    0xA4\r
+0xA5    0xA5\r
+0xA6    0xA6\r
+0xA7    0xA7\r
+0xA8    0xA8\r
+0xA9    0xA9\r
+0xAA    0xAA\r
+0xAB    0xAB\r
+0xAC    0xAC\r
+0xAD    0xAD\r
+0xAE    0xAE\r
+0xAF    0xAF\r
+0xB0    0xB0\r
+0xB1    0xB1\r
+0xB2    0xB2\r
+0xB3    0xB3\r
+0xB4    0xB4\r
+0xB5    0xB5\r
+0xB6    0xB6\r
+0xB7    0xB7\r
+0xB8    0xB8\r
+0xB9    0xB9\r
+0xBA    0xBA\r
+0xBB    0xBB\r
+0xBC    0xBC\r
+0xBD    0xBD\r
+0xBE    0xBE\r
+0xBF    0xBF\r
+0xC0    0xA1\r
+0xC1    0x87\r
+0xC2    0x82\r
+0xC3    0x83\r
+0xC4    0x84\r
+0xC5    0x85\r
+0xC6    0x8A\r
+0xC7    0x87\r
+0xC8    0x88\r
+0xC9    0x89\r
+0xCA    0x8A\r
+0xCB    0x8C\r
+0xCC    0x8C\r
+0xCD    0x8D\r
+0xCE    0x8E\r
+0xCF    0x8F\r
+0xD0    0xA9\r
+0xD1    0x91\r
+0xD2    0x92\r
+0xD3    0x93\r
+0xD4    0x94\r
+0xD5    0x95\r
+0xD6    0x96\r
+0xD7    0x97\r
+0xD8    0x99\r
+0xD9    0x99\r
+0xDA    0x9A\r
+0xDB    0x9E\r
+0xDC    0x9C\r
+0xDD    0x9D\r
+0xDE    0xAE\r
+0xDF    0x9F\r
+0xE0    0xB1\r
+0xE1    0xE7\r
+0xE2    0xE2\r
+0xE3    0xE3\r
+0xE4    0xE4\r
+0xE5    0xE5\r
+0xE6    0xEA\r
+0xE7    0xE7\r
+0xE8    0xE8\r
+0xE9    0xE9\r
+0xEA    0xEA\r
+0xEB    0xEC\r
+0xEC    0xEC\r
+0xED    0xED\r
+0xEE    0xEE\r
+0xEF    0xEF\r
+0xF0    0xB9\r
+0xF1    0xF1\r
+0xF2    0xF2\r
+0xF3    0xF3\r
+0xF4    0xF4\r
+0xF5    0xF5\r
+0xF6    0xF6\r
+0xF7    0xF7\r
+0xF8    0xF9\r
+0xF9    0xF9\r
+0xFA    0xFA\r
+0xFB    0xFE\r
+0xFC    0xFC\r
+0xFD    0xFD\r
+0xFE    0xBE\r
+0xFF    0xFF\r
diff --git a/data/consoletrans/latin2u.trans b/data/consoletrans/latin2u.trans
new file mode 100644 (file)
index 0000000..ca22f21
Binary files /dev/null and b/data/consoletrans/latin2u.trans differ
similarity index 100%
rename from consoletrans/null
rename to data/consoletrans/null
similarity index 100%
rename from consoletrans/space
rename to data/consoletrans/space
similarity index 100%
rename from consoletrans/zero
rename to data/consoletrans/zero
similarity index 97%
rename from keymaps/README
rename to data/keymaps/README
index c19e190..ccaabe3 100644 (file)
@@ -34,3 +34,7 @@ load any keymap, and get the compiled-in kernel default.
 Note that only files *.map are candidate keymaps.
 
 Andries
+
+
+
+Added in kbd-1.00: symlink ppc -> mac.
similarity index 100%
rename from keymaps/i386/README
rename to data/keymaps/i386/README
diff --git a/data/keymaps/i386/azerty/wangbe2.map b/data/keymaps/i386/azerty/wangbe2.map
new file mode 100644 (file)
index 0000000..a7563a4
--- /dev/null
@@ -0,0 +1,134 @@
+# This describes the key engravings on an AZERTY keyboard (brand Tandon)
+# that I just got. It might be useful in French-speaking countries.
+# aeb - April 1994.
+# This is the modified version for an azerty Wang belguim keyboard, 
+# model 724 serial 725-3771-EA/REV1.  The numeric key assignments are extended:
+#  7  8  9           <  >  ^
+#  4  5  6  +AltGr   [  ]  $
+#  1  2  3  ----->   &  @  #
+#  0  .  r           '  ,  r
+# Servaas Vandenberghe, vdb128@tele.kotnet.org, 1999.
+# For compatibility with X windows and Emacs one should try to do the following
+#  1 shift 
+#  2 right alt --> other character set, add 64 ?
+#  4 control   --> subract 64 of the ascii code
+#  8 left alt  --> meta of the symbol
+
+keymaps 0-2,4-6,8-10,12
+include "azerty-layout"
+       AltGr   keycode  19 = registered
+       AltGr   keycode  21 = yen
+       AltGr   keycode  25 = paragraph
+       AltGr   keycode  31 = section
+       AltGr   keycode  39 = mu
+       AltGr   keycode  45 = multiply
+       AltGr   keycode  46 = copyright
+include "linux-with-alt-and-altgr.inc"
+        AltGr   keycode  71 = less
+        AltGr   keycode  72 = greater
+        AltGr   keycode  73 = asciicircum
+        AltGr   keycode  75 = bracketleft
+        AltGr   keycode  76 = bracketright
+        AltGr   keycode  77 = dollar
+        AltGr   keycode  79 = ampersand
+        AltGr   keycode  80 = at
+        AltGr   keycode  81 = numbersign
+        AltGr   keycode  82 = apostrophe
+        AltGr   keycode  83 = KP_Comma
+       Control AltGr   keycode 71 = bar
+       Control AltGr   keycode 72 = asciitilde
+       Control AltGr   keycode 75 = Escape
+       Control AltGr   keycode 76 = Control_bracketright
+       Control AltGr   keycode 80 = nul
+strings as usual
+compose as usual for "iso-8859-1"
+keycode   1 = Escape           Escape          
+       alt keycode 1 = Meta_Escape
+keycode   2 = ampersand        one              bar             less
+       Control AltGr   keycode 2 = less
+       alt     keycode   2 = Meta_one        
+       AltGr   alt     keycode   2 = Meta_bar
+keycode   3 = eacute           two             at      
+       alt     keycode   3 = Meta_two          
+       AltGr   alt     keycode   3 = Meta_at
+keycode   4 = quotedbl         three            numbersign      Escape
+       alt     keycode   4 = Meta_three
+keycode   5 = apostrophe       four                    dollar          Control_backslash
+       alt     keycode   5 = Meta_four
+keycode   6 = parenleft        five             bracketleft    Escape
+       Control AltGr   keycode   6 = Escape
+       alt     keycode   6 = Meta_five
+keycode   7 = section          six              asciicircum    Control_asciicircum
+       Control AltGr   keycode   7 = Control_asciicircum
+       alt     keycode   7 = Meta_six
+keycode   8 = egrave           seven                   underscore      Control_underscore
+       Control AltGr   keycode   8 = Control_underscore
+       alt     keycode   8 = Meta_seven
+keycode   9 = exclam           eight           question        Delete
+       Control AltGr   keycode   9 = Delete
+       alt     keycode   9 = Meta_eight
+keycode  10 = ccedilla         nine             braceleft       semicolon
+       Control AltGr   keycode  10 = semicolon
+       alt     keycode  10 = Meta_nine
+keycode  11 = agrave           zero             braceright      equal
+       Control AltGr   keycode  11 = equal
+       alt     keycode  11 = Meta_zero
+keycode  12 = parenright       degree           bracketright   Control_bracketright
+       Control AltGr   keycode  12 = Control_bracketright
+       alt     keycode  12 = bracketright
+keycode  13 = minus            underscore       backslash     \
+               Control_underscore Control_underscore Control_backslash \
+               Meta_minus      Meta_underscore         Meta_backslash 
+keycode  14 = Delete           Delete          
+       alt     keycode  14 = Meta_Delete
+keycode  15 = Tab              Tab             
+       alt     keycode  15 = Meta_Tab
+keycode  26 = dead_circumflex  dead_diaeresis   bracketleft    Escape          
+       Control AltGr   keycode 26 = Escape
+       alt   keycode    26 = Meta_bracketleft     
+keycode  27 = dollar           asterisk         bracketright   Control_bracketright
+       Control AltGr   keycode 27 = Control_bracketright
+       alt   keycode    27 = Meta_bracketright    
+keycode  28 = Return       
+       alt     keycode  28 = Meta_Control_m
+        #alt   keycode  28 = 0x080d
+keycode  29 = Control         
+keycode  40 = ugrave           percent          acute           dead_acute
+       alt     keycode  40 = dead_acute
+       alt shift       keycode 40 = Meta_percent
+keycode  41 = twosuperior      threesuperior    dead_grave
+       alt keycode  41 = Meta_grave
+keycode  42 = Shift           
+keycode  43 = mu               sterling         grave           dead_grave
+       alt     keycode  43 = dead_grave      
+keycode  50 = comma            question        questiondown
+       Control Shift   keycode 50 = Delete
+       alt     keycode 50 = Meta_comma
+       alt     Shift   keycode 50 = Meta_question
+keycode  51 = semicolon        period          guillemotleft
+       alt     keycode 51 = Meta_semicolon
+       alt shift keycode 51 = Meta_period
+keycode  52 = colon            slash           guillemotright
+       alt     keycode 52 = Meta_colon
+       alt shift keycode 52 = Meta_slash
+keycode  53 = equal            plus             asciitilde     dead_tilde      
+       Control AltGr   keycode 53 = dead_tilde
+       alt     keycode  53 = Meta_equal
+       alt shift       keycode 53 = Meta_plus
+       alt AltGr       keycode 53 = Meta_asciitilde
+keycode  54 = Shift           
+keycode  56 = Alt             
+keycode  57 = space            space           
+       control keycode  57 = nul             
+       alt     keycode  57 = Meta_space
+keycode  58 = Caps_Lock       
+keycode  86 = less             greater         backslash    \
+               bar             asciitilde      Control_backslash  \
+               Meta_less       Meta_greater    Meta_backslash
+       alt Control keycode 86 = Meta_bar
+keycode  97 = Control         
+keycode  99 = Control_backslash
+       control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
+keycode 118 = KP_MinPlus      
+
similarity index 82%
rename from keymaps/i386/dvorak/dvorak.map
rename to data/keymaps/i386/dvorak/dvorak.map
index 3af4219..0645619 100644 (file)
@@ -1,32 +1,27 @@
-keymaps 0-2,4,6,8,12
+keymaps 0-2,4-6,8-9,12
 alt_is_meta
 include "linux-with-alt-and-altgr.inc"
 strings as usual
 
-keycode   1 = Escape           Escape          
+keycode   1 = Escape           
 keycode   2 = one              exclam          
-keycode   3 = two              at               at              
-       control keycode   3 = nul             
+keycode   3 = two              at               at              nul                    nul
 keycode   4 = three            numbersign      
        control keycode   4 = Escape          
-keycode   5 = four             dollar           dollar          
-       control keycode   5 = Control_backslash
+keycode   5 = four             dollar           dollar          Control_backslash
 keycode   6 = five             percent         
        control keycode   6 = Control_bracketright
 keycode   7 = six              asciicircum     
        control keycode   7 = Control_asciicircum
-keycode   8 = seven            ampersand        braceleft       
-       control keycode   8 = Control_underscore
-keycode   9 = eight            asterisk         bracketleft     
-       control keycode   9 = Delete          
+keycode   8 = seven            ampersand        braceleft       Control_underscore
+keycode   9 = eight            asterisk         bracketleft     Delete
 keycode  10 = nine             parenleft        bracketright    
 keycode  11 = zero             parenright       braceright      
 keycode  12 = bracketleft      braceleft       
        control keycode  12 = Escape          
-keycode  13 = bracketright     braceright       asciitilde      
-       control keycode  13 = Control_bracketright
-keycode  14 = Delete           Delete          
-keycode  15 = Tab              Tab             
+keycode  13 = bracketright     braceright       asciitilde      Control_bracketright
+keycode  14 = Delete           
+keycode  15 = Tab              
 keycode  16 = apostrophe       quotedbl        
        control keycode  16 = Control_g       
 keycode  17 = comma            less            
@@ -54,8 +49,7 @@ keycode  36 = h
 keycode  37 = t               
 keycode  38 = n               
 keycode  39 = s               
-keycode  40 = minus            underscore       backslash       
-       control keycode  40 = Control_underscore
+keycode  40 = minus           underscore       backslash     Control_underscore        Control_underscore
 keycode  41 = grave            asciitilde      
        control keycode  41 = nul             
 keycode  42 = Shift           
@@ -73,9 +67,8 @@ keycode  52 = v
 keycode  53 = z               
 keycode  54 = Shift           
 keycode  56 = Alt             
-keycode  57 = space            space           
+keycode  57 = space            
        control keycode  57 = nul             
 keycode  58 = Caps_Lock       
 keycode  86 = less             greater          bar             
-       alt     keycode  86 = Meta_less       
 keycode  97 = Control         
diff --git a/data/keymaps/i386/fgGIod/trf.map b/data/keymaps/i386/fgGIod/trf.map
new file mode 100644 (file)
index 0000000..2324106
--- /dev/null
@@ -0,0 +1,124 @@
+charset "iso-8859-9"
+keymaps 0-6,8-9,12
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode   1 = Escape Escape
+       alt       keycode   1 = Meta_Escape
+keycode   2 = one exclam asciitilde
+       alt       keycode   2 = Meta_one
+       alt shift keycode   2 = Meta_exclam
+keycode   3 = two at ampersand
+       control   keycode   3 = nul
+       control shift keycode 3 = nul
+       alt       keycode   3 = Meta_two
+       alt shift keycode   3 = Meta_at
+keycode   4 = three quotedbl numbersign
+       control   keycode   4 = Escape
+       alt       keycode   4 = Meta_three
+       alt shift keycode   4 = Meta_quotedbl
+keycode   5 = four apostrophe dollar
+       control   keycode   5 = Control_backslash
+       alt       keycode   5 = Meta_four
+       alt shift keycode   5 = Meta_apostrophe
+keycode   6 = five parenleft less
+       control   keycode   6 = Control_bracketright
+       alt       keycode   6 = Meta_five
+       alt shift keycode   6 = Meta_parenleft
+keycode   7 = six slash greater
+       control   keycode   7 = Control_asciicircum
+       alt       keycode   7 = Meta_six
+       alt shift keycode   7 = Meta_slash
+keycode   8 = seven parenright braceleft
+       control   keycode   8 = Control_underscore
+       alt       keycode   8 = Meta_seven
+       alt shift keycode   8 = Meta_parenright
+keycode   9 = eight underscore braceright
+       control   keycode   9 = Delete
+       alt       keycode   9 = Meta_eight
+       alt shift keycode   9 = Meta_underscore
+keycode  10 = nine percent bracketleft
+       alt       keycode  10 = Meta_nine
+       alt shift keycode  10 = Meta_percent
+keycode  11 = zero colon bracketright
+       alt       keycode  11 = Meta_zero
+       alt shift keycode  11 = Meta_colon
+keycode  12 = x
+keycode  13 = q
+keycode  14 = Delete   Delete
+       alt       keycode  14 = Meta_Delete
+keycode  15 = Tab
+       alt       keycode  15 = Meta_Tab
+keycode  16 = f
+keycode  17 = g
+keycode  18 = +0360 +0320
+keycode  19 = +0375 +I
+       altgr keycode 19 = +0356
+       altgr shift keycode 19 = +0316
+keycode  20 = o
+       altgr keycode 20 = +0364
+       altgr shift keycode 20 = +0324
+keycode  21 = d
+keycode  22 = r
+keycode  23 = n
+keycode  24 = h
+keycode  25 = p
+keycode  26 = semicolon asterisk
+       control   keycode  26 = Escape
+       alt       keycode  26 = Meta_semicolon
+       alt shift keycode  26 = Meta_asterisk
+keycode  27 = asciicircum grave
+       control   keycode  27 = Control_bracketright
+       alt       keycode  27 = Meta_asciicircum
+       alt shift keycode  27 = Meta_grave
+keycode  28 = Return
+       alt       keycode  28 = 0x080d
+keycode  29 = Control
+keycode  30 = u
+       altgr keycode 30 = +0373
+       altgr shift keycode 30 = +0333
+keycode  31 = +i +0335
+keycode  32 = e
+keycode  33 = a
+       altgr keycode 33 = +0342
+       altgr shift keycode 33 = +0302
+keycode  34 = +0374 +0334
+keycode  35 = t
+keycode  36 = k
+keycode  37 = m
+keycode  38 = l
+keycode  39 = y
+keycode  40 = +0376 +0336
+       control   keycode  40 = Control_g
+keycode  41 = w
+       control   keycode  41 = nul
+keycode  42 = Shift
+keycode  43 = equal plus
+       control   keycode  43 = Control_backslash
+       alt       keycode  43 = Meta_equal
+       alt shift keycode  43 = Meta_plus
+keycode  44 = j
+keycode  45 = +0366 +0326
+keycode  46 = v
+keycode  47 = c
+keycode  48 = +0347 +0307
+keycode  49 = z
+keycode  50 = s
+keycode  51 = b
+keycode  52 = period question
+       control   keycode  52 = Delete
+       alt       keycode  52 = Meta_period
+       alt shift keycode  52 = Meta_question
+keycode  53 = comma minus slash
+       alt       keycode  53 = Meta_comma
+       alt shift keycode  53 = Meta_minus
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space
+       control   keycode  57 = nul
+       alt       keycode  57 = Meta_space
+keycode  58 = Caps_Lock
+keycode  86 = backslash bar
+       alt       keycode  86 = Meta_backslash
+       alt shift keycode  86 = Meta_bar
+keycode  97 = Control
diff --git a/data/keymaps/i386/include/applkey.map b/data/keymaps/i386/include/applkey.map
new file mode 100644 (file)
index 0000000..75cfe52
--- /dev/null
@@ -0,0 +1,18 @@
+# VT220 auxiliary keypad in application mode
+# Use 4 auxiliary strings.
+
+# Num Lock key
+keycode  69 = F21
+# Divide key
+keycode  98 = F22
+# Multiply key
+keycode  55 = F23
+# Subtract key
+keycode  74 = F24
+
+string F21 = "\033OP"
+string F22 = "\033OQ"
+string F23 = "\033OR"
+string F24 = "\033OS"
+
+# This is also what one gets after sending Esc = to the console.
diff --git a/data/keymaps/i386/include/unicode.map b/data/keymaps/i386/include/unicode.map
new file mode 100644 (file)
index 0000000..16e1492
--- /dev/null
@@ -0,0 +1,27 @@
+# Most people will prefer the default Unicode hex input
+# sequences (that use the keypad, with A-F represented
+# by the keys around the digits in natural order).
+# However, ISO-14755 suggests to use Ctrl-Shift and
+# the ordinary letters and digits. That is also possible
+# (but then Ctrl-Shift-2 will no longer be Ctrl-@).
+control shift keycode 11 = Hex_0
+control shift keycode 2 = Hex_1
+control shift keycode 3 = Hex_2
+control shift keycode 4 = Hex_3
+control shift keycode 5 = Hex_4
+control shift keycode 6 = Hex_5
+control shift keycode 7 = Hex_6
+control shift keycode 8 = Hex_7
+control shift keycode 9 = Hex_8
+control shift keycode 10 = Hex_9
+control shift keycode 30 = Hex_A
+control shift keycode 48 = Hex_B
+control shift keycode 46 = Hex_C
+control shift keycode 32 = Hex_D
+control shift keycode 18 = Hex_E
+control shift keycode 33 = Hex_F
+#
+# If the keyboard is in Unicode mode, then pressing
+# Ctrl-Shift, typing 4 hex digits and releasing Ctrl-Shift
+# will produce the unicode character with the given code.
+#
diff --git a/data/keymaps/i386/qwerty/br-abnt.map b/data/keymaps/i386/qwerty/br-abnt.map
new file mode 100644 (file)
index 0000000..7acfdc0
--- /dev/null
@@ -0,0 +1,249 @@
+# br-abnt.map
+# Mapa para teclados ABNT
+# João Luiz Barbosa <jl@conectiva.com.br>
+#
+keymaps 0-2,4-6,8-9,12
+strings as usual
+compose as usual for "iso-8859-1"
+keycode   1 = Escape           Escape          
+       alt     keycode   1 = Meta_Escape     
+keycode   2 = one              exclam          
+       alt     keycode   2 = Meta_one        
+       shift   alt     keycode   2 = Meta_exclam     
+keycode   3 = two              at               at               nul              nul             
+       alt     keycode   3 = Meta_two        
+       shift   alt     keycode   3 = Meta_at         
+keycode   4 = three            numbersign      
+       control keycode   4 = Escape          
+       alt     keycode   4 = Meta_three      
+       shift   alt     keycode   4 = Meta_numbersign 
+keycode   5 = four             dollar           dollar           Control_backslash
+       alt     keycode   5 = Meta_four       
+       shift   alt     keycode   5 = Meta_dollar     
+keycode   6 = five             percent         
+       control keycode   6 = Control_bracketright
+       alt     keycode   6 = Meta_five       
+       shift   alt     keycode   6 = Meta_percent    
+keycode   7 = six              dead_circumflex     
+       control keycode   7 = Control_asciicircum
+       alt     keycode   7 = Meta_six        
+       shift   alt     keycode   7 = Meta_asciicircum
+keycode   8 = seven            ampersand        braceleft        Control_underscore
+       alt     keycode   8 = Meta_seven      
+keycode   9 = eight            asterisk         bracketleft      Delete          
+       alt     keycode   9 = Meta_eight      
+keycode  10 = nine             parenleft        bracketright    
+       alt     keycode  10 = Meta_nine       
+keycode  11 = zero             parenright       braceright      
+       alt     keycode  11 = Meta_zero       
+keycode  12 = minus            underscore       backslash        Control_underscore Control_underscore
+       alt     keycode  12 = Meta_minus      
+keycode  13 = equal            plus            
+       alt     keycode  13 = Meta_equal      
+keycode  14 = Delete           Delete          
+       control keycode  14 = BackSpace       
+       alt     keycode  14 = Meta_Delete     
+keycode  15 = Tab              Tab             
+       alt     keycode  15 = Meta_Tab        
+keycode  16 = q               
+keycode  17 = w               
+keycode  18 = e               
+keycode  19 = r               
+keycode  20 = t               
+keycode  21 = y               
+keycode  22 = u               
+keycode  23 = i               
+keycode  24 = o               
+keycode  25 = p               
+keycode  26 = dead_acute       dead_grave
+        control keycode  26 = nul
+        alt     keycode  26 = Meta_grave
+keycode  27 = bracketleft      braceleft
+        control keycode  27 = Escape
+        alt     keycode  27 = Meta_bracketleft
+        shift   alt     keycode  26 = Meta_braceleft
+keycode  28 = Return          
+       alt     keycode  28 = Meta_Control_m  
+keycode  29 = Control         
+keycode  30 = a               
+keycode  31 = s               
+keycode  32 = d               
+keycode  33 = f               
+keycode  34 = g               
+keycode  35 = h               
+keycode  36 = j               
+keycode  37 = k               
+keycode  38 = l               
+keycode  39 = ccedilla        Ccedilla
+        alt     keycode  39 = Meta_semicolon
+keycode  40 = dead_tilde       dead_circumflex             
+       control keycode  40 = nul       
+        alt    keycode   40 = Control_asciicircum
+        shift   alt     keycode   40 = Meta_asciicircum
+keycode  41 = dead_acute       dead_diaeresis        
+       control keycode  41 = Control_g       
+       alt     keycode  41 = Meta_apostrophe 
+keycode  42 = Shift           
+keycode  43 = bracketright     braceright       asciitilde       Control_bracketright
+       alt     keycode  43 = Meta_bracketright
+       shift   alt     keycode  43 = Meta_braceright 
+keycode  44 = z               
+keycode  45 = x               
+keycode  46 = c               
+keycode  47 = v               
+keycode  48 = b               
+keycode  49 = n               
+keycode  50 = m               
+keycode  51 = comma            less            
+       alt     keycode  51 = Meta_comma      
+       shift   alt     keycode  51 = Meta_less       
+keycode  52 = period           greater         
+       control keycode  52 = Compose         
+       alt     keycode  52 = Meta_period     
+       shift   alt     keycode  52 = Meta_greater    
+keycode  53 = semicolon        colon           
+       alt     keycode  53 = Meta_semicolon  
+keycode  54 = Shift           
+keycode  55 = KP_Multiply     
+keycode  56 = Alt             
+keycode  57 = space            space           
+       control keycode  57 = nul             
+       alt     keycode  57 = Meta_space      
+keycode  58 = Caps_Lock       
+keycode  59 = F1               F11              Console_13       F1              
+       alt     keycode  59 = Console_1       
+       control alt     keycode  59 = Console_1       
+keycode  60 = F2               F12              Console_14       F2              
+       alt     keycode  60 = Console_2       
+       control alt     keycode  60 = Console_2       
+keycode  61 = F3               F13              Console_15       F3              
+       alt     keycode  61 = Console_3       
+       control alt     keycode  61 = Console_3       
+keycode  62 = F4               F14              Console_16       F4              
+       alt     keycode  62 = Console_4       
+       control alt     keycode  62 = Console_4       
+keycode  63 = F5               F15              Console_17       F5              
+       alt     keycode  63 = Console_5       
+       control alt     keycode  63 = Console_5       
+keycode  64 = F6               F16              Console_18       F6              
+       alt     keycode  64 = Console_6       
+       control alt     keycode  64 = Console_6       
+keycode  65 = F7               F17              Console_19       F7              
+       alt     keycode  65 = Console_7       
+       control alt     keycode  65 = Console_7       
+keycode  66 = F8               F18              Console_20       F8              
+       alt     keycode  66 = Console_8       
+       control alt     keycode  66 = Console_8       
+keycode  67 = F9               F19              Console_21       F9              
+       alt     keycode  67 = Console_9       
+       control alt     keycode  67 = Console_9       
+keycode  68 = F10              F20              Console_22       F10             
+       alt     keycode  68 = Console_10      
+       control alt     keycode  68 = Console_10      
+keycode  69 = Num_Lock        
+keycode  70 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
+       alt     keycode  70 = Scroll_Lock     
+keycode  71 = KP_7            
+       alt     keycode  71 = Ascii_7         
+keycode  72 = KP_8            
+       alt     keycode  72 = Ascii_8         
+keycode  73 = KP_9            
+       alt     keycode  73 = Ascii_9         
+keycode  74 = KP_Subtract     
+keycode  75 = KP_4            
+       alt     keycode  75 = Ascii_4         
+keycode  76 = KP_5            
+       alt     keycode  76 = Ascii_5         
+keycode  77 = KP_6            
+       alt     keycode  77 = Ascii_6         
+keycode  78 = KP_Add          
+keycode  79 = KP_1            
+       alt     keycode  79 = Ascii_1         
+keycode  80 = KP_2            
+       alt     keycode  80 = Ascii_2         
+keycode  81 = KP_3            
+       alt     keycode  81 = Ascii_3         
+keycode  82 = KP_0            
+       alt     keycode  82 = Ascii_0         
+keycode  83 = comma 
+       altgr   control keycode  83 = Boot            
+       control alt     keycode  83 = Boot            
+keycode  84 = Last_Console    
+keycode  85 =
+keycode  86 = backslash        bar             
+       control keycode  86 = Control_backslash
+       alt     keycode  86 = Meta_backslash  
+       shift   alt     keycode  43 = Meta_bar        
+keycode  87 = F11              F11              Console_23       F11             
+       alt     keycode  87 = Console_11      
+       control alt     keycode  87 = Console_11      
+keycode  88 = F12              F12              Console_24       F12             
+       alt     keycode  88 = Console_12      
+       control alt     keycode  88 = Console_12      
+keycode  89 = slash            question        
+       control keycode  89 = Delete          
+       alt     keycode  89 = Meta_slash      
+keycode  90 =
+keycode  91 =
+keycode  92 =
+keycode  93 =
+keycode  94 =
+keycode  95 =
+keycode  96 = KP_Enter        
+keycode  97 = Control         
+keycode  98 = KP_Divide       
+keycode  99 = Control_backslash
+       control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
+keycode 100 = AltGr           
+keycode 101 = Break           
+keycode 102 = Find            
+keycode 103 = Up              
+keycode 104 = Prior           
+       shift   keycode 104 = Scroll_Backward 
+keycode 105 = Left            
+       alt     keycode 105 = Decr_Console    
+keycode 106 = Right           
+       alt     keycode 106 = Incr_Console    
+keycode 107 = Select          
+keycode 108 = Down            
+keycode 109 = Next            
+       shift   keycode 109 = Scroll_Forward  
+keycode 110 = Insert          
+keycode 111 = Remove          
+       altgr   control keycode 111 = Boot            
+       control alt     keycode 111 = Boot            
+keycode 112 = Macro           
+       altgr   control keycode 112 = VoidSymbol      
+       shift   alt     keycode 112 = VoidSymbol      
+keycode 113 = F13             
+       altgr   control keycode 113 = VoidSymbol      
+       shift   alt     keycode 113 = VoidSymbol      
+keycode 114 = F14             
+       altgr   control keycode 114 = VoidSymbol      
+       shift   alt     keycode 114 = VoidSymbol      
+keycode 115 = Help            
+       altgr   control keycode 115 = VoidSymbol      
+       shift   alt     keycode 115 = VoidSymbol      
+keycode 116 = Do              
+       altgr   control keycode 116 = VoidSymbol      
+       shift   alt     keycode 116 = VoidSymbol      
+keycode 117 = F17             
+       altgr   control keycode 117 = VoidSymbol      
+       shift   alt     keycode 117 = VoidSymbol      
+keycode 118 = KP_MinPlus      
+       altgr   control keycode 118 = VoidSymbol      
+       shift   alt     keycode 118 = VoidSymbol      
+keycode 119 = Pause           
+       altgr   control keycode 119 = VoidSymbol      
+       shift   alt     keycode 119 = VoidSymbol      
+keycode 120 =
+keycode 121 = period
+       altgr   control keycode 119 = VoidSymbol      
+       shift   alt     keycode 119 = VoidSymbol      
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
similarity index 80%
rename from keymaps/i386/qwerty/br-abnt2.map
rename to data/keymaps/i386/qwerty/br-abnt2.map
index 87b4952..153c64e 100644 (file)
@@ -3,6 +3,12 @@
 # Antonio Dias <accdias@sst.com.br>
 #
 # (slightly adapted, aeb)
+#
+# Ruda Moura <ruda@conectiva.com.br>
+#   Added keycode 89 (slash/question)
+#   Keypad fix
+#   WinL/WinR is Scroll_*
+#   Menu is Compose
 alt_is_meta
 keymaps 0-2,4-6,8,12
 include "qwerty-layout"
@@ -63,5 +69,21 @@ keycode  69 = Num_Lock
 keycode  70 = Scroll_Lock Show_Memory Show_Registers Show_State      
        alt             keycode  70 = Scroll_Lock     
 
+keycode  83 = KP_Comma
+       shift           keycode  83 = comma
+        control alt     keycode  83 = Boot
+
 keycode  86 = backslash bar             
-       alt             keycode  86 = Meta_less       
+       alt             keycode  86 = Meta_less
+
+keycode  89 = slash question degree
+        control         keycode  89 = Delete
+        alt             keycode  89 = Meta_slash
+
+keycode 121 = KP_Period
+       shift           keycode 121 = period
+
+# Do whatever you want...
+keycode 125 = Scroll_Backward
+keycode 126 = Scroll_Forward
+keycode 127 = Compose
similarity index 96%
rename from keymaps/i386/qwerty/cz-lat2-prog.map
rename to data/keymaps/i386/qwerty/cz-lat2-prog.map
index 1a189bb..32bfa08 100644 (file)
@@ -143,8 +143,7 @@ keycode 100 = AltGr
 keycode 101 = Break
 keycode 102 = Find
 keycode 103 = Up
-keycode 104 = Prior
-shift keycode 104 = Scroll_Backward
+keycode 104 = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol 
 keycode 105 = Left
        alt keycode 105 = Decr_Console
        alt altgr keycode 105 = Decr_Console
@@ -153,8 +152,7 @@ keycode 106 = Right
        alt altgr keycode 106 = Incr_Console
 keycode 107 = Select
 keycode 108 = Down
-keycode 109 = Next
-shift keycode 109 = Scroll_Forward
+keycode 109 = Next Scroll_Forward Next Scroll_Forward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
 keycode 110 = Insert
 keycode 111 = Remove
 control alt keycode 111 = Boot
similarity index 97%
rename from keymaps/i386/qwerty/cz-lat2.map
rename to data/keymaps/i386/qwerty/cz-lat2.map
index 03d1298..5accade 100644 (file)
@@ -140,8 +140,7 @@ keycode 100 = AltGr
 keycode 101 = Break
 keycode 102 = Find
 keycode 103 = Up
-keycode 104 = Prior
-shift keycode 104 = Scroll_Backward
+keycode 104 = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
 keycode 105 = Left
        alt keycode 105 = Decr_Console
        alt altgr keycode 105 = Decr_Console
@@ -150,8 +149,7 @@ keycode 106 = Right
        alt altgr keycode 106 = Incr_Console
 keycode 107 = Select
 keycode 108 = Down
-keycode 109 = Next
-shift keycode 109 = Scroll_Forward
+keycode 109 = Next Scroll_Forward Next Scroll_Forward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
 keycode 110 = Insert
 keycode 111 = Remove
 control alt keycode 111 = Boot
similarity index 64%
rename from keymaps/i386/qwerty/es-cp850.map
rename to data/keymaps/i386/qwerty/es-cp850.map
index ffa43b8..a9184ac 100644 (file)
@@ -16,7 +16,6 @@ alt_is_meta
 include "qwerty-layout"
 include "linux-with-alt-and-altgr"
 strings as usual
-compose as usual for "iso-8859-1"
 
 keycode   1 = Escape
 keycode   2 = one              exclam           bar
@@ -63,3 +62,72 @@ keycode  57 = space
 keycode  58 = Caps_Lock
 keycode  86 = less             greater
        shift alt keycode  86 = Meta_bar
+! compose for cp 850
+compose '`' 'A' to '·'
+compose '`' 'a' to '\85'
+compose '\'' 'A' to 'µ'
+compose '\'' 'a' to ' '
+compose '^' 'A' to '¶'
+compose '^' 'a' to '\83'
+compose '~' 'A' to 'Ç'
+compose '~' 'a' to 'Æ'
+compose '"' 'A' to '\8e'
+compose '"' 'a' to '\84'
+compose 'O' 'A' to '\8f'
+compose 'o' 'a' to '\86'
+compose '0' 'A' to '\8f'
+compose '0' 'a' to '\86'
+compose 'A' 'A' to '\8f'
+compose 'a' 'a' to '\86'
+compose 'A' 'E' to '\92'
+compose 'a' 'e' to '\91'
+compose ',' 'C' to '\80'
+compose ',' 'c' to '\87'
+compose '`' 'E' to 'Ô'
+compose '`' 'e' to '\8a'
+compose '\'' 'E' to '\90'
+compose '\'' 'e' to '\82'
+compose '^' 'E' to 'Ò'
+compose '^' 'e' to '\88'
+compose '"' 'E' to 'Ó'
+compose '"' 'e' to '\89'
+compose '`' 'I' to 'Þ'
+compose '`' 'i' to '\8d'
+compose '\'' 'I' to 'Ö'
+compose '\'' 'i' to '¡'
+compose '^' 'I' to '×'
+compose '^' 'i' to '\8c'
+compose '"' 'I' to 'Ø'
+compose '"' 'i' to '\8b'
+compose '-' 'D' to 'Ñ'
+compose '-' 'd' to 'Ð'
+compose '~' 'N' to '¥'
+compose '~' 'n' to '¤'
+compose '`' 'O' to 'ã'
+compose '`' 'o' to '\95'
+compose '\'' 'O' to 'à'
+compose '\'' 'o' to '¢'
+compose '^' 'O' to 'â'
+compose '^' 'o' to '\93'
+compose '~' 'O' to 'å'
+compose '~' 'o' to 'ä'
+compose '"' 'O' to '\99'
+compose '"' 'o' to '\94'
+compose '/' 'O' to '\9d'
+compose '/' 'o' to '\9b'
+compose '`' 'U' to 'ë'
+compose '`' 'u' to '\97'
+compose '\'' 'U' to 'é'
+compose '\'' 'u' to '£'
+compose '^' 'U' to 'ê'
+compose '^' 'u' to '\96'
+compose '"' 'U' to '\9a'
+compose '"' 'u' to '\81'
+compose '\'' 'Y' to 'í'
+compose '\'' 'y' to 'ì'
+compose 'T' 'H' to 'è'
+compose 't' 'h' to 'ç'
+compose 's' 's' to 'á'
+compose '"' 'y' to '\98'
+compose 's' 'z' to 'á'
+compose 'i' 'j' to '\98'
diff --git a/data/keymaps/i386/qwerty/et-nodeadkeys.map b/data/keymaps/i386/qwerty/et-nodeadkeys.map
new file mode 100644 (file)
index 0000000..297af15
--- /dev/null
@@ -0,0 +1,7 @@
+# Estonian keymap with no dead keys
+# Ville Hallik <Ville.Hallik@mail.ee>
+
+include "et.map"
+
+keycode 13 = apostrophe grave dead_acute dead_grave
+keycode 41 = dead_caron tilde dead_caron dead_tilde
diff --git a/data/keymaps/i386/qwerty/et.map b/data/keymaps/i386/qwerty/et.map
new file mode 100644 (file)
index 0000000..3c16110
--- /dev/null
@@ -0,0 +1,89 @@
+# Estonian keymap
+# Ville Hallik <Ville.Hallik@mail.ee>
+#
+# Please note that there are two characters on estonian keyboard that
+# are'nt available in ISO-8859-15 charset: "currency" and "one_half". These
+# are provided here as hexadecimal codes 0xa4 and 0xbd as a convenience for
+# people who want to use this keymap with ISO-8859-1.
+
+charset "iso-8859-15"
+alt_is_meta
+keymaps 0-15
+strings as usual
+
+include "qwerty-layout"
+include "linux-with-alt-and-altgr"
+
+keycode   1 = Escape Escape
+keycode   2 = one exclam
+keycode   3 = two quotedbl at at nul nul nul nul
+keycode   4 = three numbersign sterling sterling
+keycode   5 = four 0xa4 dollar dollar
+keycode   6 = five percent
+keycode   7 = six ampersand VoidSymbol VoidSymbol \
+               Control_asciicircum Control_asciicircum \
+               Control_asciicircum Control_asciicircum
+keycode   8 = seven slash braceleft braceleft
+keycode   9 = eight parenleft bracketleft bracketleft \
+               Escape Escape Escape Escape
+keycode  10 = nine parenright bracketright bracketright \
+               Control_bracketright Control_bracketright \
+               Control_bracketright Control_bracketright
+keycode  11 = zero equal braceright braceright
+keycode  12 = plus question backslash backslash \
+               Control_underscore Control_underscore \
+               Control_backslash Control_backslash
+keycode  13 = dead_acute dead_grave dead_acute dead_grave
+keycode  14 = Delete Delete
+       control keycode 14 = BackSpace
+keycode  15 = Tab Tab
+keycode  18 = +e +E euro euro Control_e Control_e
+keycode  26 = +udiaeresis +Udiaeresis +udiaeresis +Udiaeresis Escape
+keycode  27 = +otilde +Otilde section section Control_bracketright
+keycode  28 = Return
+       alt keycode 28 = Meta_Control_m
+keycode  29 = Control
+keycode  31 = +s +S +scaron +Scaron Control_s Control_s
+keycode  39 = +odiaeresis +Odiaeresis +odiaeresis +Odiaeresis
+keycode  40 = +adiaeresis +Adiaeresis asciicircum asciicircum \
+               Control_asciicircum Control_asciicircum \
+               Control_asciicircum Control_asciicircum
+keycode  41 = dead_caron dead_tilde dead_caron dead_tilde
+       control keycode 41 = dead_diaeresis
+keycode  42 = Shift
+keycode  43 = apostrophe asterisk 0xbd 0xbd \
+               Control_backslash Control_backslash
+keycode  44 = +z +Z +zcaron +Zcaron Control_z Control_z
+keycode  51 = comma semicolon
+keycode  52 = period colon
+       control keycode 52 = Compose
+keycode 53 = minus underscore VoidSymbol VoidSymbol \
+               Control_underscore Control_underscore
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space space
+       control keycode 57 = nul
+keycode  58 = Caps_Lock
+keycode  83 = KP_Comma
+keycode  86 = less greater bar bar
+keycode  97 = Control
+
+# These are the three extra keys found on Win95 keyboards:
+keycode 125 = 
+keycode 126 = 
+keycode 127 = Compose
+
+# Most compose definitions are same as for iso-8859-1
+compose as usual for "iso-8859-1"
+
+# Add some ISO-8859-15 specific compose definitions:
+compose '^' 's' to scaron
+compose '^' 'S' to Scaron
+compose '^' 'z' to zcaron
+compose '^' 'Z' to Zcaron
+compose 'o' 'e' to oe
+compose 'O' 'E' to OE
+compose '"' 'Y' to Ydiaeresis
+compose 'I' 'J' to Ydiaeresis
+compose '=' 'c' to euro
+compose '=' 'C' to euro
diff --git a/data/keymaps/i386/qwerty/lt.baltic.map b/data/keymaps/i386/qwerty/lt.baltic.map
new file mode 100644 (file)
index 0000000..5d8ddbd
--- /dev/null
@@ -0,0 +1,230 @@
+# lt.map
+# KeyMap table for Lithuanian users (Baltic character set)
+# was written in 1999.04.01 by Gediminas Bukauskas:
+#        Lithuania, Kaunas 3000
+#        Raudonikiu 3 - 1
+#                  phone: (827) 793622
+#                  Email: bukagedi@takas.lt
+# Lithuanian characters are placed on first row:
+#     1 - A ogonek       4 - E aboveDot      7 - U ogonek
+#     2 - C coron        5 - I ogonek        8 - U macron
+#     3 - E ogonek       6 - S caron         = - Z caron
+# Original signes are achieved by shifting Alt keys:
+#     left Alt (Alt)    ->   1 2 3 4 5 6 7 8 =
+#     right Alt (AltGr) ->   ! @ # $ % ^ & * +
+# Loading this keymap table makes Linux data files readable by Windows 95/98
+# panEuropean edition. The same keys mapping in the Xmodmap.baltic table
+# makes it possible to use your favorite True Type fonts from Windows.
+# Usage:
+#      loadkeys lt.baltic.map; setfont lat4u-16.psf -m baltic
+# You can use a font from the set lat4u-*.psf
+charset "iso-8859-4"
+keymaps 0-2,4-6,8-9,12
+#alt_is_meta
+keycode   1 = Escape           Escape          
+keycode   2 = +0xE0         +0xC0          exclam          nul            nul           nul            one
+keycode   3 = +0xE8         +0xC8          at              nul            nul           nul            two
+keycode   4 = +0xE6         +0xC6          numbersign      nul            nul           nul            three
+#      control keycode   4 = Escape          
+keycode   5 = +0xEB         +0xCB          dollar          nul            nul           nul            four
+keycode   6 = +0xE1         +0xC1          percent         nul            nul           nul            five
+#      control keycode   6 = Control_bracketright
+keycode   7 = +0xF0         +0xD0          asciicircum     nul            nul           nul            six
+#      control keycode   7 = Control_asciicircum
+keycode   8 = +0xF8         +0xD8          ampersand       nul            nul           nul            seven
+keycode   9 = +0xFB         +0xDB          asterisk        nul            nul           nul            eight
+keycode  10 = nine             parenleft         parenleft       nul            nul           nul            nine
+keycode  11 = zero             parenright        parenright      nul            nul           nul            zero
+keycode  12 = minus            underscore        underscore      nul            nul           nul            minus
+keycode  13 = +0xFE          +0xDE           plus            nul            nul           nul            equal
+keycode  14 = Delete           Delete          
+keycode  15 = Tab              Tab             
+keycode  16 = q               
+keycode  17 = w               
+keycode  18 = e               
+keycode  19 = r               
+keycode  20 = t               
+keycode  21 = y               
+keycode  22 = u               
+keycode  23 = i               
+keycode  24 = o               
+keycode  25 = p               
+keycode  26 = bracketleft      braceleft       
+       control keycode  26 = Escape          
+keycode  27 = bracketright     braceright       asciitilde       Control_bracketright
+keycode  28 = Return          
+       alt     keycode  28 = Meta_Control_m  
+keycode  29 = Control         
+keycode  30 = a               
+keycode  31 = s               
+keycode  32 = d               
+keycode  33 = f               
+keycode  34 = g               
+keycode  35 = h               
+keycode  36 = j               
+keycode  37 = k               
+keycode  38 = l               
+keycode  39 = semicolon        colon           
+keycode  40 = apostrophe       quotedbl        
+       control keycode  40 = Control_g       
+keycode  41 = grave            asciitilde        asciitilde      nul            nul           nul            grave
+       control keycode  41 = nul             
+keycode  42 = Shift           
+keycode  43 = backslash        bar               bar             nul            nul           nul            backslash
+       control keycode  43 = Control_backslash
+keycode  44 = z               
+keycode  45 = x               
+keycode  46 = c               
+keycode  47 = v               
+keycode  48 = b               
+keycode  49 = n               
+keycode  50 = m               
+keycode  51 = comma            less            
+keycode  52 = period           greater         
+keycode  53 = slash            question        
+       control keycode  53 = Delete          
+keycode  54 = Shift           
+keycode  55 = KP_Multiply     
+keycode  56 = Alt             
+keycode  57 = space            space           
+       control keycode  57 = nul             
+keycode  58 = Caps_Lock       
+keycode  59 = F1               F11              Console_13       F1              
+       alt     keycode  59 = Console_1       
+       control alt     keycode  59 = Console_1
+keycode  60 = F2               F12              Console_14       F2              
+       alt     keycode  60 = Console_2       
+       control alt     keycode  60 = Console_2
+keycode  61 = F3               F13              Console_15       F3              
+       alt     keycode  61 = Console_3       
+       control alt     keycode  61 = Console_3       
+keycode  62 = F4               F14              Console_16       F4              
+       alt     keycode  62 = Console_4       
+       control alt     keycode  62 = Console_4       
+keycode  63 = F5               F15              Console_17       F5              
+       alt     keycode  63 = Console_5       
+       control alt     keycode  63 = Console_5       
+keycode  64 = F6               F16              Console_18       F6              
+       alt     keycode  64 = Console_6       
+       control alt     keycode  64 = Console_6       
+keycode  65 = F7               F17              Console_19       F7              
+       alt     keycode  65 = Console_7       
+       control alt     keycode  65 = Console_7       
+keycode  66 = F8               F18              Console_20       F8              
+       alt     keycode  66 = Console_8       
+       control alt     keycode  66 = Console_8       
+keycode  67 = F9               F19              Console_21       F9              
+       alt     keycode  67 = Console_9       
+       control alt     keycode  67 = Console_9       
+keycode  68 = F10              F20              Console_22       F10             
+       alt     keycode  68 = Console_10      
+       control alt     keycode  68 = Console_10      
+keycode  69 = Num_Lock        
+keycode  70 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
+       alt     keycode  70 = Scroll_Lock     
+keycode  71 = KP_7            
+       alt     keycode  71 = Ascii_7         
+keycode  72 = KP_8            
+       alt     keycode  72 = Ascii_8         
+keycode  73 = KP_9            
+       alt     keycode  73 = Ascii_9         
+keycode  74 = KP_Subtract     
+keycode  75 = KP_4            
+       alt     keycode  75 = Ascii_4         
+keycode  76 = KP_5            
+       alt     keycode  76 = Ascii_5         
+keycode  77 = KP_6            
+       alt     keycode  77 = Ascii_6         
+keycode  78 = KP_Add          
+keycode  79 = KP_1            
+       alt     keycode  79 = Ascii_1         
+keycode  80 = KP_2            
+       alt     keycode  80 = Ascii_2         
+keycode  81 = KP_3            
+       alt     keycode  81 = Ascii_3         
+keycode  82 = KP_0            
+       alt     keycode  82 = Ascii_0         
+keycode  83 = KP_Period       
+       altgr   control keycode  83 = Boot            
+       control alt     keycode  83 = Boot            
+keycode  84 = Last_Console    
+keycode  85 =
+keycode  86 = less             greater          bar             
+keycode  87 = F11              F11              Console_23       F11             
+       alt     keycode  87 = Console_11      
+       control alt     keycode  87 = Console_11      
+keycode  88 = F12              F12              Console_24       F12             
+       alt     keycode  88 = Console_12      
+       control alt     keycode  88 = Console_12      
+keycode  89 =
+keycode  90 =
+keycode  91 =
+keycode  92 =
+keycode  93 =
+keycode  94 =
+keycode  95 =
+keycode  96 = KP_Enter        
+keycode  97 = Control         
+keycode  98 = KP_Divide       
+keycode  99 = Control_backslash
+       control keycode  99 = Control_backslash
+keycode 100 = AltGr           
+keycode 101 = Break           
+keycode 102 = Find            
+keycode 103 = Up              
+keycode 104 = Prior           
+       shift   keycode 104 = Scroll_Backward 
+keycode 105 = Left            
+       alt     keycode 105 = Decr_Console    
+keycode 106 = Right           
+       alt     keycode 106 = Incr_Console    
+keycode 107 = Select          
+keycode 108 = Down            
+keycode 109 = Next            
+       shift   keycode 109 = Scroll_Forward  
+keycode 110 = Insert          
+keycode 111 = Remove          
+       altgr   control keycode 111 = Boot            
+       control alt     keycode 111 = Boot            
+keycode 112 =
+keycode 113 =
+keycode 114 =
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
diff --git a/data/keymaps/i386/qwerty/lt.l4.map b/data/keymaps/i386/qwerty/lt.l4.map
new file mode 100644 (file)
index 0000000..1fdb1e9
--- /dev/null
@@ -0,0 +1,583 @@
+charset "iso-8859-4"
+#
+# version 1.12.
+#     Lithuanian key-map for PC         101/102 keyboard.
+# Comments & bug reports to: Rièardas Èepas <rch@WriteMe.Com>
+# http://www.angelfire.com/me/rch/ll.html
+#
+#     Usage:
+#      kbd_mode -a; loadkeys lt.l4.map; setfont lat4u* -m vga2iso
+# and press Ctrl+Alt+4
+#     Or:
+#      kbd_mode -u; loadkeys lt.map; setfont LatArCyrHeb* -m vga2iso
+# and press Ctrl+Alt+8
+#
+# `vga2iso' screen-map is  for non-Unicode mode to get proper ISO 8859-4
+# font maping.
+#
+#
+#     BUGS: Caps-Lock doesn't work  properly for Unicode characters. Use
+# Shift-Lock (Control+Caps-Lock) instead if you really need that.
+#     Differences between this and  default Linux 2.0.29 key-map:
+#     AltGr is used  for Lithuanian mode and  AltGr+key combinations are
+# changed to Alt+Shift+key. Hex codes can  be entered using keypad while
+# Control+Shift or Alt+Shift is pressed. Keypad layout for hex digits:
+#              A  B  C  D
+#              7  8  9  E
+#              4  5  6  E
+#              1  2  3  F
+#               00      F
+#     Latin   <->  Lithuanian  modes  are   toggled  by   Alt+Enter  or
+# Alt+Control+Enter or Alt+Caps-Lock. AltGr (right Alt) can  be used to
+# shift the mode. Key between left Control and Alt on German keyboard is
+# another AltGr.
+#     Keyboard layout (upper row of number keys) :
+#   1!¡    2@È    3#Ê    4$Ì   5 %Ç    6^©   7&Ù     8*Þ    9(" 0)" -_  +=®Z
+# Aogonek Ccaron Eogonek Edot Iogonek Scaron Uogonek Umacron ,,  "  -_ Zcaron
+# All other keys are the same in both modes.
+#     Control+Alt+u   or  Control+Alt+8   generates  command   line  for
+# switching *current* (only) virtual console to Unicode mode.
+#     Control+Alt+1 - default ISO 8859-1 charset mapping and non-Unicode
+# mode.
+#     Control+Alt+4  - ISO  8859-4 charset  mapping if  you have  loaded
+# LatArCyrHeb* (or  lat4u-*) font  with `vga2iso' screen  map. Or lat4-*
+# font with `trivial' screen map.
+#
+#     Backspace key (above Return/Enter)  generates BackSpace (^H, octal
+# 010) and should delete a character before cursor. Delete key generates
+# Delete (^?, octal 177) and  should delete a character above cursor. If
+# that doesn't happen you should:
+# 1) Edit /etc/login.defs - ERASE_CHAR 010
+# or run `reset' - should set stty erase character to ^H
+# or run `stty erase ^H'
+#
+# 2) Add to /etc/profile commands:
+#      kbd_mode -u  if you want input characters in Unicode.
+#
+# 3) [You don't need 3) if you use linux+utf8 or linux+k terminfo entry.]
+#  Fix terminfo entry:  infocmp -L linux >/tmp/linux
+#  Edit file /tmp/linux         It should have key_backspace and key_dc entries:
+#      key_backspace=^H, key_btab=\E[Z, key_dc=\177, 
+#      key_sdc=\E[3$, key_send=\E[8$, key_shome=\E[7$, key_sic=\E[2$,
+#      key_sleft=\E[d, key_sright=\E[c,
+#  Compile entry (as root):  tic /tmp/linux
+# 4) For bash and other programs using readline library create
+# ~/.inputrc or file pointed by INPUTRC variable, or /etc/inputrc
+# for newer versions:
+#             set meta-flag On
+#             set convert-meta Off
+#             set input-meta On
+#             set output-meta On
+#             "\C-h": backward-delete-char
+#             "\e\C-h": backward-kill-word
+#             "\e[1~": beginning-of-line
+#             "\e[H": beginning-of-line
+#             "\e[7~": beginning-of-line
+#             "\eOH": beginning-of-line
+#             "\e[d": backward-word
+#             "\C-?": delete-char
+#             "\e[3~": delete-char
+#             "\e[4~": end-of-line
+#             "\e[F": end-of-line
+#             "\e[8~": end-of-line
+#             "\eOF": end-of-line
+#             "\e[c": forward-word
+#             "\e\C-?": kill-word
+# 4) Add to /etc/init.d/boot ( this startup file may be other for you system):
+#       kbd_mode -u; loadkeys lt.map
+# or    kbd_mode -a; loadkeys lt.l4.map
+# loadkeys affects all virtual consoles.
+#
+#      Control+BackSpace   is  Delete  and  Control+Delete   is  Remove
+# (VT100   key).   Most          Meta_  and   Control_Meta_  combinations   are
+# enabled.
+#      Control+Space gives nul, Shift+Control+Space - non-break space.
+#      Shift+Control+minus    gives    discretionary   (soft)    hyphen,
+# Shift+Alt+minus - quotation dash  (long) and Shift+Control+Alt+minus -
+# non-breaking hyphen.
+#      Control+Alt+double_quote  gives  double  turned  comma  quotation
+# mark,  Shift+Control+Alt+double_quote  gives  double  comma  quotation
+# mark.
+#      Shift+Function  gives functions  F11..22,  Control+F. -  F21..32,
+# Shift+Control+F. - F31..42. Shift+[Control+]Alt+F.  - virtual consoles
+# 13..24.
+#      Added  Back_Tab as  Shift+Tab,  shifted  arrows, Insert,  Delete,
+# Home, End as in rxvt terminal.
+#      Added F1 as Shift+Control+H (Emacs "feature").
+#
+#      See kbd.FAQ for more info on Linux key-map.
+
+
+keymaps 0-15
+#             Plain  +Shift          +Shift
+#                            +AltGr  +AltGr
+# Plain                 0       1       2       3
+# +Control      4       5       6       7
+# +Alt          8       9      10      11
+# +Control+Alt 12      13      14      15
+
+#      AltGr = right Alt
+
+
+keycode          1 = Escape           Escape           Escape           Escape    \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
+             Meta_Escape      Meta_Escape      Meta_Escape      Meta_Escape 
+
+#                                              +aogonek ±       +Aogonek ¡
+keycode          2 = one              exclam           +aogonek                 +Aogonek          \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
+             Meta_one         Meta_exclam      Meta_one         Meta_exclam \
+             F202             F202             F202             F202
+# ISO 8859-1 - default Linux map
+string F202 = "kbd_mode -a; echo -ne '\\033\\045@\\033(B'\015"
+
+#                                              +ccaron è        +Ccaron È
+keycode          3 = two              at               +ccaron          +Ccaron           \
+             nul              nul              nul              nul        \
+             Meta_two         Meta_at          Meta_two         Meta_at     \
+             nul              nul              nul              nul
+
+#                                              +eogonek ê       +Eogonek Ê
+keycode          4 = three            numbersign       +eogonek                 +Eogonek          \
+             Escape           Escape           Escape           Escape     \
+             Meta_three       Meta_numbersign  Meta_three       Meta_numbersign
+
+#                                              +eabovedot ì     +Eabovedot Ì
+keycode          5 = four             dollar           +eabovedot               +Eabovedot        \
+    Control_backslash Control_backslash Control_backslash Control_backslash \
+             Meta_four        Meta_dollar      Meta_four        Meta_dollar \
+             F201             F201             F201             F201
+# ISO 8859-4 or other user map
+string F201 = "kbd_mode -a; echo -ne '\\033\\045@\\033(K'\015"
+
+#                                              +iogonek ç        +Iogonek Ç
+keycode          6 = five             percent          +iogonek                 +Iogonek           \
+       Control_bracketright Control_bracketright Control_bracketright \
+                                                       Control_bracketright \
+             Meta_five        Meta_percent     Meta_five        Meta_percent
+
+#                                              +scaron  ¹       +Scaron ©
+keycode          7 = six              asciicircum      +scaron          +Scaron            \
+             Control_asciicircum Control_asciicircum Control_asciicircum \
+                                                        Control_asciicircum \
+             Meta_six         Meta_asciicircum Meta_six    Meta_asciicircum \
+ Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum \
+                                                      Meta_Control_asciicircum
+
+#                                              +uogonek ù       +Uogonek Ù
+keycode          8 = seven            ampersand        +uogonek                 +Uogonek          \
+             Control_underscore Control_underscore Control_underscore \
+                                                       Control_underscore  \
+             Meta_seven       Meta_ampersand   Meta_seven       Meta_ampersand
+
+#                                              +umacron þ       +Umacron Þ      
+keycode          9 = eight            asterisk         +umacron                 +Umacron        \
+             Delete           Delete           Delete           Delete   \
+             Meta_eight       Meta_asterisk    Meta_eight   Meta_asterisk \
+             F200             F200             F200             F200
+# UTF-8
+string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015" 
+
+
+# 201E    not available in ISO 8859-4 low_double_comma_quotation_mark "
+keycode         10 = nine             parenleft        0x90             parenleft \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
+             Meta_nine        Meta_parenleft   Meta_nine        Meta_parenleft
+
+# 201C    not available in ISO 8859-4 double_turned_comma_quotation_mark "
+keycode         11 = zero             parenright       0x91             parenright \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol  \
+             Meta_zero        Meta_parenright  Meta_zero        Meta_parenright
+
+# 00AD    soft hyphen = discretionary hyphen
+# 2015    horizontal bar = quotation dash * long dash introducing quoted text
+# 2011    non-breaking hyphen
+keycode         12 = minus            underscore       minus            underscore  \
+             Control_underscore hyphen         Control_underscore hyphen \
+             Meta_minus       minus            Meta_minus       minus \
+             Meta_Control_underscore minus     Meta_Control_underscore minus
+
+#                                              +zcaron ¾        +Zcaron  ®
+keycode         13 = equal            plus             +zcaron          +Zcaron            \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol  \
+             Meta_equal       Meta_plus        Meta_equal       Meta_plus 
+
+#      edit this if you want the key above <Enter> to delete symbols above
+# cursor, not before.
+keycode         14 = \
+             BackSpace        BackSpace        BackSpace        BackSpace  \
+             Delete           Delete           Delete           Delete      \
+             Meta_BackSpace   Meta_BackSpace   Meta_BackSpace Meta_BackSpace \
+             Meta_Delete      Meta_Delete      Meta_Delete      Meta_Delete  
+
+string F215 = "\033[Z"
+keycode         15 = Tab              F215             Tab              F215      \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
+             Meta_Tab         Meta_Tab         Meta_Tab         Meta_Tab  
+
+# Single characters are defined by default.
+keycode         16 = +q
+keycode         17 = +w
+keycode         18 = +e
+keycode         19 = +r
+keycode         20 = +t
+keycode         21 = +y
+keycode         22 = +u
+             control  alt     keycode  22 = F200
+  shift              control  alt     keycode  22 = F200
+       altgr control  alt     keycode  22 = F200
+  shift altgr control  alt     keycode 22 = F200
+# UTF-8
+#string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015" 
+
+keycode         23 = +i
+keycode         24 = +o
+keycode         25 = +p
+keycode         26 = bracketleft      braceleft       bracketleft      braceleft  \
+             Escape           Escape          Escape           Escape      \
+             Meta_bracketleft Meta_braceleft  Meta_bracketleft Meta_braceleft
+
+keycode         27 = bracketright     braceright      bracketright     braceright \
+             Control_bracketright Control_bracketright \
+                                 Control_bracketright Control_bracketright \
+        Meta_bracketright Meta_braceright Meta_bracketright Meta_braceright \
+             Meta_Control_bracketright Meta_Control_bracketright \
+                          Meta_Control_bracketright Meta_Control_bracketright
+
+keycode         28 = Return           Return           Return          Return    \
+             Return           Return           Return          Return     \
+             AltGr_Lock       AltGr_Lock       AltGr_Lock      AltGr_Lock  \
+             AltGr_Lock       AltGr_Lock       AltGr_Lock      AltGr_Lock
+
+keycode         29 = Control
+keycode         30 = +a
+keycode         31 = +s
+keycode         32 = +d
+keycode         33 = +f
+keycode         34 = +g
+keycode         35 = +h
+       shift control   keycode 35 = F1
+       shift AltGr control   keycode 35 = F1
+
+keycode         36 = +j
+keycode         37 = +k
+keycode         38 = +l
+keycode         39 = semicolon        colon           semicolon        colon     \
+             VoidSymbol       VoidSymbol      VoidSymbol       VoidSymbol \
+             Meta_semicolon   Meta_colon      Meta_semicolon   Meta_colon
+
+# 201C    left double quotation mark = double turned comma quotation mark "
+# 201D    right double quotation mark = double comma quotation mark "
+keycode         40 = apostrophe       quotedbl        apostrophe       quotedbl  \
+             Control_g        Control_g       Control_g        Control_g  \
+             Meta_apostrophe  Meta_quotedbl   Meta_apostrophe  Meta_quotedbl \
+             0x91             quotedbl        0x91             quotedbl
+
+keycode         41 = grave            asciitilde      grave            asciitilde \
+             nul              nul             nul              nul         \
+             Meta_grave       Meta_asciitilde Meta_grave     Meta_asciitilde
+
+keycode         42 = Shift
+
+keycode         43 = backslash        bar             backslash        bar \
+      Control_backslash Control_backslash Control_backslash Control_backslash \
+             Meta_backslash   Meta_bar        Meta_backslash   Meta_bar \
+             Meta_Control_backslash Meta_Control_backslash \
+                                Meta_Control_backslash Meta_Control_backslash
+keycode         44 = +z
+keycode         45 = +x
+keycode         46 = +c
+keycode         47 = +v
+keycode         48 = +b
+keycode         49 = +n
+keycode         50 = +m
+keycode         51 = comma            less             comma            less      \
+             VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
+             Meta_comma       Meta_less        Meta_comma       Meta_less
+
+keycode         52 = period           greater          period           greater    \
+             Compose          Compose          Compose          Compose     \
+             Meta_period      Meta_greater     Meta_period      Meta_greater
+
+keycode         53 = slash            question         slash            question    \
+             Delete           Delete           Delete           Delete       \
+             Meta_slash       Meta_question    Meta_slash       Meta_question
+
+keycode         54 = Shift           
+
+keycode         55 = KP_Multiply      KP_Multiply      KP_Multiply      KP_Multiply \
+             KP_Multiply      Hex_C            KP_Multiply      Hex_C       \
+             KP_Multiply      Hex_C            KP_Multiply      Hex_C        \
+             KP_Multiply      KP_Multiply      KP_Multiply      KP_Multiply
+
+keycode         56 = Alt
+
+#                             0xA0 no-break space
+keycode         57 = space            space            space            space       \
+             nul              nobreakspace             nul              nobreakspace         \
+             Meta_space       Meta_space       Meta_space       Meta_space    \
+             VoidSymbol       nobreakspace             VoidSymbol       nobreakspace
+
+keycode         58 = Caps_Lock        Caps_Lock        Caps_Lock        Caps_Lock \
+             Shift_Lock       Shift_Lock       Shift_Lock       Shift_Lock \
+             AltGr_Lock       AltGr_Lock       AltGr_Lock       AltGr_Lock  \
+             Caps_Lock        Caps_Lock        Caps_Lock        Caps_Lock
+
+keycode         59 = F1               F11              F1               F11      \
+             F21              F31              F21              F31       \
+             Console_1        Console_13       Console_1        Console_13 \
+             Console_1        Console_13       Console_1        Console_13
+keycode         60 = F2               F12              F2               F12      \
+             F22              F32              F22              F32       \
+             Console_2        Console_14       Console_2        Console_14 \
+             Console_2        Console_14       Console_2        Console_14
+keycode         61 = F3               F13              F3               F13      \
+             F23              F33              F23              F33       \
+             Console_3        Console_15       Console_3        Console_15 \
+             Console_3        Console_15       Console_3        Console_15
+keycode         62 = F4               F14              F4               F14      \
+             F24              F34              F24              F34       \
+             Console_4        Console_16       Console_4        Console_16 \
+             Console_4        Console_16       Console_4        Console_16
+keycode         63 = F5               F15              F5               F15      \
+             F25              F35              F25              F35       \
+             Console_5        Console_17       Console_5        Console_17 \
+             Console_5        Console_17       Console_5        Console_17
+keycode         64 = F6               F16              F6               F16      \
+             F26              F36              F26              F36       \
+             Console_6        Console_18       Console_6        Console_18 \
+             Console_6        Console_18       Console_6        Console_18
+keycode         65 = F7               F17              F7               F17      \
+             F27              F37              F27              F37       \
+             Console_7        Console_19       Console_7        Console_19 \
+             Console_7        Console_19       Console_7        Console_19
+keycode         66 = F8               F18              F8               F18      \
+             F28              F38              F28              F38       \
+             Console_8        Console_20       Console_8        Console_20 \
+             Console_8        Console_20       Console_8        Console_20
+keycode         67 = F9               F19              F9               F19      \
+             F29              F39              F29              F39       \
+             Console_9        Console_21       Console_9        Console_21 \
+             Console_9        Console_21       Console_9        Console_21
+keycode         68 = F10              F20              F10              F20      \
+             F30              F40              F30              F40       \
+             Console_10       Console_22       Console_10       Console_22 \
+             Console_10       Console_22       Console_10       Console_22
+keycode         69 = Num_Lock         Bare_Num_Lock    Num_Lock         Bare_Num_Lock \
+             Num_Lock         Hex_A            Num_Lock         Hex_A      \
+             Num_Lock         Hex_A            Num_Lock         Hex_A       \
+             Num_Lock         Num_Lock         Num_Lock         Num_Lock
+keycode         70 = Scroll_Lock      Show_Memory      Scroll_Lock      Show_Memory \
+             Show_State       VoidSymbol       Show_State       VoidSymbol   \
+             Scroll_Lock      Show_Registers   Scroll_Lock      Show_Registers
+keycode         71 = KP_7             KP_7             KP_7             KP_7  \
+             KP_7             Hex_7            KP_7             Hex_7  \
+             Ascii_7          Hex_7            Ascii_7          Hex_7   \
+             KP_7             KP_7             KP_7             KP_7
+keycode         72 = KP_8             KP_8             KP_8             KP_8  \
+             KP_8             Hex_8            KP_8             Hex_8  \
+             Ascii_8          Hex_8            Ascii_8          Hex_8   \
+             KP_8             KP_8             KP_8             KP_8
+keycode         73 = KP_9             KP_9             KP_9             KP_9  \
+             KP_9             Hex_9            KP_9             Hex_9  \
+             Ascii_9          Hex_9            Ascii_9          Hex_9   \
+             KP_9             KP_9             KP_9             KP_9
+keycode         74 = KP_Subtract      KP_Subtract      KP_Subtract      KP_Subtract \
+             KP_Subtract      Hex_D            KP_Subtract      Hex_D       \
+             KP_Subtract      Hex_D            KP_Subtract      Hex_D        \
+             KP_Subtract      KP_Subtract      KP_Subtract      KP_Subtract
+keycode         75 = KP_4             KP_4             KP_4             KP_4  \
+             KP_4             Hex_4            KP_4             Hex_4  \
+             Ascii_4          Hex_4            Ascii_4          Hex_4   \
+             KP_4             KP_4             KP_4             KP_4
+keycode         76 = KP_5             KP_5             KP_5             KP_5  \
+             KP_5             Hex_5            KP_5             Hex_5  \
+             Ascii_5          Hex_5            Ascii_5          Hex_5   \
+             KP_5             KP_5             KP_5             KP_5
+keycode         77 = KP_6             KP_6             KP_6             KP_6  \
+             KP_6             Hex_6            KP_6             Hex_6  \
+             Ascii_6          Hex_6            Ascii_6          Hex_6   \
+             KP_6             KP_6             KP_6             KP_6
+keycode         78 = KP_Add           KP_Add           KP_Add           KP_Add \
+             KP_Add           Hex_E            KP_Add           Hex_E   \
+             KP_Add           Hex_E            KP_Add           Hex_E    \
+             KP_Add           KP_Add           KP_Add           KP_Add
+keycode         79 = KP_1             KP_1             KP_1             KP_1  \
+             KP_1             Hex_1            KP_1             Hex_1  \
+             Ascii_1          Hex_1            Ascii_1          Hex_1   \
+             KP_1             KP_1             KP_1             KP_1
+keycode         80 = KP_2             KP_2             KP_2             KP_2  \
+             KP_2             Hex_2            KP_2             Hex_2  \
+             Ascii_2          Hex_2            Ascii_2          Hex_2   \
+             KP_2             KP_2             KP_2             KP_2
+keycode         81 = KP_3             KP_3             KP_3             KP_3  \
+             KP_3             Hex_3            KP_3             Hex_3  \
+             Ascii_3          Hex_3            Ascii_3          Hex_3   \
+             KP_3             KP_3             KP_3             KP_3
+keycode         82 = KP_0             KP_0             KP_0             KP_0  \
+             KP_0             Hex_0            KP_0             Hex_0  \
+             Ascii_0          Hex_0            Ascii_0          Hex_0   \
+             KP_0             KP_0             KP_0             KP_0
+keycode         83 = KP_Period
+       control alt     keycode  83 = Boot            
+       altgr control   alt     keycode  83 = Boot            
+
+#       Alt + print-screen
+keycode         84 = Last_Console
+keycode         85 =
+#keycode  86 = less            greater          bar             
+#       alt     keycode  86 = Meta_less       
+
+# On German keyboards it is between left control and left alt keys:
+keycode         86 = AltGr
+
+keycode         87 = F11              F21              F11              F21      \
+             F31              F41              F31              F41       \
+             Console_11       Console_23       Console_11       Console_23 \
+             Console_11       Console_23       Console_11       Console_23
+keycode         88 = F12              F22              F12              F22      \
+             F32              F42              F32              F42       \
+             Console_12       Console_24       Console_12       Console_24 \
+             Console_12       Console_24       Console_12       Console_24
+keycode         89 =
+keycode         90 =
+keycode         91 =
+keycode         92 =
+keycode         93 =
+keycode         94 =
+keycode         95 =
+keycode         96 = KP_Enter         KP_Enter         KP_Enter         KP_Enter \
+             KP_Enter         Hex_F            KP_Enter         Hex_F     \
+             AltGr_Lock       Hex_F            AltGr_Lock       Hex_F      \
+             AltGr_Lock       AltGr_Lock       AltGr_Lock       AltGr_Lock
+
+keycode         97 = Control
+
+keycode         98 = KP_Divide        KP_Divide        KP_Divide        KP_Divide \
+             KP_Divide        Hex_B            KP_Divide        Hex_B      \
+             KP_Divide        Hex_B            KP_Divide        Hex_B       \
+             KP_Divide        KP_Divide        KP_Divide        KP_Divide
+
+keycode         99 = Control_backslash  # 99=Print-Screen
+keycode 100 = AltGr
+keycode 101 = Break #  101=Control-Pause
+string F102 = "\033[7$"
+keycode 102 = Find  #  =Home
+       shift         keycode 102 = F102
+       shift AltGr   keycode 102 = F102
+string F103 = "\033[a"
+keycode 103 = Up
+       shift         keycode 103 = F103
+       shift AltGr   keycode 103 = F103
+       alt           keycode 103 = Spawn_Console   
+       AltGr alt     keycode 103 = Spawn_Console   
+       shift alt           keycode 103 = Spawn_Console   
+       shift AltGr alt     keycode 103 = Spawn_Console   
+keycode 104 = Prior #  =PageUp
+       shift         keycode 104 = Scroll_Backward
+       AltGr shift   keycode 104 = Scroll_Backward
+string F105 = "\033[d"
+keycode 105 =  Left            F105            Left            F105 \
+               Left            F105            Left            F105 \
+               Decr_Console    Decr_Console    Decr_Console    Decr_Console \
+               Decr_Console    Decr_Console    Decr_Console    Decr_Console
+string F106 = "\033[c"
+keycode 106 =  Right           F106            Right           F106 \
+               Right           F106            Right           F106 \
+               Incr_Console    Incr_Console    Incr_Console    Incr_Console \
+               Incr_Console    Incr_Console    Incr_Console    Incr_Console
+string F107 = "\033[8$"
+keycode 107 = Select   # =End
+       shift         keycode 107 = F107
+       shift AltGr   keycode 107 = F107
+string F108 = "\033[b"
+keycode 108 = Down
+       shift         keycode 108 = F108
+       shift AltGr   keycode 108 = F108
+keycode 109 = Next  #   =PageDown
+       shift         keycode 109 = Scroll_Forward
+       AltGr shift   keycode 109 = Scroll_Forward
+string F110 = "\033[2$"
+keycode 110 = Insert
+       shift         keycode 110 = F110
+       shift AltGr   keycode 110 = F110
+
+# Edit this if you want strict VT100 emulation.
+string F111 = "\033[3$"
+keycode 111 = Delete          F111             Delete           F111      \
+             Remove           Remove           Remove           Remove     \
+             Meta_Delete      Meta_Delete      Meta_Delete      Meta_Delete \
+             Boot             Boot             Boot             Boot
+
+# My PC 102 keyboard seems don't have 112-118. 
+keycode 112 = Macro
+keycode 113 = F13
+keycode 114 = F14
+keycode 115 = Help
+keycode 116 = Do
+keycode 117 = F17
+keycode 118 = KP_MinPlus
+
+keycode 119 = Pause
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string F21 = "\033[35~"
+string F22 = "\033[36~"
+string F23 = "\033[37~"
+string F24 = "\033[38~"
+string F25 = "\033[39~"
+string F26 = "\033[40~"
+string F27 = "\033[41~"
+string F28 = "\033[42~"
+string F29 = "\033[43~"
+string F30 = "\033[44~"
+string F31 = "\033[45~"
+string F32 = "\033[46~"
+string F33 = "\033[47~"
+string F34 = "\033[48~"
+string F35 = "\033[49~"
+string F36 = "\033[50~"
+string F37 = "\033[51~"
+string F38 = "\033[52~"
+string F39 = "\033[53~"
+string F40 = "\033[54~"
+string F41 = "\033[55~"
+string F42 = "\033[56~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+
+#   ISO-8859-1 characters - don't work in Unicode mode as of
+# loadkeys V.89 and Linux 2.0.29. Use Control+Alt+1 to see them.
+compose as usual for "iso-8859-1"
similarity index 87%
rename from keymaps/i386/qwerty/lt.map
rename to data/keymaps/i386/qwerty/lt.map
index ddc88b5..2cbb4fc 100644 (file)
@@ -1,13 +1,20 @@
-#charset "iso-10646"
-#charset "iso-8859-4"
-#encoding: UTF-8
-# Use  echo -ne '\033%G'   on current console to see all characters properly.
+#encoding "UTF-8"
+#
+# version 1.12.
+#     Lithuanian key-map for PC         101/102 keyboard.
+# Comments & bug reports to: Ričardas Čepas <rch@WriteMe.Com>
+# http://www.angelfire.com/me/rch/ll.html
 #
-#     Lithuanian key-map for PC         101/102 keyboard in Unicode mode. V1.03.
-# Comments & bug reports to: Ričardas Čepas <rch@pub.osf.lt>
 #     Usage:
+#      kbd_mode -a; loadkeys lt.l4.map; setfont lat4u* -m vga2iso
+# and press Ctrl+Alt+4
+#     Or:
 #      kbd_mode -u; loadkeys lt.map; setfont LatArCyrHeb* -m vga2iso
-# `vga2iso' map is  for non-Unicode mode to get proper ISO 8859-4 font maping.
+# and press Ctrl+Alt+8
+#
+# `vga2iso' screen-map is  for non-Unicode mode to get proper ISO 8859-4
+# font mapping.
+#
 #
 #     BUGS: Caps-Lock doesn't work  properly for Unicode characters. Use
 # Shift-Lock (Control+Caps-Lock) instead if you really need that.
 # 010) and should delete a character before cursor. Delete key generates
 # Delete (^?, octal 177) and  should delete a character above cursor. If
 # that doesn't happen you should:
-# 1) Add to ~/.bashrc and /etc/profile commands:
-#      reset # should set stty erase character to ^H
-#      kbd_mode -u
-# 2) [You don't need 2) if you use only linux+utf8 terminal.]
+# 1) Edit /etc/login.defs - ERASE_CHAR 010
+# or run `reset' - should set stty erase character to ^H
+# or run `stty erase ^H'
+#
+# 2) Add to /etc/profile commands:
+#      kbd_mode -u  if you want input characters in Unicode.
+#
+# 3) [You don't need 3) if you use linux+utf8 or linux+k terminfo entry.]
 #  Fix terminfo entry:  infocmp -L linux >/tmp/linux
 #  Edit file /tmp/linux         It should have key_backspace and key_dc entries:
-#      key_backspace=^H, key_btab=\E[Z, key_dc=\177,
+#      key_backspace=^H, key_btab=\E[Z, key_dc=\177, 
 #      key_sdc=\E[3$, key_send=\E[8$, key_shome=\E[7$, key_sic=\E[2$,
 #      key_sleft=\E[d, key_sright=\E[c,
 #  Compile entry (as root):  tic /tmp/linux
-# 3) For bash and other programs using libreadline library create
-# ~/.inputrc or global file pointed by INPUTRC variable:
+# 4) For bash and other programs using readline library create
+# ~/.inputrc or file pointed by INPUTRC variable, or /etc/inputrc
+# for newer versions:
 #             set meta-flag On
 #             set convert-meta Off
+#             set input-meta On
 #             set output-meta On
 #             "\C-h": backward-delete-char
 #             "\e\C-h": backward-kill-word
@@ -70,8 +83,9 @@
 #             "\eOF": end-of-line
 #             "\e[c": forward-word
 #             "\e\C-?": kill-word
-# 4) Add to /etc/init.d/boot ( this startup file may be other for you system):
+# 5) Add to /etc/init.d/boot ( this startup file may be other for you system):
 #       kbd_mode -u; loadkeys lt.map
+# or    kbd_mode -a; loadkeys lt.l4.map
 # loadkeys affects all virtual consoles.
 #
 #      Control+BackSpace   is  Delete  and  Control+Delete   is  Remove
 #
 #      See kbd.FAQ for more info on Linux key-map.
 
-
 keymaps 0-15
 #             Plain  +Shift          +Shift
 #                            +AltGr  +AltGr
@@ -104,11 +117,12 @@ keymaps 0-15
 
 #      AltGr = right Alt
 
+
 keycode          1 = Escape           Escape           Escape           Escape    \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
-             Meta_Escape      Meta_Escape      Meta_Escape      Meta_Escape
+             Meta_Escape      Meta_Escape      Meta_Escape      Meta_Escape 
 
-#                                              +aogonek \80Ä\85     +Aogonek Ą
+#                                              +aogonek ą      +Aogonek Ą
 keycode          2 = one              exclam           U+0105           U+0104    \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
              Meta_one         Meta_exclam      Meta_one         Meta_exclam \
@@ -155,28 +169,28 @@ keycode     8 = seven            ampersand        U+0173           U+0172    \
                                                        Control_underscore  \
              Meta_seven       Meta_ampersand   Meta_seven       Meta_ampersand
 
-#                                              +umacron ū      +Umacron Ū    
+#                                              +umacron ū      +Umacron Ū     
 keycode          9 = eight            asterisk         U+016b           U+016a  \
              Delete           Delete           Delete           Delete   \
              Meta_eight       Meta_asterisk    Meta_eight   Meta_asterisk \
              F200             F200             F200             F200
 # UTF-8
-string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015"
+string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015" 
 
 
-# U+201C    not available in ISO 8859-4 low_double_comma_quotation_mark „
+# 201E    not available in ISO 8859-4 low_double_comma_quotation_mark „
 keycode         10 = nine             parenleft        U+201e           parenleft \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
              Meta_nine        Meta_parenleft   Meta_nine        Meta_parenleft
 
-# U+201C    not available in ISO 8859-4 double_turned_comma_quotation_mark “
+# 201C    not available in ISO 8859-4 double_turned_comma_quotation_mark “
 keycode         11 = zero             parenright       U+201c           parenright \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol  \
              Meta_zero        Meta_parenright  Meta_zero        Meta_parenright
 
-# U+00AD    soft hyphen = discretionary hyphen
-# U+2015    horizontal bar = quotation dash * long dash introducing quoted text
-# U+2011    non-breaking hyphen
+# 00AD    soft hyphen = discretionary hyphen
+# 2015    horizontal bar = quotation dash * long dash introducing quoted text
+# 2011    non-breaking hyphen
 keycode         12 = minus            underscore       minus            underscore  \
              Control_underscore U+00ad         Control_underscore U+00ad \
              Meta_minus       U+2015           Meta_minus       U+2015 \
@@ -185,7 +199,7 @@ keycode      12 = minus            underscore       minus            underscore  \
 #                                              +zcaron ž       +Zcaron  Ž
 keycode         13 = equal            plus             U+017e           U+017d     \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol  \
-             Meta_equal       Meta_plus        Meta_equal       Meta_plus
+             Meta_equal       Meta_plus        Meta_equal       Meta_plus 
 
 #      edit this if you want the key above <Enter> to delete symbols above
 # cursor, not before.
@@ -193,12 +207,12 @@ keycode    14 = \
              BackSpace        BackSpace        BackSpace        BackSpace  \
              Delete           Delete           Delete           Delete      \
              Meta_BackSpace   Meta_BackSpace   Meta_BackSpace Meta_BackSpace \
-             Meta_Delete      Meta_Delete      Meta_Delete      Meta_Delete
+             Meta_Delete      Meta_Delete      Meta_Delete      Meta_Delete  
 
 string F215 = "\033[Z"
 keycode         15 = Tab              F215             Tab              F215      \
              VoidSymbol       VoidSymbol       VoidSymbol       VoidSymbol \
-             Meta_Tab         Meta_Tab         Meta_Tab         Meta_Tab
+             Meta_Tab         Meta_Tab         Meta_Tab         Meta_Tab  
 
 # Single characters are defined by default.
 keycode         16 = +q
@@ -213,7 +227,7 @@ keycode      22 = +u
        altgr control  alt     keycode  22 = F200
   shift altgr control  alt     keycode 22 = F200
 # UTF-8
-#string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015"
+#string F200 = "kbd_mode -u; echo -ne '\\033\\045G\\033(K'\015" 
 
 keycode         23 = +i
 keycode         24 = +o
@@ -251,8 +265,8 @@ keycode      39 = semicolon        colon           semicolon        colon     \
              VoidSymbol       VoidSymbol      VoidSymbol       VoidSymbol \
              Meta_semicolon   Meta_colon      Meta_semicolon   Meta_colon
 
-# U+201C    left double quotation mark = double turned comma quotation mark “
-# U+201D    right double quotation mark = double comma quotation mark ”
+# 201C    left double quotation mark = double turned comma quotation mark “
+# 201D    right double quotation mark = double comma quotation mark ”
 keycode         40 = apostrophe       quotedbl        apostrophe       quotedbl  \
              Control_g        Control_g       Control_g        Control_g  \
              Meta_apostrophe  Meta_quotedbl   Meta_apostrophe  Meta_quotedbl \
@@ -288,7 +302,7 @@ keycode      53 = slash            question         slash            question    \
              Delete           Delete           Delete           Delete       \
              Meta_slash       Meta_question    Meta_slash       Meta_question
 
-keycode         54 = Shift     
+keycode         54 = Shift           
 
 keycode         55 = KP_Multiply      KP_Multiply      KP_Multiply      KP_Multiply \
              KP_Multiply      Hex_C            KP_Multiply      Hex_C       \
@@ -404,14 +418,14 @@ keycode    82 = KP_0             KP_0             KP_0             KP_0  \
              Ascii_0          Hex_0            Ascii_0          Hex_0   \
              KP_0             KP_0             KP_0             KP_0
 keycode         83 = KP_Period
-       control alt     keycode  83 = Boot      
-       altgr control   alt     keycode  83 = Boot      
+       control alt     keycode  83 = Boot            
+       altgr control   alt     keycode  83 = Boot            
 
 #       Alt + print-screen
 keycode         84 = Last_Console
 keycode         85 =
-#keycode  86 = less            greater          bar            
-#       alt     keycode  86 = Meta_less
+#keycode  86 = less            greater          bar             
+#       alt     keycode  86 = Meta_less       
 
 # On German keyboards it is between left control and left alt keys:
 keycode         86 = AltGr
@@ -454,29 +468,23 @@ string F103 = "\033[a"
 keycode 103 = Up
        shift         keycode 103 = F103
        shift AltGr   keycode 103 = F103
-       alt           keycode 103 = Spawn_Console
-       AltGr alt     keycode 103 = Spawn_Console
-       shift alt           keycode 103 = Spawn_Console 
-       shift AltGr alt     keycode 103 = Spawn_Console 
+       alt           keycode 103 = Spawn_Console   
+       AltGr alt     keycode 103 = Spawn_Console   
+       shift alt           keycode 103 = Spawn_Console   
+       shift AltGr alt     keycode 103 = Spawn_Console   
 keycode 104 = Prior #  =PageUp
        shift         keycode 104 = Scroll_Backward
        AltGr shift   keycode 104 = Scroll_Backward
 string F105 = "\033[d"
-keycode 105 = Left
-       shift         keycode 105 = F105
-       shift AltGr   keycode 105 = F105
-       alt           keycode 105 = Decr_Console
-       AltGr alt     keycode 105 = Decr_Console
-       shift alt           keycode 105 = Decr_Console  
-       shift AltGr alt     keycode 105 = Decr_Console
+keycode 105 =  Left            F105            Left            F105 \
+               Left            F105            Left            F105 \
+               Decr_Console    Decr_Console    Decr_Console    Decr_Console \
+               Decr_Console    Decr_Console    Decr_Console    Decr_Console
 string F106 = "\033[c"
-keycode 106 = Right
-       shift         keycode 106 = F106
-       shift AltGr   keycode 106 = F106
-       alt           keycode 106 = Incr_Console
-       AltGr alt     keycode 106 = Incr_Console
-       shift alt           keycode 106 = Incr_Console  
-       shift AltGr alt     keycode 106 = Incr_Console
+keycode 106 =  Right           F106            Right           F106 \
+               Right           F106            Right           F106 \
+               Incr_Console    Incr_Console    Incr_Console    Incr_Console \
+               Incr_Console    Incr_Console    Incr_Console    Incr_Console
 string F107 = "\033[8$"
 keycode 107 = Select   # =End
        shift         keycode 107 = F107
@@ -500,7 +508,7 @@ keycode 111 = Delete               F111             Delete           F111      \
              Meta_Delete      Meta_Delete      Meta_Delete      Meta_Delete \
              Boot             Boot             Boot             Boot
 
-# My PC 102 keyboard seems don't have 112-118.
+# My PC 102 keyboard seems don't have 112-118. 
 keycode 112 = Macro
 keycode 113 = F13
 keycode 114 = F14
@@ -572,5 +580,3 @@ string Pause = "\033[P"
 #   ISO-8859-1 characters - don't work in Unicode mode as of
 # loadkeys V.89 and Linux 2.0.29. Use Control+Alt+1 to see them.
 compose as usual for "iso-8859-1"
-
-
similarity index 84%
rename from keymaps/i386/qwerty/nl.map
rename to data/keymaps/i386/qwerty/nl.map
index dcd9005..24af7e4 100644 (file)
@@ -25,17 +25,20 @@ keycode   1 = Escape
 keycode   2 = one              exclam          
 keycode   3 = two              quotedbl               at               nul              nul             
 keycode   4 = three            numbersign      
-       control keycode   4 = Escape          
+       control       keycode   4 = Escape          
 keycode   5 = four             dollar           dollar           Control_backslash
 keycode   6 = five             percent         
-       control keycode   6 = Control_bracketright
+       control       keycode   6 = Control_bracketright
 keycode   7 = six              ampersand     
-       control keycode   7 = Control_asciicircum
-keycode   8 = seven            underscore        braceleft        Control_underscore
+       control       keycode   7 = Control_asciicircum
+keycode   8 = seven            underscore        braceleft
+       control       keycode   8 = Control_underscore
 keycode   9 = eight            parenleft         bracketleft      Delete          
 keycode  10 = nine             parenright        bracketright    
 keycode  11 = zero             parenright       braceright      
-keycode  12 = slash            question                backslash        Control_underscore Control_underscore
+keycode  12 = slash            question                backslash
+       control       keycode  12 = Control_underscore
+       shift control keycode  12 = Control_underscore
 keycode  13 = equal            asciitilde            
 keycode  14 = Delete
 keycode  15 = Tab
@@ -59,7 +62,7 @@ keycode  53 = minus          equal
        control keycode  53 = Delete          
 keycode  54 = Shift           
 keycode  56 = Alt             
-keycode  57 = space            space           
+keycode  57 = space
        control keycode  57 = nul             
 keycode  58 = Caps_Lock       
 keycode  86 = bracketright             greater          bar             
diff --git a/data/keymaps/i386/qwerty/nl2.map b/data/keymaps/i386/qwerty/nl2.map
new file mode 100644 (file)
index 0000000..8c84885
--- /dev/null
@@ -0,0 +1,72 @@
+# From ad.h.huikeshoven@nl.arthurandersen.com Sun Apr 18 23:47:10 1999
+# Subject: Dutch Keyboard
+# I installed SuSE Linux 6.0 on my IBM Aptiva this weekend.
+# The machine comes with a Dutch, Windows compatible, 104 key keyboard.
+# I developed a keymap for this keyboard
+# The keyboard features dead keys, a pretty weird rearrangement
+# of keys like (){}[]<>~` etc., a Euro sign.
+#
+# nl2.map - based on us.map
+# Developed by Ad H. Huikeshoven, April 18, 1999.
+# For IBM manufactured Windows Keyboard, 104 key, for the Dutch market.
+# This is an alpha version of the map. Not all AltGr keys are
+# implemented yet. 
+# If you feel like mailing me, mail ad.h.huikeshoven@nl.arthurandersen.com.
+#
+keymaps 0-2,4-6,8-9,12
+alt_is_meta
+include "qwerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+#number       Normal           Shift          AltGr
+#--------------------------------------------------------------------------
+keycode   1 = Escape
+keycode   2 = one              exclam           onesuperior
+keycode   3 = two              quotedbl         twosuperior
+keycode   4 = three            numbersign       threesuperior
+     control   keycode   4 = Escape
+keycode   5 = four             dollar           onequarter
+keycode   6 = five             percent          onehalf
+     control   keycode   6 = Control_bracketright
+keycode   7 = six              ampersand        threequarters
+     control   keycode   7 = Control_asciicircum
+keycode   8 = seven            underscore        sterling
+keycode   9 = eight            parenleft         braceleft
+keycode  10 = nine             parenright        braceright
+keycode  11 = zero             apostrophe        braceright
+keycode  12 = slash            question          backslash     Control_underscore
+keycode  13 = degree           asciitilde        dead_cedilla
+keycode  14 = Delete
+keycode  15 = Tab
+keycode  18 = e                E                 euro
+keycode  19 = r                R                 paragraph
+keycode  26 = dead_diaeresis   dead_circumflex
+     control   keycode  26 = Escape
+keycode  27 = asterisk         bar
+keycode  28 = Return
+     alt  keycode  28 = Meta_Control_m
+keycode  29 = Control
+keycode  31 = s                S                   ssharp
+keycode  39 = plus             plusminus
+keycode  40 = dead_acute       dead_grave
+     control   keycode  40 = Control_g
+keycode  41 = at               section             notsign
+     control   keycode  41 = nul
+keycode  42 = Shift
+keycode  43 = less             greater
+keycode  44 = z                Z                   guillemotleft
+keycode  45 = x                X                   guillemotright
+keycode  46 = c                C                   currency
+     control   keycode  43 = Control_backslash
+keycode  50 = m                M                   mu
+keycode  51 = comma            semicolon
+keycode  52 = period           colon               period
+keycode  53 = minus            equal
+     control   keycode  53 = Delete
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space
+     control   keycode  57 = nul
+keycode  58 = Caps_Lock
+keycode  86 = bracketright     bracketleft          brokenbar
+# end of nl.map
diff --git a/data/keymaps/i386/qwerty/nl3.map b/data/keymaps/i386/qwerty/nl3.map
new file mode 100644 (file)
index 0000000..6c82d36
--- /dev/null
@@ -0,0 +1,73 @@
+# From eha@dasc.nl Wed Mar 31 13:55:06 1999
+# From: Eric Hameleers <eha@dasc.nl>
+#
+# Dutch keymap for IBM ThinkPads (765L, 600, 770 and 380).
+#
+# Key mapping for dutch keyboard (on my IBM-ThinkPad but generally useable)
+# Contributed by Eric Hameleers (eric.hameleers@nl.ibm.com)
+#
+#   Added the circumflex as AltGr func. of the key with the dead_circumflex
+#
+charset "iso-8859-1"
+keymaps 0-2,4-6,8-9,12
+alt_is_meta
+include "qwerty-layout"
+  altgr        keycode  19 = paragraph
+  altgr        keycode  31 = ssharp
+  altgr        keycode  44 = guillemotleft
+  altgr        keycode  45 = guillemotright
+  altgr        keycode  46 = cent
+  altgr        keycode  50 = mu
+include "linux-with-alt-and-altgr"
+strings as usual
+compose as usual for "iso-8859-1"
+
+keycode   1 = Escape
+keycode   2 = one              exclam          onesuperior
+keycode   3 = two              quotedbl        twosuperior
+  control       keycode   3 = nul
+  shift control keycode   3 = nul
+keycode   4 = three            numbersign      threesuperior
+  control       keycode   4 = Escape
+keycode   5 = four             dollar          onequarter
+  control       keycode   5 = Control_backslash
+keycode   6 = five             percent         onehalf
+  control       keycode   6 = Control_bracketright
+keycode   7 = six              ampersand       threequarters
+  control       keycode   7 = Control_asciicircum
+keycode   8 = seven            underscore      pound
+  control       keycode   8 = Control_underscore
+keycode   9 = eight            parenleft       braceleft
+  control       keycode   9 = Delete
+keycode  10 = nine             parenright      braceright
+keycode  11 = zero             apostrophe
+keycode  12 = slash            question        backslash
+  control       keycode  12 = Control_underscore
+  shift control keycode  12 = Control_underscore
+keycode  13 = degree           tilde           dead_cedilla
+keycode  14 = Delete
+  control       keycode  14 = BackSpace
+keycode  15 = Tab
+keycode  26 = dead_diaeresis   dead_circumflex         circumflex
+  control      keycode  26 = Escape
+keycode  27 = asterisk         bar
+keycode  28 = Return
+  alt          keycode  28 = Meta_Control_m
+keycode  29 = Control
+keycode  39 = plus             plusminus
+keycode  40 = dead_acute       dead_grave
+  control      keycode  40 = Control_g
+keycode  41 = at               section         notsign
+keycode  42 = Shift
+keycode  43 = less             greater
+keycode  51 = comma            semicolon
+keycode  52 = period           colon           periodcentered
+  control      keycode  52 = Compose
+keycode  53 = minus            equal
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space
+  control      keycode  57 = nul
+keycode  58 = Caps_Lock
+keycode  86 = bracketright     bracketleft     brokenbar
+keycode  97 = Control
diff --git a/data/keymaps/i386/qwerty/pl2.map b/data/keymaps/i386/qwerty/pl2.map
new file mode 100644 (file)
index 0000000..ba898ad
--- /dev/null
@@ -0,0 +1,297 @@
+# From: Rafal Maszkowski <rzm@dain.oso.chalmers.se>
+# Date: Mon, 7 Feb 1994 12:00:39 +0100 (MET)
+#
+# Polish "programmers' keyboard" + paragraph sign AltGr-4, v. 0.92
+# Rafal Maszkowski <rzm@oso.chalmers.se>, <rzm@mat.uni.torun.pl>, 94.02.16
+# changed by Adam Tla/lka to obtain working left Alt normally
+
+charset "iso-8859-2"
+
+keycode   1 = Escape           Escape          
+       alt     keycode   1 = Meta_Escape     
+keycode        2 = one              exclam          
+       alt             keycode 2 = Meta_one        
+       alt shift       keycode 2 = Meta_exclam
+keycode   3 = two              at               at              
+       control         keycode 3 = nul             
+       alt             keycode 3 = Meta_two        
+       alt shift       keycode 3 = Meta_at
+       alt control     keycode 3 = Meta_nul
+keycode   4 = three            numbersign      
+       control         keycode 4 = Escape          
+       alt             keycode 4 = Meta_three      
+       alt shift       keycode 4 = Meta_numbersign
+keycode   5 = four             dollar           section
+       control         keycode 5 = Control_backslash
+       alt             keycode 5 = Meta_four       
+       alt shift       keycode 5 = Meta_dollar
+keycode   6 = five             percent         
+       control         keycode 6 = Control_bracketright
+       alt             keycode 6 = Meta_five       
+       alt shift       keycode 6 = Meta_percent
+keycode   7 = six              asciicircum     
+       control         keycode 7 = Control_asciicircum
+       alt             keycode 7 = Meta_six        
+       alt shift       keycode 7 = Meta_asciicircum
+       alt control     keycode 7 = Meta_Control_asciicircum
+keycode   8 = seven            ampersand        braceleft       
+       control         keycode 8 = Control_underscore
+       alt             keycode 8 = Meta_seven     
+       alt shift       keycode 8 = Meta_ampersand
+keycode   9 = eight            asterisk         bracketleft     
+       control         keycode 9 = Delete          
+       alt             keycode 9 = Meta_eight   
+       alt shift       keycode 9 = Meta_asterisk
+keycode  10 = nine             parenleft        bracketright    
+       alt             keycode 10 = Meta_nine  
+       alt shift       keycode 10 = Meta_parenleft
+keycode  11 = zero             parenright       braceright      
+       alt             keycode 11 = Meta_zero       
+       alt shift       keycode 11 = Meta_parenright
+keycode  12 = minus            underscore       backslash       
+       control         keycode 12 = Control_underscore
+       alt             keycode 12 = Meta_minus      
+       alt shift       keycode 12 = Meta_underscore
+       alt control     keycode 12 = Meta_Control_underscore
+keycode  13 = equal            plus            
+       alt             keycode 13 = Meta_equal      
+       alt shift       keycode 13 = Meta_plus
+keycode  14 = Delete           Delete          
+       alt             keycode 14 = Meta_Delete
+       alt shift       keycode 14 = Meta_Delete
+       control         keycode 14 = Meta_Delete
+keycode  15 = Tab              Tab             
+       alt             keycode 15 = Meta_Tab        
+       alt shift       keycode 15 = Meta_Tab
+       AltGr           keycode 15 = Meta_Tab
+       control         keycode 15 = Meta_Tab
+keycode  16 = q               
+keycode  17 = w               
+keycode  18 = e               
+       AltGr           keycode 18 = +eogonek
+       AltGr           Shift keycode  18 = +Eogonek
+keycode  19 = r               
+keycode  20 = t               
+keycode  21 = y               
+keycode  22 = u               
+keycode  23 = i               
+keycode  24 = o               
+       AltGr           keycode 24 = +oacute
+       AltGr           Shift keycode  24 = +Oacute
+keycode  25 = p               
+keycode  26 = bracketleft      braceleft       
+       control         keycode 26 = Escape          
+       alt             keycode 26 = Meta_bracketleft
+keycode  27 = bracketright     braceright       asciitilde      
+       control         keycode 27 = Control_bracketright
+       alt             keycode 27 = Meta_bracketright
+keycode  28 = Return          
+       control         keycode 28 = Meta_Control_m
+       alt             keycode 28 = Meta_Control_m
+keycode  29 = Control         
+keycode  30 = a               
+       AltGr           keycode 30 = +aogonek
+       AltGr           Shift keycode  30 = +Aogonek
+keycode  31 = s               
+       AltGr           keycode 31 = +sacute
+       AltGr           Shift keycode  31 = +Sacute
+keycode  32 = d               
+keycode  33 = f               
+keycode  34 = g               
+keycode  35 = h               
+keycode  36 = j               
+keycode  37 = k               
+keycode  38 = l               
+       AltGr           keycode 38 = +lstroke
+       AltGr           Shift keycode  38 = +Lstroke
+keycode  39 = semicolon        colon           
+       alt             keycode 39 = Meta_semicolon  
+keycode  40 = apostrophe       quotedbl        
+       control         keycode 40 = Control_g       
+       alt             keycode 40 = Meta_apostrophe 
+keycode  41 = grave            asciitilde      
+       control         keycode 41 = nul             
+       alt             keycode 41 = Meta_grave      
+keycode  42 = Shift           
+keycode  43 = backslash        bar             
+       control         keycode 43 = Control_backslash
+       alt             keycode 43 = Meta_backslash  
+keycode  44 = z               
+       AltGr           keycode 44 = +zabovedot
+       AltGr           Shift keycode  44 = +Zabovedot
+keycode  45 = x               
+       AltGr           keycode 45 = +zacute
+       AltGr           Shift keycode  45 = +Zacute
+keycode  46 = c               
+       AltGr           keycode 46 = +cacute
+       AltGr           Shift keycode  46 = +Cacute
+keycode  47 = v               
+keycode  48 = b               
+keycode  49 = n               
+       AltGr           keycode 49 = +nacute
+       AltGr           Shift keycode  49 = +Nacute
+keycode  50 = m               
+keycode  51 = comma            less            
+       alt             keycode 51 = Meta_comma      
+keycode  52 = period           greater         
+       alt             keycode 52 = Meta_period     
+keycode  53 = slash            question        
+       control         keycode 53 = Delete          
+       alt             keycode 53 = Meta_slash      
+keycode  54 = Shift           
+keycode  55 = KP_Multiply     
+keycode  56 = Alt             
+keycode  57 = space            space           
+       control         keycode 57 = nul             
+       alt             keycode 57 = Meta_space      
+keycode  58 = Caps_Lock       
+keycode  59 = F1               F11              Console_13      
+       control         keycode 59 = F1              
+       alt             keycode 59 = Console_1       
+       control         alt keycode  59 = Console_1       
+keycode  60 = F2               F12              Console_14      
+       control         keycode 60 = F2              
+       alt             keycode 60 = Console_2       
+       control         alt keycode  60 = Console_2       
+keycode  61 = F3               F13              Console_15      
+       control         keycode 61 = F3              
+       alt             keycode 61 = Console_3       
+       control         alt keycode  61 = Console_3       
+keycode  62 = F4               F14              Console_16      
+       control         keycode 62 = F4              
+       alt             keycode 62 = Console_4       
+       control         alt keycode  62 = Console_4       
+keycode  63 = F5               F15              Console_17      
+       control         keycode 63 = F5              
+       alt             keycode 63 = Console_5       
+       control         alt keycode  63 = Console_5       
+keycode  64 = F6               F16              Console_18      
+       control         keycode 64 = F6              
+       alt             keycode 64 = Console_6       
+       control         alt keycode  64 = Console_6       
+keycode  65 = F7               F17              Console_19      
+       control         keycode 65 = F7              
+       alt             keycode 65 = Console_7       
+       control         alt keycode  65 = Console_7       
+keycode  66 = F8               F18              Console_20      
+       control         keycode 66 = F8              
+       alt             keycode 66 = Console_8       
+       control         alt keycode  66 = Console_8       
+keycode  67 = F9               F19              Console_21      
+       control         keycode 67 = F9              
+       alt             keycode 67 = Console_9       
+       control         alt keycode  67 = Console_9       
+keycode  68 = F10              F20              Console_22      
+       control         keycode 68 = F10             
+       alt             keycode 68 = Console_10      
+       control         alt keycode  68 = Console_10      
+keycode  69 = Num_Lock        
+keycode  70 = Scroll_Lock      Show_Memory      Show_Registers  
+       control         keycode 70 = Show_State      
+       alt             keycode 70 = Scroll_Lock     
+keycode  71 = KP_7            
+       alt             keycode 71 = Ascii_7         
+keycode  72 = KP_8            
+       alt             keycode 72 = Ascii_8         
+keycode  73 = KP_9            
+       alt             keycode 73 = Ascii_9         
+keycode  74 = KP_Subtract     
+keycode  75 = KP_4            
+       alt             keycode 75 = Ascii_4         
+keycode  76 = KP_5            
+       alt             keycode 76 = Ascii_5         
+keycode  77 = KP_6            
+       alt             keycode 77 = Ascii_6         
+keycode  78 = KP_Add          
+keycode  79 = KP_1            
+       alt             keycode 79 = Ascii_1         
+keycode  80 = KP_2            
+       alt             keycode 80 = Ascii_2         
+keycode  81 = KP_3            
+       alt             keycode 81 = Ascii_3         
+keycode  82 = KP_0            
+       alt             keycode 82 = Ascii_0         
+keycode  83 = KP_Period       
+       altgr           control keycode  83 = Boot            
+       control         alt keycode  83 = Boot            
+keycode  84 = Last_Console    
+keycode  85 =
+keycode  86 = less             greater          bar             
+       alt             keycode 86 = Meta_less       
+keycode  87 = F11              F11              Console_23      
+       control         keycode 87 = F11             
+       alt             keycode 87 = Console_11      
+       control         alt keycode  87 = Console_11      
+keycode  88 = F12              F12              Console_24      
+       control         keycode 88 = F12             
+       alt             keycode 88 = Console_12      
+       control         alt keycode  88 = Console_12      
+keycode  89 =
+keycode  90 =
+keycode  91 =
+keycode  92 =
+keycode  93 =
+keycode  94 =
+keycode  95 =
+keycode  96 = KP_Enter        
+keycode  97 = Control         
+keycode  98 = KP_Divide       
+keycode  99 = Control_backslash
+       control         keycode 99 = Control_backslash
+       alt             keycode 99 = Control_backslash
+keycode 100 = AltGr           
+keycode 101 = Break           
+keycode 102 = Find            
+       control         keycode 102 = F106
+keycode 103 = Up              
+       control         keycode 103 = F100
+keycode 104 = Prior           
+       control         keycode 104 = F108
+       shift           keycode 104 = Scroll_Backward 
+keycode 105 = Left            
+        alt            keycode 105 = Decr_Console
+       control         keycode 105 = F103
+keycode 106 = Right
+        alt            keycode 106 = Incr_Console
+       control         keycode 106 = F102
+keycode 107 = Select          
+       control         keycode 107 = F107
+keycode 108 = Down            
+       control         keycode 108 = F101
+keycode 109 = Next            
+       control         keycode 109 = F109
+       shift           keycode 109 = Scroll_Forward  
+keycode 110 = Insert          
+       control         keycode 110 = F105
+keycode 111 = Remove          
+       control         keycode 111 = F104
+       altgr control   keycode 111 = Boot            
+       control alt     keycode 111 = Boot            
+keycode 112 =
+keycode 113 =
+keycode 114 =
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+# usual stuff for F1-F30
+strings as usual
+string F100 = "\033\033[A"
+string F101 = "\033\033[B"
+string F102 = "\033\033[C"
+string F103 = "\033\033[D"
+string F104 = "\033\033[3~"
+string F105 = "\033\033[2~"
+string F106 = "\033\033[1~"
+string F107 = "\033\033[4~"
+string F108 = "\033\033[5~"
+string F109 = "\033\033[6~"
similarity index 98%
rename from keymaps/i386/qwerty/pt-latin1.map
rename to data/keymaps/i386/qwerty/pt-latin1.map
index ace23bf..0b35363 100644 (file)
@@ -47,7 +47,7 @@ keycode  27 = dead_acute       dead_grave       apostrophe       grave
 keycode  28 = Return
        alt     keycode  28 = Meta_Control_m
 keycode  29 = Control
-keycode  39 = ccedilla         Ccedilla
+keycode  39 = +ccedilla         Ccedilla
        alt     keycode  39 = Meta_semicolon
 keycode  40 = masculine        ordfeminine
        control keycode  40 = Control_g
similarity index 92%
rename from keymaps/i386/qwerty/se-latin1.map
rename to data/keymaps/i386/qwerty/se-latin1.map
index 6b5526c..785e4c1 100644 (file)
@@ -2,6 +2,10 @@
 # and the Finnish map should do for Sweden as well. Below a Swedish map
 # contributed by Andreas Almroth (andreas@traci.almroth.pp.se) on 950507
 # where no AltGr is used to get the three national characters.
+#
+# 1999-02-22 : PW
+# Added bracketright,braceright for keycode 10,11
+# Added onehalf for keycode 41 
 
 charset "iso-8859-1"
 keymaps 0-2,4-6,8,12
@@ -36,9 +40,9 @@ keycode   8 = seven            slash            braceleft
 keycode   9 = eight            parenleft        bracketleft
        control keycode   9 = Delete
        alt     keycode   9 = Meta_eight
-keycode  10 = nine             parenright
+keycode  10 = nine             parenright      bracketright
        alt     keycode  10 = Meta_nine
-keycode  11 = zero             equal
+keycode  11 = zero             equal           braceright
        alt     keycode  11 = Meta_zero
 keycode  12 = plus       question         backslash
        control keycode  12 = Control_underscore
@@ -63,7 +67,7 @@ keycode  39 = +odiaeresis       +Odiaeresis
 keycode  40 = +adiaeresis       +Adiaeresis
        control keycode  40 = Control_g
        alt     keycode  40 = Meta_apostrophe
-keycode  41 = section          degree
+keycode  41 = section          degree          onehalf
        control keycode  41 = nul
        alt     keycode  41 = Meta_grave
 keycode  42 = Shift
similarity index 90%
rename from keymaps/i386/qwerty/sk-prog.map
rename to data/keymaps/i386/qwerty/sk-prog-qwerty.map
index f34c7a8..95c13f5 100644 (file)
@@ -1,5 +1,6 @@
-# Slovak ISO 8859-2 keyboard map for text console (for programmers)
-# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.award.sk)
+# Slovak ISO 8859-2 keyboard map for text console (ver. 2)
+# Layout: qwerty-prog
+# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.shadow.sk)
 # You can distribute this file under the terms of GNU General
 # Public License (GPL). See the file COPYING.
 #
 # "ô" a "ä" mozete dostat tak, ze pred danym pismenom stlacite
 # klaves makcena.
 #
+# Dalej som pridal prepinanie konzoli pomocou CTRL+ALT+F1 az F12
+# podla klasickej klavesovej mapy. Pridal som aj zopar includov,
+# ale neviem, ci nieco upravia.
+#
 # Tento subor bol vytvoreny zo suboru cz-lat2.map, ktory
 # napisal Jan Kasprzak (kas@ics.muni.cz).
 #
 charset "iso-8859-2"
 keymaps 0-15
+include "linux-keys-bare.inc"
+include "linux-keys-extd.inc"
+include "qwerty-layout.inc"
 strings as usual
+
 keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
 keycode 2 = one exclam plus one VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_one Meta_one Meta_one 
 keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two Meta_two Meta_two
@@ -32,16 +41,6 @@ keycode 12 = minus underscore minus underscore Control_underscore Control_unders
 keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal  
 keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete  
 keycode 15 = Tab Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab  
-keycode 16 = q 
-keycode 17 = w 
-keycode 18 = e
-keycode 19 = r
-keycode 20 = t
-keycode 21 = y
-keycode 22 = u
-keycode 23 = i
-keycode 24 = o
-keycode 25 = p
 keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft 
 keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright 
 keycode 28 = Return
@@ -49,27 +48,11 @@ altgr keycode 28 = Return
 alt keycode 28 = Meta_Control_m
 alt altgr keycode 28 = Meta_Control_m
 keycode 29 = Control
-keycode 30 = a
-keycode 31 = s
-keycode 32 = d
-keycode 33 = f
-keycode 34 = g
-keycode 35 = h
-keycode 36 = j
-keycode 37 = k
-keycode 38 = l
 keycode 39 = semicolon colon semicolon colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_semicolon Meta_semicolon Meta_semicolon 
 keycode 40 = apostrophe quotedbl apostrophe quotedbl Control_g VoidSymbol Control_g VoidSymbol Meta_apostrophe Meta_apostrophe Meta_apostrophe Meta_apostrophe 
 keycode 41 = grave asciitilde grave asciitilde nul VoidSymbol nul VoidSymbol Meta_grave VoidSymbol Meta_grave
 keycode 42 = Shift
 keycode 43 = backslash bar backslash bar Control_backslash VoidSymbol Control_backslash VoidSymbol Meta_backslash VoidSymbol Meta_backslash
-keycode 44 = z
-keycode 45 = x
-keycode 46 = c
-keycode 47 = v
-keycode 48 = b
-keycode 49 = n
-keycode 50 = m
 keycode 51 = comma less comma less
 alt keycode 51 = Meta_comma
 alt altgr keycode 51 = Meta_comma
@@ -80,16 +63,16 @@ keycode 55 = KP_Multiply
 keycode 56 = Alt
 keycode 57 = space space space space nul nul nul nul Meta_space Meta_space Meta_space Meta_space 
 keycode 58 = Caps_Lock
-keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1
-keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2
-keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3
-keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4
-keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5
-keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6
-keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7
-keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8
-keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9
-keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10
+keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1 VoidSymbol Console_1
+keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2 VoidSymbol Console_2
+keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3 VoidSymbol Console_3
+keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4 VoidSymbol Console_4
+keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5 VoidSymbol Console_5
+keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6 VoidSymbol Console_6
+keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7 VoidSymbol Console_7
+keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8 VoidSymbol Console_8
+keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9 VoidSymbol Console_9
+keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10 VoidSymbol Console_10
 keycode 69 = Num_Lock
 keycode 70 = Scroll_Lock Show_Memory Show_Registers
 control keycode 70 = Show_State
@@ -122,8 +105,8 @@ keycode 84 = Last_Console
 keycode 85 =
 keycode 86 = less greater bar
 alt keycode 86 = Meta_less
-keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11
-keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12
+keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11 VoidSymbol Console_11
+keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12 VoidSymbol Console_12
 keycode 89 =
 keycode 90 =
 keycode 91 =
@@ -172,6 +155,7 @@ keycode 124 =
 keycode 125 =
 keycode 126 =
 keycode 127 =
+
 compose ',' 'A' to '¡'
 compose '/' 'L' to '£'
 compose '^' 'L' to '¥'
diff --git a/data/keymaps/i386/qwerty/sk-qwerty.map b/data/keymaps/i386/qwerty/sk-qwerty.map
new file mode 100644 (file)
index 0000000..1711ab1
--- /dev/null
@@ -0,0 +1,166 @@
+# Slovak ISO 8859-2 keyboard map for text console (ver. 2)
+# Layout: qwerty
+# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.shadow.sk)
+# You can distribute this file under the terms of GNU General
+# Public License (GPL). See the file COPYING.
+#
+# Slovenska klavesnica sa zapne a vypne klavesou Pause.
+# Klavesou AltGr (Right Alt) je mozne sa prepnut zo slovenskej do US a naopak.
+# Klavesa Pause potom funguje ako AltGr-lock.
+# Znak o s vokanom mozete dostat stlacenim klavesu makcen a "o".
+#
+# Zdalo sa mi, ze diaeresis nefunguje celkom spravne, pretoze
+# pri kombinacii s pismenom a daval vysledok dva znaky "a .
+# Upravil som to pridanim compose.
+#
+# Dalej som pridal prepinanie konzoli pomocou CTRL+ALT+F1 az F12
+# podla klasickej klavesovej mapy. Pridal som aj zopar includov,
+# ale neviem, ci nieco upravia.
+#
+# Tento subor bol vytvoreny zo suboru cz-lat2.map, ktory
+# napisal Jan Kasprzak (kas@ics.muni.cz).
+#
+alt_is_meta
+charset "iso-8859-2"
+keymaps 0-15
+include "linux-keys-bare.inc"
+include "linux-keys-extd.inc"
+include "linux-with-modeshift-altgr.inc"
+include "qwerty-layout.inc"
+strings as usual
+
+keycode 1 = Escape
+keycode 2 = one exclam plus one
+keycode 3 = two at lcaron two
+keycode 4 = three numbersign scaron three Escape
+keycode 5 = four dollar ccaron four Control_backslash
+keycode 6 = five percent tcaron five Control_bracketright
+keycode 7 = six asciicircum zcaron six Control_asciicircum
+keycode 8 = seven ampersand yacute seven Control_underscore
+keycode 9 = eight asterisk aacute eight Delete
+keycode 10 = nine parenleft iacute nine
+keycode 11 = zero parenright eacute zero
+keycode 12 = minus underscore equal percent
+keycode 13 = equal plus dead_acute dead_circumflex
+keycode 14 = Delete
+keycode 15 = Tab
+keycode 26 = bracketleft braceleft uacute slash Escape
+keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright
+keycode 28 = Return 
+altgr keycode 28 = Return
+alt keycode 28 = Meta_Control_m
+alt altgr keycode 28 = Meta_Control_m
+keycode 29 = Control
+keycode 39 = semicolon colon ocircumflex quotedbl
+keycode 40 = apostrophe quotedbl 0xa7 exclam Control_g
+keycode 41 = grave asciitilde dead_diaeresis dead_circumflex nul
+keycode 42 = Shift
+keycode 43 = backslash bar ncaron parenright Control_backslash
+keycode 51 = comma less comma question
+keycode 52 = period greater period colon Compose
+keycode 53 = slash question minus underscore Delete
+keycode 54 = Shift
+keycode 56 = Alt
+keycode 57 = space space space space nul nul nul nul
+keycode 58 = Caps_Lock
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+control keycode 70 = Show_State
+alt keycode 70 = Scroll_Lock
+keycode 84 = Last_Console
+keycode 86 = less greater bar
+alt keycode 86 = Meta_less
+keycode 97 = Control
+keycode 99 = Control_backslash
+control keycode 99 = Control_backslash
+alt keycode 99 = Control_backslash
+keycode 100 = AltGr
+       alt altgr keycode 105 = Decr_Console
+       alt altgr keycode 106 = Incr_Console
+control alt keycode 111 = Boot
+
+keycode 119 = AltGr_Lock
+
+compose ',' 'A' to '¡'
+compose '/' 'L' to '£'
+compose '^' 'L' to '¥'
+compose '\'' 'S' to '¦'
+compose '^' 'S' to '©'
+compose ',' 'S' to 'ª'
+compose '^' 'T' to '«'
+compose '\'' 'Z' to '¬'
+compose '^' 'Z' to '®'
+compose '.' 'Z' to '¯'
+compose ',' 'a' to '±'
+compose '/' 'l' to '³'
+compose '^' 'l' to 'µ'
+compose '\'' 's' to '¶'
+compose '^' 's' to '¹'
+compose ',' 's' to 'º'
+compose '^' 't' to '»'
+compose '\'' 'z' to '¼'
+compose '^' 'z' to '¾'
+compose '.' 'z' to '¿'
+compose '\'' 'R' to 'À'
+compose '\'' 'A' to 'Á'
+compose '^' 'A' to 'Â'
+compose '^' 'A' to 'Ã'
+compose ':' 'A' to 'Ä'
+compose '"' 'A' to 'Ä'
+compose '\'' 'L' to 'Å'
+compose '\'' 'C' to 'Æ'
+compose ',' 'C' to 'Ç'
+compose '^' 'C' to 'È'
+compose '\'' 'E' to 'É'
+compose ',' 'E' to 'Ê'
+compose '"' 'E' to 'Ë'
+compose '^' 'E' to 'Ì'
+compose '\'' 'I' to 'Í'
+compose '^' 'I' to 'Î'
+compose '^' 'D' to 'Ï'
+compose '-' 'D' to 'Ð'
+compose '\'' 'N' to 'Ñ'
+compose '^' 'N' to 'Ò'
+compose '\'' 'O' to 'Ó'
+compose '^' 'O' to 'Ô'
+compose '"' 'O' to 'Õ'
+compose ':' 'O' to 'Ö'
+compose '^' 'R' to 'Ø'
+compose '^' 'U' to 'Ù'
+compose '\'' 'U' to 'Ú'
+compose '"' 'U' to 'Û'
+compose ':' 'U' to 'Ü'
+compose '\'' 'Y' to 'Ý'
+compose ',' 'T' to 'Þ'
+compose 's' 's' to 'ß'
+compose 'S' 'S' to 'ß'
+compose '\'' 'r' to 'à'
+compose '\'' 'a' to 'á'
+compose '^' 'a' to 'â'
+compose '^' 'a' to 'ã'
+compose ':' 'a' to 'ä'
+compose '"' 'a' to 'ä'
+compose '\'' 'l' to 'å'
+compose '\'' 'c' to 'æ'
+compose ',' 'c' to 'ç'
+compose '^' 'c' to 'è'
+compose '\'' 'e' to 'é'
+compose ',' 'e' to 'ê'
+compose ':' 'e' to 'ë'
+compose '^' 'e' to 'ì'
+compose '\'' 'i' to 'í'
+compose '^' 'e' to 'î'
+compose '^' 'd' to 'ï'
+compose '-' 'd' to 'ð'
+compose '\'' 'n' to 'ñ'
+compose '^' 'n' to 'ò'
+compose '\'' 'o' to 'ó'
+compose '^' 'o' to 'ô'
+compose ':' 'o' to 'õ'
+compose '"' 'o' to 'ö'
+compose '^' 'r' to 'ø'
+compose '^' 'u' to 'ù'
+compose '\'' 'u' to 'ú'
+compose '"' 'u' to 'û'
+compose ':' 'u' to 'ü'
+compose '\'' 'y' to 'ý'
+compose ',' 't' to 'þ'
similarity index 98%
rename from keymaps/i386/qwerty/tralt.map
rename to data/keymaps/i386/qwerty/tralt.map
index 75e3613..2b7e703 100644 (file)
@@ -2,8 +2,6 @@
 # -cagri@tubitak.gov.tr
 charset "iso-8859-9"
 include "linux-with-alt-and-altgr"
-       plain keycode 111 = Delete
-       alt   keycode 111 = Meta_Delete
 strings as usual
 
 keycode   1 = Escape
similarity index 98%
rename from keymaps/i386/qwerty/trq.map
rename to data/keymaps/i386/qwerty/trq.map
index d96cce2..cc1e701 100644 (file)
@@ -1,8 +1,6 @@
 charset "iso-8859-9"
 keymaps 0-6,8-9,12
 include "linux-with-alt-and-altgr"
-       plain keycode 111 = Delete
-       alt   keycode 111 = Meta_Delete
 strings as usual
 
 keycode   1 = Escape
similarity index 99%
rename from keymaps/i386/qwerty/ua-utf-ws.map
rename to data/keymaps/i386/qwerty/ua-utf-ws.map
index 4b16161..d7d1d38 100644 (file)
@@ -1,3 +1,4 @@
+charset "koi8-r"
 keymaps 0-2,4-6,8-9,12-13,64-66,68-69,72-73,76-77,128-130,132-133,136-137,140-141,192-194,196-197,200-201,204-205
 keycode   1 = Escape           Escape          
        alt     keycode   1 = Meta_Escape     
similarity index 99%
rename from keymaps/i386/qwerty/ua-utf.map
rename to data/keymaps/i386/qwerty/ua-utf.map
index 9c1edef..bf80ac0 100644 (file)
@@ -1,3 +1,4 @@
+charset "koi8-r"
 keymaps 0-2,4-6,8-9,12-13,64-66,68-69,72-73,76-77,128-130,132-133,136-137,140-141,192-194,196-197,200-201,204-205
 strings as usual
 keycode   1 = Escape           Escape          
diff --git a/data/keymaps/i386/qwerty/us-acentos.map b/data/keymaps/i386/qwerty/us-acentos.map
new file mode 100644 (file)
index 0000000..4adb484
--- /dev/null
@@ -0,0 +1,339 @@
+# us-acentos.map
+# Equivalente ao mapa us, incluindo dead_keys e composições
+# dos caracteres acentuados
+# Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+#
+keymaps 0-2,4-6,8-9,12
+keycode   1 = Escape           Escape          
+       alt     keycode   1 = Meta_Escape     
+keycode   2 = one              exclam          
+       alt     keycode   2 = Meta_one        
+       shift   alt     keycode   2 = Meta_exclam     
+keycode   3 = two              at               at               nul              nul             
+       alt     keycode   3 = Meta_two        
+       shift   alt     keycode   3 = Meta_at         
+keycode   4 = three            numbersign      
+       control keycode   4 = Escape          
+       alt     keycode   4 = Meta_three      
+       shift   alt     keycode   4 = Meta_numbersign 
+keycode   5 = four             dollar           dollar           Control_backslash
+       alt     keycode   5 = Meta_four       
+       shift   alt     keycode   5 = Meta_dollar     
+keycode   6 = five             percent         
+       control keycode   6 = Control_bracketright
+       alt     keycode   6 = Meta_five       
+       shift   alt     keycode   6 = Meta_percent    
+keycode   7 = six              dead_circumflex     
+       control keycode   7 = Control_asciicircum
+       alt     keycode   7 = Meta_six        
+       shift   alt     keycode   7 = Meta_asciicircum
+keycode   8 = seven            ampersand        braceleft        Control_underscore
+       alt     keycode   8 = Meta_seven      
+keycode   9 = eight            asterisk         bracketleft      Delete          
+       alt     keycode   9 = Meta_eight      
+keycode  10 = nine             parenleft        bracketright    
+       alt     keycode  10 = Meta_nine       
+keycode  11 = zero             parenright       braceright      
+       alt     keycode  11 = Meta_zero       
+keycode  12 = minus            underscore       backslash        Control_underscore Control_underscore
+       alt     keycode  12 = Meta_minus      
+keycode  13 = equal            plus            
+       alt     keycode  13 = Meta_equal      
+keycode  14 = Delete           Delete          
+       control keycode  14 = BackSpace       
+       alt     keycode  14 = Meta_Delete     
+keycode  15 = Tab              Tab             
+       alt     keycode  15 = Meta_Tab        
+keycode  16 = q               
+keycode  17 = w               
+keycode  18 = e               
+keycode  19 = r               
+keycode  20 = t               
+keycode  21 = y               
+keycode  22 = u               
+keycode  23 = i               
+keycode  24 = o               
+keycode  25 = p               
+keycode  26 = bracketleft      braceleft       
+       control keycode  26 = Escape          
+       alt     keycode  26 = Meta_bracketleft
+       shift   alt     keycode  26 = Meta_braceleft  
+keycode  27 = bracketright     braceright       asciitilde       Control_bracketright
+       alt     keycode  27 = Meta_bracketright
+       shift   alt     keycode  27 = Meta_braceright 
+keycode  28 = Return          
+       alt     keycode  28 = Meta_Control_m  
+keycode  29 = Control         
+keycode  30 = a               
+keycode  31 = s               
+keycode  32 = d               
+keycode  33 = f               
+keycode  34 = g               
+keycode  35 = h               
+keycode  36 = j               
+keycode  37 = k               
+keycode  38 = l               
+keycode  39 = semicolon        colon           
+       alt     keycode  39 = Meta_semicolon  
+keycode  40 = dead_acute       dead_diaeresis        
+       control keycode  40 = Control_g       
+       alt     keycode  40 = Meta_apostrophe 
+keycode  41 = dead_grave            dead_tilde      
+       control keycode  41 = nul             
+       alt     keycode  41 = Meta_grave      
+keycode  42 = Shift           
+keycode  43 = backslash        bar             
+       control keycode  43 = Control_backslash
+       alt     keycode  43 = Meta_backslash  
+       shift   alt     keycode  43 = Meta_bar        
+keycode  44 = z               
+keycode  45 = x               
+keycode  46 = c               
+keycode  47 = v               
+keycode  48 = b               
+keycode  49 = n               
+keycode  50 = m               
+keycode  51 = comma            less            
+       alt     keycode  51 = Meta_comma      
+       shift   alt     keycode  51 = Meta_less       
+keycode  52 = period           greater         
+       control keycode  52 = Compose         
+       alt     keycode  52 = Meta_period     
+       shift   alt     keycode  52 = Meta_greater    
+keycode  53 = slash            question        
+       control keycode  53 = Delete          
+       alt     keycode  53 = Meta_slash      
+keycode  54 = Shift           
+keycode  55 = KP_Multiply     
+keycode  56 = Alt             
+keycode  57 = space            space           
+       control keycode  57 = nul             
+       alt     keycode  57 = Meta_space      
+keycode  58 = Caps_Lock       
+keycode  59 = F1               F11              Console_13       F1              
+       alt     keycode  59 = Console_1       
+       control alt     keycode  59 = Console_1       
+keycode  60 = F2               F12              Console_14       F2              
+       alt     keycode  60 = Console_2       
+       control alt     keycode  60 = Console_2       
+keycode  61 = F3               F13              Console_15       F3              
+       alt     keycode  61 = Console_3       
+       control alt     keycode  61 = Console_3       
+keycode  62 = F4               F14              Console_16       F4              
+       alt     keycode  62 = Console_4       
+       control alt     keycode  62 = Console_4       
+keycode  63 = F5               F15              Console_17       F5              
+       alt     keycode  63 = Console_5       
+       control alt     keycode  63 = Console_5       
+keycode  64 = F6               F16              Console_18       F6              
+       alt     keycode  64 = Console_6       
+       control alt     keycode  64 = Console_6       
+keycode  65 = F7               F17              Console_19       F7              
+       alt     keycode  65 = Console_7       
+       control alt     keycode  65 = Console_7       
+keycode  66 = F8               F18              Console_20       F8              
+       alt     keycode  66 = Console_8       
+       control alt     keycode  66 = Console_8       
+keycode  67 = F9               F19              Console_21       F9              
+       alt     keycode  67 = Console_9       
+       control alt     keycode  67 = Console_9       
+keycode  68 = F10              F20              Console_22       F10             
+       alt     keycode  68 = Console_10      
+       control alt     keycode  68 = Console_10      
+keycode  69 = Num_Lock        
+keycode  70 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
+       alt     keycode  70 = Scroll_Lock     
+keycode  71 = KP_7            
+       alt     keycode  71 = Ascii_7         
+keycode  72 = KP_8            
+       alt     keycode  72 = Ascii_8         
+keycode  73 = KP_9            
+       alt     keycode  73 = Ascii_9         
+keycode  74 = KP_Subtract     
+keycode  75 = KP_4            
+       alt     keycode  75 = Ascii_4         
+keycode  76 = KP_5            
+       alt     keycode  76 = Ascii_5         
+keycode  77 = KP_6            
+       alt     keycode  77 = Ascii_6         
+keycode  78 = KP_Add          
+keycode  79 = KP_1            
+       alt     keycode  79 = Ascii_1         
+keycode  80 = KP_2            
+       alt     keycode  80 = Ascii_2         
+keycode  81 = KP_3            
+       alt     keycode  81 = Ascii_3         
+keycode  82 = KP_0            
+       alt     keycode  82 = Ascii_0         
+keycode  83 = KP_Period       
+       altgr   control keycode  83 = Boot            
+       control alt     keycode  83 = Boot            
+keycode  84 = Last_Console    
+keycode  85 =
+keycode  86 = less             greater          bar             
+       alt     keycode  86 = Meta_less       
+keycode  87 = F11              F11              Console_23       F11             
+       alt     keycode  87 = Console_11      
+       control alt     keycode  87 = Console_11      
+keycode  88 = F12              F12              Console_24       F12             
+       alt     keycode  88 = Console_12      
+       control alt     keycode  88 = Console_12      
+keycode  89 =
+keycode  90 =
+keycode  91 =
+keycode  92 =
+keycode  93 =
+keycode  94 =
+keycode  95 =
+keycode  96 = KP_Enter        
+keycode  97 = Control         
+keycode  98 = KP_Divide       
+keycode  99 = Control_backslash
+       control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
+keycode 100 = AltGr           
+keycode 101 = Break           
+keycode 102 = Find            
+keycode 103 = Up              
+keycode 104 = Prior           
+       shift   keycode 104 = Scroll_Backward 
+keycode 105 = Left            
+       alt     keycode 105 = Decr_Console    
+keycode 106 = Right           
+       alt     keycode 106 = Incr_Console    
+keycode 107 = Select          
+keycode 108 = Down            
+keycode 109 = Next            
+       shift   keycode 109 = Scroll_Forward  
+keycode 110 = Insert          
+keycode 111 = Remove          
+       altgr   control keycode 111 = Boot            
+       control alt     keycode 111 = Boot            
+keycode 112 = Macro           
+       altgr   control keycode 112 = VoidSymbol      
+       shift   alt     keycode 112 = VoidSymbol      
+keycode 113 = F13             
+       altgr   control keycode 113 = VoidSymbol      
+       shift   alt     keycode 113 = VoidSymbol      
+keycode 114 = F14             
+       altgr   control keycode 114 = VoidSymbol      
+       shift   alt     keycode 114 = VoidSymbol      
+keycode 115 = Help            
+       altgr   control keycode 115 = VoidSymbol      
+       shift   alt     keycode 115 = VoidSymbol      
+keycode 116 = Do              
+       altgr   control keycode 116 = VoidSymbol      
+       shift   alt     keycode 116 = VoidSymbol      
+keycode 117 = F17             
+       altgr   control keycode 117 = VoidSymbol      
+       shift   alt     keycode 117 = VoidSymbol      
+keycode 118 = KP_MinPlus      
+       altgr   control keycode 118 = VoidSymbol      
+       shift   alt     keycode 118 = VoidSymbol      
+keycode 119 = Pause           
+       altgr   control keycode 119 = VoidSymbol      
+       shift   alt     keycode 119 = VoidSymbol      
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string Macro = "\033[M"
+string Pause = "\033[P"
+compose '`' 'A' to 'À'
+compose '`' 'a' to 'à'
+compose '\'' 'A' to 'Á'
+compose '\'' 'a' to 'á'
+compose '^' 'A' to 'Â'
+compose '^' 'a' to 'â'
+compose '~' 'A' to 'Ã'
+compose '~' 'a' to 'ã'
+compose '"' 'A' to 'Ä'
+compose '"' 'a' to 'ä'
+compose 'O' 'A' to 'Å'
+compose 'o' 'a' to 'å'
+compose '0' 'A' to 'Å'
+compose '0' 'a' to 'å'
+compose 'A' 'A' to 'Å'
+compose 'a' 'a' to 'å'
+compose 'A' 'E' to 'Æ'
+compose 'a' 'e' to 'æ'
+compose '\'' 'C' to 'Ç'
+compose '\'' 'c' to 'ç'
+compose '`' 'E' to 'È'
+compose '`' 'e' to 'è'
+compose '\'' 'E' to 'É'
+compose '\'' 'e' to 'é'
+compose '^' 'E' to 'Ê'
+compose '^' 'e' to 'ê'
+compose '"' 'E' to 'Ë'
+compose '"' 'e' to 'ë'
+compose '`' 'I' to 'Ì'
+compose '`' 'i' to 'ì'
+compose '\'' 'I' to 'Í'
+compose '\'' 'i' to 'í'
+compose '^' 'I' to 'Î'
+compose '^' 'i' to 'î'
+compose '"' 'I' to 'Ï'
+compose '"' 'i' to 'ï'
+compose '-' 'D' to 'Ð'
+compose '-' 'd' to 'ð'
+compose '~' 'N' to 'Ñ'
+compose '~' 'n' to 'ñ'
+compose '`' 'O' to 'Ò'
+compose '`' 'o' to 'ò'
+compose '\'' 'O' to 'Ó'
+compose '\'' 'o' to 'ó'
+compose '^' 'O' to 'Ô'
+compose '^' 'o' to 'ô'
+compose '~' 'O' to 'Õ'
+compose '~' 'o' to 'õ'
+compose '"' 'O' to 'Ö'
+compose '"' 'o' to 'ö'
+compose '/' 'O' to 'Ø'
+compose '/' 'o' to 'ø'
+compose '`' 'U' to 'Ù'
+compose '`' 'u' to 'ù'
+compose '\'' 'U' to 'Ú'
+compose '\'' 'u' to 'ú'
+compose '^' 'U' to 'Û'
+compose '^' 'u' to 'û'
+compose '"' 'U' to 'Ü'
+compose '"' 'u' to 'ü'
+compose '\'' 'Y' to 'Ý'
+compose '\'' 'y' to 'ý'
+compose 'T' 'H' to 'Þ'
+compose 't' 'h' to 'þ'
+compose 's' 's' to 'ß'
+compose '"' 'y' to 'ÿ'
+compose 's' 'z' to 'ß'
+compose 'i' 'j' to 'ÿ'
similarity index 96%
rename from keymaps/i386/qwerty/us.map
rename to data/keymaps/i386/qwerty/us.map
index 7a29b48..967b72f 100644 (file)
@@ -40,7 +40,8 @@ keycode  43 = backslash        bar
 keycode  51 = comma            less
 keycode  52 = period           greater
 keycode  53 = slash            question
-       control keycode  53 = Delete
+       control keycode  53 = Control_underscore
+       control shift keycode 53 = Delete
 keycode  54 = Shift
 keycode  56 = Alt
 keycode  57 = space
similarity index 97%
rename from keymaps/i386/qwertz/cz-us-qwertz.map
rename to data/keymaps/i386/qwertz/cz-us-qwertz.map
index 4bd3a98..c86e1a5 100644 (file)
@@ -137,8 +137,7 @@ keycode 100  = AltGr
 keycode 101  = Break
 keycode 102  = Find
 keycode 103  = Up
-keycode 104  = Prior
-shift keycode 104  = Scroll_Backward
+keycode 104  = Prior Scroll_Backward Prior Scroll_Backward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
 keycode 105  = Left
        alt keycode 105  = Decr_Console
        alt altgr keycode 105  = Decr_Console
@@ -147,8 +146,7 @@ keycode 106  = Right
        alt altgr keycode 106  = Incr_Console
 keycode 107  = Select
 keycode 108  = Down
-keycode 109  = Next
-shift keycode 109  = Scroll_Forward
+keycode 109  = Next Scroll_Forward Next Scroll_Forward VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol
 keycode 110  = Insert
 keycode 111  = Remove
 control alt keycode 111  = Boot
similarity index 71%
rename from keymaps/i386/qwertz/sk-qwertz.map
rename to data/keymaps/i386/qwertz/sk-prog-qwertz.map
index 9e0237a..5fd79a2 100644 (file)
@@ -1,24 +1,31 @@
-# Slovak ISO 8859-2 keyboard map for text console
-# Written and (c) copyright by Jan Kasprzak (kas@ics.muni.cz)
+# Slovak ISO 8859-2 keyboard map for text console (ver. 2)
+# Layout: qwertz-prog
+# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.shadow.sk)
 # You can distribute this file under the terms of GNU General
 # Public License (GPL). See the file COPYING.
 #
-# Funguje jako US-Keyboard, na slovenskou klavesnici se prepne
-# klavesou Pause. Podrzenim klavesy AltGr (= Right Alt) se lze kratkodobe
-# prepnout na slovenskou nebo naopak na US klavesnici. Pause
-# pak funguje jako AltGr-lock.
+# Slovenska klavesnica sa zapne a vypne klavesou Pause.
+# Klavesou AltGr (Right Alt) je mozne sa prepnut zo slovenskej do US a naopak.
+# Klavesa Pause potom funguje ako AltGr-lock.
 #
-# Klavesnice je udelana podle rozlozeni, ktere mi bylo doruceno Petrem
-# Olsakem od pana Stefana Porubskeho. Ja sam slovenskou klavesnici
-# neznam, takze nemohu rucit za korektni rozlozeni klaves.
+# Chybaju tu klavesy vokan a dvojbodka nad pismenom, ale znaky
+# "ô" a "ä" mozete dostat tak, ze pred danym pismenom stlacite
+# klaves makcena.
 #
-# Nemel jsem mnoho prilezitosti tuto klavesnici testovat, takze prosim
-# omluvte pripadne nedostatky.
+# Dalej som pridal prepinanie konzoli pomocou CTRL+ALT+F1 az F12
+# podla klasickej klavesovej mapy. Pridal som aj zopar includov,
+# ale neviem, ci nieco upravia.
+#
+# Tento subor bol vytvoreny zo suboru cz-lat2.map, ktory
+# napisal Jan Kasprzak (kas@ics.muni.cz).
 #
 charset "iso-8859-2"
 keymaps 0-15
+include "linux-keys-bare.inc"
+include "linux-keys-extd.inc"
+include "qwertz-layout.inc"
 strings as usual
-keycode 0 =
+
 keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
 keycode 2 = one exclam plus one VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_one Meta_one Meta_one 
 keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two Meta_two Meta_two
@@ -30,68 +37,42 @@ keycode 8 = seven ampersand yacute seven Control_underscore  VoidSymbol Control_
 keycode 9 = eight asterisk aacute eight Delete VoidSymbol Delete VoidSymbol Meta_eight Meta_eight Meta_eight Meta_eight  
 keycode 10 = nine parenleft iacute nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_nine Meta_nine Meta_nine
 keycode 11 = zero parenright eacute zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_zero Meta_zero Meta_zero
-keycode 12 = minus underscore equal percent Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus  
+keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_minus Meta_minus Meta_minus  
 keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal  
 keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete  
 keycode 15 = Tab Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab  
-keycode 16 = q 
-keycode 17 = w 
-keycode 18 = e
-keycode 19 = r
-keycode 20 = t
-keycode 21 = z
-keycode 22 = u
-keycode 23 = i
-keycode 24 = o
-keycode 25 = p
-keycode 26 = bracketleft braceleft uacute slash Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft 
-keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright 
-keycode 28 = Return 
+keycode 26 = bracketleft braceleft bracketleft braceleft Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft 
+keycode 27 = bracketright braceright bracketright braceright Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright 
+keycode 28 = Return
 altgr keycode 28 = Return
 alt keycode 28 = Meta_Control_m
 alt altgr keycode 28 = Meta_Control_m
 keycode 29 = Control
-keycode 30 = a
-keycode 31 = s
-keycode 32 = d
-keycode 33 = f
-keycode 34 = g
-keycode 35 = h
-keycode 36 = j
-keycode 37 = k
-keycode 38 = l
-keycode 39 = semicolon colon ocircumflex quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_semicolon Meta_semicolon Meta_semicolon 
-keycode 40 = apostrophe quotedbl 0xa7 exclam Control_g VoidSymbol Control_g VoidSymbol Meta_apostrophe Meta_apostrophe Meta_apostrophe Meta_apostrophe 
-keycode 41 = grave asciitilde grave semicolon nul VoidSymbol nul VoidSymbol Meta_grave VoidSymbol Meta_grave
+keycode 39 = semicolon colon semicolon colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_semicolon Meta_semicolon Meta_semicolon 
+keycode 40 = apostrophe quotedbl apostrophe quotedbl Control_g VoidSymbol Control_g VoidSymbol Meta_apostrophe Meta_apostrophe Meta_apostrophe Meta_apostrophe 
+keycode 41 = grave asciitilde grave asciitilde nul VoidSymbol nul VoidSymbol Meta_grave VoidSymbol Meta_grave
 keycode 42 = Shift
-keycode 43 = backslash bar oacute parenright Control_backslash VoidSymbol Control_backslash VoidSymbol Meta_backslash VoidSymbol Meta_backslash
-keycode 44 = y
-keycode 45 = x
-keycode 46 = c
-keycode 47 = v
-keycode 48 = b
-keycode 49 = n
-keycode 50 = m
-keycode 51 = comma less comma question
+keycode 43 = backslash bar backslash bar Control_backslash VoidSymbol Control_backslash VoidSymbol Meta_backslash VoidSymbol Meta_backslash
+keycode 51 = comma less comma less
 alt keycode 51 = Meta_comma
 alt altgr keycode 51 = Meta_comma
-keycode 52 = period greater period colon Compose VoidSymbol Compose VoidSymbol Meta_period VoidSymbol Meta_period
-keycode 53 = slash question minus underscore Delete VoidSymbol Delete VoidSymbol Meta_slash VoidSymbol Meta_slash
+keycode 52 = period greater period greater Compose VoidSymbol Compose VoidSymbol Meta_period VoidSymbol Meta_period
+keycode 53 = slash question slash question Delete VoidSymbol Delete VoidSymbol Meta_slash VoidSymbol Meta_slash
 keycode 54 = Shift
 keycode 55 = KP_Multiply
 keycode 56 = Alt
 keycode 57 = space space space space nul nul nul nul Meta_space Meta_space Meta_space Meta_space 
 keycode 58 = Caps_Lock
-keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1
-keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2
-keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3
-keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4
-keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5
-keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6
-keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7
-keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8
-keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9
-keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10
+keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1 VoidSymbol Console_1
+keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2 VoidSymbol Console_2
+keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3 VoidSymbol Console_3
+keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4 VoidSymbol Console_4
+keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5 VoidSymbol Console_5
+keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6 VoidSymbol Console_6
+keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7 VoidSymbol Console_7
+keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8 VoidSymbol Console_8
+keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9 VoidSymbol Console_9
+keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10 VoidSymbol Console_10
 keycode 69 = Num_Lock
 keycode 70 = Scroll_Lock Show_Memory Show_Registers
 control keycode 70 = Show_State
@@ -124,8 +105,8 @@ keycode 84 = Last_Console
 keycode 85 =
 keycode 86 = less greater bar
 alt keycode 86 = Meta_less
-keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11
-keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12
+keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11 VoidSymbol Console_11
+keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12 VoidSymbol Console_12
 keycode 89 =
 keycode 90 =
 keycode 91 =
@@ -174,11 +155,10 @@ keycode 124 =
 keycode 125 =
 keycode 126 =
 keycode 127 =
+
 compose ',' 'A' to '¡'
 compose '/' 'L' to '£'
 compose '^' 'L' to '¥'
-compose '^' 'A' to 'Ä'
-compose '^' 'a' to 'ä'
 compose '\'' 'S' to '¦'
 compose '^' 'S' to '©'
 compose ',' 'S' to 'ª'
@@ -198,8 +178,8 @@ compose '^' 'z' to '
 compose '.' 'z' to '¿'
 compose '\'' 'R' to 'À'
 compose '\'' 'A' to 'Á'
-compose '^' 'A' to 'Â'
-compose '^' 'A' to 'Ã'
+compose '^' 'A' to 'Ä'
+compose ':' 'A' to 'Ä'
 compose '\'' 'L' to 'Å'
 compose '\'' 'C' to 'Æ'
 compose ',' 'C' to 'Ç'
@@ -229,8 +209,8 @@ compose 's' 's' to '
 compose 'S' 'S' to 'ß'
 compose '\'' 'r' to 'à'
 compose '\'' 'a' to 'á'
-compose '^' 'a' to 'â'
-compose '^' 'a' to 'ã'
+compose '^' 'a' to 'ä'
+compose ':' 'a' to 'ä'
 compose '\'' 'l' to 'å'
 compose '\'' 'c' to 'æ'
 compose ',' 'c' to 'ç'
similarity index 89%
rename from keymaps/i386/qwerty/sk-qwerty.map
rename to data/keymaps/i386/qwertz/sk-qwertz.map
index 311ee2f..b22e4a7 100644 (file)
@@ -1,5 +1,6 @@
-# Slovak ISO 8859-2 keyboard map for text console
-# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.award.sk)
+# Slovak ISO 8859-2 keyboard map for text console (ver. 2)
+# Layout: qwertz
+# Written and (c) copyright by Jan Ondrej (ondrejj@salstar.shadow.sk)
 # You can distribute this file under the terms of GNU General
 # Public License (GPL). See the file COPYING.
 #
 # pri kombinacii s pismenom a daval vysledok dva znaky "a .
 # Upravil som to pridanim compose.
 #
+# Dalej som pridal prepinanie konzoli pomocou CTRL+ALT+F1 az F12
+# podla klasickej klavesovej mapy. Pridal som aj zopar includov,
+# ale neviem, ci nieco upravia.
+#
 # Tento subor bol vytvoreny zo suboru cz-lat2.map, ktory
 # napisal Jan Kasprzak (kas@ics.muni.cz).
 #
 charset "iso-8859-2"
 keymaps 0-15
+include "linux-keys-bare.inc"
+include "linux-keys-extd.inc"
+include "qwertz-layout.inc"
 strings as usual
+
 keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape
 keycode 2 = one exclam plus one VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_one Meta_one Meta_one 
 keycode 3 = two at lcaron two nul nul nul nul Meta_two Meta_two Meta_two Meta_two
@@ -33,16 +42,6 @@ keycode 12 = minus underscore equal percent Control_underscore Control_underscor
 keycode 13 = equal plus dead_acute dead_circumflex VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_equal Meta_equal Meta_equal  
 keycode 14 = Delete Delete Delete Delete VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Delete Meta_Delete Meta_Delete Meta_Delete  
 keycode 15 = Tab Tab Tab Tab VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_Tab Meta_Tab Meta_Tab Meta_Tab  
-keycode 16 = q 
-keycode 17 = w 
-keycode 18 = e
-keycode 19 = r
-keycode 20 = t
-keycode 21 = y
-keycode 22 = u
-keycode 23 = i
-keycode 24 = o
-keycode 25 = p
 keycode 26 = bracketleft braceleft uacute slash Escape VoidSymbol Escape VoidSymbol Meta_bracketleft Meta_bracketleft Meta_bracketleft Meta_bracketleft 
 keycode 27 = bracketright braceright adiaeresis parenleft Control_bracketright VoidSymbol Control_bracketright VoidSymbol Meta_bracketright Meta_bracketright Meta_bracketright Meta_bracketright 
 keycode 28 = Return 
@@ -50,27 +49,11 @@ altgr keycode 28 = Return
 alt keycode 28 = Meta_Control_m
 alt altgr keycode 28 = Meta_Control_m
 keycode 29 = Control
-keycode 30 = a
-keycode 31 = s
-keycode 32 = d
-keycode 33 = f
-keycode 34 = g
-keycode 35 = h
-keycode 36 = j
-keycode 37 = k
-keycode 38 = l
 keycode 39 = semicolon colon ocircumflex quotedbl VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_semicolon Meta_semicolon Meta_semicolon 
 keycode 40 = apostrophe quotedbl 0xa7 exclam Control_g VoidSymbol Control_g VoidSymbol Meta_apostrophe Meta_apostrophe Meta_apostrophe Meta_apostrophe 
-keycode 41 = grave asciitilde grave dead_diaeresis nul VoidSymbol nul VoidSymbol Meta_grave VoidSymbol Meta_grave
+keycode 41 = grave asciitilde dead_diaeresis dead_circumflex nul VoidSymbol nul VoidSymbol Meta_grave VoidSymbol Meta_grave
 keycode 42 = Shift
 keycode 43 = backslash bar ncaron parenright Control_backslash VoidSymbol Control_backslash VoidSymbol Meta_backslash VoidSymbol Meta_backslash
-keycode 44 = z
-keycode 45 = x
-keycode 46 = c
-keycode 47 = v
-keycode 48 = b
-keycode 49 = n
-keycode 50 = m
 keycode 51 = comma less comma question
 alt keycode 51 = Meta_comma
 alt altgr keycode 51 = Meta_comma
@@ -81,16 +64,16 @@ keycode 55 = KP_Multiply
 keycode 56 = Alt
 keycode 57 = space space space space nul nul nul nul Meta_space Meta_space Meta_space Meta_space 
 keycode 58 = Caps_Lock
-keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1
-keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2
-keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3
-keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4
-keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5
-keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6
-keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7
-keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8
-keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9
-keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10
+keycode 59 = F1 F13 F1 F13 F1 VoidSymbol F1 VoidSymbol Console_1 VoidSymbol Console_1 VoidSymbol Console_1
+keycode 60 = F2 F14 F2 F14 F2 VoidSymbol F2 VoidSymbol Console_2 VoidSymbol Console_2 VoidSymbol Console_2
+keycode 61 = F3 F15 F3 F15 F3 VoidSymbol F3 VoidSymbol Console_3 VoidSymbol Console_3 VoidSymbol Console_3
+keycode 62 = F4 F16 F4 F15 F4 VoidSymbol F4 VoidSymbol Console_4 VoidSymbol Console_4 VoidSymbol Console_4
+keycode 63 = F5 F17 F5 F15 F5 VoidSymbol F5 VoidSymbol Console_5 VoidSymbol Console_5 VoidSymbol Console_5
+keycode 64 = F6 F18 F6 F15 F6 VoidSymbol F6 VoidSymbol Console_6 VoidSymbol Console_6 VoidSymbol Console_6
+keycode 65 = F7 F19 F7 F15 F7 VoidSymbol F7 VoidSymbol Console_7 VoidSymbol Console_7 VoidSymbol Console_7
+keycode 66 = F8 F20 F8 F15 F8 VoidSymbol F8 VoidSymbol Console_8 VoidSymbol Console_8 VoidSymbol Console_8
+keycode 67 = F9 F9 F9 F9 F9 VoidSymbol F9 VoidSymbol Console_9 VoidSymbol Console_9 VoidSymbol Console_9
+keycode 68 = F10 F10 F10 F10 F10 VoidSymbol F10 VoidSymbol Console_10 VoidSymbol Console_10 VoidSymbol Console_10
 keycode 69 = Num_Lock
 keycode 70 = Scroll_Lock Show_Memory Show_Registers
 control keycode 70 = Show_State
@@ -123,8 +106,8 @@ keycode 84 = Last_Console
 keycode 85 =
 keycode 86 = less greater bar
 alt keycode 86 = Meta_less
-keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11
-keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12
+keycode 87 = F11 F11 F11 F11 F11 VoidSymbol F11 VoidSymbol Console_11 VoidSymbol Console_11 VoidSymbol Console_11
+keycode 88 = F12 F12 F12 F12 F12 VoidSymbol F12 VoidSymbol Console_12 VoidSymbol Console_12 VoidSymbol Console_12
 keycode 89 =
 keycode 90 =
 keycode 91 =
@@ -173,6 +156,7 @@ keycode 124 =
 keycode 125 =
 keycode 126 =
 keycode 127 =
+
 compose ',' 'A' to '¡'
 compose '/' 'L' to '£'
 compose '^' 'L' to '¥'
diff --git a/data/keymaps/mac/mac-de2-ext.map b/data/keymaps/mac/mac-de2-ext.map
new file mode 100644 (file)
index 0000000..19a6300
--- /dev/null
@@ -0,0 +1,271 @@
+#
+# Mac Extended II Tastatur deutsch
+# abgeleitet von mac-fr2-ext.map
+#
+# Mai 1999, Thomas Adams, tadams@fh-dortmund.de
+#
+# Sonderzeichen, die es auf der Tastatur nicht gibt, habe ich so angeordnet:
+#
+# @ : AltGr + q
+# | : AltGr + #
+# ~ : AltGr + +
+# \ : AltGr + ß
+# { : AltGr + 7
+# } : AltGr + 0
+# [ : AltGr + 8
+# ] : AltGr + 9
+#
+#
+# Ich habe viele der "Control_" und "Meta_" Einstellungen einfach so gelassen,
+# wie sie waren, einfach weil ich nichts so recht damit anfangen kann. :)
+# Wer mir in der Beziehung auf die Sprünge helfen möchte, bitte mailen.
+#
+keymaps 0-2,4-5,8,12
+strings as usual
+compose as usual for "iso-8859-1"
+keycode   1 = s               
+keycode   2 = +d                +D                Hex_D            Control_d        Control_d        Meta_d           Meta_Control_d  
+keycode   3 = +f                +F                Hex_F            Control_f        Control_f        Meta_f           Meta_Control_f  
+keycode   4 = h               
+keycode   5 = g               
+keycode   6 = y               
+keycode   7 = x               
+keycode   8 = +c                +C                Hex_C            Control_c        Control_c        Meta_c           Meta_Control_c  
+keycode   9 = v               
+keycode  10 = dead_circumflex  degree
+keycode  11 = +b                +B                Hex_B            Control_b        Control_b        Meta_b           Meta_Control_b  
+keycode  12 = +q                +Q                at
+keycode  13 = w               
+keycode  14 = +e                +E                Hex_E            Control_e        Control_e        Meta_e           Meta_Control_e  
+keycode  15 = r               
+keycode  16 = z               
+keycode  17 = t               
+keycode  18 = one             exclam
+       alt     keycode  18 = Meta_one        
+keycode  19 = two             quotedbl         nul              nul              nul              Meta_two
+keycode  20 = three           section
+       control keycode  20 = Escape          
+       alt     keycode  20 = Meta_three      
+keycode  21 = four            dollar            nul              Control_backslash
+       alt     keycode  21 = Meta_four       
+keycode  22 = six              ampersand     
+       control keycode  22 = Control_asciicircum
+       alt     keycode  22 = Meta_six        
+keycode  23 = five             percent
+       control keycode  23 = Control_bracketright
+       alt     keycode  23 = Meta_five       
+keycode  24 = dead_acute       dead_grave
+       alt     keycode  24 = Meta_equal      
+keycode  25 = nine             parenright       bracketright    
+       alt     keycode  25 = Meta_nine       
+keycode  26 = seven            slash            braceleft        Control_underscore
+       alt     keycode  26 = Meta_seven      
+keycode  27 = ssharp           question         backslash        Control_underscore Control_underscore Meta_minus      
+keycode  28 = eight            parenleft        bracketleft      Delete          
+       alt     keycode  28 = Meta_eight      
+keycode  29 = zero             equal            braceright      
+       alt     keycode  29 = Meta_zero       
+keycode  30 = plus             asterisk         asciitilde       Control_bracketright
+       alt     keycode  30 = Meta_bracketright
+keycode  31 = o               
+keycode  32 = u               
+keycode  33 = +udiaeresis       +Udiaeresis
+       control keycode  33 = Escape          
+       alt     keycode  33 = Meta_bracketleft
+keycode  34 = i               
+keycode  35 = p               
+keycode  36 = Return          
+       alt     keycode  36 = Meta_Control_m  
+keycode  37 = l               
+keycode  38 = j               
+keycode  39 = +adiaeresis       +Adiaeresis
+       control keycode  39 = Control_g       
+       alt     keycode  39 = Meta_apostrophe 
+keycode  40 = k
+keycode  41 = +odiaeresis       +Odiaeresis
+       alt     keycode  41 = Meta_semicolon  
+keycode  42 = numbersign       apostrophe        bar
+       control keycode  42 = Control_backslash
+       alt     keycode  42 = Meta_backslash  
+keycode  43 = comma            semicolon          
+       alt     keycode  43 = Meta_comma      
+keycode  44 = minus            underscore          
+       control keycode  44 = Delete          
+       alt     keycode  44 = Meta_slash      
+keycode  45 = n               
+keycode  46 = m
+keycode  47 = period           colon         
+       control keycode  47 = Compose         
+       alt     keycode  47 = backslash     
+keycode  48 = Tab              Tab             
+       alt     keycode  48 = Meta_Tab        
+keycode  49 = space            space           
+       control keycode  49 = nul             
+       alt     keycode  49 = Meta_space      
+keycode  50 = less            greater      
+       control keycode  50 = nul             
+       alt     keycode  50 = Meta_grave      
+keycode  51 = BackSpace       BackSpace          
+       control keycode  51 = Delete       
+       alt     keycode  51 = Meta_Delete     
+keycode  52 =
+keycode  53 = Escape           Escape          
+       alt     keycode  53 = Meta_Escape     
+keycode  54 = Control         
+keycode  55 = Alt             
+keycode  56 = Shift           
+keycode  57 = Caps_Lock       
+keycode  58 = AltGr           
+keycode  59 = Left            
+       alt     keycode  59 = Decr_Console    
+keycode  60 = Right           
+       alt     keycode  60 = Incr_Console    
+keycode  61 = Down            
+keycode  62 = Up              
+keycode  63 =
+keycode  64 =
+keycode  65 = KP_Period       
+keycode  66 =
+keycode  67 = KP_Multiply     
+keycode  68 =
+keycode  69 = KP_Add          
+keycode  70 =
+keycode  71 = Num_Lock        
+keycode  72 =
+keycode  73 =
+keycode  74 =
+keycode  75 = KP_Divide       
+keycode  76 = KP_Enter        
+keycode  77 =
+keycode  78 = KP_Subtract     
+keycode  79 =
+keycode  80 =
+keycode  81 = equal
+keycode  82 = KP_0            
+       altgr   keycode  82 = Hex_0           
+       alt     keycode  82 = Ascii_0         
+keycode  83 = KP_1            
+       altgr   keycode  83 = Hex_1           
+       alt     keycode  83 = Ascii_1         
+keycode  84 = KP_2            
+       altgr   keycode  84 = Hex_2           
+       alt     keycode  84 = Ascii_2         
+keycode  85 = KP_3            
+       altgr   keycode  85 = Hex_3           
+       alt     keycode  85 = Ascii_3         
+keycode  86 = KP_4            
+       altgr   keycode  86 = Hex_4           
+       alt     keycode  86 = Ascii_4         
+keycode  87 = KP_5            
+       altgr   keycode  87 = Hex_5           
+       alt     keycode  87 = Ascii_5         
+keycode  88 = KP_6            
+       altgr   keycode  88 = Hex_6           
+       alt     keycode  88 = Ascii_6         
+keycode  89 = KP_7            
+       altgr   keycode  89 = Hex_7           
+       alt     keycode  89 = Ascii_7         
+keycode  90 = +a                +A                Hex_A             Control_a        Control_a        Meta_a           Meta_Control_a
+keycode  91 = KP_8            
+       altgr   keycode  91 = Hex_8           
+       alt     keycode  91 = Ascii_8         
+keycode  92 = KP_9            
+       altgr   keycode  92 = Hex_9           
+       alt     keycode  92 = Ascii_9         
+keycode  93 =
+keycode  94 =
+keycode  95 =
+keycode  96 = F5              
+       shift   keycode  96 = F15             
+       altgr   keycode  96 = Console_17      
+       shift   control keycode  96 = VoidSymbol      
+       alt     keycode  96 = Console_5       
+       control alt     keycode  96 = Console_5       
+keycode  97 = F6              
+       shift   keycode  97 = F16             
+       altgr   keycode  97 = Console_18      
+       shift   control keycode  97 = VoidSymbol      
+       alt     keycode  97 = Console_6       
+       control alt     keycode  97 = Console_6       
+keycode  98 = F7              
+       shift   keycode  98 = F17             
+       altgr   keycode  98 = Console_19      
+       shift   control keycode  98 = VoidSymbol      
+       alt     keycode  98 = Console_7       
+       control alt     keycode  98 = Console_7       
+keycode  99 = F3              
+       shift   keycode  99 = F13             
+       altgr   keycode  99 = Console_15      
+       shift   control keycode  99 = VoidSymbol      
+       alt     keycode  99 = Console_3       
+       control alt     keycode  99 = Console_3       
+keycode 100 = F8              
+       shift   keycode 100 = F18             
+       altgr   keycode 100 = Console_20      
+       shift   control keycode 100 = VoidSymbol      
+       alt     keycode 100 = Console_8       
+       control alt     keycode 100 = Console_8       
+keycode 101 = F9              
+       shift   keycode 101 = F19             
+       altgr   keycode 101 = Console_21      
+       shift   control keycode 101 = VoidSymbol      
+       alt     keycode 101 = Console_9       
+       control alt     keycode 101 = Console_9       
+keycode 102 =
+keycode 103 = F11             
+       altgr   keycode 103 = Console_23      
+       shift   control keycode 103 = VoidSymbol      
+       alt     keycode 103 = Console_11      
+       control alt     keycode 103 = Console_11      
+keycode 104 =
+keycode 105 = F13             
+keycode 106 =
+keycode 107 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
+       alt     keycode 107 = Scroll_Lock     
+keycode 108 =
+keycode 109 = F10             
+       shift   keycode 109 = F20             
+       altgr   keycode 109 = Console_22      
+       shift   control keycode 109 = VoidSymbol      
+       alt     keycode 109 = Console_10      
+       control alt     keycode 109 = Console_10      
+keycode 110 =
+keycode 111 = F12             
+       altgr   keycode 111 = Console_24      
+       shift   control keycode 111 = VoidSymbol      
+       alt     keycode 111 = Console_12      
+       control alt     keycode 111 = Console_12      
+keycode 112 =
+keycode 113 = Pause           
+keycode 114 = Insert          
+keycode 115 = Find            
+keycode 116 = Prior           
+       shift   keycode 116 = Scroll_Backward 
+keycode 117 = Remove          
+keycode 118 = F4              
+       shift   keycode 118 = F14             
+       altgr   keycode 118 = Console_16      
+       shift   control keycode 118 = VoidSymbol      
+       alt     keycode 118 = Console_4       
+       control alt     keycode 118 = Console_4       
+keycode 119 = Select          
+keycode 120 = F2              
+       shift   keycode 120 = F12             
+       altgr   keycode 120 = Console_14      
+       shift   control keycode 120 = VoidSymbol      
+       alt     keycode 120 = Console_2       
+       control alt     keycode 120 = Console_2       
+keycode 121 = Next            
+       shift   keycode 121 = Scroll_Forward  
+keycode 122 = F1              
+       shift   keycode 122 = F11             
+       altgr   keycode 122 = Console_13      
+       shift   control keycode 122 = VoidSymbol      
+       alt     keycode 122 = Console_1       
+       control alt     keycode 122 = Console_1       
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+       shift   control keycode 127 = Boot            
similarity index 99%
rename from keymaps/sun/sunkeymap.map
rename to data/keymaps/sun/sunkeymap.map
index ff06a36..6e4e36d 100644 (file)
@@ -162,7 +162,7 @@ keycode 0x41 = bracketright    braceright      asciitilde
        alt     keycode                         0x41 = Meta_bracketright
 keycode 0x42 = Delete          Delete
        control keycode                         0x42 = BackSpace
-       alt     keycode                         0x43 = Meta_Delete
+       alt     keycode                         0x42 = Meta_Delete
        control alt     keycode                 0x42 = Boot
 keycode 0x43 = Compose
 keycode 0x44 = KP_7
diff --git a/data/keymaps/sun/sunt4-fi-latin1.map b/data/keymaps/sun/sunt4-fi-latin1.map
new file mode 100644 (file)
index 0000000..090d973
--- /dev/null
@@ -0,0 +1,249 @@
+# Date: Tue, 30 Mar 1999 05:29:12 +0300 (EET DST)
+# From: Paavo Hartikainen <pahartik@sci.fi>
+# X-Sender: pahartik@simpukka
+# To: Andries.Brouwer@cwi.nl
+# Subject: Re: Keymap for finnish Sun type 4 keyboard
+#
+strings as usual
+compose as usual for "iso-8859-1"
+keymaps 0-2,4-5,8,12
+keycode   1 =
+keycode   2 =
+keycode   3 =
+keycode   4 =
+keycode   5 = F1              
+       shift   keycode   5 = F11             
+       altgr   keycode   5 = Console_13      
+       shift   control keycode   5 = VoidSymbol      
+       alt     keycode   5 = Console_1       
+       control alt     keycode   5 = Console_1       
+keycode   6 = F2              
+       shift   keycode   6 = F12             
+       altgr   keycode   6 = Console_14      
+       shift   control keycode   6 = VoidSymbol      
+       alt     keycode   6 = Console_2       
+       control alt     keycode   6 = Console_2       
+keycode   7 = F10             
+       shift   keycode   7 = F20             
+       altgr   keycode   7 = Console_22      
+       shift   control keycode   7 = VoidSymbol      
+       alt     keycode   7 = Console_10      
+       control alt     keycode   7 = Console_10      
+keycode   8 = F3              
+       shift   keycode   8 = F13             
+       altgr   keycode   8 = Console_15      
+       shift   control keycode   8 = VoidSymbol      
+       alt     keycode   8 = Console_3       
+       control alt     keycode   8 = Console_3       
+keycode   9 = F11             
+       altgr   keycode   9 = Console_23      
+       shift   control keycode   9 = VoidSymbol      
+       alt     keycode   9 = Console_11      
+       control alt     keycode   9 = Console_11      
+keycode  10 = F4              
+       shift   keycode  10 = F14             
+       altgr   keycode  10 = Console_16      
+       shift   control keycode  10 = VoidSymbol      
+       alt     keycode  10 = Console_4       
+       control alt     keycode  10 = Console_4       
+keycode  11 = F12             
+       altgr   keycode  11 = Console_24      
+       shift   control keycode  11 = VoidSymbol      
+       alt     keycode  11 = Console_12      
+       control alt     keycode  11 = Console_12      
+keycode  12 = F5              
+       shift   keycode  12 = F15             
+       altgr   keycode  12 = Console_17      
+       shift   control keycode  12 = VoidSymbol      
+       alt     keycode  12 = Console_5       
+       control alt     keycode  12 = Console_5       
+keycode  13 = Compose           
+keycode  14 = F6              
+       shift   keycode  14 = F16             
+       altgr   keycode  14 = Console_18      
+       shift   control keycode  14 = VoidSymbol      
+       alt     keycode  14 = Console_6       
+       control alt     keycode  14 = Console_6       
+keycode  15 = tilde            circumflex
+keycode  16 = F7               F17              Console_19       F8              
+       alt     keycode  16 = Console_7       
+       control alt     keycode  16 = Console_7       
+keycode  17 = F8               F18              Console_20      
+       alt     keycode  17 = Console_8       
+       control alt     keycode  17 = Console_8       
+keycode  18 = F9              
+       shift   keycode  18 = F19             
+       altgr   keycode  18 = Console_21      
+       shift   control keycode  18 = VoidSymbol      
+       alt     keycode  18 = Console_9       
+       control alt     keycode  18 = Console_9       
+keycode  19 = Alt             
+keycode  20 = Up              
+keycode  21 = Pause           
+keycode  22 =
+keycode  23 = Scroll_Lock      Show_Memory      Show_Registers   Show_State      
+       alt     keycode  23 = Scroll_Lock     
+keycode  24 = Left            
+       alt     keycode  24 = Decr_Console    
+keycode  25 =
+keycode  26 =
+keycode  27 = Down            
+keycode  28 = Right           
+       alt     keycode  28 = Incr_Console    
+keycode  29 = Escape           Escape          
+       alt     keycode  29 = Meta_Escape     
+keycode  30 = one              exclam          
+       alt     keycode  30 = Meta_one        
+keycode  31 = two              quotedbl         at               nul              nul              Meta_two        
+keycode  32 = three            numbersign       sterling         Escape          
+       alt     keycode  32 = Meta_three      
+keycode  33 = four             dollar           dollar           Control_backslash
+       alt     keycode  33 = Meta_four       
+keycode  34 = five             percent         
+       control keycode  34 = Control_bracketright
+       alt     keycode  34 = Meta_five       
+keycode  35 = six              ampersand       
+       control keycode  35 = Control_asciicircum
+       alt     keycode  35 = Meta_six        
+keycode  36 = seven            slash            braceleft        Control_underscore
+       alt     keycode  36 = Meta_seven      
+keycode  37 = eight            parenleft        bracketleft      Delete          
+       alt     keycode  37 = Meta_eight      
+keycode  38 = nine             parenright       bracketright    
+       alt     keycode  38 = Meta_nine       
+keycode  39 = zero             equal            braceright      
+       alt     keycode  39 = Meta_zero       
+keycode  40 = plus             question         backslash        Control_underscore Control_underscore Meta_minus      
+keycode  41 = dead_acute       dead_grave      
+       alt     keycode  41 = Meta_equal      
+keycode  42 = apostrophe       asterisk         grave            Control_backslash
+       alt     keycode  88 = Meta_backslash  
+keycode  43 = BackSpace           BackSpace          
+       control keycode  43 = BackSpace       
+       alt     keycode  43 = Meta_Delete     
+keycode  44 = Insert          
+keycode  45 = equal           
+keycode  46 = KP_Divide       
+keycode  47 = KP_Multiply     
+keycode  48 =
+keycode  49 =
+keycode  50 = KP_Period       
+       control alt     keycode  50 = Boot            
+keycode  51 =
+keycode  52 =
+keycode  53 = Tab              Tab             
+       alt     keycode  53 = Meta_Tab        
+keycode  54 = q               
+keycode  55 = w               
+keycode  56 = +e                +E                Hex_E            Control_e        Control_e        Meta_e           Meta_Control_e  
+keycode  57 = r               
+keycode  58 = t               
+keycode  59 = y               
+keycode  60 = u               
+keycode  61 = i               
+keycode  62 = o               
+keycode  63 = p               
+keycode  64 = +aring            +Aring           
+       control keycode  64 = Escape          
+       alt     keycode  64 = Meta_bracketleft
+keycode  65 = dead_diaeresis   dead_circumflex  dead_tilde       Control_bracketright
+       alt     keycode  65 = Meta_bracketright
+keycode  66 = Delete           Delete          
+       control keycode  66 = BackSpace       
+keycode  67 = AltGr         
+       alt     keycode  67 = Meta_Delete     
+keycode  68 = KP_7            
+       altgr   keycode  68 = Hex_7           
+       alt     keycode  68 = Ascii_7         
+keycode  69 = KP_8            
+       altgr   keycode  69 = Hex_8           
+       alt     keycode  69 = Ascii_8         
+keycode  70 = KP_9            
+       altgr   keycode  70 = Hex_9           
+       alt     keycode  70 = Ascii_9         
+keycode  71 = KP_Subtract     
+keycode  72 =
+keycode  73 =
+keycode  74 = Select          
+keycode  75 =
+keycode  76 = Caps_Lock         
+keycode  77 = +a                +A                Hex_A            Control_a        Control_a        Meta_a           Meta_Control_a  
+keycode  78 = s               
+keycode  79 = +d                +D                Hex_D            Control_d        Control_d        Meta_d           Meta_Control_d  
+keycode  80 = +f                +F                Hex_F            Control_f        Control_f        Meta_f           Meta_Control_f  
+keycode  81 = g               
+keycode  82 = h               
+keycode  83 = j               
+keycode  84 = k               
+keycode  85 = l               
+keycode  86 = +odiaeresis       +Odiaeresis      
+       alt     keycode  86 = Meta_semicolon  
+keycode  87 = +adiaeresis       +Adiaeresis      
+       control keycode  87 = Control_g       
+       alt     keycode  87 = Meta_apostrophe 
+keycode  88 = section          onehalf         
+       control keycode  42 = nul             
+       alt     keycode  42 = Meta_grave      
+keycode  89 = Return          
+       alt     keycode  89 = Meta_Control_m  
+keycode  90 = KP_Enter        
+keycode  91 = KP_4            
+       altgr   keycode  91 = Hex_4           
+       alt     keycode  91 = Ascii_4         
+keycode  92 = KP_5            
+       altgr   keycode  92 = Hex_5           
+       alt     keycode  92 = Ascii_5         
+keycode  93 = KP_6            
+       altgr   keycode  93 = Hex_6           
+       alt     keycode  93 = Ascii_6         
+keycode  94 = KP_0            
+       altgr   keycode  94 = Hex_0           
+       alt     keycode  94 = Ascii_0         
+keycode  95 = Find
+keycode  96 = Prior           
+       shift   keycode  96 = Scroll_Backward 
+keycode  97 =
+keycode  98 = Num_Lock        
+keycode  99 = Shift           
+keycode 100 = z               
+keycode 101 = x               
+keycode 102 = +c                +C                Hex_C            Control_c        Control_c        Meta_c           Meta_Control_c  
+keycode 103 = v               
+keycode 104 = +b                +B                Hex_B            Control_b        Control_b        Meta_b           Meta_Control_b  
+keycode 105 = n               
+keycode 106 = m               
+keycode 107 = comma            semicolon       
+       alt     keycode 107 = Meta_comma      
+keycode 108 = period           colon           
+       control keycode 108 = Compose         
+       alt     keycode 108 = Meta_period     
+keycode 109 = minus            underscore      
+       control keycode 109 = Delete          
+       alt     keycode 109 = Meta_slash      
+keycode 110 = Shift           
+keycode 111 = Linefeed        
+keycode 112 = KP_1            
+       altgr   keycode 112 = Hex_1           
+       alt     keycode 112 = Ascii_1         
+keycode 113 = KP_2            
+       altgr   keycode 113 = Hex_2           
+       alt     keycode 113 = Ascii_2         
+keycode 114 = KP_3            
+       altgr   keycode 114 = Hex_3           
+       alt     keycode 114 = Ascii_3         
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 = Help            
+keycode 119 = Control       
+keycode 120 =
+keycode 121 = space            space           
+       control keycode 121 = nul             
+       alt     keycode 121 = Meta_space      
+keycode 122 =
+keycode 123 = Next            
+       shift   keycode 123 = Scroll_Forward  
+keycode 124 = less             greater          bar             
+keycode 125 = KP_Add          
+keycode 126 =
+keycode 127 =
diff --git a/data/partialfonts/8859-1.a0-ff.08 b/data/partialfonts/8859-1.a0-ff.08
new file mode 100644 (file)
index 0000000..c77c217
Binary files /dev/null and b/data/partialfonts/8859-1.a0-ff.08 differ
diff --git a/data/partialfonts/8859-1.a0-ff.14 b/data/partialfonts/8859-1.a0-ff.14
new file mode 100644 (file)
index 0000000..6e4041c
Binary files /dev/null and b/data/partialfonts/8859-1.a0-ff.14 differ
diff --git a/data/partialfonts/8859-1.a0-ff.16 b/data/partialfonts/8859-1.a0-ff.16
new file mode 100644 (file)
index 0000000..f23d8f8
Binary files /dev/null and b/data/partialfonts/8859-1.a0-ff.16 differ
diff --git a/data/partialfonts/8859-10.a0-ff.08 b/data/partialfonts/8859-10.a0-ff.08
new file mode 100644 (file)
index 0000000..33a95df
Binary files /dev/null and b/data/partialfonts/8859-10.a0-ff.08 differ
diff --git a/data/partialfonts/8859-10.a0-ff.14 b/data/partialfonts/8859-10.a0-ff.14
new file mode 100644 (file)
index 0000000..92ddd9b
Binary files /dev/null and b/data/partialfonts/8859-10.a0-ff.14 differ
diff --git a/data/partialfonts/8859-10.a0-ff.16 b/data/partialfonts/8859-10.a0-ff.16
new file mode 100644 (file)
index 0000000..2c69486
Binary files /dev/null and b/data/partialfonts/8859-10.a0-ff.16 differ
diff --git a/data/partialfonts/8859-2.a0-ff.08 b/data/partialfonts/8859-2.a0-ff.08
new file mode 100644 (file)
index 0000000..5daf0c9
Binary files /dev/null and b/data/partialfonts/8859-2.a0-ff.08 differ
diff --git a/data/partialfonts/8859-2.a0-ff.14 b/data/partialfonts/8859-2.a0-ff.14
new file mode 100644 (file)
index 0000000..6ca89d6
Binary files /dev/null and b/data/partialfonts/8859-2.a0-ff.14 differ
diff --git a/data/partialfonts/8859-2.a0-ff.16 b/data/partialfonts/8859-2.a0-ff.16
new file mode 100644 (file)
index 0000000..65a2dca
Binary files /dev/null and b/data/partialfonts/8859-2.a0-ff.16 differ
diff --git a/data/partialfonts/8859-3.a0-ff.08 b/data/partialfonts/8859-3.a0-ff.08
new file mode 100644 (file)
index 0000000..028fcb7
Binary files /dev/null and b/data/partialfonts/8859-3.a0-ff.08 differ
diff --git a/data/partialfonts/8859-3.a0-ff.14 b/data/partialfonts/8859-3.a0-ff.14
new file mode 100644 (file)
index 0000000..c8b8413
Binary files /dev/null and b/data/partialfonts/8859-3.a0-ff.14 differ
diff --git a/data/partialfonts/8859-3.a0-ff.16 b/data/partialfonts/8859-3.a0-ff.16
new file mode 100644 (file)
index 0000000..11a2bcc
Binary files /dev/null and b/data/partialfonts/8859-3.a0-ff.16 differ
diff --git a/data/partialfonts/8859-4.a0-ff.08 b/data/partialfonts/8859-4.a0-ff.08
new file mode 100644 (file)
index 0000000..9e85114
Binary files /dev/null and b/data/partialfonts/8859-4.a0-ff.08 differ
diff --git a/data/partialfonts/8859-4.a0-ff.14 b/data/partialfonts/8859-4.a0-ff.14
new file mode 100644 (file)
index 0000000..c990aa0
Binary files /dev/null and b/data/partialfonts/8859-4.a0-ff.14 differ
diff --git a/data/partialfonts/8859-4.a0-ff.16 b/data/partialfonts/8859-4.a0-ff.16
new file mode 100644 (file)
index 0000000..82931b8
Binary files /dev/null and b/data/partialfonts/8859-4.a0-ff.16 differ
diff --git a/data/partialfonts/8859-5.a0-ff.08 b/data/partialfonts/8859-5.a0-ff.08
new file mode 100644 (file)
index 0000000..d825f2e
Binary files /dev/null and b/data/partialfonts/8859-5.a0-ff.08 differ
diff --git a/data/partialfonts/8859-5.a0-ff.14 b/data/partialfonts/8859-5.a0-ff.14
new file mode 100644 (file)
index 0000000..b37ea76
Binary files /dev/null and b/data/partialfonts/8859-5.a0-ff.14 differ
diff --git a/data/partialfonts/8859-5.a0-ff.16 b/data/partialfonts/8859-5.a0-ff.16
new file mode 100644 (file)
index 0000000..cbb6460
Binary files /dev/null and b/data/partialfonts/8859-5.a0-ff.16 differ
diff --git a/data/partialfonts/8859-6.a0-ff.08 b/data/partialfonts/8859-6.a0-ff.08
new file mode 100644 (file)
index 0000000..2f4fc3d
Binary files /dev/null and b/data/partialfonts/8859-6.a0-ff.08 differ
diff --git a/data/partialfonts/8859-6.a0-ff.14 b/data/partialfonts/8859-6.a0-ff.14
new file mode 100644 (file)
index 0000000..c97e916
Binary files /dev/null and b/data/partialfonts/8859-6.a0-ff.14 differ
diff --git a/data/partialfonts/8859-6.a0-ff.16 b/data/partialfonts/8859-6.a0-ff.16
new file mode 100644 (file)
index 0000000..6c00fc6
Binary files /dev/null and b/data/partialfonts/8859-6.a0-ff.16 differ
diff --git a/data/partialfonts/8859-7.a0-ff.08 b/data/partialfonts/8859-7.a0-ff.08
new file mode 100644 (file)
index 0000000..f6f3ecc
Binary files /dev/null and b/data/partialfonts/8859-7.a0-ff.08 differ
diff --git a/data/partialfonts/8859-7.a0-ff.14 b/data/partialfonts/8859-7.a0-ff.14
new file mode 100644 (file)
index 0000000..8577716
Binary files /dev/null and b/data/partialfonts/8859-7.a0-ff.14 differ
diff --git a/data/partialfonts/8859-7.a0-ff.16 b/data/partialfonts/8859-7.a0-ff.16
new file mode 100644 (file)
index 0000000..6815467
Binary files /dev/null and b/data/partialfonts/8859-7.a0-ff.16 differ
diff --git a/data/partialfonts/8859-8.a0-ff.08 b/data/partialfonts/8859-8.a0-ff.08
new file mode 100644 (file)
index 0000000..b0b8ddc
Binary files /dev/null and b/data/partialfonts/8859-8.a0-ff.08 differ
diff --git a/data/partialfonts/8859-8.a0-ff.14 b/data/partialfonts/8859-8.a0-ff.14
new file mode 100644 (file)
index 0000000..e04a67e
Binary files /dev/null and b/data/partialfonts/8859-8.a0-ff.14 differ
diff --git a/data/partialfonts/8859-8.a0-ff.16 b/data/partialfonts/8859-8.a0-ff.16
new file mode 100644 (file)
index 0000000..67f68c8
Binary files /dev/null and b/data/partialfonts/8859-8.a0-ff.16 differ
diff --git a/data/partialfonts/8859-9.a0-ff.08 b/data/partialfonts/8859-9.a0-ff.08
new file mode 100644 (file)
index 0000000..af69f88
Binary files /dev/null and b/data/partialfonts/8859-9.a0-ff.08 differ
diff --git a/data/partialfonts/8859-9.a0-ff.14 b/data/partialfonts/8859-9.a0-ff.14
new file mode 100644 (file)
index 0000000..d67f58e
Binary files /dev/null and b/data/partialfonts/8859-9.a0-ff.14 differ
diff --git a/data/partialfonts/8859-9.a0-ff.16 b/data/partialfonts/8859-9.a0-ff.16
new file mode 100644 (file)
index 0000000..36803fa
Binary files /dev/null and b/data/partialfonts/8859-9.a0-ff.16 differ
diff --git a/data/partialfonts/ascii.20-7f.08 b/data/partialfonts/ascii.20-7f.08
new file mode 100644 (file)
index 0000000..90e05e6
Binary files /dev/null and b/data/partialfonts/ascii.20-7f.08 differ
diff --git a/data/partialfonts/ascii.20-7f.14 b/data/partialfonts/ascii.20-7f.14
new file mode 100644 (file)
index 0000000..ffb39c2
Binary files /dev/null and b/data/partialfonts/ascii.20-7f.14 differ
diff --git a/data/partialfonts/ascii.20-7f.16 b/data/partialfonts/ascii.20-7f.16
new file mode 100644 (file)
index 0000000..d056bdc
Binary files /dev/null and b/data/partialfonts/ascii.20-7f.16 differ
diff --git a/data/partialfonts/cp437.00-1f.08 b/data/partialfonts/cp437.00-1f.08
new file mode 100644 (file)
index 0000000..d5386b8
Binary files /dev/null and b/data/partialfonts/cp437.00-1f.08 differ
diff --git a/data/partialfonts/cp437.00-1f.14 b/data/partialfonts/cp437.00-1f.14
new file mode 100644 (file)
index 0000000..3d7da43
Binary files /dev/null and b/data/partialfonts/cp437.00-1f.14 differ
diff --git a/data/partialfonts/cp437.00-1f.16 b/data/partialfonts/cp437.00-1f.16
new file mode 100644 (file)
index 0000000..c90f7cc
Binary files /dev/null and b/data/partialfonts/cp437.00-1f.16 differ
diff --git a/data/partialfonts/none.00-17.08 b/data/partialfonts/none.00-17.08
new file mode 100644 (file)
index 0000000..ce6db44
Binary files /dev/null and b/data/partialfonts/none.00-17.08 differ
diff --git a/data/partialfonts/none.00-17.14 b/data/partialfonts/none.00-17.14
new file mode 100644 (file)
index 0000000..7a7eebc
Binary files /dev/null and b/data/partialfonts/none.00-17.14 differ
diff --git a/data/partialfonts/none.00-17.16 b/data/partialfonts/none.00-17.16
new file mode 100644 (file)
index 0000000..274655f
Binary files /dev/null and b/data/partialfonts/none.00-17.16 differ
diff --git a/data/unimaps/8859-1.a0-ff.uni b/data/unimaps/8859-1.a0-ff.uni
new file mode 100644 (file)
index 0000000..f57eb5e
--- /dev/null
@@ -0,0 +1,97 @@
+# ISO/IEC 8859-1\r
+0x000  U+00a0  # NO-BREAK SPACE\r
+0x001  U+00a1  # INVERTED EXCLAMATION MARK\r
+0x002  U+00a2  # CENT SIGN\r
+0x003  U+00a3  # POUND SIGN\r
+0x004  U+00a4  # CURRENCY SIGN\r
+0x005  U+00a5  # YEN SIGN\r
+0x006  U+00a6  # BROKEN BAR\r
+0x007  U+00a7  # SECTION SIGN\r
+0x008  U+00a8  # DIAERESIS\r
+0x009  U+00a9  # COPYRIGHT SIGN\r
+0x00a  U+00aa  # FEMININE ORDINAL INDICATOR\r
+0x00b  U+00ab  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00c  U+00ac  # NOT SIGN\r
+0x00d  U+00ad  # SOFT HYPHEN\r
+0x00e  U+00ae  # REGISTERED SIGN\r
+0x00f  U+00af  # MACRON\r
+0x010  U+00b0  # DEGREE SIGN\r
+0x011  U+00b1  # PLUS-MINUS SIGN\r
+0x012  U+00b2  # SUPERSCRIPT TWO\r
+0x013  U+00b3  # SUPERSCRIPT THREE\r
+0x014  U+00b4  # ACUTE ACCENT\r
+0x015  U+00b5  # MICRO SIGN\r
+0x016  U+00b6  # PILCROW SIGN\r
+0x017  U+00b7  # MIDDLE DOT\r
+0x018  U+00b8  # CEDILLA\r
+0x019  U+00b9  # SUPERSCRIPT ONE\r
+0x01a  U+00ba  # MASCULINE ORDINAL INDICATOR\r
+0x01b  U+00bb  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01c  U+00bc  # VULGAR FRACTION ONE QUARTER\r
+0x01d  U+00bd  # VULGAR FRACTION ONE HALF\r
+0x01e  U+00be  # VULGAR FRACTION THREE QUARTERS\r
+0x01f  U+00bf  # INVERTED QUESTION MARK\r
+0x020  U+00c0  # LATIN CAPITAL LETTER A WITH GRAVE\r
+0x021  U+00c1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00c2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00c3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00c6  # LATIN CAPITAL LETTER AE\r
+0x027  U+00c7  # LATIN CAPITAL LETTER C WITH CEDILLA\r
+0x028  U+00c8  # LATIN CAPITAL LETTER E WITH GRAVE\r
+0x029  U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02a  U+00ca  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0x02b  U+00cb  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02c  U+00cc  # LATIN CAPITAL LETTER I WITH GRAVE\r
+0x02d  U+00cd  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02e  U+00ce  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02f  U+00cf  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x030  U+00d0  # LATIN CAPITAL LETTER ETH\r
+0x031  U+00d1  # LATIN CAPITAL LETTER N WITH TILDE\r
+0x032  U+00d2  # LATIN CAPITAL LETTER O WITH GRAVE\r
+0x033  U+00d3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00d4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00d5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00d7  # MULTIPLICATION SIGN\r
+0x038  U+00d8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+00d9  # LATIN CAPITAL LETTER U WITH GRAVE\r
+0x03a  U+00da  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03b  U+00db  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03c  U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03d  U+00dd  # LATIN CAPITAL LETTER Y WITH ACUTE\r
+0x03e  U+00de  # LATIN CAPITAL LETTER THORN\r
+0x03f  U+00df  # LATIN SMALL LETTER SHARP S\r
+0x040  U+00e0  # LATIN SMALL LETTER A WITH GRAVE\r
+0x041  U+00e1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00e3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00e6  # LATIN SMALL LETTER AE\r
+0x047  U+00e7  # LATIN SMALL LETTER C WITH CEDILLA\r
+0x048  U+00e8  # LATIN SMALL LETTER E WITH GRAVE\r
+0x049  U+00e9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04a  U+00ea  # LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0x04b  U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04c  U+00ec  # LATIN SMALL LETTER I WITH GRAVE\r
+0x04d  U+00ed  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04e  U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04f  U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x050  U+00f0  # LATIN SMALL LETTER ETH\r
+0x051  U+00f1  # LATIN SMALL LETTER N WITH TILDE\r
+0x052  U+00f2  # LATIN SMALL LETTER O WITH GRAVE\r
+0x053  U+00f3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00f5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00f7  # DIVISION SIGN\r
+0x058  U+00f8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+00f9  # LATIN SMALL LETTER U WITH GRAVE\r
+0x05a  U+00fa  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05b  U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05c  U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05d  U+00fd  # LATIN SMALL LETTER Y WITH ACUTE\r
+0x05e  U+00fe  # LATIN SMALL LETTER THORN\r
+0x05f  U+00ff  # LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/unimaps/8859-10.a0-ff.uni b/data/unimaps/8859-10.a0-ff.uni
new file mode 100644 (file)
index 0000000..31897c4
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-10 (Latin-6)\r
+0x000  U+00a0  # NO-BREAK SPACE\r
+0x001  U+0104  # LATIN CAPITAL LETTER A WITH OGONEK\r
+0x002  U+0112  # LATIN CAPITAL LETTER E WITH MACRON\r
+0x003  U+0122  # LATIN CAPITAL LETTER G WITH CEDILLA\r
+0x004  U+0124  # LATIN CAPITAL LETTER I WITH MACRON\r
+0x005  U+0128  # LATIN CAPITAL LETTER I WITH TILDE\r
+0x006  U+0136  # LATIN CAPITAL LETTER K WITH CEDILLA\r
+0x007  U+00a7  # SECTION SIGN\r
+0x008  U+013b  # LATIN CAPITAL LETTER L WITH CEDILLA\r
+0x009  U+0110  # LATIN CAPITAL LETTER D WITH STROKE\r
+0x00a  U+0160  # LATIN CAPITAL LETTER S WITH CARON\r
+0x00b  U+0166  # LATIN CAPITAL LETTER T WITH STROKE\r
+0x00c  U+017d  # LATIN CAPITAL LETTER Z WITH CARON\r
+0x00d  U+00ad  # SOFT HYPHEN\r
+0x00e  U+016a  # LATIN CAPITAL LETTER U WITH MACRON\r
+0x00f  U+014a  # LATIN CAPITAL LETTER ENG\r
+0x010  U+00b0  # DEGREE SIGN\r
+0x011  U+0105  # LATIN SMALL LETTER A WITH OGONEK\r
+0x012  U+0113  # LATIN SMALL LETTER E WITH MACRON\r
+0x013  U+0123  # LATIN SMALL LETTER G WITH CEDILLA\r
+0x014  U+012b  # LATIN SMALL LETTER I WITH MACRON\r
+0x015  U+0129  # LATIN SMALL LETTER I WITH TILDE\r
+0x016  U+0137  # LATIN SMALL LETTER K WITH CEDILLA\r
+0x017  U+00b7  # MIDDLE DOT\r
+0x018  U+013c  # LATIN SMALL LETTER L WITH CEDILLA\r
+0x019  U+0111  # LATIN SMALL LETTER D WITH STROKE\r
+0x01a  U+0161  # LATIN SMALL LETTER S WITH CARON\r
+0x01b  U+0167  # LATIN SMALL LETTER T WITH STROKE\r
+0x01c  U+017e  # LATIN SMALL LETTER Z WITH CARON\r
+0x01d  U+2015  # HORIZONTAL BAR\r
+0x01e  U+016b  # LATIN SMALL LETTER U WITH MACRON\r
+0x01f  U+014b  # LATIN SMALL LETTER ENG\r
+0x020  U+0100  # LATIN CAPITAL LETTER A WITH MACRON\r
+0x021  U+00c1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00c2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00c3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00c6  # LATIN CAPITAL LETTER AE\r
+0x027  U+012e  # LATIN CAPITAL LETTER I WITH OGONEK\r
+0x028  U+010c  # LATIN CAPITAL LETTER C WITH CARON\r
+0x029  U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02a  U+0118  # LATIN CAPITAL LETTER E WITH OGONEK\r
+0x02b  U+00cb  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02c  U+0116  # LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0x02d  U+00cd  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02e  U+00ce  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02f  U+00cf  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x030  U+00d0  # LATIN CAPITAL LETTER ETH\r
+0x031  U+0145  # LATIN CAPITAL LETTER N WITH CEDILLA\r
+0x032  U+014c  # LATIN CAPITAL LETTER O WITH MACRON\r
+0x033  U+00d3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00d4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00d5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+0168  # LATIN CAPITAL LETTER U WITH TILDE\r
+0x038  U+00d8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+0172  # LATIN CAPITAL LETTER U WITH OGONEK\r
+0x03a  U+00da  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03b  U+00db  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03c  U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03d  U+00dd  # LATIN CAPITAL LETTER Y WITH ACUTE\r
+0x03e  U+00de  # LATIN CAPITAL LETTER THORN\r
+0x03f  U+00df  # LATIN SMALL LETTER SHARP S\r
+0x040  U+0101  # LATIN SMALL LETTER A WITH MACRON\r
+0x041  U+00e1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00e3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00e6  # LATIN SMALL LETTER AE\r
+0x047  U+012f  # LATIN SMALL LETTER I WITH OGONEK\r
+0x048  U+010d  # LATIN SMALL LETTER C WITH CARON\r
+0x049  U+00e9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04a  U+0119  # LATIN SMALL LETTER E WITH OGONEK\r
+0x04b  U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04c  U+0117  # LATIN SMALL LETTER E WITH DOT ABOVE\r
+0x04d  U+00ed  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04e  U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04f  U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x050  U+00f0  # LATIN SMALL LETTER ETH\r
+0x051  U+0146  # LATIN SMALL LETTER N WITH CEDILLA\r
+0x052  U+014d  # LATIN SMALL LETTER O WITH MACRON\r
+0x053  U+00f3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00f5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+0169  # LATIN SMALL LETTER U WITH TILDE\r
+0x058  U+00f8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+0173  # LATIN SMALL LETTER U WITH OGONEK\r
+0x05a  U+00fa  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05b  U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05c  U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05d  U+00fd  # LATIN SMALL LETTER Y WITH ACUTE\r
+0x05e  U+00fe  # LATIN SMALL LETTER THORN\r
+0x05f  U+0138  # LATIN SMALL LETTER KRA\r
diff --git a/data/unimaps/8859-13.a0-ff.uni b/data/unimaps/8859-13.a0-ff.uni
new file mode 100644 (file)
index 0000000..3a52b8d
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-13\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+201D  # RIGHT DOUBLE QUOTATION MARK\r
+0x002  U+00A2  # CENT SIGN\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x005  U+201E  # DOUBLE LOW-9 QUOTATION MARK\r
+0x006  U+00A6  # BROKEN BAR\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00D8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00A  U+0156  # LATIN CAPITAL LETTER R WITH CEDILLA\r
+0x00B  U+00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00C  U+00AC  # NOT SIGN\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+00AE  # REGISTERED SIGN\r
+0x00F  U+00C6  # LATIN CAPITAL LETTER AE\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+00B1  # PLUS-MINUS SIGN\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+201C  # LEFT DOUBLE QUOTATION MARK\r
+0x015  U+00B5  # MICRO SIGN\r
+0x016  U+00B6  # PILCROW SIGN\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+00F8  # LATIN SMALL LETTER O WITH STROKE\r
+0x019  U+00B9  # SUPERSCRIPT ONE\r
+0x01A  U+0157  # LATIN SMALL LETTER R WITH CEDILLA\r
+0x01B  U+00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01C  U+00BC  # VULGAR FRACTION ONE QUARTER\r
+0x01D  U+00BD  # VULGAR FRACTION ONE HALF\r
+0x01E  U+00BE  # VULGAR FRACTION THREE QUARTERS\r
+0x01F  U+00E6  # LATIN SMALL LETTER AE\r
+0x020  U+0104  # LATIN CAPITAL LETTER A WITH OGONEK\r
+0x021  U+012E  # LATIN CAPITAL LETTER I WITH OGONEK\r
+0x022  U+0100  # LATIN CAPITAL LETTER A WITH MACRON\r
+0x023  U+0106  # LATIN CAPITAL LETTER C WITH ACUTE\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+0118  # LATIN CAPITAL LETTER E WITH OGONEK\r
+0x027  U+0112  # LATIN CAPITAL LETTER E WITH MACRON\r
+0x028  U+010C  # LATIN CAPITAL LETTER C WITH CARON\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+0179  # LATIN CAPITAL LETTER Z WITH ACUTE\r
+0x02B  U+0116  # LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0x02C  U+0122  # LATIN CAPITAL LETTER G WITH CEDILLA\r
+0x02D  U+0136  # LATIN CAPITAL LETTER K WITH CEDILLA\r
+0x02E  U+012A  # LATIN CAPITAL LETTER I WITH MACRON\r
+0x02F  U+013B  # LATIN CAPITAL LETTER L WITH CEDILLA\r
+0x030  U+0160  # LATIN CAPITAL LETTER S WITH CARON\r
+0x031  U+0143  # LATIN CAPITAL LETTER N WITH ACUTE\r
+0x032  U+0145  # LATIN CAPITAL LETTER N WITH CEDILLA\r
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+014C  # LATIN CAPITAL LETTER O WITH MACRON\r
+0x035  U+00D5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00D7  # MULTIPLICATION SIGN\r
+0x038  U+0172  # LATIN CAPITAL LETTER U WITH OGONEK\r
+0x039  U+0141  # LATIN CAPITAL LETTER L WITH STROKE\r
+0x03A  U+015A  # LATIN CAPITAL LETTER S WITH ACUTE\r
+0x03B  U+016A  # LATIN CAPITAL LETTER U WITH MACRON\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+017B  # LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0x03E  U+017D  # LATIN CAPITAL LETTER Z WITH CARON\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+0105  # LATIN SMALL LETTER A WITH OGONEK\r
+0x041  U+012F  # LATIN SMALL LETTER I WITH OGONEK\r
+0x042  U+0101  # LATIN SMALL LETTER A WITH MACRON\r
+0x043  U+0107  # LATIN SMALL LETTER C WITH ACUTE\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00E5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+0119  # LATIN SMALL LETTER E WITH OGONEK\r
+0x047  U+0113  # LATIN SMALL LETTER E WITH MACRON\r
+0x048  U+010D  # LATIN SMALL LETTER C WITH CARON\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+017A  # LATIN SMALL LETTER Z WITH ACUTE\r
+0x04B  U+0117  # LATIN SMALL LETTER E WITH DOT ABOVE\r
+0x04C  U+0123  # LATIN SMALL LETTER G WITH CEDILLA\r
+0x04D  U+0137  # LATIN SMALL LETTER K WITH CEDILLA\r
+0x04E  U+012B  # LATIN SMALL LETTER I WITH MACRON\r
+0x04F  U+013C  # LATIN SMALL LETTER L WITH CEDILLA\r
+0x050  U+0161  # LATIN SMALL LETTER S WITH CARON\r
+0x051  U+0144  # LATIN SMALL LETTER N WITH ACUTE\r
+0x052  U+0146  # LATIN SMALL LETTER N WITH CEDILLA\r
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+014D  # LATIN SMALL LETTER O WITH MACRON\r
+0x055  U+00F5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00F7  # DIVISION SIGN\r
+0x058  U+0173  # LATIN SMALL LETTER U WITH OGONEK\r
+0x059  U+0142  # LATIN SMALL LETTER L WITH STROKE\r
+0x05A  U+015B  # LATIN SMALL LETTER S WITH ACUTE\r
+0x05B  U+016B  # LATIN SMALL LETTER U WITH MACRON\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+017C  # LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0x05E  U+017E  # LATIN SMALL LETTER Z WITH CARON\r
+0x05F  U+2019  # RIGHT SINGLE QUOTATION MARK\r
diff --git a/data/unimaps/8859-14.a0-ff.uni b/data/unimaps/8859-14.a0-ff.uni
new file mode 100644 (file)
index 0000000..73f3960
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-14\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+1E02  # LATIN CAPITAL LETTER B WITH DOT ABOVE\r
+0x002  U+1E03  # LATIN SMALL LETTER B WITH DOT ABOVE\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+010A  # LATIN CAPITAL LETTER C WITH DOT ABOVE\r
+0x005  U+010B  # LATIN SMALL LETTER C WITH DOT ABOVE\r
+0x006  U+1E0A  # LATIN CAPITAL LETTER D WITH DOT ABOVE\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+1E80  # LATIN CAPITAL LETTER W WITH GRAVE\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00A  U+1E82  # LATIN CAPITAL LETTER W WITH ACUTE\r
+0x00B  U+1E0B  # LATIN SMALL LETTER D WITH DOT ABOVE\r
+0x00C  U+1EF2  # LATIN CAPITAL LETTER Y WITH GRAVE\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+00AE  # REGISTERED SIGN\r
+0x00F  U+0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0x010  U+1E1E  # LATIN CAPITAL LETTER F WITH DOT ABOVE\r
+0x011  U+1E1F  # LATIN SMALL LETTER F WITH DOT ABOVE\r
+0x012  U+0120  # LATIN CAPITAL LETTER G WITH DOT ABOVE\r
+0x013  U+0121  # LATIN SMALL LETTER G WITH DOT ABOVE\r
+0x014  U+1E40  # LATIN CAPITAL LETTER M WITH DOT ABOVE\r
+0x015  U+1E41  # LATIN SMALL LETTER M WITH DOT ABOVE\r
+0x016  U+00B6  # PILCROW SIGN\r
+0x017  U+1E56  # LATIN CAPITAL LETTER P WITH DOT ABOVE\r
+0x018  U+1E81  # LATIN SMALL LETTER W WITH GRAVE\r
+0x019  U+1E57  # LATIN SMALL LETTER P WITH DOT ABOVE\r
+0x01A  U+1E83  # LATIN SMALL LETTER W WITH ACUTE\r
+0x01B  U+1E60  # LATIN CAPITAL LETTER S WITH DOT ABOVE\r
+0x01C  U+1EF3  # LATIN SMALL LETTER Y WITH GRAVE\r
+0x01D  U+1E84  # LATIN CAPITAL LETTER W WITH DIAERESIS\r
+0x01E  U+1E85  # LATIN SMALL LETTER W WITH DIAERESIS\r
+0x01F  U+1E61  # LATIN SMALL LETTER S WITH DOT ABOVE\r
+0x020  U+00C0  # LATIN CAPITAL LETTER A WITH GRAVE\r
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00C3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00C6  # LATIN CAPITAL LETTER AE\r
+0x027  U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA\r
+0x028  U+00C8  # LATIN CAPITAL LETTER E WITH GRAVE\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02C  U+00CC  # LATIN CAPITAL LETTER I WITH GRAVE\r
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02F  U+00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x030  U+0174  # LATIN CAPITAL LETTER W WITH CIRCUMFLEX\r
+0x031  U+00D1  # LATIN CAPITAL LETTER N WITH TILDE\r
+0x032  U+00D2  # LATIN CAPITAL LETTER O WITH GRAVE\r
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00D5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+1E6A  # LATIN CAPITAL LETTER T WITH DOT ABOVE\r
+0x038  U+00D8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+00D9  # LATIN CAPITAL LETTER U WITH GRAVE\r
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03B  U+00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+00DD  # LATIN CAPITAL LETTER Y WITH ACUTE\r
+0x03E  U+0176  # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+00E0  # LATIN SMALL LETTER A WITH GRAVE\r
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00E3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00E5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00E6  # LATIN SMALL LETTER AE\r
+0x047  U+00E7  # LATIN SMALL LETTER C WITH CEDILLA\r
+0x048  U+00E8  # LATIN SMALL LETTER E WITH GRAVE\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04C  U+00EC  # LATIN SMALL LETTER I WITH GRAVE\r
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04F  U+00EF  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x050  U+0175  # LATIN SMALL LETTER W WITH CIRCUMFLEX\r
+0x051  U+00F1  # LATIN SMALL LETTER N WITH TILDE\r
+0x052  U+00F2  # LATIN SMALL LETTER O WITH GRAVE\r
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00F5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+1E6B  # LATIN SMALL LETTER T WITH DOT ABOVE\r
+0x058  U+00F8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+00F9  # LATIN SMALL LETTER U WITH GRAVE\r
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05B  U+00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+00FD  # LATIN SMALL LETTER Y WITH ACUTE\r
+0x05E  U+0177  # LATIN SMALL LETTER Y WITH CIRCUMFLEX\r
+0x05F  U+00FF  # LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/unimaps/8859-15.a0-ff.uni b/data/unimaps/8859-15.a0-ff.uni
new file mode 100644 (file)
index 0000000..c273d35
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-15\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+00A1  # INVERTED EXCLAMATION MARK\r
+0x002  U+00A2  # CENT SIGN\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+20AC  # EURO SIGN\r
+0x005  U+00A5  # YEN SIGN\r
+0x006  U+0160  # LATIN CAPITAL LETTER S WITH CARON\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+0161  # LATIN SMALL LETTER S WITH CARON\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00A  U+00AA  # FEMININE ORDINAL INDICATOR\r
+0x00B  U+00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00C  U+00AC  # NOT SIGN\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+00AE  # REGISTERED SIGN\r
+0x00F  U+00AF  # MACRON\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+00B1  # PLUS-MINUS SIGN\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+017D  # LATIN CAPITAL LETTER Z WITH CARON\r
+0x015  U+00B5  # MICRO SIGN\r
+0x016  U+00B6  # PILCROW SIGN\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+017E  # LATIN SMALL LETTER Z WITH CARON\r
+0x019  U+00B9  # SUPERSCRIPT ONE\r
+0x01A  U+00BA  # MASCULINE ORDINAL INDICATOR\r
+0x01B  U+00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01C  U+0152  # LATIN CAPITAL LIGATURE OE\r
+0x01D  U+0153  # LATIN SMALL LIGATURE OE\r
+0x01E  U+0178  # LATIN CAPITAL LETTER Y WITH DIAERESIS\r
+0x01F  U+00BF  # INVERTED QUESTION MARK\r
+0x020  U+00C0  # LATIN CAPITAL LETTER A WITH GRAVE\r
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00C3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00C6  # LATIN CAPITAL LETTER AE\r
+0x027  U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA\r
+0x028  U+00C8  # LATIN CAPITAL LETTER E WITH GRAVE\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02C  U+00CC  # LATIN CAPITAL LETTER I WITH GRAVE\r
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02F  U+00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x030  U+00D0  # LATIN CAPITAL LETTER ETH\r
+0x031  U+00D1  # LATIN CAPITAL LETTER N WITH TILDE\r
+0x032  U+00D2  # LATIN CAPITAL LETTER O WITH GRAVE\r
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00D5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00D7  # MULTIPLICATION SIGN\r
+0x038  U+00D8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+00D9  # LATIN CAPITAL LETTER U WITH GRAVE\r
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03B  U+00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+00DD  # LATIN CAPITAL LETTER Y WITH ACUTE\r
+0x03E  U+00DE  # LATIN CAPITAL LETTER THORN\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+00E0  # LATIN SMALL LETTER A WITH GRAVE\r
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00E3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00E5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00E6  # LATIN SMALL LETTER AE\r
+0x047  U+00E7  # LATIN SMALL LETTER C WITH CEDILLA\r
+0x048  U+00E8  # LATIN SMALL LETTER E WITH GRAVE\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04C  U+00EC  # LATIN SMALL LETTER I WITH GRAVE\r
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04F  U+00EF  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x050  U+00F0  # LATIN SMALL LETTER ETH\r
+0x051  U+00F1  # LATIN SMALL LETTER N WITH TILDE\r
+0x052  U+00F2  # LATIN SMALL LETTER O WITH GRAVE\r
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00F5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00F7  # DIVISION SIGN\r
+0x058  U+00F8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+00F9  # LATIN SMALL LETTER U WITH GRAVE\r
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05B  U+00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+00FD  # LATIN SMALL LETTER Y WITH ACUTE\r
+0x05E  U+00FE  # LATIN SMALL LETTER THORN\r
+0x05F  U+00FF  # LATIN SMALL LETTER Y WITH DIAERESIS\r
diff --git a/data/unimaps/8859-2.a0-ff.uni b/data/unimaps/8859-2.a0-ff.uni
new file mode 100644 (file)
index 0000000..580f8a9
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-2 (Latin-2)
+0x000  U+00A0  # NO-BREAK SPACE
+0x001  U+0104  # LATIN CAPITAL LETTER A WITH OGONEK
+0x002  U+02D8  # BREVE
+0x003  U+0141  # LATIN CAPITAL LETTER L WITH STROKE
+0x004  U+00A4  # CURRENCY SIGN
+0x005  U+013D  # LATIN CAPITAL LETTER L WITH CARON
+0x006  U+015A  # LATIN CAPITAL LETTER S WITH ACUTE
+0x007  U+00A7  # SECTION SIGN
+0x008  U+00A8  # DIAERESIS
+0x009  U+0160  # LATIN CAPITAL LETTER S WITH CARON
+0x00A  U+015E  # LATIN CAPITAL LETTER S WITH CEDILLA
+0x00B  U+0164  # LATIN CAPITAL LETTER T WITH CARON
+0x00C  U+0179  # LATIN CAPITAL LETTER Z WITH ACUTE
+0x00D  U+00AD  # SOFT HYPHEN
+0x00E  U+017D  # LATIN CAPITAL LETTER Z WITH CARON
+0x00F  U+017B  # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0x010  U+00B0  # DEGREE SIGN
+0x011  U+0105  # LATIN SMALL LETTER A WITH OGONEK
+0x012  U+02DB  # OGONEK
+0x013  U+0142  # LATIN SMALL LETTER L WITH STROKE
+0x014  U+00B4  # ACUTE ACCENT
+0x015  U+013E  # LATIN SMALL LETTER L WITH CARON
+0x016  U+015B  # LATIN SMALL LETTER S WITH ACUTE
+0x017  U+02C7  # CARON
+0x018  U+00B8  # CEDILLA
+0x019  U+0161  # LATIN SMALL LETTER S WITH CARON
+0x01A  U+015F  # LATIN SMALL LETTER S WITH CEDILLA
+0x01B  U+0165  # LATIN SMALL LETTER T WITH CARON
+0x01C  U+017A  # LATIN SMALL LETTER Z WITH ACUTE
+0x01D  U+02DD  # DOUBLE ACUTE ACCENT
+0x01E  U+017E  # LATIN SMALL LETTER Z WITH CARON
+0x01F  U+017C  # LATIN SMALL LETTER Z WITH DOT ABOVE
+0x020  U+0154  # LATIN CAPITAL LETTER R WITH ACUTE
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0x023  U+0102  # LATIN CAPITAL LETTER A WITH BREVE
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x025  U+0139  # LATIN CAPITAL LETTER L WITH ACUTE
+0x026  U+0106  # LATIN CAPITAL LETTER C WITH ACUTE
+0x027  U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x028  U+010C  # LATIN CAPITAL LETTER C WITH CARON
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x02A  U+0118  # LATIN CAPITAL LETTER E WITH OGONEK
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
+0x02C  U+011A  # LATIN CAPITAL LETTER E WITH CARON
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0x02F  U+010E  # LATIN CAPITAL LETTER D WITH CARON
+0x030  U+0110  # LATIN CAPITAL LETTER D WITH STROKE
+0x031  U+0143  # LATIN CAPITAL LETTER N WITH ACUTE
+0x032  U+0147  # LATIN CAPITAL LETTER N WITH CARON
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0x035  U+0150  # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x037  U+00D7  # MULTIPLICATION SIGN
+0x038  U+0158  # LATIN CAPITAL LETTER R WITH CARON
+0x039  U+016E  # LATIN CAPITAL LETTER U WITH RING ABOVE
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE
+0x03B  U+0170  # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x03D  U+00DD  # LATIN CAPITAL LETTER Y WITH ACUTE
+0x03E  U+0162  # LATIN CAPITAL LETTER T WITH CEDILLA
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S
+0x040  U+0155  # LATIN SMALL LETTER R WITH ACUTE
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x043  U+0103  # LATIN SMALL LETTER A WITH BREVE
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x045  U+013A  # LATIN SMALL LETTER L WITH ACUTE
+0x046  U+0107  # LATIN SMALL LETTER C WITH ACUTE
+0x047  U+00E7  # LATIN SMALL LETTER C WITH CEDILLA
+0x048  U+010D  # LATIN SMALL LETTER C WITH CARON
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE
+0x04A  U+0119  # LATIN SMALL LETTER E WITH OGONEK
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS
+0x04C  U+011B  # LATIN SMALL LETTER E WITH CARON
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x04F  U+010F  # LATIN SMALL LETTER D WITH CARON
+0x050  U+0111  # LATIN SMALL LETTER D WITH STROKE
+0x051  U+0144  # LATIN SMALL LETTER N WITH ACUTE
+0x052  U+0148  # LATIN SMALL LETTER N WITH CARON
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x055  U+0151  # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x057  U+00F7  # DIVISION SIGN
+0x058  U+0159  # LATIN SMALL LETTER R WITH CARON
+0x059  U+016F  # LATIN SMALL LETTER U WITH RING ABOVE
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE
+0x05B  U+0171  # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS
+0x05D  U+00FD  # LATIN SMALL LETTER Y WITH ACUTE
+0x05E  U+0163  # LATIN SMALL LETTER T WITH CEDILLA
+0x05F  U+02D9  # DOT ABOVE
diff --git a/data/unimaps/8859-3.a0-ff.uni b/data/unimaps/8859-3.a0-ff.uni
new file mode 100644 (file)
index 0000000..2182ac6
--- /dev/null
@@ -0,0 +1,90 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-3 (Latin-3)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+0126  # LATIN CAPITAL LETTER H WITH STROKE\r
+0x002  U+02D8  # BREVE\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x006  U+0124  # LATIN CAPITAL LETTER H WITH CIRCUMFLEX\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00A8  # DIAERESIS\r
+0x009  U+0130  # LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0x00A  U+015E  # LATIN CAPITAL LETTER S WITH CEDILLA\r
+0x00B  U+011E  # LATIN CAPITAL LETTER G WITH BREVE\r
+0x00C  U+0134  # LATIN CAPITAL LETTER J WITH CIRCUMFLEX\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00F  U+017B  # LATIN CAPITAL LETTER Z WITH DOT ABOVE\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+0127  # LATIN SMALL LETTER H WITH STROKE\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+00B4  # ACUTE ACCENT\r
+0x015  U+00B5  # MICRO SIGN\r
+0x016  U+0125  # LATIN SMALL LETTER H WITH CIRCUMFLEX\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+00B8  # CEDILLA\r
+0x019  U+0131  # LATIN SMALL LETTER DOTLESS I\r
+0x01A  U+015F  # LATIN SMALL LETTER S WITH CEDILLA\r
+0x01B  U+011F  # LATIN SMALL LETTER G WITH BREVE\r
+0x01C  U+0135  # LATIN SMALL LETTER J WITH CIRCUMFLEX\r
+0x01D  U+00BD  # VULGAR FRACTION ONE HALF\r
+0x01F  U+017C  # LATIN SMALL LETTER Z WITH DOT ABOVE\r
+0x020  U+00C0  # LATIN CAPITAL LETTER A WITH GRAVE\r
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+010A  # LATIN CAPITAL LETTER C WITH DOT ABOVE\r
+0x026  U+0108  # LATIN CAPITAL LETTER C WITH CIRCUMFLEX\r
+0x027  U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA\r
+0x028  U+00C8  # LATIN CAPITAL LETTER E WITH GRAVE\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02C  U+00CC  # LATIN CAPITAL LETTER I WITH GRAVE\r
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02F  U+00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x031  U+00D1  # LATIN CAPITAL LETTER N WITH TILDE\r
+0x032  U+00D2  # LATIN CAPITAL LETTER O WITH GRAVE\r
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+0120  # LATIN CAPITAL LETTER G WITH DOT ABOVE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00D7  # MULTIPLICATION SIGN\r
+0x038  U+011C  # LATIN CAPITAL LETTER G WITH CIRCUMFLEX\r
+0x039  U+00D9  # LATIN CAPITAL LETTER U WITH GRAVE\r
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03B  U+00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+016C  # LATIN CAPITAL LETTER U WITH BREVE\r
+0x03E  U+015C  # LATIN CAPITAL LETTER S WITH CIRCUMFLEX\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+00E0  # LATIN SMALL LETTER A WITH GRAVE\r
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+010B  # LATIN SMALL LETTER C WITH DOT ABOVE\r
+0x046  U+0109  # LATIN SMALL LETTER C WITH CIRCUMFLEX\r
+0x047  U+00E7  # LATIN SMALL LETTER C WITH CEDILLA\r
+0x048  U+00E8  # LATIN SMALL LETTER E WITH GRAVE\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04C  U+00EC  # LATIN SMALL LETTER I WITH GRAVE\r
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04F  U+00EF  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x051  U+00F1  # LATIN SMALL LETTER N WITH TILDE\r
+0x052  U+00F2  # LATIN SMALL LETTER O WITH GRAVE\r
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+0121  # LATIN SMALL LETTER G WITH DOT ABOVE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00F7  # DIVISION SIGN\r
+0x058  U+011D  # LATIN SMALL LETTER G WITH CIRCUMFLEX\r
+0x059  U+00F9  # LATIN SMALL LETTER U WITH GRAVE\r
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05B  U+00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+016D  # LATIN SMALL LETTER U WITH BREVE\r
+0x05E  U+015D  # LATIN SMALL LETTER S WITH CIRCUMFLEX\r
+0x05F  U+02D9  # DOT ABOVE\r
diff --git a/data/unimaps/8859-4.a0-ff.uni b/data/unimaps/8859-4.a0-ff.uni
new file mode 100644 (file)
index 0000000..dba688f
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-4 (Latin-4)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+0104  # LATIN CAPITAL LETTER A WITH OGONEK\r
+0x002  U+0138  # LATIN SMALL LETTER KRA\r
+0x003  U+0156  # LATIN CAPITAL LETTER R WITH CEDILLA\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x005  U+0128  # LATIN CAPITAL LETTER I WITH TILDE\r
+0x006  U+013B  # LATIN CAPITAL LETTER L WITH CEDILLA\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00A8  # DIAERESIS\r
+0x009  U+0160  # LATIN CAPITAL LETTER S WITH CARON\r
+0x00A  U+0112  # LATIN CAPITAL LETTER E WITH MACRON\r
+0x00B  U+0122  # LATIN CAPITAL LETTER G WITH CEDILLA\r
+0x00C  U+0166  # LATIN CAPITAL LETTER T WITH STROKE\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+017D  # LATIN CAPITAL LETTER Z WITH CARON\r
+0x00F  U+00AF  # MACRON\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+0105  # LATIN SMALL LETTER A WITH OGONEK\r
+0x012  U+02DB  # OGONEK\r
+0x013  U+0157  # LATIN SMALL LETTER R WITH CEDILLA\r
+0x014  U+00B4  # ACUTE ACCENT\r
+0x015  U+0129  # LATIN SMALL LETTER I WITH TILDE\r
+0x016  U+013C  # LATIN SMALL LETTER L WITH CEDILLA\r
+0x017  U+02C7  # CARON\r
+0x018  U+00B8  # CEDILLA\r
+0x019  U+0161  # LATIN SMALL LETTER S WITH CARON\r
+0x01A  U+0113  # LATIN SMALL LETTER E WITH MACRON\r
+0x01B  U+0123  # LATIN SMALL LETTER G WITH CEDILLA\r
+0x01C  U+0167  # LATIN SMALL LETTER T WITH STROKE\r
+0x01D  U+014A  # LATIN CAPITAL LETTER ENG\r
+0x01E  U+017E  # LATIN SMALL LETTER Z WITH CARON\r
+0x01F  U+014B  # LATIN SMALL LETTER ENG\r
+0x020  U+0100  # LATIN CAPITAL LETTER A WITH MACRON\r
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00C3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00C6  # LATIN CAPITAL LETTER AE\r
+0x027  U+012E  # LATIN CAPITAL LETTER I WITH OGONEK\r
+0x028  U+010C  # LATIN CAPITAL LETTER C WITH CARON\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+0118  # LATIN CAPITAL LETTER E WITH OGONEK\r
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02C  U+0116  # LATIN CAPITAL LETTER E WITH DOT ABOVE\r
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02F  U+012A  # LATIN CAPITAL LETTER I WITH MACRON\r
+0x030  U+0110  # LATIN CAPITAL LETTER D WITH STROKE\r
+0x031  U+0145  # LATIN CAPITAL LETTER N WITH CEDILLA\r
+0x032  U+014C  # LATIN CAPITAL LETTER O WITH MACRON\r
+0x033  U+0136  # LATIN CAPITAL LETTER K WITH CEDILLA\r
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00D5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00D7  # MULTIPLICATION SIGN\r
+0x038  U+00D8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+0172  # LATIN CAPITAL LETTER U WITH OGONEK\r
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03B  U+00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+0168  # LATIN CAPITAL LETTER U WITH TILDE\r
+0x03E  U+016A  # LATIN CAPITAL LETTER U WITH MACRON\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+0101  # LATIN SMALL LETTER A WITH MACRON\r
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00E3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00E5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00E6  # LATIN SMALL LETTER AE\r
+0x047  U+012F  # LATIN SMALL LETTER I WITH OGONEK\r
+0x048  U+010D  # LATIN SMALL LETTER C WITH CARON\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+0119  # LATIN SMALL LETTER E WITH OGONEK\r
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04C  U+0117  # LATIN SMALL LETTER E WITH DOT ABOVE\r
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04F  U+012B  # LATIN SMALL LETTER I WITH MACRON\r
+0x050  U+0111  # LATIN SMALL LETTER D WITH STROKE\r
+0x051  U+0146  # LATIN SMALL LETTER N WITH CEDILLA\r
+0x052  U+014D  # LATIN SMALL LETTER O WITH MACRON\r
+0x053  U+0137  # LATIN SMALL LETTER K WITH CEDILLA\r
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00F5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00F7  # DIVISION SIGN\r
+0x058  U+00F8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+0173  # LATIN SMALL LETTER U WITH OGONEK\r
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05B  U+00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+0169  # LATIN SMALL LETTER U WITH TILDE\r
+0x05E  U+016B  # LATIN SMALL LETTER U WITH MACRON\r
+0x05F  U+02D9  # DOT ABOVE\r
diff --git a/data/unimaps/8859-5.a0-ff.uni b/data/unimaps/8859-5.a0-ff.uni
new file mode 100644 (file)
index 0000000..600b111
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-5 (Cyrillic)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+0401  # CYRILLIC CAPITAL LETTER IO\r
+0x002  U+0402  # CYRILLIC CAPITAL LETTER DJE\r
+0x003  U+0403  # CYRILLIC CAPITAL LETTER GJE\r
+0x004  U+0404  # CYRILLIC CAPITAL LETTER UKRAINIAN IE\r
+0x005  U+0405  # CYRILLIC CAPITAL LETTER DZE\r
+0x006  U+0406  # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0x007  U+0407  # CYRILLIC CAPITAL LETTER YI\r
+0x008  U+0408  # CYRILLIC CAPITAL LETTER JE\r
+0x009  U+0409  # CYRILLIC CAPITAL LETTER LJE\r
+0x00A  U+040A  # CYRILLIC CAPITAL LETTER NJE\r
+0x00B  U+040B  # CYRILLIC CAPITAL LETTER TSHE\r
+0x00C  U+040C  # CYRILLIC CAPITAL LETTER KJE\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+040E  # CYRILLIC CAPITAL LETTER SHORT U\r
+0x00F  U+040F  # CYRILLIC CAPITAL LETTER DZHE\r
+0x010  U+0410  # CYRILLIC CAPITAL LETTER A\r
+0x011  U+0411  # CYRILLIC CAPITAL LETTER BE\r
+0x012  U+0412  # CYRILLIC CAPITAL LETTER VE\r
+0x013  U+0413  # CYRILLIC CAPITAL LETTER GHE\r
+0x014  U+0414  # CYRILLIC CAPITAL LETTER DE\r
+0x015  U+0415  # CYRILLIC CAPITAL LETTER IE\r
+0x016  U+0416  # CYRILLIC CAPITAL LETTER ZHE\r
+0x017  U+0417  # CYRILLIC CAPITAL LETTER ZE\r
+0x018  U+0418  # CYRILLIC CAPITAL LETTER I\r
+0x019  U+0419  # CYRILLIC CAPITAL LETTER SHORT I\r
+0x01A  U+041A  # CYRILLIC CAPITAL LETTER KA\r
+0x01B  U+041B  # CYRILLIC CAPITAL LETTER EL\r
+0x01C  U+041C  # CYRILLIC CAPITAL LETTER EM\r
+0x01D  U+041D  # CYRILLIC CAPITAL LETTER EN\r
+0x01E  U+041E  # CYRILLIC CAPITAL LETTER O\r
+0x01F  U+041F  # CYRILLIC CAPITAL LETTER PE\r
+0x020  U+0420  # CYRILLIC CAPITAL LETTER ER\r
+0x021  U+0421  # CYRILLIC CAPITAL LETTER ES\r
+0x022  U+0422  # CYRILLIC CAPITAL LETTER TE\r
+0x023  U+0423  # CYRILLIC CAPITAL LETTER U\r
+0x024  U+0424  # CYRILLIC CAPITAL LETTER EF\r
+0x025  U+0425  # CYRILLIC CAPITAL LETTER HA\r
+0x026  U+0426  # CYRILLIC CAPITAL LETTER TSE\r
+0x027  U+0427  # CYRILLIC CAPITAL LETTER CHE\r
+0x028  U+0428  # CYRILLIC CAPITAL LETTER SHA\r
+0x029  U+0429  # CYRILLIC CAPITAL LETTER SHCHA\r
+0x02A  U+042A  # CYRILLIC CAPITAL LETTER HARD SIGN\r
+0x02B  U+042B  # CYRILLIC CAPITAL LETTER YERU\r
+0x02C  U+042C  # CYRILLIC CAPITAL LETTER SOFT SIGN\r
+0x02D  U+042D  # CYRILLIC CAPITAL LETTER E\r
+0x02E  U+042E  # CYRILLIC CAPITAL LETTER YU\r
+0x02F  U+042F  # CYRILLIC CAPITAL LETTER YA\r
+0x030  U+0430  # CYRILLIC SMALL LETTER A\r
+0x031  U+0431  # CYRILLIC SMALL LETTER BE\r
+0x032  U+0432  # CYRILLIC SMALL LETTER VE\r
+0x033  U+0433  # CYRILLIC SMALL LETTER GHE\r
+0x034  U+0434  # CYRILLIC SMALL LETTER DE\r
+0x035  U+0435  # CYRILLIC SMALL LETTER IE\r
+0x036  U+0436  # CYRILLIC SMALL LETTER ZHE\r
+0x037  U+0437  # CYRILLIC SMALL LETTER ZE\r
+0x038  U+0438  # CYRILLIC SMALL LETTER I\r
+0x039  U+0439  # CYRILLIC SMALL LETTER SHORT I\r
+0x03A  U+043A  # CYRILLIC SMALL LETTER KA\r
+0x03B  U+043B  # CYRILLIC SMALL LETTER EL\r
+0x03C  U+043C  # CYRILLIC SMALL LETTER EM\r
+0x03D  U+043D  # CYRILLIC SMALL LETTER EN\r
+0x03E  U+043E  # CYRILLIC SMALL LETTER O\r
+0x03F  U+043F  # CYRILLIC SMALL LETTER PE\r
+0x040  U+0440  # CYRILLIC SMALL LETTER ER\r
+0x041  U+0441  # CYRILLIC SMALL LETTER ES\r
+0x042  U+0442  # CYRILLIC SMALL LETTER TE\r
+0x043  U+0443  # CYRILLIC SMALL LETTER U\r
+0x044  U+0444  # CYRILLIC SMALL LETTER EF\r
+0x045  U+0445  # CYRILLIC SMALL LETTER HA\r
+0x046  U+0446  # CYRILLIC SMALL LETTER TSE\r
+0x047  U+0447  # CYRILLIC SMALL LETTER CHE\r
+0x048  U+0448  # CYRILLIC SMALL LETTER SHA\r
+0x049  U+0449  # CYRILLIC SMALL LETTER SHCHA\r
+0x04A  U+044A  # CYRILLIC SMALL LETTER HARD SIGN\r
+0x04B  U+044B  # CYRILLIC SMALL LETTER YERU\r
+0x04C  U+044C  # CYRILLIC SMALL LETTER SOFT SIGN\r
+0x04D  U+044D  # CYRILLIC SMALL LETTER E\r
+0x04E  U+044E  # CYRILLIC SMALL LETTER YU\r
+0x04F  U+044F  # CYRILLIC SMALL LETTER YA\r
+0x050  U+2116  # NUMERO SIGN\r
+0x051  U+0451  # CYRILLIC SMALL LETTER IO\r
+0x052  U+0452  # CYRILLIC SMALL LETTER DJE\r
+0x053  U+0453  # CYRILLIC SMALL LETTER GJE\r
+0x054  U+0454  # CYRILLIC SMALL LETTER UKRAINIAN IE\r
+0x055  U+0455  # CYRILLIC SMALL LETTER DZE\r
+0x056  U+0456  # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I\r
+0x057  U+0457  # CYRILLIC SMALL LETTER YI\r
+0x058  U+0458  # CYRILLIC SMALL LETTER JE\r
+0x059  U+0459  # CYRILLIC SMALL LETTER LJE\r
+0x05A  U+045A  # CYRILLIC SMALL LETTER NJE\r
+0x05B  U+045B  # CYRILLIC SMALL LETTER TSHE\r
+0x05C  U+045C  # CYRILLIC SMALL LETTER KJE\r
+0x05D  U+00A7  # SECTION SIGN\r
+0x05E  U+045E  # CYRILLIC SMALL LETTER SHORT U\r
+0x05F  U+045F  # CYRILLIC SMALL LETTER DZHE\r
diff --git a/data/unimaps/8859-6.a0-ff.uni b/data/unimaps/8859-6.a0-ff.uni
new file mode 100644 (file)
index 0000000..c1a1c8e
--- /dev/null
@@ -0,0 +1,52 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-6 (Arabic)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x00C  U+060C  # ARABIC COMMA\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x01B  U+061B  # ARABIC SEMICOLON\r
+0x01F  U+061F  # ARABIC QUESTION MARK\r
+0x021  U+0621  # ARABIC LETTER HAMZA\r
+0x022  U+0622  # ARABIC LETTER ALEF WITH MADDA ABOVE\r
+0x023  U+0623  # ARABIC LETTER ALEF WITH HAMZA ABOVE\r
+0x024  U+0624  # ARABIC LETTER WAW WITH HAMZA ABOVE\r
+0x025  U+0625  # ARABIC LETTER ALEF WITH HAMZA BELOW\r
+0x026  U+0626  # ARABIC LETTER YEH WITH HAMZA ABOVE\r
+0x027  U+0627  # ARABIC LETTER ALEF\r
+0x028  U+0628  # ARABIC LETTER BEH\r
+0x029  U+0629  # ARABIC LETTER TEH MARBUTA\r
+0x02A  U+062A  # ARABIC LETTER TEH\r
+0x02B  U+062B  # ARABIC LETTER THEH\r
+0x02C  U+062C  # ARABIC LETTER JEEM\r
+0x02D  U+062D  # ARABIC LETTER HAH\r
+0x02E  U+062E  # ARABIC LETTER KHAH\r
+0x02F  U+062F  # ARABIC LETTER DAL\r
+0x030  U+0630  # ARABIC LETTER THAL\r
+0x031  U+0631  # ARABIC LETTER REH\r
+0x032  U+0632  # ARABIC LETTER ZAIN\r
+0x033  U+0633  # ARABIC LETTER SEEN\r
+0x034  U+0634  # ARABIC LETTER SHEEN\r
+0x035  U+0635  # ARABIC LETTER SAD\r
+0x036  U+0636  # ARABIC LETTER DAD\r
+0x037  U+0637  # ARABIC LETTER TAH\r
+0x038  U+0638  # ARABIC LETTER ZAH\r
+0x039  U+0639  # ARABIC LETTER AIN\r
+0x03A  U+063A  # ARABIC LETTER GHAIN\r
+0x040  U+0640  # ARABIC TATWEEL\r
+0x041  U+0641  # ARABIC LETTER FEH\r
+0x042  U+0642  # ARABIC LETTER QAF\r
+0x043  U+0643  # ARABIC LETTER KAF\r
+0x044  U+0644  # ARABIC LETTER LAM\r
+0x045  U+0645  # ARABIC LETTER MEEM\r
+0x046  U+0646  # ARABIC LETTER NOON\r
+0x047  U+0647  # ARABIC LETTER HEH\r
+0x048  U+0648  # ARABIC LETTER WAW\r
+0x049  U+0649  # ARABIC LETTER ALEF MAKSURA\r
+0x04A  U+064A  # ARABIC LETTER YEH\r
+0x04B  U+064B  # ARABIC FATHATAN\r
+0x04C  U+064C  # ARABIC DAMMATAN\r
+0x04D  U+064D  # ARABIC KASRATAN\r
+0x04E  U+064E  # ARABIC FATHA\r
+0x04F  U+064F  # ARABIC DAMMA\r
+0x050  U+0650  # ARABIC KASRA\r
+0x051  U+0651  # ARABIC SHADDA\r
+0x052  U+0652  # ARABIC SUKUN\r
diff --git a/data/unimaps/8859-7.a0-ff.uni b/data/unimaps/8859-7.a0-ff.uni
new file mode 100644 (file)
index 0000000..b9adbe2
--- /dev/null
@@ -0,0 +1,91 @@
+# fontpositions 0-95: positions 160-255 in ISO 8859-7 (Greek)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+2018  # LEFT SINGLE QUOTATION MARK\r
+0x002  U+2019  # RIGHT SINGLE QUOTATION MARK\r
+0x003  U+00A3  # POUND SIGN\r
+0x006  U+00A6  # BROKEN BAR\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00A8  # DIAERESIS\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00B  U+00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00C  U+00AC  # NOT SIGN\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00F  U+2015  # HORIZONTAL BAR\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+00B1  # PLUS-MINUS SIGN\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+0384  # GREEK TONOS\r
+0x015  U+0385  # GREEK DIALYTIKA TONOS\r
+0x016  U+0386  # GREEK CAPITAL LETTER ALPHA WITH TONOS\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+0388  # GREEK CAPITAL LETTER EPSILON WITH TONOS\r
+0x019  U+0389  # GREEK CAPITAL LETTER ETA WITH TONOS\r
+0x01A  U+038A  # GREEK CAPITAL LETTER IOTA WITH TONOS\r
+0x01B  U+00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01C  U+038C  # GREEK CAPITAL LETTER OMICRON WITH TONOS\r
+0x01D  U+00BD  # VULGAR FRACTION ONE HALF\r
+0x01E  U+038E  # GREEK CAPITAL LETTER UPSILON WITH TONOS\r
+0x01F  U+038F  # GREEK CAPITAL LETTER OMEGA WITH TONOS\r
+0x020  U+0390  # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS\r
+0x021  U+0391  # GREEK CAPITAL LETTER ALPHA\r
+0x022  U+0392  # GREEK CAPITAL LETTER BETA\r
+0x023  U+0393  # GREEK CAPITAL LETTER GAMMA\r
+0x024  U+0394  # GREEK CAPITAL LETTER DELTA\r
+0x025  U+0395  # GREEK CAPITAL LETTER EPSILON\r
+0x026  U+0396  # GREEK CAPITAL LETTER ZETA\r
+0x027  U+0397  # GREEK CAPITAL LETTER ETA\r
+0x028  U+0398  # GREEK CAPITAL LETTER THETA\r
+0x029  U+0399  # GREEK CAPITAL LETTER IOTA\r
+0x02A  U+039A  # GREEK CAPITAL LETTER KAPPA\r
+0x02B  U+039B  # GREEK CAPITAL LETTER LAMDA\r
+0x02C  U+039C  # GREEK CAPITAL LETTER MU\r
+0x02D  U+039D  # GREEK CAPITAL LETTER NU\r
+0x02E  U+039E  # GREEK CAPITAL LETTER XI\r
+0x02F  U+039F  # GREEK CAPITAL LETTER OMICRON\r
+0x030  U+03A0  # GREEK CAPITAL LETTER PI\r
+0x031  U+03A1  # GREEK CAPITAL LETTER RHO\r
+0x033  U+03A3  # GREEK CAPITAL LETTER SIGMA\r
+0x034  U+03A4  # GREEK CAPITAL LETTER TAU\r
+0x035  U+03A5  # GREEK CAPITAL LETTER UPSILON\r
+0x036  U+03A6  # GREEK CAPITAL LETTER PHI\r
+0x037  U+03A7  # GREEK CAPITAL LETTER CHI\r
+0x038  U+03A8  # GREEK CAPITAL LETTER PSI\r
+0x039  U+03A9  # GREEK CAPITAL LETTER OMEGA\r
+0x03A  U+03AA  # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA\r
+0x03B  U+03AB  # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA\r
+0x03C  U+03AC  # GREEK SMALL LETTER ALPHA WITH TONOS\r
+0x03D  U+03AD  # GREEK SMALL LETTER EPSILON WITH TONOS\r
+0x03E  U+03AE  # GREEK SMALL LETTER ETA WITH TONOS\r
+0x03F  U+03AF  # GREEK SMALL LETTER IOTA WITH TONOS\r
+0x040  U+03B0  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS\r
+0x041  U+03B1  # GREEK SMALL LETTER ALPHA\r
+0x042  U+03B2  # GREEK SMALL LETTER BETA\r
+0x043  U+03B3  # GREEK SMALL LETTER GAMMA\r
+0x044  U+03B4  # GREEK SMALL LETTER DELTA\r
+0x045  U+03B5  # GREEK SMALL LETTER EPSILON\r
+0x046  U+03B6  # GREEK SMALL LETTER ZETA\r
+0x047  U+03B7  # GREEK SMALL LETTER ETA\r
+0x048  U+03B8  # GREEK SMALL LETTER THETA\r
+0x049  U+03B9  # GREEK SMALL LETTER IOTA\r
+0x04A  U+03BA  # GREEK SMALL LETTER KAPPA\r
+0x04B  U+03BB  # GREEK SMALL LETTER LAMDA\r
+0x04C  U+03BC  # GREEK SMALL LETTER MU\r
+0x04D  U+03BD  # GREEK SMALL LETTER NU\r
+0x04E  U+03BE  # GREEK SMALL LETTER XI\r
+0x04F  U+03BF  # GREEK SMALL LETTER OMICRON\r
+0x050  U+03C0  # GREEK SMALL LETTER PI\r
+0x051  U+03C1  # GREEK SMALL LETTER RHO\r
+0x052  U+03C2  # GREEK SMALL LETTER FINAL SIGMA\r
+0x053  U+03C3  # GREEK SMALL LETTER SIGMA\r
+0x054  U+03C4  # GREEK SMALL LETTER TAU\r
+0x055  U+03C5  # GREEK SMALL LETTER UPSILON\r
+0x056  U+03C6  # GREEK SMALL LETTER PHI\r
+0x057  U+03C7  # GREEK SMALL LETTER CHI\r
+0x058  U+03C8  # GREEK SMALL LETTER PSI\r
+0x059  U+03C9  # GREEK SMALL LETTER OMEGA\r
+0x05A  U+03CA  # GREEK SMALL LETTER IOTA WITH DIALYTIKA\r
+0x05B  U+03CB  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA\r
+0x05C  U+03CC  # GREEK SMALL LETTER OMICRON WITH TONOS\r
+0x05D  U+03CD  # GREEK SMALL LETTER UPSILON WITH TONOS\r
+0x05E  U+03CE  # GREEK SMALL LETTER OMEGA WITH TONOS\r
diff --git a/data/unimaps/8859-8.a0-ff.uni b/data/unimaps/8859-8.a0-ff.uni
new file mode 100644 (file)
index 0000000..57d3079
--- /dev/null
@@ -0,0 +1,59 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-8 (Hebrew)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x002  U+00A2  # CENT SIGN\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x005  U+00A5  # YEN SIGN\r
+0x006  U+00A6  # BROKEN BAR\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00A8  # DIAERESIS\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00A  U+00D7  # MULTIPLICATION SIGN\r
+0x00B  U+00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00C  U+00AC  # NOT SIGN\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+00AE  # REGISTERED SIGN\r
+0x00F  U+203E  # OVERLINE\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+00B1  # PLUS-MINUS SIGN\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+00B4  # ACUTE ACCENT\r
+0x015  U+00B5  # MICRO SIGN\r
+0x016  U+00B6  # PILCROW SIGN\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+00B8  # CEDILLA\r
+0x019  U+00B9  # SUPERSCRIPT ONE\r
+0x01A  U+00F7  # DIVISION SIGN\r
+0x01B  U+00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01C  U+00BC  # VULGAR FRACTION ONE QUARTER\r
+0x01D  U+00BD  # VULGAR FRACTION ONE HALF\r
+0x01E  U+00BE  # VULGAR FRACTION THREE QUARTERS\r
+0x03F  U+2017  # DOUBLE LOW LINE\r
+0x040  U+05D0  # HEBREW LETTER ALEF\r
+0x041  U+05D1  # HEBREW LETTER BET\r
+0x042  U+05D2  # HEBREW LETTER GIMEL\r
+0x043  U+05D3  # HEBREW LETTER DALET\r
+0x044  U+05D4  # HEBREW LETTER HE\r
+0x045  U+05D5  # HEBREW LETTER VAV\r
+0x046  U+05D6  # HEBREW LETTER ZAYIN\r
+0x047  U+05D7  # HEBREW LETTER HET\r
+0x048  U+05D8  # HEBREW LETTER TET\r
+0x049  U+05D9  # HEBREW LETTER YOD\r
+0x04A  U+05DA  # HEBREW LETTER FINAL KAF\r
+0x04B  U+05DB  # HEBREW LETTER KAF\r
+0x04C  U+05DC  # HEBREW LETTER LAMED\r
+0x04D  U+05DD  # HEBREW LETTER FINAL MEM\r
+0x04E  U+05DE  # HEBREW LETTER MEM\r
+0x04F  U+05DF  # HEBREW LETTER FINAL NUN\r
+0x050  U+05E0  # HEBREW LETTER NUN\r
+0x051  U+05E1  # HEBREW LETTER SAMEKH\r
+0x052  U+05E2  # HEBREW LETTER AYIN\r
+0x053  U+05E3  # HEBREW LETTER FINAL PE\r
+0x054  U+05E4  # HEBREW LETTER PE\r
+0x055  U+05E5  # HEBREW LETTER FINAL TSADI\r
+0x056  U+05E6  # HEBREW LETTER TSADI\r
+0x057  U+05E7  # HEBREW LETTER QOF\r
+0x058  U+05E8  # HEBREW LETTER RESH\r
+0x059  U+05E9  # HEBREW LETTER SHIN\r
+0x05A  U+05EA  # HEBREW LETTER TAV\r
diff --git a/data/unimaps/8859-9.a0-ff.uni b/data/unimaps/8859-9.a0-ff.uni
new file mode 100644 (file)
index 0000000..0b63894
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 160-255 in ISO/IEC 8859-9 (Latin-5)\r
+0x000  U+00A0  # NO-BREAK SPACE\r
+0x001  U+00A1  # INVERTED EXCLAMATION MARK\r
+0x002  U+00A2  # CENT SIGN\r
+0x003  U+00A3  # POUND SIGN\r
+0x004  U+00A4  # CURRENCY SIGN\r
+0x005  U+00A5  # YEN SIGN\r
+0x006  U+00A6  # BROKEN BAR\r
+0x007  U+00A7  # SECTION SIGN\r
+0x008  U+00A8  # DIAERESIS\r
+0x009  U+00A9  # COPYRIGHT SIGN\r
+0x00A  U+00AA  # FEMININE ORDINAL INDICATOR\r
+0x00B  U+00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x00C  U+00AC  # NOT SIGN\r
+0x00D  U+00AD  # SOFT HYPHEN\r
+0x00E  U+00AE  # REGISTERED SIGN\r
+0x00F  U+00AF  # MACRON\r
+0x010  U+00B0  # DEGREE SIGN\r
+0x011  U+00B1  # PLUS-MINUS SIGN\r
+0x012  U+00B2  # SUPERSCRIPT TWO\r
+0x013  U+00B3  # SUPERSCRIPT THREE\r
+0x014  U+00B4  # ACUTE ACCENT\r
+0x015  U+00B5  # MICRO SIGN\r
+0x016  U+00B6  # PILCROW SIGN\r
+0x017  U+00B7  # MIDDLE DOT\r
+0x018  U+00B8  # CEDILLA\r
+0x019  U+00B9  # SUPERSCRIPT ONE\r
+0x01A  U+00BA  # MASCULINE ORDINAL INDICATOR\r
+0x01B  U+00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK\r
+0x01C  U+00BC  # VULGAR FRACTION ONE QUARTER\r
+0x01D  U+00BD  # VULGAR FRACTION ONE HALF\r
+0x01E  U+00BE  # VULGAR FRACTION THREE QUARTERS\r
+0x01F  U+00BF  # INVERTED QUESTION MARK\r
+0x020  U+00C0  # LATIN CAPITAL LETTER A WITH GRAVE\r
+0x021  U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE\r
+0x022  U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX\r
+0x023  U+00C3  # LATIN CAPITAL LETTER A WITH TILDE\r
+0x024  U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS\r
+0x025  U+00C5  # LATIN CAPITAL LETTER A WITH RING ABOVE\r
+0x026  U+00C6  # LATIN CAPITAL LETTER AE\r
+0x027  U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA\r
+0x028  U+00C8  # LATIN CAPITAL LETTER E WITH GRAVE\r
+0x029  U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE\r
+0x02A  U+00CA  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX\r
+0x02B  U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS\r
+0x02C  U+00CC  # LATIN CAPITAL LETTER I WITH GRAVE\r
+0x02D  U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE\r
+0x02E  U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX\r
+0x02F  U+00CF  # LATIN CAPITAL LETTER I WITH DIAERESIS\r
+0x030  U+011E  # LATIN CAPITAL LETTER G WITH BREVE\r
+0x031  U+00D1  # LATIN CAPITAL LETTER N WITH TILDE\r
+0x032  U+00D2  # LATIN CAPITAL LETTER O WITH GRAVE\r
+0x033  U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE\r
+0x034  U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX\r
+0x035  U+00D5  # LATIN CAPITAL LETTER O WITH TILDE\r
+0x036  U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS\r
+0x037  U+00D7  # MULTIPLICATION SIGN\r
+0x038  U+00D8  # LATIN CAPITAL LETTER O WITH STROKE\r
+0x039  U+00D9  # LATIN CAPITAL LETTER U WITH GRAVE\r
+0x03A  U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE\r
+0x03B  U+00DB  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX\r
+0x03C  U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS\r
+0x03D  U+0130  # LATIN CAPITAL LETTER I WITH DOT ABOVE\r
+0x03E  U+015E  # LATIN CAPITAL LETTER S WITH CEDILLA\r
+0x03F  U+00DF  # LATIN SMALL LETTER SHARP S\r
+0x040  U+00E0  # LATIN SMALL LETTER A WITH GRAVE\r
+0x041  U+00E1  # LATIN SMALL LETTER A WITH ACUTE\r
+0x042  U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX\r
+0x043  U+00E3  # LATIN SMALL LETTER A WITH TILDE\r
+0x044  U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS\r
+0x045  U+00E5  # LATIN SMALL LETTER A WITH RING ABOVE\r
+0x046  U+00E6  # LATIN SMALL LETTER AE\r
+0x047  U+00E7  # LATIN SMALL LETTER C WITH CEDILLA\r
+0x048  U+00E8  # LATIN SMALL LETTER E WITH GRAVE\r
+0x049  U+00E9  # LATIN SMALL LETTER E WITH ACUTE\r
+0x04A  U+00EA  # LATIN SMALL LETTER E WITH CIRCUMFLEX\r
+0x04B  U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS\r
+0x04C  U+00EC  # LATIN SMALL LETTER I WITH GRAVE\r
+0x04D  U+00ED  # LATIN SMALL LETTER I WITH ACUTE\r
+0x04E  U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX\r
+0x04F  U+00EF  # LATIN SMALL LETTER I WITH DIAERESIS\r
+0x050  U+011F  # LATIN SMALL LETTER G WITH BREVE\r
+0x051  U+00F1  # LATIN SMALL LETTER N WITH TILDE\r
+0x052  U+00F2  # LATIN SMALL LETTER O WITH GRAVE\r
+0x053  U+00F3  # LATIN SMALL LETTER O WITH ACUTE\r
+0x054  U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX\r
+0x055  U+00F5  # LATIN SMALL LETTER O WITH TILDE\r
+0x056  U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS\r
+0x057  U+00F7  # DIVISION SIGN\r
+0x058  U+00F8  # LATIN SMALL LETTER O WITH STROKE\r
+0x059  U+00F9  # LATIN SMALL LETTER U WITH GRAVE\r
+0x05A  U+00FA  # LATIN SMALL LETTER U WITH ACUTE\r
+0x05B  U+00FB  # LATIN SMALL LETTER U WITH CIRCUMFLEX\r
+0x05C  U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS\r
+0x05D  U+0131  # LATIN SMALL LETTER DOTLESS I\r
+0x05E  U+015F  # LATIN SMALL LETTER S WITH CEDILLA\r
+0x05F  U+00FF  # LATIN SMALL LETTER Y WITH DIAERESIS\r
similarity index 100%
rename from consoletrans/README
rename to data/unimaps/README
diff --git a/data/unimaps/ascii.20-7f.uni b/data/unimaps/ascii.20-7f.uni
new file mode 100644 (file)
index 0000000..40df2b5
--- /dev/null
@@ -0,0 +1,97 @@
+# fontpositions 0-95: positions 32-127 in ASCII
+0x000  U+0020  #  
+0x001  U+0021  # !
+0x002  U+0022  # "
+0x003  U+0023  # #
+0x004  U+0024  # $
+0x005  U+0025  # %
+0x006  U+0026  # &
+0x007  U+0027  # '
+0x008  U+0028  # (
+0x009  U+0029  # )
+0x00a  U+002a  # *
+0x00b  U+002b  # +
+0x00c  U+002c  # ,
+0x00d  U+002d  # -
+0x00e  U+002e  # .
+0x00f  U+002f  # /
+0x010  U+0030  # 0
+0x011  U+0031  # 1
+0x012  U+0032  # 2
+0x013  U+0033  # 3
+0x014  U+0034  # 4
+0x015  U+0035  # 5
+0x016  U+0036  # 6
+0x017  U+0037  # 7
+0x018  U+0038  # 8
+0x019  U+0039  # 9
+0x01a  U+003a  # :
+0x01b  U+003b  # ;
+0x01c  U+003c  # <
+0x01d  U+003d  # =
+0x01e  U+003e  # >
+0x01f  U+003f  # ?
+0x020  U+0040  # @
+0x021  U+0041  # A
+0x022  U+0042  # B
+0x023  U+0043  # C
+0x024  U+0044  # D
+0x025  U+0045  # E
+0x026  U+0046  # F
+0x027  U+0047  # G
+0x028  U+0048  # H
+0x029  U+0049  # I
+0x02a  U+004a  # J
+0x02b  U+004b  # K
+0x02c  U+004c  # L
+0x02d  U+004d  # M
+0x02e  U+004e  # N
+0x02f  U+004f  # O
+0x030  U+0050  # P
+0x031  U+0051  # Q
+0x032  U+0052  # R
+0x033  U+0053  # S
+0x034  U+0054  # T
+0x035  U+0055  # U
+0x036  U+0056  # V
+0x037  U+0057  # W
+0x038  U+0058  # X
+0x039  U+0059  # Y
+0x03a  U+005a  # Z
+0x03b  U+005b  # [
+0x03c  U+005c  # \
+0x03d  U+005d  # ]
+0x03e  U+005e  # ^
+0x03f  U+005f  # _
+0x040  U+0060  # `
+0x041  U+0061  # a
+0x042  U+0062  # b
+0x043  U+0063  # c
+0x044  U+0064  # d
+0x045  U+0065  # e
+0x046  U+0066  # f
+0x047  U+0067  # g
+0x048  U+0068  # h
+0x049  U+0069  # i
+0x04a  U+006a  # j
+0x04b  U+006b  # k
+0x04c  U+006c  # l
+0x04d  U+006d  # m
+0x04e  U+006e  # n
+0x04f  U+006f  # o
+0x050  U+0070  # p
+0x051  U+0071  # q
+0x052  U+0072  # r
+0x053  U+0073  # s
+0x054  U+0074  # t
+0x055  U+0075  # u
+0x056  U+0076  # v
+0x057  U+0077  # w
+0x058  U+0078  # x
+0x059  U+0079  # y
+0x05a  U+007a  # z
+0x05b  U+007b  # {
+0x05c  U+007c  # |
+0x05d  U+007d  # }
+0x05e  U+007e  # ~
+0x05f  U+2302  # DEL - represented by `house'
diff --git a/data/unimaps/cp437.00-1f.uni b/data/unimaps/cp437.00-1f.uni
new file mode 100644 (file)
index 0000000..5bcaab0
--- /dev/null
@@ -0,0 +1,33 @@
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
diff --git a/data/unimaps/cp737.uni b/data/unimaps/cp737.uni
new file mode 100644 (file)
index 0000000..5577055
--- /dev/null
@@ -0,0 +1,132 @@
+# cp737 (Greek)
+# ASCII
+0x00-0x7f      idem
+# Greek stuff
+0x80   U+0391  # GREEK CAPITAL LETTER ALPHA
+0x81   U+0392  # GREEK CAPITAL LETTER BETA
+0x82   U+0393  # GREEK CAPITAL LETTER GAMMA
+0x83   U+0394  # GREEK CAPITAL LETTER DELTA
+0x84   U+0395  # GREEK CAPITAL LETTER EPSILON
+0x85   U+0396  # GREEK CAPITAL LETTER ZETA
+0x86   U+0397  # GREEK CAPITAL LETTER ETA
+0x87   U+0398  # GREEK CAPITAL LETTER THETA
+0x88   U+0399  # GREEK CAPITAL LETTER IOTA
+0x89   U+039a  # GREEK CAPITAL LETTER KAPPA
+0x8a   U+039b  # GREEK CAPITAL LETTER LAMDA
+0x8b   U+039c  # GREEK CAPITAL LETTER MU
+0x8c   U+039d  # GREEK CAPITAL LETTER NU
+0x8d   U+039e  # GREEK CAPITAL LETTER XI
+0x8e   U+039f  # GREEK CAPITAL LETTER OMICRON
+0x8f   U+03a0  # GREEK CAPITAL LETTER PI
+0x90   U+03a1  # GREEK CAPITAL LETTER RHO
+0x91   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0x92   U+03a4  # GREEK CAPITAL LETTER TAU
+0x93   U+03a5  # GREEK CAPITAL LETTER UPSILON
+0x94   U+03a6  # GREEK CAPITAL LETTER PHI
+0x95   U+03a7  # GREEK CAPITAL LETTER CHI
+0x96   U+03a8  # GREEK CAPITAL LETTER PSI
+0x97   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0x98   U+03b1  # GREEK SMALL LETTER ALPHA
+0x99   U+03b2  # GREEK SMALL LETTER BETA
+0x9a   U+03b3  # GREEK SMALL LETTER GAMMA
+0x9b   U+03b4  # GREEK SMALL LETTER DELTA
+0x9c   U+03b5  # GREEK SMALL LETTER EPSILON
+0x9d   U+03b6  # GREEK SMALL LETTER ZETA
+0x9e   U+03b7  # GREEK SMALL LETTER ETA
+0x9f   U+03b8  # GREEK SMALL LETTER THETA
+0xa0   U+03b9  # GREEK SMALL LETTER IOTA
+0xa1   U+03ba  # GREEK SMALL LETTER KAPPA
+0xa2   U+03bb  # GREEK SMALL LETTER LAMDA
+0xa3   U+03bc  # GREEK SMALL LETTER MU
+0xa4   U+03bd  # GREEK SMALL LETTER NU
+0xa5   U+03be  # GREEK SMALL LETTER XI
+0xa6   U+03bf  # GREEK SMALL LETTER OMICRON
+0xa7   U+03c0  # GREEK SMALL LETTER PI
+0xa8   U+03c1  # GREEK SMALL LETTER RHO
+0xa9   U+03c3  # GREEK SMALL LETTER SIGMA
+0xaa   U+03c2  # GREEK SMALL LETTER FINAL SIGMA
+0xab   U+03c4  # GREEK SMALL LETTER TAU
+0xac   U+03c5  # GREEK SMALL LETTER UPSILON
+0xad   U+03c6  # GREEK SMALL LETTER PHI
+0xae   U+03c7  # GREEK SMALL LETTER CHI
+0xaf   U+03c8  # GREEK SMALL LETTER PSI
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03c9  # GREEK SMALL LETTER OMEGA
+0xe1   U+03ac  # GREEK SMALL LETTER ALPHA WITH TONOS
+0xe2   U+03ad  # GREEK SMALL LETTER EPSILON WITH TONOS
+0xe3   U+03ae  # GREEK SMALL LETTER ETA WITH TONOS
+0xe4   U+03ca  # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+0xe5   U+03af  # GREEK SMALL LETTER IOTA WITH TONOS
+0xe6   U+03cc  # GREEK SMALL LETTER OMICRON WITH TONOS
+0xe7   U+03cd  # GREEK SMALL LETTER UPSILON WITH TONOS
+0xe8   U+03cb  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+0xe9   U+03ce  # GREEK SMALL LETTER OMEGA WITH TONOS
+0xea   U+0386  # GREEK CAPITAL LETTER ALPHA WITH TONOS
+0xeb   U+0388  # GREEK CAPITAL LETTER EPSILON WITH TONOS
+0xec   U+0389  # GREEK CAPITAL LETTER ETA WITH TONOS
+0xed   U+038a  # GREEK CAPITAL LETTER IOTA WITH TONOS
+0xee   U+038c  # GREEK CAPITAL LETTER OMICRON WITH TONOS
+0xef   U+038e  # GREEK CAPITAL LETTER UPSILON WITH TONOS
+0xf0   U+038f  # GREEK CAPITAL LETTER OMEGA WITH TONOS
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+03aa  # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+0xf5   U+03ab  # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp737a.uni b/data/unimaps/cp737a.uni
new file mode 100644 (file)
index 0000000..584593d
--- /dev/null
@@ -0,0 +1,166 @@
+# cp737a (Greek)
+# This is cp737, but with positions 0-31 replaced by cp437 symbols
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x020-0x07f    idem
+# then Greek part
+0x80   U+0391  # GREEK CAPITAL LETTER ALPHA
+0x81   U+0392  # GREEK CAPITAL LETTER BETA
+0x82   U+0393  # GREEK CAPITAL LETTER GAMMA
+0x83   U+0394  # GREEK CAPITAL LETTER DELTA
+0x84   U+0395  # GREEK CAPITAL LETTER EPSILON
+0x85   U+0396  # GREEK CAPITAL LETTER ZETA
+0x86   U+0397  # GREEK CAPITAL LETTER ETA
+0x87   U+0398  # GREEK CAPITAL LETTER THETA
+0x88   U+0399  # GREEK CAPITAL LETTER IOTA
+0x89   U+039a  # GREEK CAPITAL LETTER KAPPA
+0x8a   U+039b  # GREEK CAPITAL LETTER LAMDA
+0x8b   U+039c  # GREEK CAPITAL LETTER MU
+0x8c   U+039d  # GREEK CAPITAL LETTER NU
+0x8d   U+039e  # GREEK CAPITAL LETTER XI
+0x8e   U+039f  # GREEK CAPITAL LETTER OMICRON
+0x8f   U+03a0  # GREEK CAPITAL LETTER PI
+0x90   U+03a1  # GREEK CAPITAL LETTER RHO
+0x91   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0x92   U+03a4  # GREEK CAPITAL LETTER TAU
+0x93   U+03a5  # GREEK CAPITAL LETTER UPSILON
+0x94   U+03a6  # GREEK CAPITAL LETTER PHI
+0x95   U+03a7  # GREEK CAPITAL LETTER CHI
+0x96   U+03a8  # GREEK CAPITAL LETTER PSI
+0x97   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0x98   U+03b1  # GREEK SMALL LETTER ALPHA
+0x99   U+03b2  # GREEK SMALL LETTER BETA
+0x9a   U+03b3  # GREEK SMALL LETTER GAMMA
+0x9b   U+03b4  # GREEK SMALL LETTER DELTA
+0x9c   U+03b5  # GREEK SMALL LETTER EPSILON
+0x9d   U+03b6  # GREEK SMALL LETTER ZETA
+0x9e   U+03b7  # GREEK SMALL LETTER ETA
+0x9f   U+03b8  # GREEK SMALL LETTER THETA
+0xa0   U+03b9  # GREEK SMALL LETTER IOTA
+0xa1   U+03ba  # GREEK SMALL LETTER KAPPA
+0xa2   U+03bb  # GREEK SMALL LETTER LAMDA
+0xa3   U+03bc  # GREEK SMALL LETTER MU
+0xa4   U+03bd  # GREEK SMALL LETTER NU
+0xa5   U+03be  # GREEK SMALL LETTER XI
+0xa6   U+03bf  # GREEK SMALL LETTER OMICRON
+0xa7   U+03c0  # GREEK SMALL LETTER PI
+0xa8   U+03c1  # GREEK SMALL LETTER RHO
+0xa9   U+03c3  # GREEK SMALL LETTER SIGMA
+0xaa   U+03c2  # GREEK SMALL LETTER FINAL SIGMA
+0xab   U+03c4  # GREEK SMALL LETTER TAU
+0xac   U+03c5  # GREEK SMALL LETTER UPSILON
+0xad   U+03c6  # GREEK SMALL LETTER PHI
+0xae   U+03c7  # GREEK SMALL LETTER CHI
+0xaf   U+03c8  # GREEK SMALL LETTER PSI
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03c9  # GREEK SMALL LETTER OMEGA
+0xe1   U+03ac  # GREEK SMALL LETTER ALPHA WITH TONOS
+0xe2   U+03ad  # GREEK SMALL LETTER EPSILON WITH TONOS
+0xe3   U+03ae  # GREEK SMALL LETTER ETA WITH TONOS
+0xe4   U+03ca  # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+0xe5   U+03af  # GREEK SMALL LETTER IOTA WITH TONOS
+0xe6   U+03cc  # GREEK SMALL LETTER OMICRON WITH TONOS
+0xe7   U+03cd  # GREEK SMALL LETTER UPSILON WITH TONOS
+0xe8   U+03cb  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+0xe9   U+03ce  # GREEK SMALL LETTER OMEGA WITH TONOS
+0xea   U+0386  # GREEK CAPITAL LETTER ALPHA WITH TONOS
+0xeb   U+0388  # GREEK CAPITAL LETTER EPSILON WITH TONOS
+0xec   U+0389  # GREEK CAPITAL LETTER ETA WITH TONOS
+0xed   U+038a  # GREEK CAPITAL LETTER IOTA WITH TONOS
+0xee   U+038c  # GREEK CAPITAL LETTER OMICRON WITH TONOS
+0xef   U+038e  # GREEK CAPITAL LETTER UPSILON WITH TONOS
+0xf0   U+038f  # GREEK CAPITAL LETTER OMEGA WITH TONOS
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+03aa  # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+0xf5   U+03ab  # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp737b.uni b/data/unimaps/cp737b.uni
new file mode 100644 (file)
index 0000000..c7d7015
--- /dev/null
@@ -0,0 +1,170 @@
+# cp737b (Greek)
+# This is cp737, but with positions 0-31 replaced by cp437 symbols
+# and positions ea-f0,f4-f5 replaced by Omega, delta, infinity,
+# varphi, varepsilon, cap, equiv, integral-top, integral-bottom.
+# (In other words, positions ea-ff replaced by cp865 symbols.)
+#
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x020-0x07f    idem
+# then Greek part
+0x80   U+0391  # GREEK CAPITAL LETTER ALPHA
+0x81   U+0392  # GREEK CAPITAL LETTER BETA
+0x82   U+0393  # GREEK CAPITAL LETTER GAMMA
+0x83   U+0394  # GREEK CAPITAL LETTER DELTA
+0x84   U+0395  # GREEK CAPITAL LETTER EPSILON
+0x85   U+0396  # GREEK CAPITAL LETTER ZETA
+0x86   U+0397  # GREEK CAPITAL LETTER ETA
+0x87   U+0398  # GREEK CAPITAL LETTER THETA
+0x88   U+0399  # GREEK CAPITAL LETTER IOTA
+0x89   U+039a  # GREEK CAPITAL LETTER KAPPA
+0x8a   U+039b  # GREEK CAPITAL LETTER LAMDA
+0x8b   U+039c  # GREEK CAPITAL LETTER MU
+0x8c   U+039d  # GREEK CAPITAL LETTER NU
+0x8d   U+039e  # GREEK CAPITAL LETTER XI
+0x8e   U+039f  # GREEK CAPITAL LETTER OMICRON
+0x8f   U+03a0  # GREEK CAPITAL LETTER PI
+0x90   U+03a1  # GREEK CAPITAL LETTER RHO
+0x91   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0x92   U+03a4  # GREEK CAPITAL LETTER TAU
+0x93   U+03a5  # GREEK CAPITAL LETTER UPSILON
+0x94   U+03a6  # GREEK CAPITAL LETTER PHI
+0x95   U+03a7  # GREEK CAPITAL LETTER CHI
+0x96   U+03a8  # GREEK CAPITAL LETTER PSI
+0x97   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0x98   U+03b1  # GREEK SMALL LETTER ALPHA
+0x99   U+03b2  # GREEK SMALL LETTER BETA
+0x9a   U+03b3  # GREEK SMALL LETTER GAMMA
+0x9b   U+03b4  # GREEK SMALL LETTER DELTA
+0x9c   U+03b5  # GREEK SMALL LETTER EPSILON
+0x9d   U+03b6  # GREEK SMALL LETTER ZETA
+0x9e   U+03b7  # GREEK SMALL LETTER ETA
+0x9f   U+03b8  # GREEK SMALL LETTER THETA
+0xa0   U+03b9  # GREEK SMALL LETTER IOTA
+0xa1   U+03ba  # GREEK SMALL LETTER KAPPA
+0xa2   U+03bb  # GREEK SMALL LETTER LAMDA
+0xa3   U+03bc  # GREEK SMALL LETTER MU
+0xa4   U+03bd  # GREEK SMALL LETTER NU
+0xa5   U+03be  # GREEK SMALL LETTER XI
+0xa6   U+03bf  # GREEK SMALL LETTER OMICRON
+0xa7   U+03c0  # GREEK SMALL LETTER PI
+0xa8   U+03c1  # GREEK SMALL LETTER RHO
+0xa9   U+03c3  # GREEK SMALL LETTER SIGMA
+0xaa   U+03c2  # GREEK SMALL LETTER FINAL SIGMA
+0xab   U+03c4  # GREEK SMALL LETTER TAU
+0xac   U+03c5  # GREEK SMALL LETTER UPSILON
+0xad   U+03c6  # GREEK SMALL LETTER PHI
+0xae   U+03c7  # GREEK SMALL LETTER CHI
+0xaf   U+03c8  # GREEK SMALL LETTER PSI
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03c9  # GREEK SMALL LETTER OMEGA
+0xe1   U+03ac  # GREEK SMALL LETTER ALPHA WITH TONOS
+0xe2   U+03ad  # GREEK SMALL LETTER EPSILON WITH TONOS
+0xe3   U+03ae  # GREEK SMALL LETTER ETA WITH TONOS
+0xe4   U+03ca  # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+0xe5   U+03af  # GREEK SMALL LETTER IOTA WITH TONOS
+0xe6   U+03cc  # GREEK SMALL LETTER OMICRON WITH TONOS
+0xe7   U+03cd  # GREEK SMALL LETTER UPSILON WITH TONOS
+0xe8   U+03cb  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+0xe9   U+03ce  # GREEK SMALL LETTER OMEGA WITH TONOS
+0xea   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0xeb   U+03b4  # GREEK SMALL LETTER DELTA
+0xec   U+221e  # INFINITY
+0xed   U+03c6  # GREEK SMALL LETTER PHI
+0xee   U+03b5  # GREEK SMALL LETTER EPSILON
+0xef   U+2229  # INTERSECTION
+0xf0   U+2261  # IDENTICAL TO
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+2320  # TOP HALF INTEGRAL
+0xf5   U+2321  # BOTTOM HALF INTEGRAL
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp737c.uni b/data/unimaps/cp737c.uni
new file mode 100644 (file)
index 0000000..d253d27
--- /dev/null
@@ -0,0 +1,169 @@
+# cp737c (Greek)
+# This is cp737, but with positions 0-31 replaced by cp437 symbols
+# and positions f4-f5 replaced by integral-top, integral-bottom.
+# (So that positions f1-ff agree with cp865.)
+#
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x020-0x07f    idem
+# then Greek part
+0x80   U+0391  # GREEK CAPITAL LETTER ALPHA
+0x81   U+0392  # GREEK CAPITAL LETTER BETA
+0x82   U+0393  # GREEK CAPITAL LETTER GAMMA
+0x83   U+0394  # GREEK CAPITAL LETTER DELTA
+0x84   U+0395  # GREEK CAPITAL LETTER EPSILON
+0x85   U+0396  # GREEK CAPITAL LETTER ZETA
+0x86   U+0397  # GREEK CAPITAL LETTER ETA
+0x87   U+0398  # GREEK CAPITAL LETTER THETA
+0x88   U+0399  # GREEK CAPITAL LETTER IOTA
+0x89   U+039a  # GREEK CAPITAL LETTER KAPPA
+0x8a   U+039b  # GREEK CAPITAL LETTER LAMDA
+0x8b   U+039c  # GREEK CAPITAL LETTER MU
+0x8c   U+039d  # GREEK CAPITAL LETTER NU
+0x8d   U+039e  # GREEK CAPITAL LETTER XI
+0x8e   U+039f  # GREEK CAPITAL LETTER OMICRON
+0x8f   U+03a0  # GREEK CAPITAL LETTER PI
+0x90   U+03a1  # GREEK CAPITAL LETTER RHO
+0x91   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0x92   U+03a4  # GREEK CAPITAL LETTER TAU
+0x93   U+03a5  # GREEK CAPITAL LETTER UPSILON
+0x94   U+03a6  # GREEK CAPITAL LETTER PHI
+0x95   U+03a7  # GREEK CAPITAL LETTER CHI
+0x96   U+03a8  # GREEK CAPITAL LETTER PSI
+0x97   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0x98   U+03b1  # GREEK SMALL LETTER ALPHA
+0x99   U+03b2  # GREEK SMALL LETTER BETA
+0x9a   U+03b3  # GREEK SMALL LETTER GAMMA
+0x9b   U+03b4  # GREEK SMALL LETTER DELTA
+0x9c   U+03b5  # GREEK SMALL LETTER EPSILON
+0x9d   U+03b6  # GREEK SMALL LETTER ZETA
+0x9e   U+03b7  # GREEK SMALL LETTER ETA
+0x9f   U+03b8  # GREEK SMALL LETTER THETA
+0xa0   U+03b9  # GREEK SMALL LETTER IOTA
+0xa1   U+03ba  # GREEK SMALL LETTER KAPPA
+0xa2   U+03bb  # GREEK SMALL LETTER LAMDA
+0xa3   U+03bc  # GREEK SMALL LETTER MU
+0xa4   U+03bd  # GREEK SMALL LETTER NU
+0xa5   U+03be  # GREEK SMALL LETTER XI
+0xa6   U+03bf  # GREEK SMALL LETTER OMICRON
+0xa7   U+03c0  # GREEK SMALL LETTER PI
+0xa8   U+03c1  # GREEK SMALL LETTER RHO
+0xa9   U+03c3  # GREEK SMALL LETTER SIGMA
+0xaa   U+03c2  # GREEK SMALL LETTER FINAL SIGMA
+0xab   U+03c4  # GREEK SMALL LETTER TAU
+0xac   U+03c5  # GREEK SMALL LETTER UPSILON
+0xad   U+03c6  # GREEK SMALL LETTER PHI
+0xae   U+03c7  # GREEK SMALL LETTER CHI
+0xaf   U+03c8  # GREEK SMALL LETTER PSI
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03c9  # GREEK SMALL LETTER OMEGA
+0xe1   U+03ac  # GREEK SMALL LETTER ALPHA WITH TONOS
+0xe2   U+03ad  # GREEK SMALL LETTER EPSILON WITH TONOS
+0xe3   U+03ae  # GREEK SMALL LETTER ETA WITH TONOS
+0xe4   U+03ca  # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+0xe5   U+03af  # GREEK SMALL LETTER IOTA WITH TONOS
+0xe6   U+03cc  # GREEK SMALL LETTER OMICRON WITH TONOS
+0xe7   U+03cd  # GREEK SMALL LETTER UPSILON WITH TONOS
+0xe8   U+03cb  # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+0xe9   U+03ce  # GREEK SMALL LETTER OMEGA WITH TONOS
+0xea   U+0386  # GREEK CAPITAL LETTER ALPHA WITH TONOS
+0xeb   U+0388  # GREEK CAPITAL LETTER EPSILON WITH TONOS
+0xec   U+0389  # GREEK CAPITAL LETTER ETA WITH TONOS
+0xed   U+038a  # GREEK CAPITAL LETTER IOTA WITH TONOS
+0xee   U+038c  # GREEK CAPITAL LETTER OMICRON WITH TONOS
+0xef   U+038e  # GREEK CAPITAL LETTER UPSILON WITH TONOS
+0xf0   U+038f  # GREEK CAPITAL LETTER OMEGA WITH TONOS
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+2320  # TOP HALF INTEGRAL
+0xf5   U+2321  # BOTTOM HALF INTEGRAL
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp850.uni b/data/unimaps/cp850.uni
new file mode 100644 (file)
index 0000000..8c2665f
--- /dev/null
@@ -0,0 +1,131 @@
+# CP850
+0x00-0x7f      idem
+#
+0x80   U+00c7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS
+0x82   U+00e9  # LATIN SMALL LETTER E WITH ACUTE
+0x83   U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x85   U+00e0  # LATIN SMALL LETTER A WITH GRAVE
+0x86   U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE
+0x87   U+00e7  # LATIN SMALL LETTER C WITH CEDILLA
+0x88   U+00ea  # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS
+0x8a   U+00e8  # LATIN SMALL LETTER E WITH GRAVE
+0x8b   U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS
+0x8c   U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8d   U+00ec  # LATIN SMALL LETTER I WITH GRAVE
+0x8e   U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8f   U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x91   U+00e6  # LATIN SMALL LIGATURE AE
+0x92   U+00c6  # LATIN CAPITAL LIGATURE AE
+0x93   U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x95   U+00f2  # LATIN SMALL LETTER O WITH GRAVE
+0x96   U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   U+00f9  # LATIN SMALL LETTER U WITH GRAVE
+0x98   U+00ff  # LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a   U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9b   U+00f8  # LATIN SMALL LETTER O WITH STROKE
+0x9c   U+00a3  # POUND SIGN
+0x9d   U+00d8  # LATIN CAPITAL LETTER O WITH STROKE
+0x9e   U+00d7  # MULTIPLICATION SIGN
+0x9f   U+0192  # LATIN SMALL LETTER F WITH HOOK
+0xa0   U+00e1  # LATIN SMALL LETTER A WITH ACUTE
+0xa1   U+00ed  # LATIN SMALL LETTER I WITH ACUTE
+0xa2   U+00f3  # LATIN SMALL LETTER O WITH ACUTE
+0xa3   U+00fa  # LATIN SMALL LETTER U WITH ACUTE
+0xa4   U+00f1  # LATIN SMALL LETTER N WITH TILDE
+0xa5   U+00d1  # LATIN CAPITAL LETTER N WITH TILDE
+0xa6   U+00aa  # FEMININE ORDINAL INDICATOR
+0xa7   U+00ba  # MASCULINE ORDINAL INDICATOR
+0xa8   U+00bf  # INVERTED QUESTION MARK
+0xa9   U+00ae  # REGISTERED SIGN
+0xaa   U+00ac  # NOT SIGN
+0xab   U+00bd  # VULGAR FRACTION ONE HALF
+0xac   U+00bc  # VULGAR FRACTION ONE QUARTER
+0xad   U+00a1  # INVERTED EXCLAMATION MARK
+0xae   U+00ab  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf   U+00bb  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+00c1  # LATIN CAPITAL LETTER A WITH ACUTE
+0xb6   U+00c2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xb7   U+00c0  # LATIN CAPITAL LETTER A WITH GRAVE
+0xb8   U+00a9  # COPYRIGHT SIGN
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+00a2  # CENT SIGN
+0xbe   U+00a5  # YEN SIGN
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+00e3  # LATIN SMALL LETTER A WITH TILDE
+0xc7   U+00c3  # LATIN CAPITAL LETTER A WITH TILDE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+00a4  # CURRENCY SIGN
+0xd0   U+00f0  # LATIN SMALL LETTER ETH
+0xd1   U+00d0  # LATIN CAPITAL LETTER ETH
+0xd2   U+00ca  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xd3   U+00cb  # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xd4   U+00c8  # LATIN CAPITAL LETTER E WITH GRAVE
+0xd5   U+0131  # LATIN SMALL LETTER DOTLESS I
+0xd6   U+00cd  # LATIN CAPITAL LETTER I WITH ACUTE
+0xd7   U+00ce  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xd8   U+00cf  # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+00a6  # BROKEN BAR
+0xde   U+00cc  # LATIN CAPITAL LETTER I WITH GRAVE
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+00d3  # LATIN CAPITAL LETTER O WITH ACUTE
+0xe1   U+00df  # LATIN SMALL LETTER SHARP S
+0xe2   U+00d4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xe3   U+00d2  # LATIN CAPITAL LETTER O WITH GRAVE
+0xe4   U+00f5  # LATIN SMALL LETTER O WITH TILDE
+0xe5   U+00d5  # LATIN CAPITAL LETTER O WITH TILDE
+0xe6   U+00b5  # MICRO SIGN
+0xe7   U+00fe  # LATIN SMALL LETTER THORN
+0xe8   U+00de  # LATIN CAPITAL LETTER THORN
+0xe9   U+00da  # LATIN CAPITAL LETTER U WITH ACUTE
+0xea   U+00db  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xeb   U+00d9  # LATIN CAPITAL LETTER U WITH GRAVE
+0xec   U+00fd  # LATIN SMALL LETTER Y WITH ACUTE
+0xed   U+00dd  # LATIN CAPITAL LETTER Y WITH ACUTE
+0xee   U+00af  # MACRON
+0xef   U+00b4  # ACUTE ACCENT
+0xf0   U+00ad  # SOFT HYPHEN
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2017  # DOUBLE LOW LINE
+0xf3   U+00be  # VULGAR FRACTION THREE QUARTERS
+0xf4   U+00b6  # PILCROW SIGN
+0xf5   U+00a7  # SECTION SIGN
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+00b8  # CEDILLA
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+00a8  # DIAERESIS
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+00b9  # SUPERSCRIPT ONE
+0xfc   U+00b3  # SUPERSCRIPT THREE
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp850a.uni b/data/unimaps/cp850a.uni
new file mode 100644 (file)
index 0000000..b3cc438
--- /dev/null
@@ -0,0 +1,166 @@
+# cp850a
+# This is cp850, but with positions 0-31 replaced by cp437 symbols
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x020-0x07f    idem
+#
+0x80   U+00c7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS
+0x82   U+00e9  # LATIN SMALL LETTER E WITH ACUTE
+0x83   U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x85   U+00e0  # LATIN SMALL LETTER A WITH GRAVE
+0x86   U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE
+0x87   U+00e7  # LATIN SMALL LETTER C WITH CEDILLA
+0x88   U+00ea  # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS
+0x8a   U+00e8  # LATIN SMALL LETTER E WITH GRAVE
+0x8b   U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS
+0x8c   U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8d   U+00ec  # LATIN SMALL LETTER I WITH GRAVE
+0x8e   U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8f   U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x91   U+00e6  # LATIN SMALL LIGATURE AE
+0x92   U+00c6  # LATIN CAPITAL LIGATURE AE
+0x93   U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x95   U+00f2  # LATIN SMALL LETTER O WITH GRAVE
+0x96   U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   U+00f9  # LATIN SMALL LETTER U WITH GRAVE
+0x98   U+00ff  # LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a   U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9b   U+00f8  # LATIN SMALL LETTER O WITH STROKE
+0x9c   U+00a3  # POUND SIGN
+0x9d   U+00d8  # LATIN CAPITAL LETTER O WITH STROKE
+0x9e   U+00d7  # MULTIPLICATION SIGN
+0x9f   U+0192  # LATIN SMALL LETTER F WITH HOOK
+0xa0   U+00e1  # LATIN SMALL LETTER A WITH ACUTE
+0xa1   U+00ed  # LATIN SMALL LETTER I WITH ACUTE
+0xa2   U+00f3  # LATIN SMALL LETTER O WITH ACUTE
+0xa3   U+00fa  # LATIN SMALL LETTER U WITH ACUTE
+0xa4   U+00f1  # LATIN SMALL LETTER N WITH TILDE
+0xa5   U+00d1  # LATIN CAPITAL LETTER N WITH TILDE
+0xa6   U+00aa  # FEMININE ORDINAL INDICATOR
+0xa7   U+00ba  # MASCULINE ORDINAL INDICATOR
+0xa8   U+00bf  # INVERTED QUESTION MARK
+0xa9   U+00ae  # REGISTERED SIGN
+0xaa   U+00ac  # NOT SIGN
+0xab   U+00bd  # VULGAR FRACTION ONE HALF
+0xac   U+00bc  # VULGAR FRACTION ONE QUARTER
+0xad   U+00a1  # INVERTED EXCLAMATION MARK
+0xae   U+00ab  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf   U+00bb  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+00c1  # LATIN CAPITAL LETTER A WITH ACUTE
+0xb6   U+00c2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xb7   U+00c0  # LATIN CAPITAL LETTER A WITH GRAVE
+0xb8   U+00a9  # COPYRIGHT SIGN
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+00a2  # CENT SIGN
+0xbe   U+00a5  # YEN SIGN
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+00e3  # LATIN SMALL LETTER A WITH TILDE
+0xc7   U+00c3  # LATIN CAPITAL LETTER A WITH TILDE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+00a4  # CURRENCY SIGN
+0xd0   U+00f0  # LATIN SMALL LETTER ETH
+0xd1   U+00d0  # LATIN CAPITAL LETTER ETH
+0xd2   U+00ca  # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+0xd3   U+00cb  # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xd4   U+00c8  # LATIN CAPITAL LETTER E WITH GRAVE
+0xd5   U+0131  # LATIN SMALL LETTER DOTLESS I
+0xd6   U+00cd  # LATIN CAPITAL LETTER I WITH ACUTE
+0xd7   U+00ce  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xd8   U+00cf  # LATIN CAPITAL LETTER I WITH DIAERESIS
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+00a6  # BROKEN BAR
+0xde   U+00cc  # LATIN CAPITAL LETTER I WITH GRAVE
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+00d3  # LATIN CAPITAL LETTER O WITH ACUTE
+0xe1   U+00df  # LATIN SMALL LETTER SHARP S
+0xe2   U+00d4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xe3   U+00d2  # LATIN CAPITAL LETTER O WITH GRAVE
+0xe4   U+00f5  # LATIN SMALL LETTER O WITH TILDE
+0xe5   U+00d5  # LATIN CAPITAL LETTER O WITH TILDE
+0xe6   U+00b5  # MICRO SIGN
+0xe7   U+00fe  # LATIN SMALL LETTER THORN
+0xe8   U+00de  # LATIN CAPITAL LETTER THORN
+0xe9   U+00da  # LATIN CAPITAL LETTER U WITH ACUTE
+0xea   U+00db  # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+0xeb   U+00d9  # LATIN CAPITAL LETTER U WITH GRAVE
+0xec   U+00fd  # LATIN SMALL LETTER Y WITH ACUTE
+0xed   U+00dd  # LATIN CAPITAL LETTER Y WITH ACUTE
+0xee   U+00af  # MACRON
+0xef   U+00b4  # ACUTE ACCENT
+0xf0   U+00ad  # SOFT HYPHEN
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2017  # DOUBLE LOW LINE
+0xf3   U+00be  # VULGAR FRACTION THREE QUARTERS
+0xf4   U+00b6  # PILCROW SIGN
+0xf5   U+00a7  # SECTION SIGN
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+00b8  # CEDILLA
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+00a8  # DIAERESIS
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+00b9  # SUPERSCRIPT ONE
+0xfc   U+00b3  # SUPERSCRIPT THREE
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp865.uni b/data/unimaps/cp865.uni
new file mode 100644 (file)
index 0000000..7445fce
--- /dev/null
@@ -0,0 +1,131 @@
+# cp865
+0x00-0x7f      idem
+#
+0x80   U+00c7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS
+0x82   U+00e9  # LATIN SMALL LETTER E WITH ACUTE
+0x83   U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x85   U+00e0  # LATIN SMALL LETTER A WITH GRAVE
+0x86   U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE
+0x87   U+00e7  # LATIN SMALL LETTER C WITH CEDILLA
+0x88   U+00ea  # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS
+0x8a   U+00e8  # LATIN SMALL LETTER E WITH GRAVE
+0x8b   U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS
+0x8c   U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8d   U+00ec  # LATIN SMALL LETTER I WITH GRAVE
+0x8e   U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8f   U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x91   U+00e6  # LATIN SMALL LIGATURE AE
+0x92   U+00c6  # LATIN CAPITAL LIGATURE AE
+0x93   U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x95   U+00f2  # LATIN SMALL LETTER O WITH GRAVE
+0x96   U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   U+00f9  # LATIN SMALL LETTER U WITH GRAVE
+0x98   U+00ff  # LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a   U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9b   U+00f8  # LATIN SMALL LETTER O WITH STROKE
+0x9c   U+00a3  # POUND SIGN
+0x9d   U+00d8  # LATIN CAPITAL LETTER O WITH STROKE
+0x9e   U+20a7  # PESETA SIGN
+0x9f   U+0192  # LATIN SMALL LETTER F WITH HOOK
+0xa0   U+00e1  # LATIN SMALL LETTER A WITH ACUTE
+0xa1   U+00ed  # LATIN SMALL LETTER I WITH ACUTE
+0xa2   U+00f3  # LATIN SMALL LETTER O WITH ACUTE
+0xa3   U+00fa  # LATIN SMALL LETTER U WITH ACUTE
+0xa4   U+00f1  # LATIN SMALL LETTER N WITH TILDE
+0xa5   U+00d1  # LATIN CAPITAL LETTER N WITH TILDE
+0xa6   U+00aa  # FEMININE ORDINAL INDICATOR
+0xa7   U+00ba  # MASCULINE ORDINAL INDICATOR
+0xa8   U+00bf  # INVERTED QUESTION MARK
+0xa9   U+2310  # REVERSED NOT SIGN
+0xaa   U+00ac  # NOT SIGN
+0xab   U+00bd  # VULGAR FRACTION ONE HALF
+0xac   U+00bc  # VULGAR FRACTION ONE QUARTER
+0xad   U+00a1  # INVERTED EXCLAMATION MARK
+0xae   U+00ab  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf   U+00a4  # CURRENCY SIGN
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03b1  # GREEK SMALL LETTER ALPHA
+0xe1   U+00df  # LATIN SMALL LETTER SHARP S
+0xe2   U+0393  # GREEK CAPITAL LETTER GAMMA
+0xe3   U+03c0  # GREEK SMALL LETTER PI
+0xe4   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0xe5   U+03c3  # GREEK SMALL LETTER SIGMA
+0xe6   U+00b5  # MICRO SIGN
+0xe7   U+03c4  # GREEK SMALL LETTER TAU
+0xe8   U+03a6  # GREEK CAPITAL LETTER PHI
+0xe9   U+0398  # GREEK CAPITAL LETTER THETA
+0xea   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0xeb   U+03b4  # GREEK SMALL LETTER DELTA
+0xec   U+221e  # INFINITY
+0xed   U+03c6  # GREEK SMALL LETTER PHI
+0xee   U+03b5  # GREEK SMALL LETTER EPSILON
+0xef   U+2229  # INTERSECTION
+0xf0   U+2261  # IDENTICAL TO
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+2320  # TOP HALF INTEGRAL
+0xf5   U+2321  # BOTTOM HALF INTEGRAL
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp865a.uni b/data/unimaps/cp865a.uni
new file mode 100644 (file)
index 0000000..dadcaf0
--- /dev/null
@@ -0,0 +1,166 @@
+# cp865
+# This is cp865, but with positions 0-31 replaced by cp437 symbols
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x020-0x07f    idem
+#
+0x80   U+00c7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0x81   U+00fc  # LATIN SMALL LETTER U WITH DIAERESIS
+0x82   U+00e9  # LATIN SMALL LETTER E WITH ACUTE
+0x83   U+00e2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0x84   U+00e4  # LATIN SMALL LETTER A WITH DIAERESIS
+0x85   U+00e0  # LATIN SMALL LETTER A WITH GRAVE
+0x86   U+00e5  # LATIN SMALL LETTER A WITH RING ABOVE
+0x87   U+00e7  # LATIN SMALL LETTER C WITH CEDILLA
+0x88   U+00ea  # LATIN SMALL LETTER E WITH CIRCUMFLEX
+0x89   U+00eb  # LATIN SMALL LETTER E WITH DIAERESIS
+0x8a   U+00e8  # LATIN SMALL LETTER E WITH GRAVE
+0x8b   U+00ef  # LATIN SMALL LETTER I WITH DIAERESIS
+0x8c   U+00ee  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0x8d   U+00ec  # LATIN SMALL LETTER I WITH GRAVE
+0x8e   U+00c4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0x8f   U+00c5  # LATIN CAPITAL LETTER A WITH RING ABOVE
+0x90   U+00c9  # LATIN CAPITAL LETTER E WITH ACUTE
+0x91   U+00e6  # LATIN SMALL LIGATURE AE
+0x92   U+00c6  # LATIN CAPITAL LIGATURE AE
+0x93   U+00f4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0x94   U+00f6  # LATIN SMALL LETTER O WITH DIAERESIS
+0x95   U+00f2  # LATIN SMALL LETTER O WITH GRAVE
+0x96   U+00fb  # LATIN SMALL LETTER U WITH CIRCUMFLEX
+0x97   U+00f9  # LATIN SMALL LETTER U WITH GRAVE
+0x98   U+00ff  # LATIN SMALL LETTER Y WITH DIAERESIS
+0x99   U+00d6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0x9a   U+00dc  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0x9b   U+00f8  # LATIN SMALL LETTER O WITH STROKE
+0x9c   U+00a3  # POUND SIGN
+0x9d   U+00d8  # LATIN CAPITAL LETTER O WITH STROKE
+0x9e   U+20a7  # PESETA SIGN
+0x9f   U+0192  # LATIN SMALL LETTER F WITH HOOK
+0xa0   U+00e1  # LATIN SMALL LETTER A WITH ACUTE
+0xa1   U+00ed  # LATIN SMALL LETTER I WITH ACUTE
+0xa2   U+00f3  # LATIN SMALL LETTER O WITH ACUTE
+0xa3   U+00fa  # LATIN SMALL LETTER U WITH ACUTE
+0xa4   U+00f1  # LATIN SMALL LETTER N WITH TILDE
+0xa5   U+00d1  # LATIN CAPITAL LETTER N WITH TILDE
+0xa6   U+00aa  # FEMININE ORDINAL INDICATOR
+0xa7   U+00ba  # MASCULINE ORDINAL INDICATOR
+0xa8   U+00bf  # INVERTED QUESTION MARK
+0xa9   U+2310  # REVERSED NOT SIGN
+0xaa   U+00ac  # NOT SIGN
+0xab   U+00bd  # VULGAR FRACTION ONE HALF
+0xac   U+00bc  # VULGAR FRACTION ONE QUARTER
+0xad   U+00a1  # INVERTED EXCLAMATION MARK
+0xae   U+00ab  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xaf   U+00a4  # CURRENCY SIGN
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+03b1  # GREEK SMALL LETTER ALPHA
+0xe1   U+00df  # LATIN SMALL LETTER SHARP S
+0xe2   U+0393  # GREEK CAPITAL LETTER GAMMA
+0xe3   U+03c0  # GREEK SMALL LETTER PI
+0xe4   U+03a3  # GREEK CAPITAL LETTER SIGMA
+0xe5   U+03c3  # GREEK SMALL LETTER SIGMA
+0xe6   U+00b5  # MICRO SIGN
+0xe7   U+03c4  # GREEK SMALL LETTER TAU
+0xe8   U+03a6  # GREEK CAPITAL LETTER PHI
+0xe9   U+0398  # GREEK CAPITAL LETTER THETA
+0xea   U+03a9  # GREEK CAPITAL LETTER OMEGA
+0xeb   U+03b4  # GREEK SMALL LETTER DELTA
+0xec   U+221e  # INFINITY
+0xed   U+03c6  # GREEK SMALL LETTER PHI
+0xee   U+03b5  # GREEK SMALL LETTER EPSILON
+0xef   U+2229  # INTERSECTION
+0xf0   U+2261  # IDENTICAL TO
+0xf1   U+00b1  # PLUS-MINUS SIGN
+0xf2   U+2265  # GREATER-THAN OR EQUAL TO
+0xf3   U+2264  # LESS-THAN OR EQUAL TO
+0xf4   U+2320  # TOP HALF INTEGRAL
+0xf5   U+2321  # BOTTOM HALF INTEGRAL
+0xf6   U+00f7  # DIVISION SIGN
+0xf7   U+2248  # ALMOST EQUAL TO
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+207f  # SUPERSCRIPT LATIN SMALL LETTER N
+0xfd   U+00b2  # SUPERSCRIPT TWO
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp866.uni b/data/unimaps/cp866.uni
new file mode 100644 (file)
index 0000000..dbf2900
--- /dev/null
@@ -0,0 +1,131 @@
+# cp866
+0x00-0x7f      idem
+#
+0x80   U+0410  # CYRILLIC CAPITAL LETTER A
+0x81   U+0411  # CYRILLIC CAPITAL LETTER BE
+0x82   U+0412  # CYRILLIC CAPITAL LETTER VE
+0x83   U+0413  # CYRILLIC CAPITAL LETTER GHE
+0x84   U+0414  # CYRILLIC CAPITAL LETTER DE
+0x85   U+0415  # CYRILLIC CAPITAL LETTER IE
+0x86   U+0416  # CYRILLIC CAPITAL LETTER ZHE
+0x87   U+0417  # CYRILLIC CAPITAL LETTER ZE
+0x88   U+0418  # CYRILLIC CAPITAL LETTER I
+0x89   U+0419  # CYRILLIC CAPITAL LETTER SHORT I
+0x8a   U+041a  # CYRILLIC CAPITAL LETTER KA
+0x8b   U+041b  # CYRILLIC CAPITAL LETTER EL
+0x8c   U+041c  # CYRILLIC CAPITAL LETTER EM
+0x8d   U+041d  # CYRILLIC CAPITAL LETTER EN
+0x8e   U+041e  # CYRILLIC CAPITAL LETTER O
+0x8f   U+041f  # CYRILLIC CAPITAL LETTER PE
+0x90   U+0420  # CYRILLIC CAPITAL LETTER ER
+0x91   U+0421  # CYRILLIC CAPITAL LETTER ES
+0x92   U+0422  # CYRILLIC CAPITAL LETTER TE
+0x93   U+0423  # CYRILLIC CAPITAL LETTER U
+0x94   U+0424  # CYRILLIC CAPITAL LETTER EF
+0x95   U+0425  # CYRILLIC CAPITAL LETTER HA
+0x96   U+0426  # CYRILLIC CAPITAL LETTER TSE
+0x97   U+0427  # CYRILLIC CAPITAL LETTER CHE
+0x98   U+0428  # CYRILLIC CAPITAL LETTER SHA
+0x99   U+0429  # CYRILLIC CAPITAL LETTER SHCHA
+0x9a   U+042a  # CYRILLIC CAPITAL LETTER HARD SIGN
+0x9b   U+042b  # CYRILLIC CAPITAL LETTER YERU
+0x9c   U+042c  # CYRILLIC CAPITAL LETTER SOFT SIGN
+0x9d   U+042d  # CYRILLIC CAPITAL LETTER E
+0x9e   U+042e  # CYRILLIC CAPITAL LETTER YU
+0x9f   U+042f  # CYRILLIC CAPITAL LETTER YA
+0xa0   U+0430  # CYRILLIC SMALL LETTER A
+0xa1   U+0431  # CYRILLIC SMALL LETTER BE
+0xa2   U+0432  # CYRILLIC SMALL LETTER VE
+0xa3   U+0433  # CYRILLIC SMALL LETTER GHE
+0xa4   U+0434  # CYRILLIC SMALL LETTER DE
+0xa5   U+0435  # CYRILLIC SMALL LETTER IE
+0xa6   U+0436  # CYRILLIC SMALL LETTER ZHE
+0xa7   U+0437  # CYRILLIC SMALL LETTER ZE
+0xa8   U+0438  # CYRILLIC SMALL LETTER I
+0xa9   U+0439  # CYRILLIC SMALL LETTER SHORT I
+0xaa   U+043a  # CYRILLIC SMALL LETTER KA
+0xab   U+043b  # CYRILLIC SMALL LETTER EL
+0xac   U+043c  # CYRILLIC SMALL LETTER EM
+0xad   U+043d  # CYRILLIC SMALL LETTER EN
+0xae   U+043e  # CYRILLIC SMALL LETTER O
+0xaf   U+043f  # CYRILLIC SMALL LETTER PE
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+0440  # CYRILLIC SMALL LETTER ER
+0xe1   U+0441  # CYRILLIC SMALL LETTER ES
+0xe2   U+0442  # CYRILLIC SMALL LETTER TE
+0xe3   U+0443  # CYRILLIC SMALL LETTER U
+0xe4   U+0444  # CYRILLIC SMALL LETTER EF
+0xe5   U+0445  # CYRILLIC SMALL LETTER HA
+0xe6   U+0446  # CYRILLIC SMALL LETTER TSE
+0xe7   U+0447  # CYRILLIC SMALL LETTER CHE
+0xe8   U+0448  # CYRILLIC SMALL LETTER SHA
+0xe9   U+0449  # CYRILLIC SMALL LETTER SHCHA
+0xea   U+044a  # CYRILLIC SMALL LETTER HARD SIGN
+0xeb   U+044b  # CYRILLIC SMALL LETTER YERU
+0xec   U+044c  # CYRILLIC SMALL LETTER SOFT SIGN
+0xed   U+044d  # CYRILLIC SMALL LETTER E
+0xee   U+044e  # CYRILLIC SMALL LETTER YU
+0xef   U+044f  # CYRILLIC SMALL LETTER YA
+0xf0   U+0401  # CYRILLIC CAPITAL LETTER IO
+0xf1   U+0451  # CYRILLIC SMALL LETTER IO
+0xf2   U+0404  # CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xf3   U+0454  # CYRILLIC SMALL LETTER UKRAINIAN IE
+0xf4   U+0407  # CYRILLIC CAPITAL LETTER YI
+0xf5   U+0457  # CYRILLIC SMALL LETTER YI
+0xf6   U+040e  # CYRILLIC CAPITAL LETTER SHORT U
+0xf7   U+045e  # CYRILLIC SMALL LETTER SHORT U
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+2116  # NUMERO SIGN
+0xfd   U+00a4  # CURRENCY SIGN
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cp866a.uni b/data/unimaps/cp866a.uni
new file mode 100644 (file)
index 0000000..fff4234
--- /dev/null
@@ -0,0 +1,165 @@
+# This is cp865, but with positions 0-31 replaced by cp437 symbols
+# first 32 positions of cp437
+0x000  U+fffd
+0x001  U+263a
+0x002  U+263b
+0x003  U+2665
+0x004  U+2666
+0x005  U+2663
+0x006  U+2660
+0x007  U+2022
+0x008  U+25d8
+0x009  U+25cb
+0x00a  U+25d9
+0x00b  U+2642
+0x00c  U+2640
+0x00d  U+266a
+0x00e  U+266b
+0x00f  U+263c
+0x010  U+25ba
+0x011  U+25c4
+0x012  U+2195
+0x013  U+203c
+0x014  U+00b6
+0x015  U+00a7
+0x016  U+25ac
+0x017  U+21a8
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+221f
+0x01d  U+2194
+0x01e  U+25b2
+0x01f  U+25bc
+# then ASCII
+0x20-0x7f      idem
+#
+0x80   U+0410  # CYRILLIC CAPITAL LETTER A
+0x81   U+0411  # CYRILLIC CAPITAL LETTER BE
+0x82   U+0412  # CYRILLIC CAPITAL LETTER VE
+0x83   U+0413  # CYRILLIC CAPITAL LETTER GHE
+0x84   U+0414  # CYRILLIC CAPITAL LETTER DE
+0x85   U+0415  # CYRILLIC CAPITAL LETTER IE
+0x86   U+0416  # CYRILLIC CAPITAL LETTER ZHE
+0x87   U+0417  # CYRILLIC CAPITAL LETTER ZE
+0x88   U+0418  # CYRILLIC CAPITAL LETTER I
+0x89   U+0419  # CYRILLIC CAPITAL LETTER SHORT I
+0x8a   U+041a  # CYRILLIC CAPITAL LETTER KA
+0x8b   U+041b  # CYRILLIC CAPITAL LETTER EL
+0x8c   U+041c  # CYRILLIC CAPITAL LETTER EM
+0x8d   U+041d  # CYRILLIC CAPITAL LETTER EN
+0x8e   U+041e  # CYRILLIC CAPITAL LETTER O
+0x8f   U+041f  # CYRILLIC CAPITAL LETTER PE
+0x90   U+0420  # CYRILLIC CAPITAL LETTER ER
+0x91   U+0421  # CYRILLIC CAPITAL LETTER ES
+0x92   U+0422  # CYRILLIC CAPITAL LETTER TE
+0x93   U+0423  # CYRILLIC CAPITAL LETTER U
+0x94   U+0424  # CYRILLIC CAPITAL LETTER EF
+0x95   U+0425  # CYRILLIC CAPITAL LETTER HA
+0x96   U+0426  # CYRILLIC CAPITAL LETTER TSE
+0x97   U+0427  # CYRILLIC CAPITAL LETTER CHE
+0x98   U+0428  # CYRILLIC CAPITAL LETTER SHA
+0x99   U+0429  # CYRILLIC CAPITAL LETTER SHCHA
+0x9a   U+042a  # CYRILLIC CAPITAL LETTER HARD SIGN
+0x9b   U+042b  # CYRILLIC CAPITAL LETTER YERU
+0x9c   U+042c  # CYRILLIC CAPITAL LETTER SOFT SIGN
+0x9d   U+042d  # CYRILLIC CAPITAL LETTER E
+0x9e   U+042e  # CYRILLIC CAPITAL LETTER YU
+0x9f   U+042f  # CYRILLIC CAPITAL LETTER YA
+0xa0   U+0430  # CYRILLIC SMALL LETTER A
+0xa1   U+0431  # CYRILLIC SMALL LETTER BE
+0xa2   U+0432  # CYRILLIC SMALL LETTER VE
+0xa3   U+0433  # CYRILLIC SMALL LETTER GHE
+0xa4   U+0434  # CYRILLIC SMALL LETTER DE
+0xa5   U+0435  # CYRILLIC SMALL LETTER IE
+0xa6   U+0436  # CYRILLIC SMALL LETTER ZHE
+0xa7   U+0437  # CYRILLIC SMALL LETTER ZE
+0xa8   U+0438  # CYRILLIC SMALL LETTER I
+0xa9   U+0439  # CYRILLIC SMALL LETTER SHORT I
+0xaa   U+043a  # CYRILLIC SMALL LETTER KA
+0xab   U+043b  # CYRILLIC SMALL LETTER EL
+0xac   U+043c  # CYRILLIC SMALL LETTER EM
+0xad   U+043d  # CYRILLIC SMALL LETTER EN
+0xae   U+043e  # CYRILLIC SMALL LETTER O
+0xaf   U+043f  # CYRILLIC SMALL LETTER PE
+0xb0   U+2591  # LIGHT SHADE
+0xb1   U+2592  # MEDIUM SHADE
+0xb2   U+2593  # DARK SHADE
+0xb3   U+2502  # BOX DRAWINGS LIGHT VERTICAL
+0xb4   U+2524  # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xb5   U+2561  # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb6   U+2562  # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb7   U+2556  # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xb8   U+2555  # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xb9   U+2563  # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xba   U+2551  # BOX DRAWINGS DOUBLE VERTICAL
+0xbb   U+2557  # BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xbc   U+255d  # BOX DRAWINGS DOUBLE UP AND LEFT
+0xbd   U+255c  # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xbe   U+255b  # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xbf   U+2510  # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xc0   U+2514  # BOX DRAWINGS LIGHT UP AND RIGHT
+0xc1   U+2534  # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xc2   U+252c  # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xc3   U+251c  # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xc4   U+2500  # BOX DRAWINGS LIGHT HORIZONTAL
+0xc5   U+253c  # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xc6   U+255e  # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xc7   U+255f  # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xc8   U+255a  # BOX DRAWINGS DOUBLE UP AND RIGHT
+0xc9   U+2554  # BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xca   U+2569  # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xcb   U+2566  # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xcc   U+2560  # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xcd   U+2550  # BOX DRAWINGS DOUBLE HORIZONTAL
+0xce   U+256c  # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xcf   U+2567  # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xd0   U+2568  # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xd1   U+2564  # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xd2   U+2565  # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xd3   U+2559  # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xd4   U+2558  # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xd5   U+2552  # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xd6   U+2553  # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xd7   U+256b  # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xd8   U+256a  # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xd9   U+2518  # BOX DRAWINGS LIGHT UP AND LEFT
+0xda   U+250c  # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xdb   U+2588  # FULL BLOCK
+0xdc   U+2584  # LOWER HALF BLOCK
+0xdd   U+258c  # LEFT HALF BLOCK
+0xde   U+2590  # RIGHT HALF BLOCK
+0xdf   U+2580  # UPPER HALF BLOCK
+0xe0   U+0440  # CYRILLIC SMALL LETTER ER
+0xe1   U+0441  # CYRILLIC SMALL LETTER ES
+0xe2   U+0442  # CYRILLIC SMALL LETTER TE
+0xe3   U+0443  # CYRILLIC SMALL LETTER U
+0xe4   U+0444  # CYRILLIC SMALL LETTER EF
+0xe5   U+0445  # CYRILLIC SMALL LETTER HA
+0xe6   U+0446  # CYRILLIC SMALL LETTER TSE
+0xe7   U+0447  # CYRILLIC SMALL LETTER CHE
+0xe8   U+0448  # CYRILLIC SMALL LETTER SHA
+0xe9   U+0449  # CYRILLIC SMALL LETTER SHCHA
+0xea   U+044a  # CYRILLIC SMALL LETTER HARD SIGN
+0xeb   U+044b  # CYRILLIC SMALL LETTER YERU
+0xec   U+044c  # CYRILLIC SMALL LETTER SOFT SIGN
+0xed   U+044d  # CYRILLIC SMALL LETTER E
+0xee   U+044e  # CYRILLIC SMALL LETTER YU
+0xef   U+044f  # CYRILLIC SMALL LETTER YA
+0xf0   U+0401  # CYRILLIC CAPITAL LETTER IO
+0xf1   U+0451  # CYRILLIC SMALL LETTER IO
+0xf2   U+0404  # CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xf3   U+0454  # CYRILLIC SMALL LETTER UKRAINIAN IE
+0xf4   U+0407  # CYRILLIC CAPITAL LETTER YI
+0xf5   U+0457  # CYRILLIC SMALL LETTER YI
+0xf6   U+040e  # CYRILLIC CAPITAL LETTER SHORT U
+0xf7   U+045e  # CYRILLIC SMALL LETTER SHORT U
+0xf8   U+00b0  # DEGREE SIGN
+0xf9   U+2219  # BULLET OPERATOR
+0xfa   U+00b7  # MIDDLE DOT
+0xfb   U+221a  # SQUARE ROOT
+0xfc   U+2116  # NUMERO SIGN
+0xfd   U+00a4  # CURRENCY SIGN
+0xfe   U+25a0  # BLACK SQUARE
+0xff   U+00a0  # NO-BREAK SPACE
diff --git a/data/unimaps/cyralt.uni b/data/unimaps/cyralt.uni
new file mode 100644 (file)
index 0000000..46c04da
--- /dev/null
@@ -0,0 +1,291 @@
+# Identical to ruscii.uni, except for the tail 0xf2-0xff
+#
+# Basic IBM dingbats, some of which will never have a purpose clear
+# to mankind
+#
+0x00   U+0000
+0x01   U+263a
+0x02   U+263b
+0x03   U+2665
+0x04   U+2666 U+25c6
+0x05   U+2663
+0x06   U+2660
+0x07   U+2022
+0x08   U+25d8
+0x09   U+25cb
+0x0a   U+25d9
+0x0b   U+2642
+0x0c   U+2640
+0x0d   U+266a
+0x0e   U+266b
+0x0f   U+263c
+0x10   U+25b6 U+25ba
+0x11   U+25c0 U+25c4
+0x12   U+2195
+0x13   U+203c
+0x14   U+00b6
+0x15   U+00a7
+0x16   U+25ac
+0x17   U+21a8
+0x18   U+2191
+0x19   U+2193
+0x1a   U+2192
+0x1b   U+2190
+0x1c   U+221f
+0x1d   U+2194
+0x1e   U+25b2
+0x1f   U+25bc
+#
+# The ASCII range is identity-mapped, but some of the characters also
+# have to act as substitutes, especially the upper-case characters.
+#
+0x20   U+0020
+0x21   U+0021
+0x22   U+0022 U+00a8
+0x23   U+0023
+0x24   U+0024
+0x25   U+0025
+0x26   U+0026
+0x27   U+0027
+0x28   U+0028
+0x29   U+0029
+0x2a   U+002a
+0x2b   U+002b
+0x2c   U+002c U+00b8
+0x2d   U+002d U+00ad
+0x2e   U+002e
+0x2f   U+002f
+0x30   U+0030
+0x31   U+0031
+0x32   U+0032
+0x33   U+0033
+0x34   U+0034
+0x35   U+0035
+0x36   U+0036
+0x37   U+0037
+0x38   U+0038
+0x39   U+0039
+0x3a   U+003a
+0x3b   U+003b
+0x3c   U+003c
+0x3d   U+003d
+0x3e   U+003e
+0x3f   U+003f
+0x40   U+0040
+0x41   U+0041 U+00c0 U+00c1 U+00c2 U+00c3
+0x42   U+0042
+0x43   U+0043 U+00a9
+0x44   U+0044
+0x45   U+0045 U+00c8 U+00ca U+00cb
+0x46   U+0046
+0x47   U+0047
+0x48   U+0048
+0x49   U+0049 U+00cc U+00cd U+00ce U+00cf
+0x4a   U+004a
+0x4b   U+004b U+212a
+0x4c   U+004c
+0x4d   U+004d
+0x4e   U+004e
+0x4f   U+004f U+00d2 U+00d3 U+00d4 U+00d5
+0x50   U+0050
+0x51   U+0051
+0x52   U+0052 U+00ae
+0x53   U+0053
+0x54   U+0054
+0x55   U+0055 U+00d9 U+00da U+00db
+0x56   U+0056
+0x57   U+0057
+0x58   U+0058
+0x59   U+0059 U+00dd
+0x5a   U+005a
+0x5b   U+005b
+0x5c   U+005c
+0x5d   U+005d
+0x5e   U+005e
+0x5f   U+005f U+f804
+0x60   U+0060
+0x61   U+0061 U+00e3
+0x62   U+0062
+0x63   U+0063
+0x64   U+0064
+0x65   U+0065
+0x66   U+0066
+0x67   U+0067
+0x68   U+0068
+0x69   U+0069
+0x6a   U+006a
+0x6b   U+006b
+0x6c   U+006c
+0x6d   U+006d
+0x6e   U+006e
+0x6f   U+006f U+00f5
+0x70   U+0070
+0x71   U+0071
+0x72   U+0072
+0x73   U+0073
+0x74   U+0074
+0x75   U+0075
+0x76   U+0076
+0x77   U+0077
+0x78   U+0078 U+00d7
+0x79   U+0079 U+00fd
+0x7a   U+007a
+0x7b   U+007b
+0x7c   U+007c U+00a5
+0x7d   U+007d
+0x7e   U+007e
+#
+# Okay, what on Earth is this one supposed to be used for?
+#
+0x7f   U+2302
+#
+# cyrillic capital letters from A to JA
+#
+0x80   U+0410
+0x81   U+0411
+0x82   U+0412
+0x83   U+0413
+0x84   U+0414
+0x85   U+0415
+0x86   U+0416
+0x87   U+0417
+0x88   U+0418
+0x89   U+0419
+0x8a   U+041a
+0x8b   U+041b
+0x8c   U+041c
+0x8d   U+041d
+0x8e   U+041e
+0x8f   U+041f
+0x90   U+0420
+0x91   U+0421
+0x92   U+0422
+0x93   U+0423
+0x94   U+0424
+0x95   U+0425
+0x96   U+0426
+0x97   U+0427
+0x98   U+0428
+0x99   U+0429
+0x9a   U+042a
+0x9b   U+042b
+0x9c   U+042c
+0x9d   U+042d
+0x9e   U+042e
+0x9f   U+042f
+#
+# cyrillic small letters from a to pe
+#
+0xa0   U+0430
+0xa1   U+0431
+0xa2   U+0432
+0xa3   U+0433
+0xa4   U+0434
+0xa5   U+0435
+0xa6   U+0436
+0xa7   U+0437
+0xa8   U+0438
+0xa9   U+0439
+0xaa   U+043a
+0xab   U+043b
+0xac   U+043c
+0xad   U+043d
+0xae   U+043e
+0xaf   U+043f
+#
+# Block graphics
+#
+0xb0   U+2591
+0xb1   U+2592
+0xb2   U+2593
+0xb3   U+2502
+0xb4   U+2524
+0xb5   U+2561
+0xb6   U+2562
+0xb7   U+2556
+0xb8   U+2555
+0xb9   U+2563
+0xba   U+2551
+0xbb   U+2557
+0xbc   U+255d
+0xbd   U+255c
+0xbe   U+255b
+0xbf   U+2510
+0xc0   U+2514
+0xc1   U+2534
+0xc2   U+252c
+0xc3   U+251c
+0xc4   U+2500
+0xc5   U+253c
+0xc6   U+255e
+0xc7   U+255f
+0xc8   U+255a
+0xc9   U+2554
+0xca   U+2569
+0xcb   U+2566
+0xcc   U+2560
+0xcd   U+2550
+0xce   U+256c
+0xcf   U+2567
+0xd0   U+2568
+0xd1   U+2564
+0xd2   U+2565
+0xd3   U+2559
+0xd4   U+2558
+0xd5   U+2552
+0xd6   U+2553
+0xd7   U+256b
+0xd8   U+256a
+0xd9   U+2518
+0xda   U+250c
+0xdb   U+2588
+0xdc   U+2584
+0xdd   U+258c
+0xde   U+2590
+0xdf   U+2580
+#
+# cyrillic small letters from er to ja 
+#
+0xe0   U+0440
+0xe1   U+0441
+0xe2   U+0442
+0xe3   U+0443
+0xe4   U+0444
+0xe5   U+0445
+0xe6   U+0446
+0xe7   U+0447
+0xe8   U+0448
+0xe9   U+0449
+0xea   U+044a
+0xeb   U+044b
+0xec   U+044c
+0xed   U+044d
+0xee   U+044e
+0xef   U+044f
+#
+# ukrainian diacritic letters
+#
+0xf0   U+0401
+0xf1   U+0451
+#
+#
+# The range 0xf2-0xfd differs from ruscii.uni
+0xf2    U+0404
+0xf3    U+0454
+0xf4    U+0407
+0xf5    U+0457
+0xf6    U+040e
+0xf7    U+045e
+0xf8    U+00b0
+0xf9    U+2219
+0xfa    U+00b7
+0xfb    U+221a
+0xfc    U+2116
+0xfd    U+00a4
+#
+# Square bullet, non-spacing blank
+# Mapping U+fffd to the square bullet means it is the substitution
+# character
+# 
+0xfe   U+25a0 U+fffd
+0xff   U+00a0
similarity index 100%
rename from consoletrans/def.uni
rename to data/unimaps/def.uni
diff --git a/data/unimaps/koi8r.uni b/data/unimaps/koi8r.uni
new file mode 100644 (file)
index 0000000..f2ab370
--- /dev/null
@@ -0,0 +1,278 @@
+# Unicode (ISO 10646) mapping for the KOI8-R charset.
+# (only the upper half of the code table makes sense,
+#  as the lower half of the table is fully coinciding with ASCII character set)
+#
+# Using IBM cp850 table lower half here... (excerpt from `cp850.uni' file)
+#
+#------------------------------------------------------------------
+#
+# Unicode table for IBM Codepage 850.
+# This allows to properly use a cp850 encoded font to display unicode.
+#
+0x00   U+0000
+0x01   U+263a
+0x02   U+263b
+0x03   U+2665
+0x04   U+2666 U+25c6
+0x05   U+2663
+0x06   U+2660
+0x07   U+2022
+0x08   U+25d8
+0x09   U+25cb
+0x0a   U+25d9
+0x0b   U+2642
+0x0c   U+2640
+0x0d   U+266a
+0x0e   U+266b U+266c
+0x0f   U+263c
+0x10   U+25b6 U+25ba
+0x11   U+25c0 U+25c4
+0x12   U+2195
+0x13   U+203c
+0x14   U+00b6
+0x15   U+00a7
+0x16   U+25ac
+0x17   U+21a8
+0x18   U+2191
+0x19   U+2193
+0x1a   U+2192
+0x1b   U+2190
+0x1c   U+221f U+2319
+0x1d   U+2194
+0x1e   U+25b2
+0x1f   U+25bc
+#
+# The ASCII range is identity-mapped, but some of the characters also
+# have to act as substitutes, especially the upper-case characters.
+#
+0x20   U+0020
+0x21   U+0021
+0x22   U+0022 U+00a8
+0x23   U+0023
+0x24   U+0024
+0x25   U+0025
+0x26   U+0026
+0x27   U+0027
+0x28   U+0028
+0x29   U+0029
+0x2a   U+002a
+0x2b   U+002b
+0x2c   U+002c U+00b8
+0x2d   U+002d U+00ad
+0x2e   U+002e
+0x2f   U+002f
+0x30   U+0030
+0x31   U+0031
+0x32   U+0032
+0x33   U+0033
+0x34   U+0034
+0x35   U+0035
+0x36   U+0036
+0x37   U+0037
+0x38   U+0038
+0x39   U+0039
+0x3a   U+003a
+0x3b   U+003b
+0x3c   U+003c
+0x3d   U+003d
+0x3e   U+003e
+0x3f   U+003f
+0x40   U+0040
+0x41   U+0041
+0x42   U+0042
+0x43   U+0043
+0x44   U+0044
+0x45   U+0045
+0x46   U+0046
+0x47   U+0047
+0x48   U+0048
+0x49   U+0049
+0x4a   U+004a
+0x4b   U+004b U+212a
+0x4c   U+004c
+0x4d   U+004d
+0x4e   U+004e
+0x4f   U+004f
+0x50   U+0050
+0x51   U+0051
+0x52   U+0052
+0x53   U+0053
+0x54   U+0054
+0x55   U+0055
+0x56   U+0056
+0x57   U+0057
+0x58   U+0058
+0x59   U+0059
+0x5a   U+005a
+0x5b   U+005b
+0x5c   U+005c
+0x5d   U+005d
+0x5e   U+005e
+0x5f   U+005f U+f804
+0x60   U+0060
+0x61   U+0061
+0x62   U+0062
+0x63   U+0063
+0x64   U+0064
+0x65   U+0065
+0x66   U+0066
+0x67   U+0067
+0x68   U+0068
+0x69   U+0069
+0x6a   U+006a
+0x6b   U+006b
+0x6c   U+006c
+0x6d   U+006d
+0x6e   U+006e
+0x6f   U+006f
+0x70   U+0070
+0x71   U+0071
+0x72   U+0072
+0x73   U+0073
+0x74   U+0074
+0x75   U+0075
+0x76   U+0076
+0x77   U+0077
+0x78   U+0078
+0x79   U+0079
+0x7a   U+007a
+0x7b   U+007b
+0x7c   U+007c
+0x7d   U+007d
+0x7e   U+007e
+#
+# Okay, what on Earth is this one supposed to be used for?
+#
+0x7f   U+2302
+#------------------------------------------------------------------
+#
+# Russian characters and pseudographics
+#
+0x80   U+2500
+0x81   U+2502
+0x82   U+250c
+0x83   U+2510
+0x84   U+2514
+0x85   U+2518
+0x86   U+251c
+0x87   U+2524
+0x88   U+252c
+0x89   U+2534
+0x8a   U+253c
+0x8b   U+2580
+0x8c   U+2584
+0x8d   U+2588
+0x8e   U+258c
+0x8f   U+2590
+0x90   U+2591
+0x91   U+2592
+0x92   U+2593
+0x93   U+2320
+0x94   U+25a0
+0x95   U+2219
+0x96   U+221a
+0x97   U+2248
+0x98   U+2264
+0x99   U+2265
+0x9a   U+00a0
+0x9b   U+2321
+0x9c   U+00b0
+0x9d   U+00b2
+0x9e   U+00b7
+0x9f   U+00f7
+0xa0   U+2550
+0xa1   U+2551
+0xa2   U+2552
+0xa3   U+0451
+0xa4   U+2553
+0xa5   U+2554
+0xa6   U+2555
+0xa7   U+2556
+0xa8   U+2557
+0xa9   U+2558
+0xaa   U+2559
+0xab   U+255a
+0xac   U+255b
+0xad   U+255c
+0xae   U+255d
+0xaf   U+255e
+0xb0   U+255f
+0xb1   U+2560
+0xb2   U+2561
+0xb3   U+0401
+0xb4   U+2562
+0xb5   U+2563
+0xb6   U+2564
+0xb7   U+2565
+0xb8   U+2566
+0xb9   U+2567
+0xba   U+2568
+0xbb   U+2569
+0xbc   U+256a
+0xbd   U+256b
+0xbe   U+256c
+0xbf   U+00a9
+0xc0   U+044e
+0xc1   U+0430
+0xc2   U+0431
+0xc3   U+0446
+0xc4   U+0434
+0xc5   U+0435
+0xc6   U+0444
+0xc7   U+0433
+0xc8   U+0445
+0xc9   U+0438
+0xca   U+0439
+0xcb   U+043a
+0xcc   U+043b
+0xcd   U+043c
+0xce   U+043d
+0xcf   U+043e
+0xd0   U+043f
+0xd1   U+044f
+0xd2   U+0440
+0xd3   U+0441
+0xd4   U+0442
+0xd5   U+0443
+0xd6   U+0436
+0xd7   U+0432
+0xd8   U+044c
+0xd9   U+044b
+0xda   U+0437
+0xdb   U+0448
+0xdc   U+044d
+0xdd   U+0449
+0xde   U+0447
+0xdf   U+044a
+0xe0   U+042e
+0xe1   U+0410
+0xe2   U+0411
+0xe3   U+0426
+0xe4   U+0414
+0xe5   U+0415
+0xe6   U+0424
+0xe7   U+0413
+0xe8   U+0425
+0xe9   U+0418
+0xea   U+0419
+0xeb   U+041a
+0xec   U+041b
+0xed   U+041c
+0xee   U+041d
+0xef   U+041e
+0xf0   U+041f
+0xf1   U+042f
+0xf2   U+0420
+0xf3   U+0421
+0xf4   U+0422
+0xf5   U+0423
+0xf6   U+0416
+0xf7   U+0412
+0xf8   U+042c
+0xf9   U+042b
+0xfa   U+0417
+0xfb   U+0428
+0xfc   U+042d
+0xfd   U+0429
+0xfe   U+0427
+0xff   U+042a
similarity index 100%
rename from consoletrans/lat1.uni
rename to data/unimaps/lat1.uni
diff --git a/data/unimaps/lat2.uni b/data/unimaps/lat2.uni
new file mode 100644 (file)
index 0000000..53d6589
--- /dev/null
@@ -0,0 +1,165 @@
+# unimap for some lat2 fonts
+0x001  U+2248
+0x002  U+0152
+0x003  U+0153
+0x004  U+25c6
+0x005  U+2409
+0x006  U+240c
+0x007  U+240d
+0x008  U+240a
+0x009  U+2591
+0x00a  U+2592
+0x00b  U+2593
+0x00c  U+2588
+0x00d  U+2584
+0x00e  U+2580
+0x00f  U+258c
+0x010  U+2590
+0x011  U+2424
+0x012  U+240b
+0x013  U+2264
+0x014  U+2265
+0x015  U+2260
+0x016  U+25c0
+0x017  U+25b6
+0x018  U+2191
+0x019  U+2193
+0x01a  U+2192
+0x01b  U+2190
+0x01c  U+2195
+0x01d  U+2194
+0x01e  U+21b5
+0x01f  U+03c0
+#
+0x020-0x07e    idem
+0x07f  U+2302
+#
+0x080  U+f801
+0x081  U+2575
+0x082  U+2576
+0x083  U+2514
+0x084  U+2577
+0x085  U+2502
+0x086  U+250c
+0x087  U+251c
+0x088  U+2574
+0x089  U+2518
+0x08a  U+2500
+0x08b  U+2534
+0x08c  U+2510
+0x08d  U+2524
+0x08e  U+252c
+0x08f  U+253c
+0x090  U+f803
+0x091  U+2579
+0x092  U+257a
+0x093  U+2517 U+255a
+0x094  U+257b
+0x095  U+2503 U+2551
+0x096  U+250f U+2554
+0x097  U+2523 U+2560
+0x098  U+2578
+0x099  U+251b U+255d
+0x09a  U+2501 U+2550
+0x09b  U+253b U+2569
+0x09c  U+2513 U+2557
+0x09d  U+2563 U+252b
+0x09e  U+2533 U+2566
+0x09f  U+254b U+256c
+# ISO 8859-2 (2nd half)
+0xA0   U+00A0  # NO-BREAK SPACE
+0xA1   U+0104  # LATIN CAPITAL LETTER A WITH OGONEK
+0xA2   U+02D8  # BREVE
+0xA3   U+0141  # LATIN CAPITAL LETTER L WITH STROKE
+0xA4   U+00A4  # CURRENCY SIGN
+0xA5   U+013D  # LATIN CAPITAL LETTER L WITH CARON
+0xA6   U+015A  # LATIN CAPITAL LETTER S WITH ACUTE
+0xA7   U+00A7  # SECTION SIGN
+0xA8   U+00A8  # DIAERESIS
+0xA9   U+0160  # LATIN CAPITAL LETTER S WITH CARON
+0xAA   U+015E  # LATIN CAPITAL LETTER S WITH CEDILLA
+0xAB   U+0164  # LATIN CAPITAL LETTER T WITH CARON
+0xAC   U+0179  # LATIN CAPITAL LETTER Z WITH ACUTE
+0xAD   U+00AD  # SOFT HYPHEN
+0xAE   U+017D  # LATIN CAPITAL LETTER Z WITH CARON
+0xAF   U+017B  # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+0xB0   U+00B0  # DEGREE SIGN
+0xB1   U+0105  # LATIN SMALL LETTER A WITH OGONEK
+0xB2   U+02DB  # OGONEK
+0xB3   U+0142  # LATIN SMALL LETTER L WITH STROKE
+0xB4   U+00B4  # ACUTE ACCENT
+0xB5   U+013E  # LATIN SMALL LETTER L WITH CARON
+0xB6   U+015B  # LATIN SMALL LETTER S WITH ACUTE
+0xB7   U+02C7  # CARON
+0xB8   U+00B8  # CEDILLA
+0xB9   U+0161  # LATIN SMALL LETTER S WITH CARON
+0xBA   U+015F  # LATIN SMALL LETTER S WITH CEDILLA
+0xBB   U+0165  # LATIN SMALL LETTER T WITH CARON
+0xBC   U+017A  # LATIN SMALL LETTER Z WITH ACUTE
+0xBD   U+02DD  # DOUBLE ACUTE ACCENT
+0xBE   U+017E  # LATIN SMALL LETTER Z WITH CARON
+0xBF   U+017C  # LATIN SMALL LETTER Z WITH DOT ABOVE
+0xC0   U+0154  # LATIN CAPITAL LETTER R WITH ACUTE
+0xC1   U+00C1  # LATIN CAPITAL LETTER A WITH ACUTE
+0xC2   U+00C2  # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+0xC3   U+0102  # LATIN CAPITAL LETTER A WITH BREVE
+0xC4   U+00C4  # LATIN CAPITAL LETTER A WITH DIAERESIS
+0xC5   U+0139  # LATIN CAPITAL LETTER L WITH ACUTE
+0xC6   U+0106  # LATIN CAPITAL LETTER C WITH ACUTE
+0xC7   U+00C7  # LATIN CAPITAL LETTER C WITH CEDILLA
+0xC8   U+010C  # LATIN CAPITAL LETTER C WITH CARON
+0xC9   U+00C9  # LATIN CAPITAL LETTER E WITH ACUTE
+0xCA   U+0118  # LATIN CAPITAL LETTER E WITH OGONEK
+0xCB   U+00CB  # LATIN CAPITAL LETTER E WITH DIAERESIS
+0xCC   U+011A  # LATIN CAPITAL LETTER E WITH CARON
+0xCD   U+00CD  # LATIN CAPITAL LETTER I WITH ACUTE
+0xCE   U+00CE  # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+0xCF   U+010E  # LATIN CAPITAL LETTER D WITH CARON
+0xD0   U+0110  # LATIN CAPITAL LETTER D WITH STROKE
+0xD1   U+0143  # LATIN CAPITAL LETTER N WITH ACUTE
+0xD2   U+0147  # LATIN CAPITAL LETTER N WITH CARON
+0xD3   U+00D3  # LATIN CAPITAL LETTER O WITH ACUTE
+0xD4   U+00D4  # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+0xD5   U+0150  # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0xD6   U+00D6  # LATIN CAPITAL LETTER O WITH DIAERESIS
+0xD7   U+00D7  # MULTIPLICATION SIGN
+0xD8   U+0158  # LATIN CAPITAL LETTER R WITH CARON
+0xD9   U+016E  # LATIN CAPITAL LETTER U WITH RING ABOVE
+0xDA   U+00DA  # LATIN CAPITAL LETTER U WITH ACUTE
+0xDB   U+0170  # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0xDC   U+00DC  # LATIN CAPITAL LETTER U WITH DIAERESIS
+0xDD   U+00DD  # LATIN CAPITAL LETTER Y WITH ACUTE
+0xDE   U+0162  # LATIN CAPITAL LETTER T WITH CEDILLA
+0xDF   U+00DF  # LATIN SMALL LETTER SHARP S
+0xE0   U+0155  # LATIN SMALL LETTER R WITH ACUTE
+0xE1   U+00E1  # LATIN SMALL LETTER A WITH ACUTE
+0xE2   U+00E2  # LATIN SMALL LETTER A WITH CIRCUMFLEX
+0xE3   U+0103  # LATIN SMALL LETTER A WITH BREVE
+0xE4   U+00E4  # LATIN SMALL LETTER A WITH DIAERESIS
+0xE5   U+013A  # LATIN SMALL LETTER L WITH ACUTE
+0xE6   U+0107  # LATIN SMALL LETTER C WITH ACUTE
+0xE7   U+00E7  # LATIN SMALL LETTER C WITH CEDILLA
+0xE8   U+010D  # LATIN SMALL LETTER C WITH CARON
+0xE9   U+00E9  # LATIN SMALL LETTER E WITH ACUTE
+0xEA   U+0119  # LATIN SMALL LETTER E WITH OGONEK
+0xEB   U+00EB  # LATIN SMALL LETTER E WITH DIAERESIS
+0xEC   U+011B  # LATIN SMALL LETTER E WITH CARON
+0xED   U+00ED  # LATIN SMALL LETTER I WITH ACUTE
+0xEE   U+00EE  # LATIN SMALL LETTER I WITH CIRCUMFLEX
+0xEF   U+010F  # LATIN SMALL LETTER D WITH CARON
+0xF0   U+0111  # LATIN SMALL LETTER D WITH STROKE
+0xF1   U+0144  # LATIN SMALL LETTER N WITH ACUTE
+0xF2   U+0148  # LATIN SMALL LETTER N WITH CARON
+0xF3   U+00F3  # LATIN SMALL LETTER O WITH ACUTE
+0xF4   U+00F4  # LATIN SMALL LETTER O WITH CIRCUMFLEX
+0xF5   U+0151  # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0xF6   U+00F6  # LATIN SMALL LETTER O WITH DIAERESIS
+0xF7   U+00F7  # DIVISION SIGN
+0xF8   U+0159  # LATIN SMALL LETTER R WITH CARON
+0xF9   U+016F  # LATIN SMALL LETTER U WITH RING ABOVE
+0xFA   U+00FA  # LATIN SMALL LETTER U WITH ACUTE
+0xFB   U+0171  # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0xFC   U+00FC  # LATIN SMALL LETTER U WITH DIAERESIS
+0xFD   U+00FD  # LATIN SMALL LETTER Y WITH ACUTE
+0xFE   U+0163  # LATIN SMALL LETTER T WITH CEDILLA
+0xFF   U+02D9  # DOT ABOVE
similarity index 100%
rename from consoletrans/lat4.uni
rename to data/unimaps/lat4.uni
diff --git a/data/unimaps/lat7u.uni b/data/unimaps/lat7u.uni
new file mode 100644 (file)
index 0000000..b842112
--- /dev/null
@@ -0,0 +1,173 @@
+#
+# Unicode mapping table for ISO 8859-7 fonts iso07.* WITH SuSE-extension.
+# Symbols that differ from the original: 0x80-0x9f [graphic symbols]
+# 0xa0, 0xa4, 0xa5, 0xaa, 0xae, 0xff
+0x20-0x7e      idem
+0x7f           U+2302
+#
+0x00   U+fffd
+0x01   U+263A
+0x02   U+263B
+0x03   U+2665
+0x04   U+2666
+0x05   U+2663
+0x06   U+2660
+0x07   U+2022
+0x08   U+240a
+0x09   U+2591
+0x0a   U+2592
+0x0b   U+2593
+0x0c   U+2588
+0x0d   U+2584
+0x0e   U+2580
+0x0f   U+258c
+
+0x10   U+25B6
+0x10   U+25BA
+0x11   U+25C0
+0x11   U+25C4
+0x12   U+2195
+0x13   U+203C
+0x14   U+00B6
+0x15   U+00A7
+0x16   U+25AC
+0x17   U+21A8
+0x18   U+2191
+0x19   U+2193
+0x1A   U+2192
+0x1B   U+2190
+0x1C   U+221F
+0x1C   U+2319
+0x1D   U+2194
+0x1E   U+25B2
+0x1F   U+25BC 
+# old
+0x80   U+f801  # medium-high line
+0x81   U+2575
+0x82   U+2576
+0x83   U+2514
+0x84   U+2577
+0x85   U+2502
+0x86   U+250c
+0x87   U+251c
+0x88   U+2574
+0x89   U+2518
+#0x8a  U+2500 see 0xd2
+0x8b   U+2534
+0x8c   U+2510
+0x8d   U+2524
+0x8e   U+252c
+0x8f   U+253c
+0x90   U+f803  # medium-low line
+0x91   U+2579
+0x92   U+257a
+0x93   U+2517 U+255a
+0x94   U+257b
+0x95   U+2503 U+2551
+0x96   U+250f U+2554
+0x97   U+2523 U+2560
+0x98   U+2578
+0x99   U+251b U+255d
+0x9a   U+2501 U+2550
+0x9b   U+253b U+2569
+0x9c   U+2513 U+2557
+0x9d   U+2563 U+252b
+0x9e   U+2533 U+2566
+0x9f   U+254b U+256c
+# 
+0xa0   U+fffd 
+0xa1   U+0371
+0xa2   U+0372
+0xa3   U+00a3
+0xa4   U+2591 #prior non existent
+0xa5   U+2592 #prior non existent
+0xa6   U+00a6
+0xa7   U+00a7
+0xa8   U+00a8
+0xa9   U+00a9
+0xaa   U+2593 #prior non existent
+0xab   U+00ab
+0xac   U+00ac
+0xad   U+00ad
+0xae   U+2588 #prior non existent
+0xaf   U+2015
+0xb0   U+00b0
+0xb1   U+00b1
+0xb2   U+00b2
+0xb3   U+00b3
+0xb4   U+03f3
+0xb5   U+03f4
+0xb6   U+0386
+0xb7   U+00b7
+0xb8   U+0388
+0xb9   U+0389
+0xba   U+038a
+0xbb   U+00bb
+0xbc   U+038c
+0xbd   U+00bd
+0xbe   U+038e
+0xbf   U+038f
+0xc0   U+0390
+0xc1   U+0391
+0xc2   U+0392
+0xc3   U+0393
+0xc4   U+0394
+0xc5   U+0395
+0xc6   U+0396
+0xc7   U+0397
+0xc8   U+0398
+0xc9   U+0399
+0xca   U+039a
+0xcb   U+039b
+0xcc   U+039c
+0xcd   U+039d
+0xce   U+039e
+0xcf   U+039f
+0xd0   U+03a0
+0xd1   U+03a1
+0xd2   U+2500
+0xd3   U+03a3
+0xd4   U+03a4
+0xd5   U+03a5
+0xd6   U+03a6
+0xd7   U+03a7
+0xd8   U+03a8
+0xd9   U+03a9
+0xda   U+03aa
+0xdb   U+03ab
+0xdc   U+03ac
+0xdd   U+03ad
+0xde   U+03ae
+0xdf   U+03af
+0xe0   U+03b0
+0xe1   U+03b1
+0xe2   U+03b2
+0xe3   U+03b3
+0xe4   U+03b4
+0xe5   U+03b5
+0xe6   U+03b6
+0xe7   U+03b7
+0xe8   U+03b8
+0xe9   U+03b9
+0xea   U+03ba
+0xeb   U+03bb
+0xec   U+03bc
+0xed   U+03bd
+0xee   U+03be
+0xef   U+03bf
+0xf0   U+03c0
+0xf1   U+03c1
+0xf2   U+03c2
+0xf3   U+03c3
+0xf4   U+03c4
+0xf5   U+03c5
+0xf6   U+03c6
+0xf7   U+03c7
+0xf8   U+03c8
+0xf9   U+03c9
+0xfa   U+03ca
+0xfb   U+03cb
+0xfc   U+03cc
+0xfd   U+03cd
+0xfe   U+03ce
+0xff   U+00ff #prior non existent
diff --git a/data/unimaps/lat9u.uni b/data/unimaps/lat9u.uni
new file mode 100644 (file)
index 0000000..8997aab
--- /dev/null
@@ -0,0 +1,259 @@
+#
+# Character table extracted from font lat9u-16.psf
+#
+0x00    U+fffd
+0x01    U+2248
+0x02    U+0152
+0x03    U+0153
+0x04    U+25c6
+0x05    U+2409
+0x06    U+240c
+0x07    U+240d
+0x08    U+240a
+0x09    U+2591
+0x0a    U+2592
+0x0b    U+2593
+0x0c    U+2588
+0x0d    U+2584
+0x0e    U+2580
+0x0f    U+258c
+0x10    U+2590
+0x11    U+2424
+0x12    U+240b
+0x13    U+2264
+0x14    U+2265
+0x15    U+2260
+0x16    U+25c0
+0x17    U+25b6
+0x18    U+2191
+0x19    U+2193
+0x1a    U+2192
+0x1b    U+2190
+0x1c    U+2195
+0x1d    U+2194
+0x1e    U+21b5
+0x1f    U+03c0
+0x20    U+0020 U+00a0
+0x21    U+0021
+0x22    U+0022
+0x23    U+0023
+0x24    U+0024
+0x25    U+0025
+0x26    U+0026
+0x27    U+0027
+0x28    U+0028
+0x29    U+0029
+0x2a    U+002a
+0x2b    U+002b
+0x2c    U+002c
+0x2d    U+002d
+0x2e    U+002e
+0x2f    U+002f
+0x30    U+0030
+0x31    U+0031
+0x32    U+0032
+0x33    U+0033
+0x34    U+0034
+0x35    U+0035
+0x36    U+0036
+0x37    U+0037
+0x38    U+0038
+0x39    U+0039
+0x3a    U+003a
+0x3b    U+003b
+0x3c    U+003c
+0x3d    U+003d
+0x3e    U+003e
+0x3f    U+003f
+0x40    U+0040
+0x41    U+0041
+0x42    U+0042
+0x43    U+0043
+0x44    U+0044
+0x45    U+0045
+0x46    U+0046
+0x47    U+0047
+0x48    U+0048
+0x49    U+0049
+0x4a    U+004a
+0x4b    U+004b U+212a
+0x4c    U+004c
+0x4d    U+004d
+0x4e    U+004e
+0x4f    U+004f
+0x50    U+0050
+0x51    U+0051
+0x52    U+0052
+0x53    U+0053
+0x54    U+0054
+0x55    U+0055
+0x56    U+0056
+0x57    U+0057
+0x58    U+0058
+0x59    U+0059
+0x5a    U+005a
+0x5b    U+005b
+0x5c    U+005c
+0x5d    U+005d
+0x5e    U+005e
+0x5f    U+005f U+f804
+0x60    U+0060
+0x61    U+0061
+0x62    U+0062
+0x63    U+0063
+0x64    U+0064
+0x65    U+0065
+0x66    U+0066
+0x67    U+0067
+0x68    U+0068
+0x69    U+0069
+0x6a    U+006a
+0x6b    U+006b
+0x6c    U+006c
+0x6d    U+006d
+0x6e    U+006e
+0x6f    U+006f
+0x70    U+0070
+0x71    U+0071
+0x72    U+0072
+0x73    U+0073
+0x74    U+0074
+0x75    U+0075
+0x76    U+0076
+0x77    U+0077
+0x78    U+0078
+0x79    U+0079
+0x7a    U+007a
+0x7b    U+007b
+0x7c    U+007c
+0x7d    U+007d
+0x7e    U+007e
+0x7f    U+0178
+0x80    U+00c0
+0x81    U+00c1
+0x82    U+00c2
+0x83    U+00c3
+0x84    U+00c4
+0x85    U+00c5 U+212b
+0x86    U+00c6
+0x87    U+00c7
+0x88    U+00c8
+0x89    U+00c9
+0x8a    U+00ca
+0x8b    U+00cb
+0x8c    U+00cc
+0x8d    U+00cd
+0x8e    U+00ce
+0x8f    U+00cf
+0x90    U+00d0
+0x91    U+00d1
+0x92    U+00d2
+0x93    U+00d3
+0x94    U+00d4
+0x95    U+00d5
+0x96    U+00d6
+0x97    U+00d7
+0x98    U+00d8
+0x99    U+00d9
+0x9a    U+00da
+0x9b    U+00db
+0x9c    U+00dc
+0x9d    U+00dd
+0x9e    U+00de
+0x9f    U+00df
+0xa0    U+2423
+0xa1    U+00a1
+0xa2    U+00a2
+0xa3    U+00a3
+0xa4    U+20ac
+0xa5    U+00a5
+0xa6    U+0160
+0xa7    U+00a7
+0xa8    U+0161
+0xa9    U+00a9
+0xaa    U+00aa
+0xab    U+00ab
+0xac    U+00ac
+0xad    U+00ad
+0xae    U+00ae
+0xaf    U+00af U+f800
+0xb0    U+00b0
+0xb1    U+00b1
+0xb2    U+00b2
+0xb3    U+00b3
+0xb4    U+017d
+0xb5    U+00b5
+0xb6    U+00b6
+0xb7    U+00b7
+0xb8    U+017e
+0xb9    U+00b9
+0xba    U+00ba
+0xbb    U+00bb
+0xbc    U+0152
+0xbd    U+0153
+0xbe    U+0178
+0xbf    U+00bf
+0xc0    U+f801
+0xc1    U+2575
+0xc2    U+2576
+0xc3    U+2514
+0xc4    U+2577
+0xc5    U+2502
+0xc6    U+250c
+0xc7    U+251c
+0xc8    U+2574
+0xc9    U+2518
+0xca    U+2500
+0xcb    U+2534
+0xcc    U+2510
+0xcd    U+2524
+0xce    U+252c
+0xcf    U+253c
+0xd0    U+f803
+0xd1    U+2579
+0xd2    U+257a
+0xd3    U+2517 U+255a
+0xd4    U+257b
+0xd5    U+2503 U+2551
+0xd6    U+250f U+2554
+0xd7    U+2523 U+2560
+0xd8    U+2578
+0xd9    U+251b U+255d
+0xda    U+2501 U+2550
+0xdb    U+253b U+2569
+0xdc    U+2513 U+2557
+0xdd    U+2563 U+252b
+0xde    U+2533 U+2566
+0xdf    U+254b U+256c
+0xe0    U+00e0
+0xe1    U+00e1
+0xe2    U+00e2
+0xe3    U+00e3
+0xe4    U+00e4
+0xe5    U+00e5
+0xe6    U+00e6
+0xe7    U+00e7
+0xe8    U+00e8
+0xe9    U+00e9
+0xea    U+00ea
+0xeb    U+00eb
+0xec    U+00ec
+0xed    U+00ed
+0xee    U+00ee
+0xef    U+00ef
+0xf0    U+00f0
+0xf1    U+00f1
+0xf2    U+00f2
+0xf3    U+00f3
+0xf4    U+00f4
+0xf5    U+00f5
+0xf6    U+00f6
+0xf7    U+00f7
+0xf8    U+00f8
+0xf9    U+00f9
+0xfa    U+00fa
+0xfb    U+00fb
+0xfc    U+00fc
+0xfd    U+00fd
+0xfe    U+00fe
+0xff    U+00ff
diff --git a/data/unimaps/lat9v.uni b/data/unimaps/lat9v.uni
new file mode 100644 (file)
index 0000000..e40d976
--- /dev/null
@@ -0,0 +1,259 @@
+#
+# Character table extracted from font lat9v-16.psf
+#
+0x00    U+fffd
+0x01    U+2248
+0x02    U+0152
+0x03    U+0153
+0x04    U+25c6
+0x05    U+2409
+0x06    U+240c
+0x07    U+240d
+0x08    U+240a
+0x09    U+2591
+0x0a    U+2592
+0x0b    U+2593
+0x0c    U+2588
+0x0d    U+2584
+0x0e    U+2580
+0x0f    U+258c
+0x10    U+2590
+0x11    U+2424
+0x12    U+240b
+0x13    U+2264
+0x14    U+2265
+0x15    U+2260
+0x16    U+25c0
+0x17    U+25b6
+0x18    U+2191
+0x19    U+2193
+0x1a    U+2192
+0x1b    U+2190
+0x1c    U+2195
+0x1d    U+2194
+0x1e    U+21b5
+0x1f    U+03c0
+0x20    U+0020 U+00a0
+0x21    U+0021
+0x22    U+0022
+0x23    U+0023
+0x24    U+0024
+0x25    U+0025
+0x26    U+0026
+0x27    U+0027
+0x28    U+0028
+0x29    U+0029
+0x2a    U+002a
+0x2b    U+002b
+0x2c    U+002c
+0x2d    U+002d
+0x2e    U+002e
+0x2f    U+002f
+0x30    U+0030
+0x31    U+0031
+0x32    U+0032
+0x33    U+0033
+0x34    U+0034
+0x35    U+0035
+0x36    U+0036
+0x37    U+0037
+0x38    U+0038
+0x39    U+0039
+0x3a    U+003a
+0x3b    U+003b
+0x3c    U+003c
+0x3d    U+003d
+0x3e    U+003e
+0x3f    U+003f
+0x40    U+0040
+0x41    U+0041
+0x42    U+0042
+0x43    U+0043
+0x44    U+0044
+0x45    U+0045
+0x46    U+0046
+0x47    U+0047
+0x48    U+0048
+0x49    U+0049
+0x4a    U+004a
+0x4b    U+004b U+212a
+0x4c    U+004c
+0x4d    U+004d
+0x4e    U+004e
+0x4f    U+004f
+0x50    U+0050
+0x51    U+0051
+0x52    U+0052
+0x53    U+0053
+0x54    U+0054
+0x55    U+0055
+0x56    U+0056
+0x57    U+0057
+0x58    U+0058
+0x59    U+0059
+0x5a    U+005a
+0x5b    U+005b
+0x5c    U+005c
+0x5d    U+005d
+0x5e    U+005e
+0x5f    U+005f U+f804
+0x60    U+0060
+0x61    U+0061
+0x62    U+0062
+0x63    U+0063
+0x64    U+0064
+0x65    U+0065
+0x66    U+0066
+0x67    U+0067
+0x68    U+0068
+0x69    U+0069
+0x6a    U+006a
+0x6b    U+006b
+0x6c    U+006c
+0x6d    U+006d
+0x6e    U+006e
+0x6f    U+006f
+0x70    U+0070
+0x71    U+0071
+0x72    U+0072
+0x73    U+0073
+0x74    U+0074
+0x75    U+0075
+0x76    U+0076
+0x77    U+0077
+0x78    U+0078
+0x79    U+0079
+0x7a    U+007a
+0x7b    U+007b
+0x7c    U+007c
+0x7d    U+007d
+0x7e    U+007e
+0x7f    U+0178
+0x80     U+f801
+0x81     U+2575
+0x82     U+2576
+0x83     U+2514
+0x84     U+2577
+0x85     U+2502
+0x86     U+250c
+0x87     U+251c
+0x88     U+2574
+0x89     U+2518
+0x8a     U+2500
+0x8b     U+2534
+0x8c     U+2510
+0x8d     U+2524
+0x8e     U+252c
+0x8f     U+253c
+0x90     U+f803
+0x91     U+2579
+0x92     U+257a
+0x93     U+2517 U+255a
+0x94     U+257b
+0x95     U+2503 U+2551
+0x96     U+250f U+2554
+0x97     U+2523 U+2560
+0x98     U+2578
+0x99     U+251b U+255d
+0x9a     U+2501 U+2550
+0x9b     U+253b U+2569
+0x9c     U+2513 U+2557
+0x9d     U+2563 U+252b
+0x9e     U+2533 U+2566
+0x9f     U+254b U+256c
+0xa0    U+2423
+0xa1    U+00a1
+0xa2    U+00a2
+0xa3    U+00a3
+0xa4    U+20ac
+0xa5    U+00a5
+0xa6    U+0160
+0xa7    U+00a7
+0xa8    U+0161
+0xa9    U+00a9
+0xaa    U+00aa
+0xab    U+00ab
+0xac    U+00ac
+0xad    U+00ad
+0xae    U+00ae
+0xaf    U+00af U+f800
+0xb0    U+00b0
+0xb1    U+00b1
+0xb2    U+00b2
+0xb3    U+00b3
+0xb4    U+017d
+0xb5    U+00b5
+0xb6    U+00b6
+0xb7    U+00b7
+0xb8    U+017e
+0xb9    U+00b9
+0xba    U+00ba
+0xbb    U+00bb
+0xbc    U+0152
+0xbd    U+0153
+0xbe    U+0178
+0xbf    U+00bf
+0xc0     U+00c0
+0xc1     U+00c1
+0xc2     U+00c2
+0xc3     U+00c3
+0xc4     U+00c4
+0xc5     U+00c5 U+212b
+0xc6     U+00c6
+0xc7     U+00c7
+0xc8     U+00c8
+0xc9     U+00c9
+0xca     U+00ca
+0xcb     U+00cb
+0xcc     U+00cc
+0xcd     U+00cd
+0xce     U+00ce
+0xcf     U+00cf
+0xd0     U+00d0
+0xd1     U+00d1
+0xd2     U+00d2
+0xd3     U+00d3
+0xd4     U+00d4
+0xd5     U+00d5
+0xd6     U+00d6
+0xd7     U+00d7
+0xd8     U+00d8
+0xd9     U+00d9
+0xda     U+00da
+0xdb     U+00db
+0xdc     U+00dc
+0xdd     U+00dd
+0xde     U+00de
+0xdf     U+00df
+0xe0    U+00e0
+0xe1    U+00e1
+0xe2    U+00e2
+0xe3    U+00e3
+0xe4    U+00e4
+0xe5    U+00e5
+0xe6    U+00e6
+0xe7    U+00e7
+0xe8    U+00e8
+0xe9    U+00e9
+0xea    U+00ea
+0xeb    U+00eb
+0xec    U+00ec
+0xed    U+00ed
+0xee    U+00ee
+0xef    U+00ef
+0xf0    U+00f0
+0xf1    U+00f1
+0xf2    U+00f2
+0xf3    U+00f3
+0xf4    U+00f4
+0xf5    U+00f5
+0xf6    U+00f6
+0xf7    U+00f7
+0xf8    U+00f8
+0xf9    U+00f9
+0xfa    U+00fa
+0xfb    U+00fb
+0xfc    U+00fc
+0xfd    U+00fd
+0xfe    U+00fe
+0xff    U+00ff
diff --git a/data/unimaps/lat9w.uni b/data/unimaps/lat9w.uni
new file mode 100644 (file)
index 0000000..c60fd27
--- /dev/null
@@ -0,0 +1,259 @@
+#
+# Character table extracted from font lat9w-16.psf
+#
+0x00    U+fffd
+0x01    U+2248
+0x02    U+0152
+0x03    U+0153
+0x04    U+25c6
+0x05    U+2409
+0x06    U+240c
+0x07    U+240d
+0x08    U+240a
+0x09    U+2591
+0x0a    U+2592
+0x0b    U+2593
+0x0c    U+2588
+0x0d    U+2584
+0x0e    U+2580
+0x0f    U+258c
+0x10    U+2590
+0x11    U+2424
+0x12    U+240b
+0x13    U+2264
+0x14    U+2265
+0x15    U+2260
+0x16    U+25c0
+0x17    U+25b6
+0x18    U+2191
+0x19    U+2193
+0x1a    U+2192
+0x1b    U+2190
+0x1c    U+2195
+0x1d    U+2194
+0x1e    U+21b5
+0x1f    U+03c0
+0x20    U+0020 U+00a0
+0x21    U+0021
+0x22    U+0022
+0x23    U+0023
+0x24    U+0024
+0x25    U+0025
+0x26    U+0026
+0x27    U+0027
+0x28    U+0028
+0x29    U+0029
+0x2a    U+002a
+0x2b    U+002b
+0x2c    U+002c
+0x2d    U+002d
+0x2e    U+002e
+0x2f    U+002f
+0x30    U+0030
+0x31    U+0031
+0x32    U+0032
+0x33    U+0033
+0x34    U+0034
+0x35    U+0035
+0x36    U+0036
+0x37    U+0037
+0x38    U+0038
+0x39    U+0039
+0x3a    U+003a
+0x3b    U+003b
+0x3c    U+003c
+0x3d    U+003d
+0x3e    U+003e
+0x3f    U+003f
+0x40    U+0040
+0x41    U+0041
+0x42    U+0042
+0x43    U+0043
+0x44    U+0044
+0x45    U+0045
+0x46    U+0046
+0x47    U+0047
+0x48    U+0048
+0x49    U+0049
+0x4a    U+004a
+0x4b    U+004b U+212a
+0x4c    U+004c
+0x4d    U+004d
+0x4e    U+004e
+0x4f    U+004f
+0x50    U+0050
+0x51    U+0051
+0x52    U+0052
+0x53    U+0053
+0x54    U+0054
+0x55    U+0055
+0x56    U+0056
+0x57    U+0057
+0x58    U+0058
+0x59    U+0059
+0x5a    U+005a
+0x5b    U+005b
+0x5c    U+005c
+0x5d    U+005d
+0x5e    U+005e
+0x5f    U+005f U+f804
+0x60    U+0060
+0x61    U+0061
+0x62    U+0062
+0x63    U+0063
+0x64    U+0064
+0x65    U+0065
+0x66    U+0066
+0x67    U+0067
+0x68    U+0068
+0x69    U+0069
+0x6a    U+006a
+0x6b    U+006b
+0x6c    U+006c
+0x6d    U+006d
+0x6e    U+006e
+0x6f    U+006f
+0x70    U+0070
+0x71    U+0071
+0x72    U+0072
+0x73    U+0073
+0x74    U+0074
+0x75    U+0075
+0x76    U+0076
+0x77    U+0077
+0x78    U+0078
+0x79    U+0079
+0x7a    U+007a
+0x7b    U+007b
+0x7c    U+007c
+0x7d    U+007d
+0x7e    U+007e
+0x7f    U+0178
+0x80    U+f801
+0x81    U+2575
+0x82    U+2576
+0x83    U+2514
+0x84    U+2577
+0x85    U+2502
+0x86    U+250c
+0x87    U+251c
+0x88    U+2574
+0x89    U+2518
+0x8a    U+2500
+0x8b    U+2534
+0x8c    U+2510
+0x8d    U+2524
+0x8e    U+252c
+0x8f    U+253c
+0x90    U+f803
+0x91    U+2579
+0x92    U+257a
+0x93    U+2517 U+255a
+0x94    U+257b
+0x95    U+2503 U+2551
+0x96    U+250f U+2554
+0x97    U+2523 U+2560
+0x98    U+2578
+0x99    U+251b U+255d
+0x9a    U+2501 U+2550
+0x9b    U+253b U+2569
+0x9c    U+2513 U+2557
+0x9d    U+2563 U+252b
+0x9e    U+2533 U+2566
+0x9f    U+254b U+256c
+0xa0    U+2423
+0xa1    U+00a1
+0xa2    U+00a2
+0xa3    U+00a3
+0xa4    U+00a4 U+20ac
+0xa5    U+00a5
+0xa6    U+00a6 U+0160
+0xa7    U+00a7
+0xa8    U+00a8 U+0161
+0xa9    U+00a9
+0xaa    U+00aa
+0xab    U+00ab
+0xac    U+00ac
+0xad    U+00ad
+0xae    U+00ae
+0xaf    U+00af U+f800
+0xb0    U+00b0
+0xb1    U+00b1
+0xb2    U+00b2
+0xb3    U+00b3
+0xb4    U+00b4 U+017d
+0xb5    U+00b5
+0xb6    U+00b6
+0xb7    U+00b7
+0xb8    U+00b8 U+017e
+0xb9    U+00b9
+0xba    U+00ba
+0xbb    U+00bb
+0xbc    U+00bc U+0152
+0xbd    U+00bd U+0153
+0xbe    U+00be U+0178
+0xbf    U+00bf
+0xc0    U+00c0
+0xc1    U+00c1
+0xc2    U+00c2
+0xc3    U+00c3
+0xc4    U+00c4
+0xc5    U+00c5 U+212b
+0xc6    U+00c6
+0xc7    U+00c7
+0xc8    U+00c8
+0xc9    U+00c9
+0xca    U+00ca
+0xcb    U+00cb
+0xcc    U+00cc
+0xcd    U+00cd
+0xce    U+00ce
+0xcf    U+00cf
+0xd0    U+00d0
+0xd1    U+00d1
+0xd2    U+00d2
+0xd3    U+00d3
+0xd4    U+00d4
+0xd5    U+00d5
+0xd6    U+00d6
+0xd7    U+00d7
+0xd8    U+00d8
+0xd9    U+00d9
+0xda    U+00da
+0xdb    U+00db
+0xdc    U+00dc
+0xdd    U+00dd
+0xde    U+00de
+0xdf    U+00df
+0xe0    U+00e0
+0xe1    U+00e1
+0xe2    U+00e2
+0xe3    U+00e3
+0xe4    U+00e4
+0xe5    U+00e5
+0xe6    U+00e6
+0xe7    U+00e7
+0xe8    U+00e8
+0xe9    U+00e9
+0xea    U+00ea
+0xeb    U+00eb
+0xec    U+00ec
+0xed    U+00ed
+0xee    U+00ee
+0xef    U+00ef
+0xf0    U+00f0
+0xf1    U+00f1
+0xf2    U+00f2
+0xf3    U+00f3
+0xf4    U+00f4
+0xf5    U+00f5
+0xf6    U+00f6
+0xf7    U+00f7
+0xf8    U+00f8
+0xf9    U+00f9
+0xfa    U+00fa
+0xfb    U+00fb
+0xfc    U+00fc
+0xfd    U+00fd
+0xfe    U+00fe
+0xff    U+00ff
similarity index 100%
rename from consoletrans/tcvn.uni
rename to data/unimaps/tcvn.uni
index f1bb8f7..79983c4 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Useful programs</TITLE>
  <LINK HREF="kbd.FAQ-2.html" REL=next>
 
@@ -31,22 +31,27 @@ keyboard!programs related to
 console!programs related to
 -->
 <P>The following packages contain keyboard or console related programs.
-<P><CODE>kbd-0.96.tar.gz</CODE> contains <CODE>loadkeys</CODE>, <CODE>dumpkeys</CODE>, <CODE>showkey</CODE>,
+<P><CODE>kbd-1.00.tar.gz</CODE> contains <CODE>loadkeys</CODE>, <CODE>dumpkeys</CODE>, <CODE>showkey</CODE>,
 <CODE>setmetamode</CODE>, <CODE>setleds</CODE>, <CODE>setfont</CODE>, <CODE>showfont</CODE>, <CODE>mapscrn</CODE>,
-<CODE>kbd_mode</CODE>, <CODE>loadunimap</CODE>, <CODE>chvt</CODE>, <CODE>resizecons</CODE>, <CODE>deallocvt</CODE>,
-<CODE>getkeycodes</CODE>, <CODE>setkeycodes</CODE>.
-<P><CODE>util-linux-2.6</CODE> contains <CODE>setterm</CODE>, <CODE>kbdrate</CODE>.
-(Yes, the <CODE>more</CODE> in <CODE>util-linux-2.6</CODE> dumps core due to a name
-conflict. Preserve your old copy, or use <CODE>util-linux-2.5</CODE>, or
-change `savetty' to `my_savetty' in <CODE>more.c</CODE>.)
-<P><CODE>sh-utils-1.12</CODE> contains <CODE>stty</CODE>.
-<P><CODE>open-1.4.tgz</CODE> contains <CODE>open</CODE> (that should be renamed to
-<CODE>openvt</CODE>). (See also <CODE>dynamic-vc-1.1.tar.gz</CODE> and <CODE>consd-1.1.tgz</CODE>.)
+<CODE>kbd_mode</CODE>, <CODE>kbdrate</CODE>, <CODE>loadunimap</CODE>, <CODE>chvt</CODE>, <CODE>resizecons</CODE>,
+<CODE>deallocvt</CODE>, <CODE>getkeycodes</CODE>, <CODE>setkeycodes</CODE>.
+It also contains <CODE>openvt</CODE>, formerly called <CODE>open</CODE>.
 <P><CODE>SVGATextMode-1.8.tar.gz</CODE> contains <CODE>SVGATextMode</CODE>, a program that
 obsoletes <CODE>resizecons</CODE>.
+<P><CODE>util-linux-2.9</CODE> contains <CODE>setterm</CODE>, <CODE>kbdrate</CODE>.
+<P><CODE>sh-utils-1.12</CODE> contains <CODE>stty</CODE>.
+<P>See also <CODE>dynamic-vc-1.1.tar.gz</CODE> and <CODE>consd-1.1.tgz</CODE> for
+programs that exploit the `Keyboard Signal' key. Very primitive
+versions are <CODE>spawn_login</CODE> or <CODE>spawn_console</CODE> found in the kbd package.
+<P>See 
+<A HREF="http://www.cix.co.uk/~mayday/font.tgz">font.tgz</A>
+for a package that handles console fonts.
+<P>
 <P>The X distribution contains <CODE>xmodmap</CODE>, <CODE>xset</CODE>, <CODE>kbd_mode</CODE>.
 (See also X386keybd(1) for the situation under XFree86 1.3,
 and Xserver(1) for the XKEYBOARD extension under X11R6.)
+A handy interface to <CODE>xmodmap</CODE> is <CODE>xkeycaps</CODE>, see
+<A HREF="www.jwz.org/xkeycaps/">http://www.jwz.org/xkeycaps/</A>.
 <P><CODE>termcap-2.0.8.tar.gz</CODE> contains <CODE>termcap</CODE>, an old terminal
 capabilities data base. <CODE>ncurses-1.9.9e.tar.gz</CODE> contains the
 <CODE>termlib</CODE> data base which obsoletes <CODE>termcap</CODE>. (However,
@@ -69,7 +74,8 @@ See terminfo(5). Terminfo files are compiled
 by the terminfo compiler <CODE>/usr/lib/terminfo/tic</CODE>, see tic(1).
 Their contents can be examined using the program <CODE>infocmp</CODE>,
 see infocmp(1).
-The Linux console sequences are documented in console_codes(4).
+<P>The Linux console sequences are documented in console_codes(4).
+<P>
 <P>
 <P>
 <HR>
index 81cc757..f91fba6 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: The keyboard LEDs</TITLE>
  <LINK HREF="kbd.FAQ-11.html" REL=next>
  <LINK HREF="kbd.FAQ-9.html" REL=previous>
index 094a7b6..adb0ee8 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: The TERM variable</TITLE>
  <LINK HREF="kbd.FAQ-12.html" REL=next>
  <LINK HREF="kbd.FAQ-10.html" REL=previous>
index 7908e5e..7a4c38f 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: How to make other programs work with non-ASCII chars</TITLE>
  <LINK HREF="kbd.FAQ-13.html" REL=next>
  <LINK HREF="kbd.FAQ-11.html" REL=previous>
@@ -161,7 +161,7 @@ also use <CODE>col</CODE>, and the next point also applies.
 <CODE>LC_CTYPE=ISO-8859-1</CODE> in the environment.
 <P>K. For <CODE>rlogin</CODE>, use option <CODE>-8</CODE>.
 <P>L. For <CODE>joe</CODE>,
-<CODE>sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz</CODE>
+<CODE>metalab.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz</CODE>
 is said to work after editing the configuration file. Someone else said:
 <CODE>joe</CODE>: Put the <CODE>-asis</CODE> option in <CODE>/isr/lib/joerc</CODE> in the
 first column.
index dbb270f..2cc9119 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: X</TITLE>
  <LINK HREF="kbd.FAQ-14.html" REL=next>
  <LINK HREF="kbd.FAQ-12.html" REL=previous>
index aaf2d99..078b91b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Unusual keys and keyboards</TITLE>
  <LINK HREF="kbd.FAQ-15.html" REL=next>
  <LINK HREF="kbd.FAQ-13.html" REL=previous>
index ae9680b..17d182b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Examples of use of loadkeys and xmodmap</TITLE>
  <LINK HREF="kbd.FAQ-16.html" REL=next>
  <LINK HREF="kbd.FAQ-14.html" REL=previous>
index c0f44e0..a072f33 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Changing the video mode</TITLE>
  <LINK HREF="kbd.FAQ-17.html" REL=next>
  <LINK HREF="kbd.FAQ-15.html" REL=previous>
index e486732..d07026d 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Changing the keyboard repeat rate</TITLE>
  <LINK HREF="kbd.FAQ-18.html" REL=next>
  <LINK HREF="kbd.FAQ-16.html" REL=previous>
index 117cb7f..3dadaa5 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Scrolling</TITLE>
  <LINK HREF="kbd.FAQ-19.html" REL=next>
  <LINK HREF="kbd.FAQ-17.html" REL=previous>
index 4ff5c5a..b744f8c 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Screensaving</TITLE>
  <LINK HREF="kbd.FAQ-20.html" REL=next>
  <LINK HREF="kbd.FAQ-18.html" REL=previous>
index fae0792..af1b74e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Keyboard generalities</TITLE>
  <LINK HREF="kbd.FAQ-3.html" REL=next>
  <LINK HREF="kbd.FAQ-1.html" REL=previous>
index a2bf62d..cddb642 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Screen dumps</TITLE>
  <LINK HREF="kbd.FAQ-21.html" REL=next>
  <LINK HREF="kbd.FAQ-19.html" REL=previous>
@@ -30,7 +30,7 @@ can be accessed using the device <CODE>/dev/vcs</CODE><I>N</I>
 (where `vcs' stands for `virtual console screen').
 For example, you could have a clock program that displays the
 current time in the upper right hand corner of the console screen
-(see the program <CODE>vcstime</CODE> in <CODE>kbd-0.96.tar.gz</CODE>).
+(see the program <CODE>vcstime</CODE> in <CODE>kbd-0.99.tar.gz</CODE>).
 Just dumping the contents goes with <CODE>cat /dev/vcs</CODE><I>N</I>.
 These device files <CODE>/dev/vcs</CODE><I>N</I> do not contain
 newlines, and do not contain attributes, like colors. From a program
index d7c9a58..6234f04 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Some properties of the VT100 - application key mode</TITLE>
  <LINK HREF="kbd.FAQ-22.html" REL=next>
  <LINK HREF="kbd.FAQ-20.html" REL=previous>
index 06e21d4..6b4324e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Hardware incompatibility</TITLE>
  <LINK HREF="kbd.FAQ-23.html" REL=next>
  <LINK HREF="kbd.FAQ-21.html" REL=previous>
index be9f13a..c4ce54a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Copyright</TITLE>
  <LINK HREF="kbd.FAQ-22.html" REL=previous>
  <LINK HREF="kbd.FAQ.html#toc23" REL=contents>
@@ -16,7 +16,7 @@ Next
 <P>Copyright (c) 1993-1999 by Andries Brouwer.  This document may be
 distributed under the terms set forth in the LDP license 
 at 
-<A HREF="http://sunsite.unc.edu/LDP/COPYRIGHT.html">http://sunsite.unc.edu/LDP/COPYRIGHT.html</A> or
+<A HREF="http://metalab.unc.edu/LDP/COPYRIGHT.html">http://metalab.unc.edu/LDP/COPYRIGHT.html</A> or
 <A HREF="ftp://www.win.tue.nl/pub/linux/LDP/COPYRIGHT.txt">ftp://www.win.tue.nl/pub/linux/LDP/COPYRIGHT.txt</A>.
 <P>Additions and corrections are welcome.
 Andries Brouwer - <CODE>aeb@cwi.nl</CODE>
index c738901..7325c52 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Console generalities</TITLE>
  <LINK HREF="kbd.FAQ-4.html" REL=next>
  <LINK HREF="kbd.FAQ-2.html" REL=previous>
index 2fc0af3..cf6f536 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Resetting your terminal</TITLE>
  <LINK HREF="kbd.FAQ-5.html" REL=next>
  <LINK HREF="kbd.FAQ-3.html" REL=previous>
index 0106d39..25eea5a 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Delete and Backspace</TITLE>
  <LINK HREF="kbd.FAQ-6.html" REL=next>
  <LINK HREF="kbd.FAQ-4.html" REL=previous>
@@ -68,8 +68,9 @@ will do this and more. Saying <CODE>stty -a</CODE> shows your current settings.
 How come this is not right by default? It is, if you use the right
 <CODE>getty</CODE>.
 <P>Note that many programs (like <CODE>bash</CODE>, <CODE>emacs</CODE> etc.) have their own
-keybindings (defined in <CODE>~/.inputrc</CODE>, <CODE>~/.emacs</CODE> etc.) and
-are unaffected by the setting of the erase character.
+keybindings (defined in <CODE>~/.inputrc</CODE>,
+<CODE>~/.emacs</CODE> etc.) and are unaffected by the setting
+of the erase character.
 <P>The standard Unix tty driver does not recognize a cursor, or keys
 (like the arrow keys) to move the current position, and hence does not
 have a command `delete current character' either. But for example
@@ -173,6 +174,31 @@ itself has default keymap <CODE>defkeymap.map</CODE> located somewhere under
 keymaps) and this may not yet be available in single user boot before
 <CODE>/usr</CODE> has been mounted.
 <P>
+<H3>`How do I get a dvorak keyboard?'</H3>
+
+<P>
+<!--
+dvorak keyboard
+-->
+
+The command
+<BLOCKQUOTE><CODE>
+<PRE>
+        % loadkeys dvorak
+</PRE>
+</CODE></BLOCKQUOTE>
+
+will give you a dvorak layout, probably by loading
+something like <CODE>/usr/lib/kbd/keymaps/i386/dvorak/dvorak.map.gz</CODE>.
+Under <CODE>X</CODE>, put
+<BLOCKQUOTE><CODE>
+<PRE>
+        XkbLayout       "dvorak"
+</PRE>
+</CODE></BLOCKQUOTE>
+
+in <CODE>XF86Config</CODE>.
+<P>
 <H3>`Why doesn't the Backspace key generate BackSpace by default?'</H3>
 
 <P>
@@ -512,6 +538,9 @@ xrdb -merge .Xresources
 </CODE></BLOCKQUOTE>
 
 in <CODE>.xinitrc</CODE>, and you are settled.
+<P>For a much more extensive discussion of these things, and
+alternative solutions, see
+<A HREF="http://www.ibbnet.nl/~anne/keyboard.html">Anne Baretta's page</A>.
 <P>
 <HR>
 <A HREF="kbd.FAQ-6.html">Next</A>
index 8744ed2..bd19fcc 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: The console character sets</TITLE>
  <LINK HREF="kbd.FAQ-7.html" REL=next>
  <LINK HREF="kbd.FAQ-5.html" REL=previous>
index de93925..5ff2c94 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Console switching</TITLE>
  <LINK HREF="kbd.FAQ-8.html" REL=next>
  <LINK HREF="kbd.FAQ-6.html" REL=previous>
@@ -88,7 +88,7 @@ consoles, and do not have a bash prompt available to give the <CODE>open</CODE>
 command.
 Fortunately it is possible to create a new console upon a single
 keystroke, regardless of what is happening at the current console.
-<P>If you have <CODE>spawn_login</CODE> from <CODE>kbd-0.96.tar.gz</CODE> and you put
+<P>If you have <CODE>spawn_login</CODE> from <CODE>kbd-0.99.tar.gz</CODE> and you put
 <BLOCKQUOTE><CODE>
 <PRE>
         loadkeys &lt;&lt; EOF
index 8d0d4d7..dd7d79b 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: Ctrl-Alt-Del and other special key combinations</TITLE>
  <LINK HREF="kbd.FAQ-9.html" REL=next>
  <LINK HREF="kbd.FAQ-7.html" REL=previous>
index 9a7c76d..420911c 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO: How to get out of raw mode</TITLE>
  <LINK HREF="kbd.FAQ-10.html" REL=next>
  <LINK HREF="kbd.FAQ-8.html" REL=previous>
index 2c720ea..ae65ee1 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
+ <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
  <TITLE>The Linux keyboard and console HOWTO</TITLE>
  <LINK HREF="kbd.FAQ-1.html" REL=next>
 
index 46d98f1..227823f 100644 (file)
@@ -23,27 +23,32 @@ It describes Linux 2.0.
 
 The following packages contain keyboard or console related programs.
 <p>
-<tt/kbd-0.96.tar.gz/ contains <tt/loadkeys/, <tt/dumpkeys/, <tt/showkey/,
+<tt/kbd-1.00.tar.gz/ contains <tt/loadkeys/, <tt/dumpkeys/, <tt/showkey/,
 <tt/setmetamode/, <tt/setleds/, <tt/setfont/, <tt/showfont/, <tt/mapscrn/,
-<tt/kbd_mode/, <tt/loadunimap/, <tt/chvt/, <tt/resizecons/, <tt/deallocvt/,
-<tt/getkeycodes/, <tt/setkeycodes/.
+<tt/kbd_mode/, <tt/kbdrate/, <tt/loadunimap/, <tt/chvt/, <tt/resizecons/,
+<tt/deallocvt/, <tt/getkeycodes/, <tt/setkeycodes/.
+It also contains <tt/openvt/, formerly called <tt/open/.
 <p>
-<tt/util-linux-2.6/ contains <tt/setterm/, <tt/kbdrate/.
-(Yes, the <tt/more/ in <tt/util-linux-2.6/ dumps core due to a name
-conflict. Preserve your old copy, or use <tt/util-linux-2.5/, or
-change `savetty' to `my_savetty' in <tt/more.c/.)
+<tt/SVGATextMode-1.8.tar.gz/ contains <tt/SVGATextMode/, a program that
+obsoletes <tt/resizecons/.
+<p>
+<tt/util-linux-2.9/ contains <tt/setterm/, <tt/kbdrate/.
 <p>
 <tt/sh-utils-1.12/ contains <tt/stty/.
 <p>
-<tt/open-1.4.tgz/ contains <tt/open/ (that should be renamed to
-<tt/openvt/). (See also <tt/dynamic-vc-1.1.tar.gz/ and <tt/consd-1.1.tgz/.)
-
-<tt/SVGATextMode-1.8.tar.gz/ contains <tt/SVGATextMode/, a program that
-obsoletes <tt/resizecons/.
+See also <tt/dynamic-vc-1.1.tar.gz/ and <tt/consd-1.1.tgz/ for
+programs that exploit the `Keyboard Signal' key. Very primitive
+versions are <tt/spawn_login/ or <tt/spawn_console/ found in the kbd package.
+<p>
+See <htmlurl name="font.tgz" url="http://www.cix.co.uk/~mayday/font.tgz">
+for a package that handles console fonts.
+<p>
 
 The X distribution contains <tt/xmodmap/, <tt/xset/, <tt/kbd_mode/.
 (See also X386keybd(1) for the situation under XFree86 1.3,
 and Xserver(1) for the XKEYBOARD extension under X11R6.)
+A handy interface to <tt/xmodmap/ is <tt/xkeycaps/, see
+<htmlurl name="http://www.jwz.org/xkeycaps/" url="www.jwz.org/xkeycaps/">.
 
 <tt/termcap-2.0.8.tar.gz/ contains <tt/termcap/, an old terminal
 capabilities data base. <tt/ncurses-1.9.9e.tar.gz/ contains the
@@ -71,9 +76,11 @@ See terminfo(5). Terminfo files are compiled
 by the terminfo compiler <tt>/usr/lib/terminfo/tic</tt>, see tic(1).
 Their contents can be examined using the program <tt/infocmp/,
 see infocmp(1).
+
 The Linux console sequences are documented in console_codes(4).
 
 
+
 <sect>Keyboard generalities<p>
 <nidx>keyboard!theory of operation</nidx>
 
@@ -345,8 +352,9 @@ How come this is not right by default? It is, if you use the right
 <tt/getty/.
 
 Note that many programs (like <tt/bash/, <tt/emacs/ etc.) have their own
-keybindings (defined in <tt>&tilde;/.inputrc</tt>, <tt>&tilde;/.emacs</tt> etc.) and
-are unaffected by the setting of the erase character.
+keybindings (defined in <tt>&tilde;/.inputrc</tt>,
+<tt>&tilde;/.emacs</tt> etc.) and are unaffected by the setting
+of the erase character.
 
 The standard Unix tty driver does not recognize a cursor, or keys
 (like the arrow keys) to move the current position, and hence does not
@@ -429,6 +437,20 @@ itself has default keymap <tt/defkeymap.map/ located somewhere under
 keymaps) and this may not yet be available in single user boot before
 <tt>/usr</tt> has been mounted.
 
+<sect2>`How do I get a dvorak keyboard?'<p>
+<nidx>dvorak keyboard</nidx>
+The command
+<tscreen><verb>
+       % loadkeys dvorak
+</verb></tscreen>
+will give you a dvorak layout, probably by loading
+something like <tt>/usr/lib/kbd/keymaps/i386/dvorak/dvorak.map.gz</tt>.
+Under <tt/X/, put
+<tscreen><verb>
+       XkbLayout       "dvorak"
+</verb></tscreen>
+in <tt>XF86Config</tt>.
+
 <sect2>`Why doesn't the Backspace key generate BackSpace by default?'<p>
 <nidx>backspace key!not generating correct keycode</nidx>
 
@@ -666,6 +688,11 @@ xrdb -merge .Xresources
 </verb></tscreen>
 in <tt/.xinitrc/, and you are settled.
 
+For a much more extensive discussion of these things, and
+alternative solutions, see
+<htmlurl url="http://www.ibbnet.nl/~anne/keyboard.html"
+name="Anne Baretta's page">.
+
 <sect>The console character sets<p>
 <nidx>console character sets</nidx>
 <nidx>character sets, console</nidx>
@@ -775,7 +802,7 @@ command.
 Fortunately it is possible to create a new console upon a single
 keystroke, regardless of what is happening at the current console.
 
-If you have <tt/spawn_login/ from <tt/kbd-0.96.tar.gz/ and you put
+If you have <tt/spawn_login/ from <tt/kbd-0.99.tar.gz/ and you put
 <tscreen><verb>
        loadkeys << EOF
        alt keycode 103 = Spawn_Console
@@ -1236,7 +1263,7 @@ J. For <tt/col/, make sure 1) that it is fixed so as to do
 K. For <tt/rlogin/, use option <tt/-8/.
 
 L. For <tt/joe/,
-<tt>sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz</tt>
+<tt>metalab.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz</tt>
 is said to work after editing the configuration file. Someone else said:
 <tt/joe/: Put the <tt/-asis/ option in <tt>/isr/lib/joerc</tt> in the
 first column.
@@ -1629,7 +1656,7 @@ can be accessed using the device <tt>/dev/vcs</tt><it/N/
 (where `vcs' stands for `virtual console screen').
 For example, you could have a clock program that displays the
 current time in the upper right hand corner of the console screen
-(see the program <tt/vcstime/ in <tt/kbd-0.96.tar.gz/).
+(see the program <tt/vcstime/ in <tt/kbd-0.99.tar.gz/).
 Just dumping the contents goes with <tt>cat /dev/vcs</tt><it/N/.
 These device files <tt>/dev/vcs</tt><it/N/ do not contain
 newlines, and do not contain attributes, like colors. From a program
@@ -1706,8 +1733,8 @@ I'm assuming the Stealth 64 did something funny with the timings.'
 <sect>Copyright<p>
 Copyright (c) 1993-1999 by Andries Brouwer.  This document may be
 distributed under the terms set forth in the LDP license 
-at <htmlurl url="http://sunsite.unc.edu/LDP/COPYRIGHT.html"
-name="http://sunsite.unc.edu/LDP/COPYRIGHT.html"> or
+at <htmlurl url="http://metalab.unc.edu/LDP/COPYRIGHT.html"
+name="http://metalab.unc.edu/LDP/COPYRIGHT.html"> or
 <htmlurl url="ftp://www.win.tue.nl/pub/linux/LDP/COPYRIGHT.txt"
 name="ftp://www.win.tue.nl/pub/linux/LDP/COPYRIGHT.txt">.
 
index 62f4ad7..1f2f1f0 100644 (file)
@@ -80,7 +80,8 @@
         5.1.1 `Getty used to do the right thing with DEL and BS but is broken now?'
         5.1.2 `Login behaves differently at the first and second login attempts?'
      5.2 How to tell Linux what code to generate when a key is pressed
-        5.2.1 `Why doesn't the Backspace key generate BackSpace by default?'
+        5.2.1 `How do I get a dvorak keyboard?'
+        5.2.2 `Why doesn't the Backspace key generate BackSpace by default?'
      5.3 How to tell X to interchange Delete and Backspace
      5.4 How to tell emacs what to do when it receives a Delete or Backspace
      5.5 How to tell emacs to interchange Delete and Backspace
   16. Changing the video mode
 
      16.1 Instructions for the use of resizecons
+
   17. Changing the keyboard repeat rate
 
   18. Scrolling
 
   The following packages contain keyboard or console related programs.
 
-  kbd-0.96.tar.gz contains loadkeys, dumpkeys, showkey, setmetamode,
-  setleds, setfont, showfont, mapscrn, kbd_mode, loadunimap, chvt,
-  resizecons, deallocvt, getkeycodes, setkeycodes.
+  kbd-1.00.tar.gz contains loadkeys, dumpkeys, showkey, setmetamode,
+  setleds, setfont, showfont, mapscrn, kbd_mode, kbdrate, loadunimap,
+  chvt, resizecons, deallocvt, getkeycodes, setkeycodes.  It also
+  contains openvt, formerly called open.
 
-  util-linux-2.6 contains setterm, kbdrate.  (Yes, the more in util-
-  linux-2.6 dumps core due to a name conflict. Preserve your old copy,
-  or use util-linux-2.5, or change `savetty' to `my_savetty' in more.c.)
+  SVGATextMode-1.8.tar.gz contains SVGATextMode, a program that
+  obsoletes resizecons.
+
+  util-linux-2.9 contains setterm, kbdrate.
 
   sh-utils-1.12 contains stty.
 
-  open-1.4.tgz contains open (that should be renamed to openvt). (See
-  also dynamic-vc-1.1.tar.gz and consd-1.1.tgz.)
+  See also dynamic-vc-1.1.tar.gz and consd-1.1.tgz for programs that
+  exploit the `Keyboard Signal' key. Very primitive versions are
+  spawn_login or spawn_console found in the kbd package.
+
+  See font.tgz for a package that handles console fonts.
 
-  SVGATextMode-1.8.tar.gz contains SVGATextMode, a program that
-  obsoletes resizecons.
 
   The X distribution contains xmodmap, xset, kbd_mode.  (See also
   X386keybd(1) for the situation under XFree86 1.3, and Xserver(1) for
-  the XKEYBOARD extension under X11R6.)
+  the XKEYBOARD extension under X11R6.)  A handy interface to xmodmap is
+  xkeycaps, see http://www.jwz.org/xkeycaps/.
 
   termcap-2.0.8.tar.gz contains termcap, an old terminal capabilities
   data base. ncurses-1.9.9e.tar.gz contains the termlib data base which
   See setterm(1) and kbdrate(8) for properties such as foreground and
   background colors, screen blanking and character repeat rate when not
   under X.  Under X, see xset(1), also for key click and bell volume.
-
   The file /etc/termcap defines the escape sequences used by many
   programs addressing the console (or any other terminal).  See
   termcap(5).  A more modern version is found in /usr/lib/terminfo.  See
   terminfo(5). Terminfo files are compiled by the terminfo compiler
   /usr/lib/terminfo/tic, see tic(1).  Their contents can be examined
-  using the program infocmp, see infocmp(1).  The Linux console
-  sequences are documented in console_codes(4).
+  using the program infocmp, see infocmp(1).
+
+  The Linux console sequences are documented in console_codes(4).
+
 
 
 
   without resetting other console attributes. For example, after
 
 
-               % cat
-               ^N
-               ^D
+
+
+          % cat
+          ^N
+          ^D
 
 
 
 
   your shell prompt will be all line-drawing characters.  Now do (typing
   blindly)
+
+
                % cat
                ^O
                ^D
   going back to the previous font with
 
 
-               % setfont
+          % setfont
 
 
 
 
                % loadunimap
 
+
+
+
   which loads the default Unicode map (which is right for the default
   font) all works correctly again. Usually loadunimap is not invoked
   directly, but via setfont. Thus, the previous two commands may be
   there are four main types of keyboards: QWERTY, QWERTZ, AZERTY and
   DVORAK.  The first three are named after the first six letter keys,
   and roughly represent the English, German and French speaking coun-
-  tries.  Compared to QWERTY, the QWERTZ map interchanges Y and Z.  Com-
-  pared to QWERTY, the AZERTY map interchanges Q and A, W and Z, and has
-  its M right of the L, at the semicolon position.  DVORAK has an
+  tries.  Compared to QWERTY, the QWERTZ map interchanges Y and Z.
+  Compared to QWERTY, the AZERTY map interchanges Q and A, W and Z, and
+  has its M right of the L, at the semicolon position.  DVORAK has an
   entirely different letter ordering.  There are two types of Turkish
   keyboard. The so-called `Q'-keyboard has a QWERTY layout, while the
   `F'-keyboard has an entirely different layout, let us say fgGIod,
   If the character is erased, but in a funny way, then something is
   wrong with your tty settings. If echoprt is set, then erased charac-
   ters are enclosed between \ and /.  If echoe is not set, then the
-  erase char is echoed (which is reasonable when it is a printing char-
-  acter, like #).  Most people will want stty echoe -echoprt. Saying
+  erase char is echoed (which is reasonable when it is a printing
+  character, like #).  Most people will want stty echoe -echoprt. Saying
   stty sane will do this and more. Saying stty -a shows your current
   settings.  How come this is not right by default? It is, if you use
   the right getty.
   have a command `delete current character' either. But for example you
   can get bash on the console to recognize the Delete key by putting
 
-          set editing-mode emacs
-          "\e[3~":delete-char
+
+               set editing-mode emacs
+               "\e[3~":delete-char
 
 
 
   /usr has been mounted.
 
 
-  5\b5.\b.2\b2.\b.1\b1.\b.  `\b`W\bWh\bhy\by d\bdo\boe\bes\bsn\bn'\b't\bt t\bth\bhe\be B\bBa\bac\bck\bks\bsp\bpa\bac\bce\be k\bke\bey\by g\bge\ben\bne\ber\bra\bat\bte\be B\bBa\bac\bck\bkS\bSp\bpa\bac\bce\be b\bby\by d\bde\bef\bfa\bau\bul\blt\bt?\b?'\b'
+  5\b5.\b.2\b2.\b.1\b1.\b.  `\b`H\bHo\bow\bw d\bdo\bo I\bI g\bge\bet\bt a\ba d\bdv\bvo\bor\bra\bak\bk k\bke\bey\byb\bbo\boa\bar\brd\bd?\b?'\b'
+
+  The command
+
+
+               % loadkeys dvorak
+
+
+
+
+  will give you a dvorak layout, probably by loading something like
+  /usr/lib/kbd/keymaps/i386/dvorak/dvorak.map.gz.  Under X, put
+
+
+               XkbLayout       "dvorak"
+
+
+
+
+  in XF86Config.
+
+
+
+
+
+  5\b5.\b.2\b2.\b.2\b2.\b.  `\b`W\bWh\bhy\by d\bdo\boe\bes\bsn\bn'\b't\bt t\bth\bhe\be B\bBa\bac\bck\bks\bsp\bpa\bac\bce\be k\bke\bey\by g\bge\ben\bne\ber\bra\bat\bte\be B\bBa\bac\bck\bkS\bSp\bpa\bac\bce\be b\bby\by d\bde\bef\bfa\bau\bul\blt\bt?\b?'\b'
 
 
   (i) Because the VT100 had a Delete key above the Enter key.
   (but usually this is the default binding already).
 
 
-
-
-
   5\b5.\b.4\b4.\b.  H\bHo\bow\bw t\bto\bo t\bte\bel\bll\bl e\bem\bma\bac\bcs\bs w\bwh\bha\bat\bt t\bto\bo d\bdo\bo w\bwh\bhe\ben\bn i\bit\bt r\bre\bec\bce\bei\biv\bve\bes\bs a\ba D\bDe\bel\ble\bet\bte\be o\bor\br
   B\bBa\bac\bck\bks\bsp\bpa\bac\bce\be
 
   bound to Ctrl-H). One can distinguish Backspace and Delete, e.g. by
 
 
-          (global-unset-key [backspace] )
-          (global-set-key [backspace] 'delete-backward-char)
-          (global-unset-key [delete] )
-          (global-set-key [delete] 'delete-char)
+               (global-unset-key [backspace] )
+               (global-set-key [backspace] 'delete-backward-char)
+               (global-unset-key [delete] )
+               (global-set-key [delete] 'delete-char)
 
 
 
 
 
 
-       XTerm*VT100.Translations:       #override\n\
-               <KeyPress> BackSpace : string(0x7f)\n\
-               <KeyPress> Delete : string(0x08)\n
+
+
+
+  XTerm*VT100.Translations:       #override\n\
+          <KeyPress> BackSpace : string(0x7f)\n\
+          <KeyPress> Delete : string(0x08)\n
 
 
 
   Putting
 
 
-          *XmText.translations: #override\n\
-             <Key>osfDelete: delete-previous-character()
-          *XmTextField.translations: #override\n\
-             <Key>osfDelete: delete-previous-character()
+               *XmText.translations: #override\n\
+                  <Key>osfDelete: delete-previous-character()
+               *XmTextField.translations: #override\n\
+                  <Key>osfDelete: delete-previous-character()
 
 
 
 
   The netscape FAQ, however, says:
 
+
+
+
+
+
+
+
+
+
+
+
+
+
           Why doesn't my Backspace key work in text fields?
           By default, Linux and XFree86 come with the Backspace and Delete keys
           misconfigured. All Motif programs (including, of course, Netscape
   Add the following lines to your .xinitrc file:
 
 
+       xmodmap <<-EOF
+       keycode 22  =  BackSpace osfBackSpace
+       keycode 107 =  Delete
+       EOF
 
+       # start your window manager here,  for example:
+       #(fvwm) 2>&1 | tee /dev/tty /dev/console
 
-
-
-  xmodmap <<-EOF
-  keycode 22  =  BackSpace osfBackSpace
-  keycode 107 =  Delete
-  EOF
-
-  # start your window manager here,  for example:
-  #(fvwm) 2>&1 | tee /dev/tty /dev/console
-
-  stty sane
-  stty erase ^H
-  loadmap <<-EOF
-  keycode 14  = BackSpace
-  keycode 111 = Delete
-  EOF
-
+       stty sane
+       stty erase ^H
+       loadmap <<-EOF
+       keycode 14  = BackSpace
+       keycode 111 = Delete
+       EOF
 
 
 
 
   in .Xresources, and
 
-  xrdb -merge .Xresources
+
+       xrdb -merge .Xresources
 
 
 
 
   in .xinitrc, and you are settled.
 
+  For a much more extensive discussion of these things, and alternative
+  solutions, see Anne Baretta's page.
+
 
   6\b6.\b.  T\bTh\bhe\be c\bco\bon\bns\bso\bol\ble\be c\bch\bha\bar\bra\bac\bct\bte\ber\br s\bse\bet\bts\bs
 
   to create a new console upon a single keystroke, regardless of what is
   happening at the current console.
 
-  If you have spawn_login from kbd-0.96.tar.gz and you put
-
-
+  If you have spawn_login from kbd-0.99.tar.gz and you put
 
 
-
-          loadkeys << EOF
-          alt keycode 103 = Spawn_Console
-          EOF
-          spawn_login &
+               loadkeys << EOF
+               alt keycode 103 = Spawn_Console
+               EOF
+               spawn_login &
 
 
 
   Ctrl-AltGr-Del is no longer by default assigned to Boot.
 
 
-
-
   8\b8.\b.2\b2.\b.  O\bOt\bth\bhe\ber\br c\bco\bom\bmb\bbi\bin\bna\bat\bti\bio\bon\bns\bs
 
 
   Caps_On                                 (CapsLock is a toggle; this key sets)
   Compose         Ctrl-.
 
-
-
-
   8\b8.\b.3\b3.\b.  X\bX C\bCo\bom\bmb\bbi\bin\bna\bat\bti\bio\bon\bns\bs
 
 
 
   1. The Linux keyboard driver mechanism, used in conjunction with
      loadkeys.
-
   2. The X mechanism - see X386keybd(1), later XFree86kbd(1).  Under
      X11R6: edit /usr/X11R6/lib/X11/locale/iso8859-1/Compose.
 
   application key mode will not change the NumLock status, but produce
   an escape sequence.  If you want the NumLock key to always change the
   Numlock status, bind it to Bare_Num_Lock.)
+
   2. Next, there are per-tty default keyboard flags, to initialize the
   keyboard flags when a reset occurs.  Thus if you want NumLock on all
   the time, that is possible.  The usual way to change them is by
   /usr/lib/terminfo/c/console.
 
 
-
   1\b11\b1.\b.1\b1.\b.  T\bTe\ber\brm\bmi\bin\bnf\bfo\bo
 
 
 
   A. For emacs the details strongly depend on the version.  The
   information below is for version 19.34. Put lines
-
-
                (set-input-mode nil nil 1)
                (standard-display-european t)
                (require 'iso-syntax)
 
   The command
 
-          (iso-accents-mode)
+
+               (iso-accents-mode)
 
 
 
 
   into your $HOME/.inputrc.
 
-
   E. For tcsh, use
 
 
   K. For rlogin, use option -8.
 
   L. For joe,
-  sunsite.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz is said
+  metalab.unc.edu:/pub/Linux/apps/editors/joe-1.0.8-linux.tar.gz is said
   to work after editing the configuration file. Someone else said: joe:
   Put the -asis option in /isr/lib/joerc in the first column.
 
   which substitutes its own handling. However, it seems useful to
   document some of the Linux keyboard and console related properties of
   X.
+
   First of all, when X is started (say using startx or xinit) it opens
   the first unused console, unless the desired console has been
   indicated explicitly, as in xinit -- vt12.  Note that this will fail
   definition of Compose in Xconfig will override its value as found in
   the Linux keymap.)
 
-
   What happens to the strings associated with the function keys?
   Nothing, X does not have such a concept. (But it is possible to define
   strings for function keys in xterm - note however that the window
   the current keymap, make a copy and edit that:
 
 
-               % dumpkeys > my_keymap
-               % cp my_keymap trial_keymap
-               % emacs trial_keymap
-               % loadkeys trial_keymap
-               %
+
+
+          % dumpkeys > my_keymap
+          % cp my_keymap trial_keymap
+          % emacs trial_keymap
+          % loadkeys trial_keymap
+          %
 
 
 
   1\b15\b5.\b.1\b1.\b.  `\b`I\bI c\bca\ban\bn u\bus\bse\be o\bon\bnl\bly\by o\bon\bne\be f\bfi\bin\bng\bge\ber\br t\bto\bo t\bty\byp\bpe\be w\bwi\bit\bth\bh'\b'
 
 
-
   "Can the Shift, Ctrl and Alt keys be made to behave as toggles?"
 
   Yes, after saying
 
 
 
+
   1\b16\b6.\b.  C\bCh\bha\ban\bng\bgi\bin\bng\bg t\bth\bhe\be v\bvi\bid\bde\beo\bo m\bmo\bod\bde\be
 
 
   corresponding symbol. Use the program kbdrate(8) to change the repeat
   rate, or, if that doesn't help, edit or remove the section
 
-
-
-
-
-
   ______________________________________________________________________
        ! set the keyboard repeat rate to the max
 
   the device /dev/vcs_\bN (where `vcs' stands for `virtual console
   screen').  For example, you could have a clock program that displays
   the current time in the upper right hand corner of the console screen
-  (see the program vcstime in kbd-0.96.tar.gz).  Just dumping the
+  (see the program vcstime in kbd-0.99.tar.gz).  Just dumping the
   contents goes with cat /dev/vcs_\bN.  These device files /dev/vcs_\bN do not
   contain newlines, and do not contain attributes, like colors. From a
   program it is usually better to use /dev/vcsa_\bN (`virtual console
 
   : Sometimes my cursor keys or keypad keys produce strange codes?
 
+
   When the terminal is in application cursor key mode the cursor keys
   produce  Esc O x  and otherwise  Esc [ x  where x is one of A,B,C,D.
   Certain programs put the terminal in application cursor key mode; if
   clears it again.
 
 
-
-
   2\b22\b2.\b.  H\bHa\bar\brd\bdw\bwa\bar\bre\be i\bin\bnc\bco\bom\bmp\bpa\bat\bti\bib\bbi\bil\bli\bit\bty\by
 
 
 
   There may be a relation between keyboard problems and the video card
   in use.
-
   Shawn K. Quinn (skquinn@wt.net) wrote: `I have a Zeos Pantera
   Pentium-90 that originally came with a Diamond Stealth 64 S3-based
   video card. Under X I frequently got q's inserted into my text (how
 
   Copyright (c) 1993-1999 by Andries Brouwer.  This document may be
   distributed under the terms set forth in the LDP license at
-  http://sunsite.unc.edu/LDP/COPYRIGHT.html or
+  http://metalab.unc.edu/LDP/COPYRIGHT.html or
   ftp://www.win.tue.nl/pub/linux/LDP/COPYRIGHT.txt.
 
   Additions and corrections are welcome.  Andries Brouwer - aeb@cwi.nl
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
index 0116042..333f8c1 100644 (file)
@@ -7,109 +7,109 @@ Instructions:
 % less -r utfdemo
 % unicode_stop         # idem
 
-2008   ¿  PUNCTUATION SPACE
-263A  ☺¿  WHITE SMILING FACE
-263B  ☻¿  BLACK SMILING FACE
-2665  ♥¿  BLACK HEART SUIT
-2666  ♦¿  BLACK DIAMOND SUIT
-2663  ♣¿  BLACK CLUB SUIT
-2660  ♠¿  BLACK SPADE SUIT
-2022  •¿  BULLET
-25D8  ◘¿  INVERSE BULLET
-25CB  ○¿  WHITE CIRCLE
-25D9  ◙¿  INVERSE WHITE CIRCLE
-2642  ♂¿  MALE SIGN
-2640  ♀¿  FEMALE SIGN
-266A  ♪¿  EIGHTH NOTE
-266C  ♬¿  BEAMED SIXTEENTH NOTES
-263C  ☼¿  WHITE SUN WITH RAYS
-25B6  ▶¿  BLACK RIGHT-POINTING TRIANGLE
-25C0  ◀¿  BLACK LEFT-POINTING TRIANGLE
-2195  ↕¿  UP DOWN ARROW
-203C  ‼¿  DOUBLE EXCLAMATION MARK
-25AC  ▬¿  BLACK RECTANGLE
-21A8  ↨¿  UP DOWN ARROW WITH BASE
-2191  ↑¿  UPWARDS ARROW
-2193  ↓¿  DOWNWARDS ARROW
-2192  →¿  RIGHTWARDS ARROW
-2190  ←¿  LEFTWARDS ARROW
-2319  ⌙¿  TURNED NOT SIGN
-2194  ↔¿  LEFT RIGHT ARROW
-25B2  ▲¿  BLACK UP-POINTING TRIANGLE
-25BC  ▼¿  BLACK DOWN-POINTING TRIANGLE
-2302  ⌂¿  HOUSE
-20A7  ₧¿  PESETA SIGN
-0192  ƒ§¿  LATIN SMALL LETTER F WITH HOOK
-2310  ⌐¿  REVERSED NOT SIGN
-2591  ░¿  LIGHT SHADE
-2592  ▒¿  MEDIUM SHADE
-2593  ▓¿  DARK SHADE
-2502  │¿  BOX DRAWINGS LIGHT VERTICAL
-2524  ┤¿  BOX DRAWINGS LIGHT VERTICAL AND LEFT
-2561  ╡¿  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
-2562  ╢¿  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
-2556  ╖¿  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
-2555  ╕¿  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
-2563  ╣¿  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
-2551  ║¿  BOX DRAWINGS DOUBLE VERTICAL
-2557  ╗¿  BOX DRAWINGS DOUBLE DOWN AND LEFT
-255D  ╝¿  BOX DRAWINGS DOUBLE UP AND LEFT
-255C  ╜¿  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
-255B  ╛¿  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
-2510  ┐¿  BOX DRAWINGS LIGHT DOWN AND LEFT
-2514  └¿  BOX DRAWINGS LIGHT UP AND RIGHT
-2534  ┴¿  BOX DRAWINGS LIGHT UP AND HORIZONTAL
-252C  ┬¿  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
-251C  ├¿  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
-2500  ─¿  BOX DRAWINGS LIGHT HORIZONTAL
-253C  ┼¿  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
-255E  ╞¿  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
-255F  ╟¿  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
-255A  ╚¿  BOX DRAWINGS DOUBLE UP AND RIGHT
-2554  ╔¿  BOX DRAWINGS DOUBLE DOWN AND RIGHT
-2569  ╩¿  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
-2566  ╦¿  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
-2560  ╠¿  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
-2550  ═¿  BOX DRAWINGS DOUBLE HORIZONTAL
-256C  ╬¿  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
-2567  ╧¿  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
-2568  ╨¿  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
-2564  ╤¿  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
-2565  ╥¿  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
-2559  ╙¿  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
-2558  ╘¿  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
-2552  ╒¿  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
-2553  ╓¿  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
-256B  ╫¿  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
-256A  ╪¿  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
-2518  ┘¿  BOX DRAWINGS LIGHT UP AND LEFT
-250C  ┌¿  BOX DRAWINGS LIGHT DOWN AND RIGHT
-2588  █¿  FULL BLOCK
-2584  ▄¿  LOWER HALF BLOCK
-258C  ▌¿  LEFT HALF BLOCK
-2590  ▐¿  RIGHT HALF BLOCK
-2580  ▀¿  UPPER HALF BLOCK
-03B1  α\80¿  GREEK SMALL LETTER ALPHA
-0393  Γ\80¿  GREEK CAPITAL LETTER GAMMA
-03C0  π\80¿  GREEK SMALL LETTER PI
-03A3  Σ\80¿  GREEK CAPITAL LETTER SIGMA
-03C3  σ\80¿  GREEK SMALL LETTER SIGMA
-03C4  τ\80¿  GREEK SMALL LETTER TAU
-03A6  Φ\80¿  GREEK CAPITAL LETTER PHI
-0398  Θ\80¿  GREEK CAPITAL LETTER THETA
-2126  Ω¿  OHM SIGN
-03B4  δ¦¿  GREEK SMALL LETTER DELTA
-221E  ∞¿  INFINITY
-2205  ∅¿  EMPTY SET
-2208  ∈¿  ELEMENT OF
-2229  ∩¿  INTERSECTION
-2261  ≡¿  IDENTICAL TO
-2265  ≥¿  GREATER-THAN OR EQUAL TO
-2264  ≤¿  LESS-THAN OR EQUAL TO
-2320  ⌠¿  TOP HALF INTEGRAL
-2321  ⌡¿  BOTTOM HALF INTEGRAL
-2248  ≈¿  ALMOST EQUAL TO
-22C5  ⋅¿  DOT OPERATOR
-221A  √¿  SQUARE ROOT
-207F  ⁿ¿  SUPERSCRIPT LATIN SMALL LETTER N
-220E  ∎¿  END OF PROOF
+2008     PUNCTUATION SPACE
+263A  ☺  WHITE SMILING FACE
+263B  ☻  BLACK SMILING FACE
+2665  ♥  BLACK HEART SUIT
+2666  ♦  BLACK DIAMOND SUIT
+2663  ♣  BLACK CLUB SUIT
+2660  ♠  BLACK SPADE SUIT
+2022  •  BULLET
+25D8  ◘  INVERSE BULLET
+25CB  ○  WHITE CIRCLE
+25D9  ◙  INVERSE WHITE CIRCLE
+2642  ♂  MALE SIGN
+2640  ♀  FEMALE SIGN
+266A  ♪  EIGHTH NOTE
+266C  ♬  BEAMED SIXTEENTH NOTES
+263C  ☼  WHITE SUN WITH RAYS
+25B6  ▶  BLACK RIGHT-POINTING TRIANGLE
+25C0  ◀  BLACK LEFT-POINTING TRIANGLE
+2195  ↕  UP DOWN ARROW
+203C  ‼  DOUBLE EXCLAMATION MARK
+25AC  ▬  BLACK RECTANGLE
+21A8  ↨  UP DOWN ARROW WITH BASE
+2191  ↑  UPWARDS ARROW
+2193  ↓  DOWNWARDS ARROW
+2192  →  RIGHTWARDS ARROW
+2190  ←  LEFTWARDS ARROW
+2319  ⌙  TURNED NOT SIGN
+2194  ↔  LEFT RIGHT ARROW
+25B2  ▲  BLACK UP-POINTING TRIANGLE
+25BC  ▼  BLACK DOWN-POINTING TRIANGLE
+2302  ⌂  HOUSE
+20A7  ₧  PESETA SIGN
+0192  ƒ  LATIN SMALL LETTER F WITH HOOK
+2310  ⌐  REVERSED NOT SIGN
+2591  ░  LIGHT SHADE
+2592  ▒  MEDIUM SHADE
+2593  ▓  DARK SHADE
+2502  │  BOX DRAWINGS LIGHT VERTICAL
+2524  ┤  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+2561  ╡  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+2562  ╢  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+2556  ╖  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+2555  ╕  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+2563  ╣  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+2551  ║  BOX DRAWINGS DOUBLE VERTICAL
+2557  ╗  BOX DRAWINGS DOUBLE DOWN AND LEFT
+255D  ╝  BOX DRAWINGS DOUBLE UP AND LEFT
+255C  ╜  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+255B  ╛  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+2510  ┐  BOX DRAWINGS LIGHT DOWN AND LEFT
+2514  └  BOX DRAWINGS LIGHT UP AND RIGHT
+2534  ┴  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+252C  ┬  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+251C  ├  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+2500  ─  BOX DRAWINGS LIGHT HORIZONTAL
+253C  ┼  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+255E  ╞  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+255F  ╟  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+255A  ╚  BOX DRAWINGS DOUBLE UP AND RIGHT
+2554  ╔  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+2569  ╩  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+2566  ╦  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+2560  ╠  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+2550  ═  BOX DRAWINGS DOUBLE HORIZONTAL
+256C  ╬  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+2567  ╧  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+2568  ╨  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+2564  ╤  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+2565  ╥  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+2559  ╙  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+2558  ╘  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+2552  ╒  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+2553  ╓  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+256B  ╫  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+256A  ╪  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+2518  ┘  BOX DRAWINGS LIGHT UP AND LEFT
+250C  ┌  BOX DRAWINGS LIGHT DOWN AND RIGHT
+2588  █  FULL BLOCK
+2584  ▄  LOWER HALF BLOCK
+258C  ▌  LEFT HALF BLOCK
+2590  ▐  RIGHT HALF BLOCK
+2580  ▀  UPPER HALF BLOCK
+03B1  α  GREEK SMALL LETTER ALPHA
+0393  Γ  GREEK CAPITAL LETTER GAMMA
+03C0  π  GREEK SMALL LETTER PI
+03A3  Σ  GREEK CAPITAL LETTER SIGMA
+03C3  σ  GREEK SMALL LETTER SIGMA
+03C4  τ  GREEK SMALL LETTER TAU
+03A6  Φ  GREEK CAPITAL LETTER PHI
+0398  Θ  GREEK CAPITAL LETTER THETA
+2126  Ω  OHM SIGN
+03B4  δ  GREEK SMALL LETTER DELTA
+221E  ∞  INFINITY
+2205  ∅  EMPTY SET
+2208  ∈  ELEMENT OF
+2229  ∩  INTERSECTION
+2261  ≡  IDENTICAL TO
+2265  ≥  GREATER-THAN OR EQUAL TO
+2264  ≤  LESS-THAN OR EQUAL TO
+2320  ⌠  TOP HALF INTEGRAL
+2321  ⌡  BOTTOM HALF INTEGRAL
+2248  ≈  ALMOST EQUAL TO
+22C5  ⋅  DOT OPERATOR
+221A  √  SQUARE ROOT
+207F  ⁿ  SUPERSCRIPT LATIN SMALL LETTER N
+220E  ∎  END OF PROOF
diff --git a/keymaps/i386/fgGIod/trf.map b/keymaps/i386/fgGIod/trf.map
deleted file mode 100644 (file)
index 1590579..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-charset "iso-8859-9"
-strings as usual
-
-keycode   1 = Escape Escape
-       alt       keycode   1 = Meta_Escape
-keycode   2 = one exclam asciitilde
-       alt       keycode   2 = Meta_one
-       alt shift keycode   2 = Meta_exclam
-keycode   3 = two at ampersand
-       control   keycode   3 = nul
-       control shift keycode 3 = nul
-       alt       keycode   3 = Meta_two
-       alt shift keycode   3 = Meta_at
-keycode   4 = three quotedbl numbersign
-       control   keycode   4 = Escape
-       alt       keycode   4 = Meta_three
-       alt shift keycode   4 = Meta_quotedbl
-keycode   5 = four apostrophe dollar
-       control   keycode   5 = Control_backslash
-       alt       keycode   5 = Meta_four
-       alt shift keycode   5 = Meta_apostrophe
-keycode   6 = five parenleft less
-       control   keycode   6 = Control_bracketright
-       alt       keycode   6 = Meta_five
-       alt shift keycode   6 = Meta_parenleft
-keycode   7 = six slash greater
-       control   keycode   7 = Control_asciicircum
-       alt       keycode   7 = Meta_six
-       alt shift keycode   7 = Meta_slash
-keycode   8 = seven parenright braceleft
-       control   keycode   8 = Control_underscore
-       alt       keycode   8 = Meta_seven
-       alt shift keycode   8 = Meta_parenright
-keycode   9 = eight underscore braceleft
-       control   keycode   9 = Delete
-       alt       keycode   9 = Meta_eight
-       alt shift keycode   9 = Meta_underscore
-keycode  10 = nine percent bracketleft
-       alt       keycode  10 = Meta_nine
-       alt shift keycode  10 = Meta_percent
-keycode  11 = zero colon bracketright
-       alt       keycode  11 = Meta_zero
-       alt shift keycode  11 = Meta_colon
-keycode  12 = x
-       control   keycode  12 = Control_underscore
-       control shift keycode 12 = Control_underscore
-keycode  13 = q
-keycode  14 = Delete   Delete
-       alt       keycode  14 = Meta_Delete
-keycode  15 = Tab
-       alt       keycode  15 = Meta_Tab
-keycode  16 = f
-keycode  17 = g
-keycode  18 = +0360 +0320
-keycode  19 = +0375 +I
-       altgr keycode 19 = +0356
-       altgr shift keycode 19 = +0316
-keycode  20 = o
-       altgr keycode 20 = +0364
-       altgr shift keycode 20 = +0324
-keycode  21 = d
-keycode  22 = r
-keycode  23 = n
-keycode  24 = h
-keycode  25 = p
-keycode  26 = semicolon asterisk
-       control   keycode  26 = Escape
-       alt       keycode  26 = Meta_semicolon
-       alt shift keycode  26 = Meta_asterisk
-keycode  27 = asciicircum grave
-       control   keycode  27 = Control_bracketright
-       alt       keycode  27 = Meta_asciicircum
-       alt shift keycode  27 = Meta_grave
-keycode  28 = Return
-       alt       keycode  28 = 0x080d
-keycode  29 = Control
-keycode  30 = u
-       altgr keycode 30 = +0373
-       altgr shift keycode 30 = +0333
-keycode  31 = +i +0335
-keycode  32 = e
-keycode  33 = a
-       altgr keycode 33 = +0342
-       altgr shift keycode 33 = +0302
-keycode  34 = +0374 +0334
-keycode  35 = t
-keycode  36 = k
-keycode  37 = m
-keycode  38 = l
-keycode  39 = y
-keycode  40 = +0376 +0336
-       control   keycode  40 = Control_g
-keycode  41 = w
-       control   keycode  41 = nul
-keycode  42 = Shift
-keycode  43 = equal plus
-       control   keycode  43 = Control_backslash
-       alt       keycode  43 = Meta_equal
-       alt shift keycode  43 = Meta_plus
-keycode  44 = j
-keycode  45 = +0366 +0326
-keycode  46 = v
-keycode  47 = c
-keycode  48 = +0347 +0307
-keycode  49 = z
-keycode  50 = s
-keycode  51 = b
-keycode  52 = period question
-       control   keycode  52 = Delete
-       alt       keycode  52 = Meta_period
-       alt shift keycode  52 = Meta_question
-keycode  53 = comma minus slash
-       alt       keycode  53 = Meta_comma
-       alt shift keycode  53 = Meta_minus
-keycode  54 = Shift
-keycode  55 = KP_Multiply
-keycode  56 = Alt
-keycode  57 = space
-       control   keycode  57 = nul
-       alt       keycode  57 = Meta_space
-keycode  58 = Caps_Lock
-keycode  59 = F1 F11 Console_13
-       control   keycode  59 = F1
-       alt       keycode  59 = Console_1
-       control alt keycode 59 = Console_1
-keycode  60 = F2 F12 Console_14
-       control   keycode  60 = F2
-       alt       keycode  60 = Console_2
-       control alt keycode 60 = Console_2
-keycode  61 = F3 F13 Console_15
-       control   keycode  61 = F3
-       alt       keycode  61 = Console_3
-       control alt keycode 61 = Console_3
-keycode  62 = F4 F14 Console_16
-       control   keycode  62 = F4
-       alt       keycode  62 = Console_4
-       control alt keycode 62 = Console_4
-keycode  63 = F5 F15 Console_17
-       control   keycode  63 = F5
-       alt       keycode  63 = Console_5
-       control alt keycode 63 = Console_5
-keycode  64 = F6 F16 Console_18
-       control   keycode  64 = F6
-       alt       keycode  64 = Console_6
-       control alt keycode 64 = Console_6
-keycode  65 = F7 F17 Console_19
-       control   keycode  65 = F7
-       alt       keycode  65 = Console_7
-       control alt keycode 65 = Console_7
-keycode  66 = F8 F18 Console_20
-       control   keycode  66 = F8
-       alt       keycode  66 = Console_8
-       control alt keycode 66 = Console_8
-keycode  67 = F9 F19 Console_21
-       control   keycode  67 = F9
-       alt       keycode  67 = Console_9
-       control alt keycode 67 = Console_9
-keycode  68 = F10 F20 Console_22
-       control   keycode  68 = F10
-       alt       keycode  68 = Console_10
-       control alt keycode 68 = Console_10
-keycode  69 = Num_Lock
-keycode  70 = Scroll_Lock Show_Memory Show_Registers
-       control   keycode  70 = Show_State
-       alt       keycode  70 = Scroll_Lock
-keycode  71 = KP_7
-       alt       keycode  71 = Ascii_7
-keycode  72 = KP_8
-       alt       keycode  72 = Ascii_8
-keycode  73 = KP_9
-       alt       keycode  73 = Ascii_9
-keycode  74 = KP_Subtract
-keycode  75 = KP_4
-       alt       keycode  75 = Ascii_4
-keycode  76 = KP_5
-       alt       keycode  76 = Ascii_5
-keycode  77 = KP_6
-       alt       keycode  77 = Ascii_6
-keycode  78 = KP_Add
-keycode  79 = KP_1
-       alt       keycode  79 = Ascii_1
-keycode  80 = KP_2
-       alt       keycode  80 = Ascii_2
-keycode  81 = KP_3
-       alt       keycode  81 = Ascii_3
-keycode  82 = KP_0
-       alt       keycode  82 = Ascii_0
-keycode  83 = KP_Period
-       altgr control keycode 83 = Boot
-       control alt   keycode 83 = Boot
-keycode  84 = Last_Console
-keycode  85 =
-keycode  86 = backslash bar
-       alt       keycode  86 = Meta_backslash
-       alt shift keycode  86 = Meta_bar
-keycode  87 = F11 F11 Console_23
-       control   keycode  87 = F11
-       alt       keycode  87 = Console_11
-       control alt keycode 87 = Console_11
-keycode  88 = F12 F12 Console_24
-       control   keycode  88 = F12
-       alt       keycode  88 = Console_12
-       control alt keycode 88 = Console_12
-keycode  89 =
-keycode  90 =
-keycode  91 =
-keycode  92 =
-keycode  93 =
-keycode  94 =
-keycode  95 =
-keycode  96 = KP_Enter
-keycode  97 = Control
-keycode  98 = KP_Divide
-keycode  99 = Control_backslash
-       control   keycode  99 = Control_backslash
-       alt       keycode  99 = Control_backslash
-keycode 100 = AltGr
-keycode 101 = Break
-keycode 102 = Find
-keycode 103 = Up
-keycode 104 = Prior
-       shift     keycode 104 = Scroll_Backward
-keycode 105 = Left
-        alt       keycode 105 = Decr_Console
-keycode 106 = Right
-        alt       keycode 106 = Incr_Console
-keycode 107 = Select
-keycode 108 = Down
-keycode 109 = Next
-       shift     keycode 109 = Scroll_Forward
-keycode 110 = Insert
-keycode 111 = Delete   Delete
-       alt   keycode 111 = Meta_Delete
-keycode 112 =
-keycode 113 =
-keycode 114 =
-keycode 115 =
-keycode 116 =
-keycode 117 =
-keycode 118 =
-keycode 119 =
-keycode 120 =
-keycode 121 =
-keycode 122 =
-keycode 123 =
-keycode 124 =
-keycode 125 =
-keycode 126 =
-keycode 127 =
diff --git a/keymaps/i386/qwerty/lt.l4.map b/keymaps/i386/qwerty/lt.l4.map
deleted file mode 100644 (file)
index 077eead..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#encoding: UTF-8
-#     Lithuanian key-map for PC 101/102 keyboard in ISO 8859-4 mode. V1.0.
-# Comments & bug reports to: Ričardas Čepas <rch@pub.osf.lt>
-# Load after loading lt.map. See lt.map for more info.
-# Usage: kbd_mode -a; loadkeys lt.map lt.l4.map; setfont lat4u* -m vga2iso
-
-charset "iso-8859-4"
-
-#              U+0105           U+0104 
-AltGr          keycode   2 = +aogonek
-Shift  AltGr   keycode   2 = +Aogonek
-
-#              U+010d           U+010c 
-AltGr          keycode   3 = +ccaron
-Shift  AltGr   keycode   3 = +Ccaron
-
-#              U+0119           U+0118 
-AltGr          keycode   4 = +eogonek
-Shift  AltGr   keycode   4 = +Eogonek
-
-#              U+0117           U+0116 
-AltGr          keycode   5 = +eabovedot
-Shift  AltGr   keycode   5 = +Eabovedot
-
-#              U+012f           U+012e 
-AltGr          keycode   6 = +iogonek
-Shift  AltGr   keycode   6 = +Iogonek
-
-#              U+0161           U+0160 
-AltGr          keycode   7 = +scaron
-Shift  AltGr   keycode   7 = +Scaron
-
-#              U+0173           U+0172 
-AltGr          keycode   8 = +uogonek
-Shift  AltGr   keycode   8 = +Uogonek
-
-#              U+016b           U+016a 
-AltGr          keycode   9 = +umacron
-Shift  AltGr   keycode   9 = +Umacron
-
-# not available in ISO 8859-4  low_double_comma_quotation_mark „ U+201e
-AltGr          keycode  10 =   0x90
-
-# not available in ISO 8859-4  double_turned_comma_quotation_mark “ U+201c
-AltGr          keycode  11 =   0x91
-
-Shift          Control         keycode  12 = hyphen
-Shift  AltGr   Control         keycode  12 = hyphen
-Shift                  Alt     keycode  12 = minus
-Shift  AltGr           Alt     keycode  12 = minus
-Shift          Control Alt     keycode  12 = hyphen
-Shift  AltGr   Control Alt     keycode  12 = hyphen
-
-#              U+017e           U+017d 
-AltGr          keycode  13 = +zcaron
-Shift  AltGr   keycode  13 = +Zcaron
-
-               Control Alt     keycode  40 = quotedbl
-       AltGr   Control Alt     keycode  40 = quotedbl
-Shift          Control Alt     keycode  40 = quotedbl
-Shift  AltGr   Control Alt     keycode  40 = quotedbl
-
-Shift          Control         keycode  57 = nobreakspace
-Shift  AltGr   Control         keycode  57 = nobreakspace
-Shift          Control Alt     keycode  57 = nobreakspace
-Shift  AltGr   Control Alt     keycode  57 = nobreakspace
diff --git a/keymaps/i386/qwerty/se.readme b/keymaps/i386/qwerty/se.readme
deleted file mode 100644 (file)
index e1a888f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-The swedish maps are identical to the finnish ones.
-Use fi*.map.
diff --git a/man/Makefile b/man/Makefile
new file mode 100644 (file)
index 0000000..730e029
--- /dev/null
@@ -0,0 +1,9 @@
+install:
+       for i in man?; do \
+               install -d -m 755 $(MANDIR)/$$i; \
+               install -m 644 $$i/*.[0-9] $(MANDIR)/$$i; \
+       done
+       rm -f $(MANDIR)/man5/keytables.5
+
+clean:
+       rm -f man1/dumpkeys.1 man1/loadkeys.1 man8/setfont.8
similarity index 100%
rename from man1/chvt.1
rename to man/man1/chvt.1
similarity index 100%
rename from man1/deallocvt.1
rename to man/man1/deallocvt.1
similarity index 100%
rename from man1/dumpkeys.1.in
rename to man/man1/dumpkeys.1.in
similarity index 100%
rename from man1/kbd_mode.1
rename to man/man1/kbd_mode.1
similarity index 100%
rename from man1/loadkeys.1.in
rename to man/man1/loadkeys.1.in
similarity index 67%
rename from man1/psfaddtable.1
rename to man/man1/psfaddtable.1
index 7bdaf40..7ff36f6 100644 (file)
@@ -4,8 +4,7 @@
 psfaddtable \- add a Unicode character table to a console font
 .SH SYNOPSIS
 .B psfaddtable
-.I fontfile tablefile
-.RI [ outfile ]
+.I fontfile tablefile outfile
 .SH DESCRIPTION
 .IX "psfaddtable command" "" "\fLpsfaddtable\fR command"  
 .LP
@@ -16,13 +15,10 @@ and merges it with the Unicode character table given by
 .I tablefile
 to produce a font file with an embedded character table, which is
 written to
-.I outfile
-if given, or else to standard output.  Either
-.I fontfile
-or
-.I outfile
-(but not both) can be replaced by a single dash (\-) to read from
-standard input instead.  If the
+.IR outfile .
+An input file name of "\-" denotes standard input,
+and an output file name of "\-" denotes standard output.
+If the
 .I fontfile
 already contains an embedded character table, it is ignored.
 .SH TABLE FILE FORMAT
@@ -35,12 +31,15 @@ or contain a sequence of numbers in either decimal (default), octal
 .IR 0 ),
 or hexadecimal (preceded by
 .IR 0x )
-format.  The first number on each line indicates the glyph slot in the
+format, separated by spaces or tabs.
+The first number on each line indicates the glyph slot in the
 font that is being referred to, this is between 0 and 0xff for a
 256-character font and 0 and 0x1ff for a 512-character font.  Any
 subsequent numbers on the same line are Unicodes matched by this
-specific glyph slot.  It is permissible to have multiple lines for the
-same glyph.
+specific glyph slot.  Instead of a single Unicode one may have
+a sequence of Unicodes separates by commas, to denote that the
+glyph depicts the corresponding composed symbol.
+It is permissible to have multiple lines for the same glyph.
 .SH "SEE ALSO"
 .BR setfont (8),
 .BR psfgettable (1),
similarity index 100%
rename from man1/psfgettable.1
rename to man/man1/psfgettable.1
similarity index 61%
rename from man1/psfstriptable.1
rename to man/man1/psfstriptable.1
index bb471cd..ffb81e4 100644 (file)
@@ -4,20 +4,18 @@
 psfstriptable \- remove the embedded Unicode character table from a console font
 .SH SYNOPSIS
 .B psfstriptable
-.I fontfile
-.RI [ outfile ]
+.I fontfile outfile
 .SH DESCRIPTION
 .IX "psfstriptable command" "" "\fLpsfstriptable\fR command"  
 .LP
 .B psfstriptable
 reads a .psf format console font from 
 .IR fontfile ,
-or standard input if
-.I fontfile
-is a single dash (\-), which may have
-an embedded Unicode font table, and writes (to standard output or the
-specified file) a .psf format console font file without an embedded
-character table.
+removes the embedded Unicode font table if there is one,
+and writes the result to
+.IR outfile .
+An input file name of "\-" denotes standard input,
+and an output file name of "\-" denotes standard output.
 .SH "SEE ALSO"
 .BR setfont (8),
 .BR psfaddtable (1),
similarity index 100%
rename from man1/setleds.1
rename to man/man1/setleds.1
similarity index 100%
rename from man1/setmetamode.1
rename to man/man1/setmetamode.1
similarity index 100%
rename from man1/showkey.1
rename to man/man1/showkey.1
similarity index 99%
rename from man5/keymaps.5
rename to man/man5/keymaps.5
index 7e55e25..7b43afa 100644 (file)
@@ -1,3 +1,5 @@
+.\" keymaps.5 - Copyright (C) Andries Brouwer 1998
+.\" May be freely distributed.
 .\" @(#)keymaps.5 1.10 940130 aeb
 .TH KEYMAPS 5 "24 April 1998"
 .SH NAME
similarity index 100%
rename from man8/getkeycodes.8
rename to man/man8/getkeycodes.8
diff --git a/man/man8/kbdrate.8 b/man/man8/kbdrate.8
new file mode 100644 (file)
index 0000000..66715de
--- /dev/null
@@ -0,0 +1,68 @@
+.\" Copyright 1992, 1994 Rickard E. Faith (faith@cs.unc.edu)
+.\" May be distributed under the GNU General Public License
+.\" Updated Wed Jun 22 21:09:43 1994, faith@cs.unc.edu
+.\"
+.TH KBDRATE 8 "22 June 1994" "Linux 1.1.19" "Linux Programmer's Manual"
+.SH NAME
+kbdrate \- reset the keyboard repeat rate and delay time
+.SH SYNOPSIS
+.B "kbdrate [ \-s ] [ \-r"
+rate
+.B "] [ \-d"
+delay
+.B ]
+.SH DESCRIPTION
+.B kbdrate
+is used to change the keyboard repeat rate and delay time.  The delay
+is the amount of time that a key must be depressed before it will start to
+repeat.
+
+Using
+.B kbdrate
+without any options will reset the repeat rate to 10.9 characters per second (cps)
+and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
+These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
+to 5 cps and the delay to 200 ms.
+
+.SH OPTIONS
+.TP
+.B \-s
+Silent.  No messages are printed.
+.TP
+.BI \-r " rate"
+Change the keyboard repeat rate to
+.I rate
+cps.   For Intel-based systems, the allowable range is from 2.0 to 30.0 cps.
+Only certain, specific values are possible, and the program will select the
+nearest possible value to the one specified.  The possible values are given,
+in characters per second, as follows: 2.0, 2.1, 2.3, 2.5, 2.7, 3.0, 3.3, 3.7,
+4.0, 4.3, 4.6, 5.0, 5.5, 6.0, 6.7, 7.5, 8.0, 8.6, 9.2, 10.0, 10.9, 12.0, 13.3,
+15.0, 16.0, 17.1, 18.5, 20.0, 21.8, 24.0, 26.7, 30.0.
+For SPARC-based systems, the allowable range is from 0 (no repeat) to 50 cps.
+.TP
+.BI \-d " delay"
+Change the delay to
+.I delay
+milliseconds.
+For Intel-based systems, the allowable range is from 250 to 1000 ms,
+in 250 ms steps. For SPARC systems, possible values are between 10 ms and 1440 ms,
+in 10 ms steps.
+.SH BUGS
+Not all keyboards support all rates.
+.PP
+Not all keyboards have the rates mapped in the same way.
+.PP
+Setting the repeat rate on the Gateway AnyKey keyboard does not work.  If
+someone with a Gateway figures out how to program the keyboard, please send
+mail to util-linux@math.uio.no.
+.PP
+All this is very architecture dependent.
+Nowadays
+.B kbdrate
+first tries the KDKBDREP and KIOCSRATE ioctls.
+(The former usually works on an m68k machine, the latter for SPARC.)
+When these ioctls fail an ioport interface as on i386 is assumed.
+.SH FILES
+.I /etc/rc.local
+.br
+.I /dev/port
similarity index 100%
rename from man8/loadunimap.8
rename to man/man8/loadunimap.8
similarity index 100%
rename from man8/mapscrn.8
rename to man/man8/mapscrn.8
similarity index 100%
rename from man8/resizecons.8
rename to man/man8/resizecons.8
similarity index 92%
rename from man8/setfont.8.in
rename to man/man8/setfont.8.in
index 6d929d1..8a13307 100644 (file)
@@ -6,9 +6,9 @@ setfont \- load EGA/VGA console screen font
 .B setfont
 .RI "[-O " "font+umap.orig" ]
 .RI "[-o " "font.orig" "] [-om " "cmap.orig" "] [-ou " "umap.orig" ]
-.RI "[-" "N" "] [" "font.new" ]
-.RI "[-m " "cmap"
-.RI "[-u " "umap" "]
+.RI "[-" "N" "] [" "font.new ..." ]
+.RI "[-m " "cmap" ]
+.RI "[-u " "umap" ]
 .RI "[-h" "H" ]
 .RI "[-v] [-V]"
 .IX "setfont command" "" "\fLsetfont\fR command"
@@ -29,6 +29,9 @@ If no args are given (or only the option
 for some number
 .IR N ),
 then a default font is loaded (see below).
+One may give several fonts small fonts, all containing
+a unicode table, and
+.B setfont will combine them and load the union.
 With the \-v option,
 .B setfont
 will be verbose.
@@ -51,7 +54,7 @@ Font files are binary files of size 256*N bytes, containing
 bit images for each of 256 characters, one byte per scan line, and
 N bytes per character (0 < N <= 32).
 Also .psf files are accepted; these files have the same format
-but an additional 4 byte header, and may have 512 instead of 256
+but an additional header, and may have an arbitrary number of
 characters, and additional Unicode mapping info.
 
 The ordering of the symbols in the font is described by a
similarity index 100%
rename from man8/setkeycodes.8
rename to man/man8/setkeycodes.8
index fc0ecf8..c183e7b 100644 (file)
@@ -8,8 +8,8 @@ OBJ=openvt.o getfd.o
 PROG=openvt
 PROGS=$(PROG)
 MAN=openvt.1
-BINDIR=/usr/bin
-MANDIR=/usr/man/man1
+BINDIR=${DESTDIR}/usr/bin
+MANDIR=${DESTDIR}/usr/man/man1
 
 all: $(PROGS)
 
@@ -24,6 +24,7 @@ realclean distclean: clean
        -rm -f $(PROGS)
 
 install: $(PROGS)
+       install -d -m 755 $(BINDIR) $(MANDIR)
        install -c $(PROGS) $(BINDIR)
        install -c $(MAN)  $(MANDIR)
 
diff --git a/openvt/nls.h b/openvt/nls.h
new file mode 100644 (file)
index 0000000..899aff9
--- /dev/null
@@ -0,0 +1,33 @@
+
+#include "../defines.h"                /* for HAVE_locale_h */
+
+#ifndef PACKAGE
+#define PACKAGE        "kbd"
+#endif
+
+#ifndef LOCALEDIR
+#define LOCALEDIR "/usr/share/locale"
+#endif
+
+#ifdef HAVE_locale_h
+# include <locale.h>
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(Text) gettext (Text)
+# ifdef gettext_noop
+#  define N_(String) gettext_noop (String)
+# else
+#  define N_(String) (String)
+# endif
+#else
+# undef bindtextdomain
+# define bindtextdomain(Domain, Directory) /* empty */
+# undef textdomain
+# define textdomain(Domain) /* empty */
+# define _(Text) (Text)
+# define N_(Text) (Text)
+#endif
+
+
index 2f968ae..0525500 100644 (file)
  *
  * Fixed some bugs; made it a bit more robust; renamed to openvt
  *  aeb@cwi.nl, 1998-06-06.
+ * Applied patch by Chuck Martin <cmartin@bigfoot.com>, i18n, aeb, 990316.
  */
 
 #include "openvt.h"
+#include "nls.h"
 
-const char *version = "openvt 1.4a - (c) Jon Tombs 1994";
+const char *version = "openvt 1.4b - (c) Jon Tombs 1994";
 
 #ifndef VTNAME
 #error vt device name must be defined in openvt.h
@@ -40,6 +42,7 @@ main(int argc, char *argv[])
    struct vt_stat vtstat;
    int vtno     = -1;
    int fd       = -1;
+   int consfd   = -1;
    char optc   = FALSE;
    char show    = FALSE;
    char login   = FALSE;
@@ -61,7 +64,7 @@ main(int argc, char *argv[])
          optc = 1;             /* vtno was specified by the user */
          vtno = (int) atol(optarg);
          if (vtno <= 0 || vtno > 63) {   
-           fprintf(stderr, "openvt: %s illegal vt number\n", optarg); 
+           fprintf(stderr, _("openvt: %s: illegal vt number\n"), optarg); 
            return 5;
          }
          /* close security holes - until we can do this safely */
@@ -85,7 +88,7 @@ main(int argc, char *argv[])
        case 'u':
           /* we'll let 'em get away with the meaningless -ul combo */
           if(getuid()) {
-               fprintf(stderr,"%s: only root can use the -u flag.\n",argv[0]);
+               fprintf(stderr, _("openvt: only root can use the -u flag.\n"));
                exit(1);
           }
          as_user = TRUE;
@@ -96,32 +99,33 @@ main(int argc, char *argv[])
       }
    }
 
-   fd = getfd();
-   if (fd < 0) {
+   consfd = getfd();
+   if (consfd < 0) {
       fprintf(stderr,
-             "Couldnt get a file descriptor referring to the console\n");
+             _("Couldnt get a file descriptor referring to the console\n"));
       return(2);
    }
 
-   if (ioctl(fd, VT_GETSTATE, &vtstat) < 0) {
-       perror("openvt: can't get VTstate\n");
+   if (ioctl(consfd, VT_GETSTATE, &vtstat) < 0) {
+       perror("openvt: VT_GETSTATE");
         return(4);
    }
 
    if (vtno == -1) {
-     if ((ioctl(fd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
-        perror("openvt: Cannot find a free VT\n");
+     if ((ioctl(consfd, VT_OPENQRY, &vtno) < 0) || (vtno == -1)) {
+        perror("openvt: VT_OPENQRY");
+       fprintf(stderr, _("openvt: cannot find a free vt\n"));
         return(3);
      }
    } else if (!force) {
      if (vtno >= 16) {
-        fprintf(stderr, "openvt: cannot check whether vt %d is free\n", vtno);
-       fprintf(stderr, "        use `openvt -f' to force.\n");
+        fprintf(stderr, _("openvt: cannot check whether vt %d is free\n"), vtno);
+       fprintf(stderr, _("        use `openvt -f' to force.\n"));
        return(7);
      }
      if (vtstat.v_state & (1 << vtno)) {
-        fprintf(stderr, "openvt: vt %d is in use; command aborted\n", vtno);
-       fprintf(stderr, "        use `openvt -f' to force.\n");
+        fprintf(stderr, _("openvt: vt %d is in use; command aborted\n"), vtno);
+       fprintf(stderr, _("        use `openvt -f' to force.\n"));
        return(7);
      }
    }
@@ -148,7 +152,7 @@ main(int argc, char *argv[])
              }
              sprintf(vtname, VTNAME, vtno);
       }
-      fprintf(stderr, "openvt: Unable to open %s: %s\n",
+      fprintf(stderr, _("openvt: Unable to open %s: %s\n"),
              vtname, strerror(errsv));
       return(5);
    }
@@ -159,8 +163,9 @@ got_vtno:
       Check that the real user can access this VT.
       We assume getty has made any in use VT non accessable */
    if (access(vtname, R_OK | W_OK) < 0) {
-      fprintf(stderr, "openvt: Cannot open %s read/write (%s)\n", vtname,
-            strerror(errno));
+      int errsv = errno;
+      fprintf(stderr, _("openvt: Cannot open %s read/write (%s)\n"),
+             vtname, strerror(errsv));
       return (5);
    }
 
@@ -197,7 +202,7 @@ got_vtno:
    }
 
    if (verbose)
-       fprintf(stderr, "openvt: using VT %s\n", vtname);
+       fprintf(stderr, _("openvt: using VT %s\n"), vtname);
        
    fflush(stderr);
 
@@ -207,39 +212,42 @@ got_vtno:
       if (setpgrp() < 0) {
 #else
       if (setsid() < 0) {
-#endif      
-        fprintf(stderr, "openvt: Unable to set new session (%s)\n",
-       strerror(errno));
+#endif
+        int errsv = errno;
+        fprintf(stderr, _("openvt: Unable to set new session (%s)\n"),
+               strerror(errsv));
       }
       close(0);                        /* so that new vt becomes stdin */
 
       /* and grab new one */
       if ((fd = open(vtname, O_RDWR)) == -1) { /* strange ... */
-       fprintf(stderr, "\nopenvt: could not open %s R/W (%s)\n",
-               vtname, strerror(errno));
+        int errsv = errno;
+       fprintf(stderr, _("\nopenvt: could not open %s R/W (%s)\n"),
+               vtname, strerror(errsv));
        fflush(stderr);
         _exit (1);             /* maybe above user limit? */
       }
 
       if (show) {
          if (ioctl(fd, VT_ACTIVATE, vtno)) {
+            int errsv = errno;
            fprintf(stderr, "\nopenvt: could not activate vt %d (%s)\n",
-                   vtno, strerror(errno));
+                   vtno, strerror(errsv));
            fflush(stderr);
            _exit (1); /* probably fd does not refer to a tty device file */
         }
 
         if (ioctl(fd, VT_WAITACTIVE, vtno)){
+            int errsv = errno;
            fprintf(stderr, "\nopenvt: activation interrupted? (%s)\n",
-                   strerror(errno));
+                   strerror(errsv));
            fflush(stderr);
            _exit (1);
         }
       }
       close(1);
       close(2);
-      if (fd > 2)
-        close(fd);      
+      close(consfd);
       dup(fd);
       dup(fd);
 
@@ -260,9 +268,20 @@ got_vtno:
    if ( do_wait ) {
       wait(NULL);
       if (show) { /* Switch back... */
-        (void) ioctl(fd, VT_ACTIVATE, vtstat.v_active);
+        if (ioctl(consfd, VT_ACTIVATE, vtstat.v_active)) {
+           perror("VT_ACTIVATE");
+           return 8;
+        }
         /* wait to be really sure we have switched */
-        (void) ioctl(fd, VT_WAITACTIVE, vtstat.v_active);
+        if (ioctl(consfd, VT_WAITACTIVE, vtstat.v_active)) {
+           perror("VT_WAITACTIVE");
+           return 8;
+        }
+        if (ioctl(consfd, VT_DISALLOCATE, vtno)) {
+          fprintf(stderr, _("openvt: could not deallocate console %d\n"),
+                  vtno);
+          return(8);
+        }
       }
    }
 
index cb7c3d7..50ad758 100644 (file)
@@ -1,6 +1,8 @@
 PACKAGE = kbd
 VERSION = 0.99
 
+include ../make_include
+
 #
 # po2tbl.sed is not taken from /usr/share/gettext/intl
 # Often it is not present.
@@ -59,7 +61,7 @@ INSTOBJEXT = .mo
        sed -f $(PO2TBL) < $< > $*.msg \
          && rm -f $@ && $(GENCAT) $@ $*.msg
 
-all: all-yes
+all: all-$(HAVE_XGETTEXT)
 
 all-yes: cat-id-tbl.c $(CATALOGS)
 all-no:
@@ -84,7 +86,7 @@ stamp-cat-id: kbd.pot
        fi
        rm -f stamp-cat-id && echo timestamp > stamp-cat-id
 
-install: install-data-yes
+install: install-data-$(HAVE_XGETTEXT)
 install-data-no: all
 install-data-yes: all
        ../mkinstalldirs $(datadir);
index c4b3ab0..7775d48 100644 (file)
@@ -15,13 +15,14 @@ src/getfd.c
 src/getkeycodes.c
 src/getunimap.c
 src/kbd_mode.c
+src/kbdrate.c
 src/kdfontop.c
 src/ksyms.c
 src/loadunimap.c
 src/mapscrn.c
-src/psfaddtable.c
-src/psfgettable.c
-src/psfstriptable.c
+src/outpsfheader.c
+src/psffontop.c
+src/psfxtable.c
 src/resizecons.c
 src/screendump.c
 src/setfont.c
@@ -34,4 +35,5 @@ src/showkey.c
 src/spawn_console.c
 src/spawn_login.c
 src/wctomb.c
-src/loadkeys.y
+src/xmalloc.c
+src/version.h
index 5c990f3..b3b92ae 100644 (file)
@@ -8,40 +8,54 @@
 
 const struct _msg_ent _msg_tbl[] = {
   {"", 1},
-  {"usage: chvt N\n", 2},
-  {"usage: %s [N1 N2 ...]\n", 3},
-  {"%s: deallocating all unused consoles failed\n", 4},
-  {"%s: 0: illegal VT number\n", 5},
-  {"%s: VT 1 is the console and cannot be deallocated\n", 6},
-  {"%s: could not deallocate console %d\n", 7},
-  {"KDGKBENT error at index 0 in table %d: ", 8},
-  {"%s: cannot find any keymaps?\n", 9},
-  {"%s: plain map not allocated? very strange ...\n", 10},
-  {"KDGKBENT error at index %d in table %d: ", 11},
-  {"keycode range supported by kernel:           1 - %d\n", 12},
-  {"max number of actions bindable to a key:         %d\n", 13},
-  {"number of keymaps in actual use:                 %d\n", 14},
-  {"of which %d dynamically allocated\n", 15},
-  {"ranges of action codes supported by kernel:\n", 16},
-  {"number of function keys supported by kernel: %d\n", 17},
-  {"max nr of compose definitions: %d\n", 18},
-  {"nr of compose definitions in actual use: %d\n", 19},
+  {"openvt: %s: illegal vt number\n", 2},
+  {"openvt: only root can use the -u flag.\n", 3},
+  {"Couldnt get a file descriptor referring to the console\n", 4},
+  {"openvt: cannot find a free vt\n", 5},
+  {"openvt: cannot check whether vt %d is free\n", 6},
+  {"        use `openvt -f' to force.\n", 7},
+  {"openvt: vt %d is in use; command aborted\n", 8},
+  {"openvt: Unable to open %s: %s\n", 9},
+  {"openvt: Cannot open %s read/write (%s)\n", 10},
+  {"openvt: using VT %s\n", 11},
+  {"openvt: Unable to set new session (%s)\n", 12},
+  {"\
+\n\
+openvt: could not open %s R/W (%s)\n", 13},
+  {"openvt: could not deallocate console %d\n", 14},
+  {"usage: chvt N\n", 15},
+  {"%s: deallocating all unused consoles failed\n", 16},
+  {"%s: 0: illegal VT number\n", 17},
+  {"%s: VT 1 is the console and cannot be deallocated\n", 18},
+  {"%s: could not deallocate console %d\n", 19},
+  {"KDGKBENT error at index 0 in table %d: ", 20},
+  {"%s: cannot find any keymaps?\n", 21},
+  {"%s: plain map not allocated? very strange ...\n", 22},
+  {"KDGKBENT error at index %d in table %d: ", 23},
+  {"keycode range supported by kernel:           1 - %d\n", 24},
+  {"max number of actions bindable to a key:         %d\n", 25},
+  {"number of keymaps in actual use:                 %d\n", 26},
+  {"of which %d dynamically allocated\n", 27},
+  {"ranges of action codes supported by kernel:\n", 28},
+  {"number of function keys supported by kernel: %d\n", 29},
+  {"max nr of compose definitions: %d\n", 30},
+  {"nr of compose definitions in actual use: %d\n", 31},
   {"\
 Symbols recognized by %s:\n\
 (numeric value, symbol)\n\
-\n", 20},
+\n", 32},
   {"\
 \n\
 The following synonyms are recognized:\n\
-\n", 21},
-  {"%-15s for %s\n", 22},
+\n", 33},
+  {"%-15s for %s\n", 34},
   {"\
 \n\
-Recognized modifier names and their column numbers:\n", 23},
-  {"# not alt_is_meta: on keymap %d key %d is bound to", 24},
-  {"impossible: not meta?\n", 25},
-  {"KDGKBSENT failed at index %d: ", 26},
-  {"dumpkeys version %s", 27},
+Recognized modifier names and their column numbers:\n", 35},
+  {"# not alt_is_meta: on keymap %d key %d is bound to", 36},
+  {"impossible: not meta?\n", 37},
+  {"KDGKBSENT failed at index %d: ", 38},
+  {"dumpkeys version %s", 39},
   {"\
 \n\
 usage: dumpkeys [options...]\n\
@@ -57,105 +71,130 @@ valid options are:\n\
 \t   --funcs-only\t    display only the function key strings\n\
 \t   --keys-only\t    display only key bindings\n\
 \t   --compose-only   display only compose key combinations\n\
-\t-c --charset=iso-8859-{1,2,3,4,5,7,8,9}\n\
-\t             koi8-{r,u}\t\t\n\
+\t-c --charset=", 40},
+  {"\
 \t\t\t    interpret character action codes to be from the\n\
-\t\t\t    specified character set\n", 28},
-  {"Out of Memory\n", 29},
-  {"Out of Memory?\n", 30},
-  {"error executing  %s\n", 31},
-  {"Couldnt get a file descriptor referring to the console\n", 32},
-  {"usage: getkeycodes\n", 33},
-  {"Plain scancodes xx (hex) versus keycodes (dec)\n", 34},
-  {"0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n", 35},
+\t\t\t    specified character set\n", 41},
+  {"error executing  %s\n", 42},
+  {"usage: getkeycodes\n", 43},
+  {"Plain scancodes xx (hex) versus keycodes (dec)\n", 44},
+  {"0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n", 45},
   {"\
 \n\
 \n\
-Escaped scancodes e0 xx (hex)\n", 36},
-  {"failed to get keycode for scancode 0x%x\n", 37},
-  {"strange... ct changed from %d to %d\n", 38},
-  {"usage: kbd_mode [-a|-u|-k|-s]\n", 39},
-  {"kbd_mode: error reading keyboard mode\n", 40},
-  {"The keyboard is in raw (scancode) mode\n", 41},
-  {"The keyboard is in mediumraw (keycode) mode\n", 42},
-  {"The keyboard is in the default (ASCII) mode\n", 43},
-  {"The keyboard is in Unicode (UTF-8) mode\n", 44},
-  {"The keyboard is in some unknown mode\n", 45},
-  {"%s: error setting keyboard mode\n", 46},
-  {"setfont bug: getfont called with count<256\n", 47},
-  {"unknown charset %s - ignoring charset request\n", 48},
-  {"assuming iso-8859-2 %s\n", 49},
-  {"assuming iso-8859-3 %s\n", 50},
-  {"assuming iso-8859-4 %s\n", 51},
-  {"unknown keysym '%s'\n", 52},
-  {"usage: %s [-o map.orig] map-file\n", 53},
-  {"trying hashlevel %d\n", 54},
-  {"%s: out of memory\n", 55},
-  {"Loading unicode map from file %s\n", 56},
-  {"%s: %s: Warning: line too long\n", 57},
-  {"Bad input line: %s\n", 58},
-  {"%s: Glyph number (0x%x) larger than font length\n", 59},
-  {"%s: Bad end of range (0x%x)\n", 60},
+Escaped scancodes e0 xx (hex)\n", 46},
+  {"failed to get keycode for scancode 0x%x\n", 47},
+  {"\
+Usage:\n\
+\t%s [-s]\n", 48},
+  {"strange... ct changed from %d to %d\n", 49},
+  {"usage: kbd_mode [-a|-u|-k|-s]\n", 50},
+  {"kbd_mode: error reading keyboard mode\n", 51},
+  {"The keyboard is in raw (scancode) mode\n", 52},
+  {"The keyboard is in mediumraw (keycode) mode\n", 53},
+  {"The keyboard is in the default (ASCII) mode\n", 54},
+  {"The keyboard is in Unicode (UTF-8) mode\n", 55},
+  {"The keyboard is in some unknown mode\n", 56},
+  {"%s: error setting keyboard mode\n", 57},
+  {"Typematic Rate set to %.1f cps (delay = %d ms)\n", 58},
+  {"Cannot open /dev/port", 59},
+  {"kdfontop.c: only width 8 supported\n", 60},
+  {"bug: getfont called with count<256\n", 61},
+  {"unknown charset %s - ignoring charset request\n", 62},
+  {"assuming iso-8859-1 %s\n", 63},
+  {"assuming iso-8859-15 %s\n", 64},
+  {"assuming iso-8859-2 %s\n", 65},
+  {"assuming iso-8859-3 %s\n", 66},
+  {"assuming iso-8859-4 %s\n", 67},
+  {"unknown keysym '%s'\n", 68},
+  {"plus before %s ignored\n", 69},
+  {"usage: %s [-o map.orig] [map-file]\n", 70},
+  {"trying hashlevel %d\n", 71},
+  {"Loading unicode map from file %s\n", 72},
+  {"%s: %s: Warning: line too long\n", 73},
+  {"Bad input line: %s\n", 74},
+  {"%s: Glyph number (0x%x) larger than font length\n", 75},
+  {"%s: Bad end of range (0x%x)\n", 76},
   {"\
 %s: Corresponding to a range of font positions, there should be a Unicode \
-range\n", 61},
-  {"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n", 62},
+range\n", 77},
+  {"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n", 78},
   {"\
 %s: Unicode range U+%x-U+%x not of the same length as font position range \
-0x%x-0x%x\n", 63},
-  {"%s: trailing junk (%s) ignored\n", 64},
+0x%x-0x%x\n", 79},
+  {"%s: trailing junk (%s) ignored\n", 80},
   {"\
 %s: not loading empty unimap\n\
-(if you insist: use option -f to override)\n", 65},
-  {"%s: out of memory?\n", 66},
-  {"entry", 67},
-  {"entries", 68},
-  {"Saved unicode map on `%s'\n", 69},
-  {"Appended Unicode map\n", 70},
-  {"mapscrn: cannot open map file _%s_\n", 71},
-  {"Cannot stat map file", 72},
-  {"Loading symbolic screen map from file %s\n", 73},
-  {"Error parsing symbolic map\n", 74},
-  {"Loading binary screen map from file %s\n", 75},
-  {"Cannot read map from file", 76},
-  {"Loaded screen map from `%s'\n", 77},
-  {"mapscrn: format error detected in _%s_\n", 78},
-  {"Error writing map to file", 79},
-  {"Saved screen map in `%s'\n", 80},
+(if you insist: use option -f to override)\n", 81},
+  {"%s: out of memory?\n", 82},
+  {"entry", 83},
+  {"entries", 84},
+  {"Saved unicode map on `%s'\n", 85},
+  {"Appended Unicode map\n", 86},
+  {"usage: %s [-o map.orig] map-file\n", 87},
+  {"mapscrn: cannot open map file _%s_\n", 88},
+  {"Cannot stat map file", 89},
+  {"Loading symbolic screen map from file %s\n", 90},
+  {"Error parsing symbolic map\n", 91},
+  {"Loading binary screen map from file %s\n", 92},
+  {"Cannot read map from file", 93},
+  {"Loaded screen map from `%s'\n", 94},
+  {"mapscrn: format error detected in _%s_\n", 95},
+  {"Error writing map to file", 96},
+  {"Saved screen map in `%s'\n", 97},
+  {"%s: short ucs2 unicode table\n", 98},
+  {"%s: short utf8 unicode table\n", 99},
+  {"%s: bad utf8\n", 100},
+  {"%s: short unicode table\n", 101},
+  {"%s: Error reading input font", 102},
+  {"%s: Bad call of readpsffont\n", 103},
+  {"%s: Unsupported psf file mode (%d)\n", 104},
+  {"%s: Unsupported psf version (%d)\n", 105},
+  {"%s: zero input font length?\n", 106},
+  {"%s: zero input character size?\n", 107},
+  {"%s: Input file: bad input length (%d)\n", 108},
+  {"%s: Input file: trailing garbage\n", 109},
+  {"appendunicode: illegal unicode %u\n", 110},
+  {"%s: Warning: line too long\n", 111},
+  {"%s: Bad input line: %s\n", 112},
+  {"%s: Glyph number (0x%lx) past end of font\n", 113},
+  {"%s: Bad end of range (0x%lx)\n", 114},
   {"\
-Usage: \n\
-        %s psffont chartable [outfile]\n", 81},
-  {"%s: Cannot read psf header\n", 82},
-  {"%s: Bad magic number\n", 83},
-  {"%s: Unknown mode number (%d)\n", 84},
-  {"%s: Warning: line too long\n", 85},
+Usage:\n\
+\t%s infont intable outfont\n", 115},
+  {"\
+Usage:\n\
+\t%s infont [outtable]\n", 116},
+  {"\
+Usage:\n\
+\t%s infont outfont\n", 117},
   {"\
-Usage: \n\
-        %s psffont [outfile]\n", 86},
-  {"%s: Font has no character table\n", 87},
-  {"%s: Font already had no character table\n", 88},
-  {"resizecons: cannot find videomode file %s\n", 89},
-  {"Invalid number of lines\n", 90},
-  {"Old mode: %dx%d  New mode: %dx%d\n", 91},
-  {"Old #scanlines: %d  New #scanlines: %d  Character height: %d\n", 92},
-  {"resizecons: the command `%s' failed\n", 93},
+Usage:\n\
+\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n", 118},
+  {"%s: Bad magic number on %s\n", 119},
+  {"%s: psf file with unknown magic\n", 120},
+  {"%s: input font does not have an index\n", 121},
+  {"resizecons: cannot find videomode file %s\n", 122},
+  {"Invalid number of lines\n", 123},
+  {"Old mode: %dx%d  New mode: %dx%d\n", 124},
+  {"Old #scanlines: %d  New #scanlines: %d  Character height: %d\n", 125},
+  {"resizecons: the command `%s' failed\n", 126},
   {"\
-resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n", 94},
+resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n", 127},
   {"\
 resizecons:\n\
 call is:  resizecons COLSxROWS  or:  resizecons COLS ROWS\n\
 or: resizecons -lines ROWS, with ROWS one of 25, 28, 30, 34, 36, 40, 44, 50, \
-60\n", 95},
-  {"resizecons: cannot get I/O permissions.\n", 96},
-  {"usage: screendump [n]\n", 97},
-  {"Out of memory?\n", 98},
-  {"Error reading %s\n", 99},
-  {"Out of memory.\n", 100},
-  {"couldn't read %s, and cannot ioctl dump\n", 101},
-  {"Strange ... screen is both %dx%d and %dx%d ??\n", 102},
-  {"Error writing screendump\n", 103},
+60\n", 128},
+  {"resizecons: cannot get I/O permissions.\n", 129},
+  {"usage: screendump [n]\n", 130},
+  {"Error reading %s\n", 131},
+  {"couldn't read %s, and cannot ioctl dump\n", 132},
+  {"couldn't read %s\n", 133},
+  {"Strange ... screen is both %dx%d and %dx%d ??\n", 134},
+  {"Error writing screendump\n", 135},
   {"\
-Usage: setfont [write-options] [-<N>] [newfont] [-m consolemap] [-u \
+Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u \
 unicodemap]\n\
   write-options (take place before file loading):\n\
     -o  <filename>\tWrite current font to <filename>\n\
@@ -175,48 +214,51 @@ be loaded and, in the case of consolemaps, activated.\n\
     -u none\tSuppress loading of a unicode map.\n\
     -v\t\tBe verbose.\n\
     -V\t\tPrint version and exit.\n\
-Files are loaded from the current directory or /usr/lib/kbd/*/.\n", 104},
-  {"setfont version %s\n", 105},
+Files are loaded from the current directory or /usr/lib/kbd/*/.\n", 136},
+  {"setfont: too many input files\n", 137},
   {"\
 setfont: cannot both restore from character ROM and from file. Font \
-unchanged.\n", 106},
-  {"Bad character size %d\n", 107},
-  {"Loading %d-char 8x%d font from file %s\n", 108},
-  {"Loading Unicode mapping table...\n", 109},
+unchanged.\n", 138},
+  {"Bad character size %d\n", 139},
+  {"%s: font position 32 is nonblank\n", 140},
+  {"%s: wiped it\n", 141},
+  {"%s: background will look funny\n", 142},
+  {"Loading %d-char 8x%d font from file %s\n", 143},
+  {"Loading %d-char 8x%d font\n", 144},
+  {"%s: bug in do_loadtable\n", 145},
+  {"Loading Unicode mapping table...\n", 146},
   {"\
 It seems this kernel is older than 1.1.92\n\
-No Unicode mapping table loaded.\n", 110},
-  {"Cannot find default font\n", 111},
-  {"Cannot find %s font\n", 112},
-  {"Cannot open font file %s\n", 113},
-  {"Error reading input font", 114},
-  {"\
-Setfont is so naive as to believe that font files\n\
-have a size of at most 32kB.  Unfortunately it seems\n\
-that you encountered an exception.  If this really is\n\
-a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n", 115},
-  {"Unsupported psf file mode\n", 116},
-  {"Input file: bad length\n", 117},
-  {"Bad input file size\n", 118},
+No Unicode mapping table loaded.\n", 147},
+  {"Cannot open font file %s\n", 148},
+  {"When loading several fonts, all must be psf fonts - %s isn't\n", 149},
+  {"Read %d-char 8x%d font from file %s\n", 150},
+  {"When loading several fonts, all must have the same pointsize\n", 151},
+  {"Cannot find default font\n", 152},
+  {"Cannot find %s font\n", 153},
+  {"No final newline in combine file\n", 154},
+  {"Too many files to combine\n", 155},
+  {"Hmm - a font from restorefont? Using the first half.\n", 156},
+  {"Bad input file size\n", 157},
   {"\
 This file contains 3 fonts: 8x8, 8x14 and 8x16. Please indicate\n\
-using an option -8 or -14 or -16 which one you want loaded.\n", 119},
-  {"You asked for font size %d, but only 8, 14, 16 are possible here.\n", 120},
-  {"Cannot write font file header", 121},
-  {"Found nothing to save\n", 122},
-  {"Cannot write font file", 123},
-  {"Saved %d-char 8x%d font file on %s\n", 124},
+using an option -8 or -14 or -16 which one you want loaded.\n", 158},
+  {"You asked for font size %d, but only 8, 14, 16 are possible here.\n", 159},
+  {"Cannot write font file header", 160},
+  {"Found nothing to save\n", 161},
+  {"Cannot write font file", 162},
+  {"Saved %d-char 8x%d font file on %s\n", 163},
   {"\
 usage: setkeycode scancode keycode ...\n\
  (where scancode is either xx or e0xx, given in hexadecimal,\n\
-  and keycode is given in decimal)\n", 125},
-  {"even number of arguments expected", 126},
-  {"error reading scancode", 127},
-  {"code outside bounds", 128},
-  {"failed to set scancode %x to keycode %d\n", 129},
+  and keycode is given in decimal)\n", 164},
+  {"even number of arguments expected", 165},
+  {"error reading scancode", 166},
+  {"code outside bounds", 167},
+  {"failed to set scancode %x to keycode %d\n", 168},
   {"\
 Usage:\n\
-\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll ]]\n\
+\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll %s]]\n\
 Thus,\n\
 \tsetleds +caps -num\n\
 will set CapsLock, clear NumLock and leave ScrollLock unchanged.\n\
@@ -226,48 +268,52 @@ Normally, setleds influences the vt flag settings\n\
 (and these are usually reflected in the leds).\n\
 With -L, setleds only sets the leds, and leaves the flags alone.\n\
 With -D, setleds sets both the flags and the default flags, so\n\
-that a subsequent reset will not change the flags.\n", 130},
-  {"Error reading current led setting. Maybe stdin is not a VT?\n", 131},
-  {"Error reading current flags setting. Maybe an old kernel?\n", 132},
-  {"Error resetting ledmode\n", 133},
-  {"Current default flags:  ", 134},
-  {"Current flags:          ", 135},
-  {"Current leds:           ", 136},
+that a subsequent reset will not change the flags.\n", 169},
+  {"Error reading current led setting. Maybe stdin is not a VT?\n", 170},
+  {"Error reading current flags setting. Maybe an old kernel?\n", 171},
+  {"Error reading current led setting from /dev/kbd.\n", 172},
+  {"KIOCGLED unavailable?\n", 173},
+  {"KIOCSLED unavailable?\n", 174},
+  {"Error opening /dev/kbd.\n", 175},
+  {"Error resetting ledmode\n", 176},
+  {"Current default flags:  ", 177},
+  {"Current flags:          ", 178},
+  {"Current leds:           ", 179},
   {"\
 unrecognized argument: _%s_\n\
-\n", 137},
-  {"Old default flags:    ", 138},
-  {"New default flags:    ", 139},
-  {"Old flags:            ", 140},
-  {"New flags:            ", 141},
-  {"Old leds:             ", 142},
-  {"New leds:             ", 143},
+\n", 180},
+  {"Old default flags:    ", 181},
+  {"New default flags:    ", 182},
+  {"Old flags:            ", 183},
+  {"New flags:            ", 184},
+  {"Old leds:             ", 185},
+  {"New leds:             ", 186},
   {"\
 Usage:\n\
 \tsetmetamode [ metabit | meta | bit | escprefix | esc | prefix ]\n\
 Each vt has his own copy of this bit. Use\n\
 \tsetmetamode [arg] < /dev/ttyn\n\
 to change the settings of another vt.\n\
-The setting before and after the change are reported.\n", 144},
-  {"Meta key sets high order bit\n", 145},
-  {"Meta key gives Esc prefix\n", 146},
-  {"Strange mode for Meta key?\n", 147},
-  {"Error reading current setting. Maybe stdin is not a VT?\n", 148},
-  {"old state:    ", 149},
-  {"new state:    ", 150},
-  {"usage: %s\n", 151},
-  {"failed to restore original translation table\n", 152},
+The setting before and after the change are reported.\n", 187},
+  {"Meta key sets high order bit\n", 188},
+  {"Meta key gives Esc prefix\n", 189},
+  {"Strange mode for Meta key?\n", 190},
+  {"Error reading current setting. Maybe stdin is not a VT?\n", 191},
+  {"old state:    ", 192},
+  {"new state:    ", 193},
+  {"usage: %s\n", 194},
+  {"failed to restore original translation table\n", 195},
   {"\
 usage: showfont\n\
-(probably after loading a font with `setfont font')\n", 153},
-  {"cannot change translation table\n", 154},
-  {"cannot change translation table??\n", 155},
-  {"?UNKNOWN?", 156},
-  {"kb mode was %s\n", 157},
+(probably after loading a font with `setfont font')\n", 196},
+  {"cannot change translation table\n", 197},
+  {"cannot change translation table??\n", 198},
+  {"?UNKNOWN?", 199},
+  {"kb mode was %s\n", 200},
   {"\
 [ if you are trying this under X, it might not work\n\
-since the X server is also reading /dev/console ]\n", 158},
-  {"caught signal %d, cleaning up...\n", 159},
+since the X server is also reading /dev/console ]\n", 201},
+  {"caught signal %d, cleaning up...\n", 202},
   {"\
 showkey version %s\n\
 \n\
@@ -278,70 +324,17 @@ valid options are:\n\
 \t-h --help\tdisplay this help text\n\
 \t-a --ascii\tdisplay the decimal/octal/hex values of the keys\n\
 \t-s --scancodes\tdisplay only the raw scan-codes\n\
-\t-k --keycodes\tdisplay only the interpreted keycodes (default)\n", 160},
+\t-k --keycodes\tdisplay only the interpreted keycodes (default)\n", 203},
   {"\
 \n\
 Press any keys - Ctrl-D will terminate this program\n\
-\n", 161},
-  {"press any key (program terminates 10s after last keypress)...\n", 162},
-  {"keycode %3d %s\n", 163},
-  {"release", 164},
-  {"press", 165},
-  {"'%s' is not a function key symbol", 166},
-  {"too many (%d) entries on one line", 167},
-  {"too many keydefinitions on one line", 168},
-  {"\
-loadkeys version %s\n\
-\n\
-Usage: loadkeys [option...] [mapfile...]\n\
-\n\
-valid options are:\n\
-\n\
-\t-c --clearcompose clear kernel compose table\n\
-\t-d --default\t  load \"", 169},
-  {"syntax error in map file\n", 170},
-  {"key bindings not changed\n", 171},
-  {"includes nested too deeply", 172},
-  {"switching to %s\n", 173},
-  {"cannot open include file %s", 174},
-  {"Cannot find %s\n", 175},
-  {"cannot open file %s\n", 176},
-  {"Loading %s\n", 177},
-  {"addmap called with bad index %d", 178},
-  {"adding map %d violates explicit keymaps line", 179},
-  {"killkey called with bad index %d", 180},
-  {"killkey called with bad table %d", 181},
-  {"addkey called with bad index %d", 182},
-  {"addkey called with bad table %d", 183},
-  {"%s: addfunc called with bad func %d\n", 184},
-  {"%s: addfunc: func_buf overflow\n", 185},
-  {"compose table overflow\n", 186},
-  {"Keymap %d: Permission denied\n", 187},
-  {"    FAILED", 188},
-  {"failed to bind key %d to value %d\n", 189},
-  {"deallocate keymap %d\n", 190},
-  {"%s: could not deallocate keymap %d\n", 191},
-  {"%s: cannot deallocate or clear keymap\n", 192},
-  {"%s: failed to restore keyboard mode\n", 193},
-  {"\
-%s: warning: this map uses Unicode symbols\n\
-    (perhaps you want to do `kbd_mode -u'?)\n", 194},
-  {"failed to bind string '%s' to function %s\n", 195},
-  {"failed to clear string %s\n", 196},
-  {"too many compose definitions\n", 197},
-  {"impossible error in do_constant", 198},
-  {"\
-\n\
-Changed %d %s and %d %s.\n", 199},
-  {"key", 200},
-  {"keys", 201},
-  {"string", 202},
-  {"strings", 203},
-  {"Loaded %d compose %s.\n", 204},
-  {"definition", 205},
-  {"definitions", 206},
-  {"(No change in compose definitions.)\n", 207},
-  {"loadkeys: don't know how to compose for %s\n", 208},
+\n", 204},
+  {"press any key (program terminates 10s after last keypress)...\n", 205},
+  {"keycode %3d %s\n", 206},
+  {"release", 207},
+  {"press", 208},
+  {"%s: out of memory\n", 209},
+  {"%s from %s\n", 210},
 };
 
-int _msg_tbl_length = 208;
+int _msg_tbl_length = 210;
index 066f49b..196bf12 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: kbd 0.99\n"
-"POT-Creation-Date: 1999-03-14 20:57+0100\n"
+"POT-Creation-Date: 1999-10-08 20:28+0200\n"
 "PO-Revision-Date: 1999-03-08 11:58+0100\n"
 "Last-Translator: Andries Brouwer <aeb@cwi.nl>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -13,91 +13,153 @@ msgstr ""
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: src/chvt.c:23
-msgid "usage: chvt N\n"
-msgstr "aanroep: chvt N\n"
+#: openvt/openvt.c:67
+#, c-format
+msgid "openvt: %s: illegal vt number\n"
+msgstr "openvt: %s: niet-toegestaan VT nummer\n"
+
+#: openvt/openvt.c:91
+msgid "openvt: only root can use the -u flag.\n"
+msgstr "openvt: alleen root mag de -u optie gebruiken\n"
+
+#: openvt/openvt.c:105 src/getfd.c:63
+msgid "Couldnt get a file descriptor referring to the console\n"
+msgstr "Het lukte me niet een referentie (fd) naar het console te krijgen\n"
+
+#: openvt/openvt.c:117
+msgid "openvt: cannot find a free vt\n"
+msgstr "openvt: kan geen vrije vt vinden\n"
+
+#: openvt/openvt.c:122
+#, c-format
+msgid "openvt: cannot check whether vt %d is free\n"
+msgstr "openvt: kan niet nagaan of vt %d vrij is\n"
+
+#: openvt/openvt.c:123 openvt/openvt.c:128
+msgid "        use `openvt -f' to force.\n"
+msgstr "        gebruik `openvt -f' om dit af te dwingen.\n"
+
+#: openvt/openvt.c:127
+#, c-format
+msgid "openvt: vt %d is in use; command aborted\n"
+msgstr "openvt: vt %d is in gebruik; commando afgebroken\n"
+
+#: openvt/openvt.c:155
+#, c-format
+msgid "openvt: Unable to open %s: %s\n"
+msgstr "openvt: Kan %s niet openen: %s\n"
+
+#: openvt/openvt.c:167
+#, c-format
+msgid "openvt: Cannot open %s read/write (%s)\n"
+msgstr "openvt: Kan %s niet openen voor lezen en schrijven (%s)\n"
+
+#: openvt/openvt.c:205
+#, c-format
+msgid "openvt: using VT %s\n"
+msgstr "openvt: ik gebruik VT %s\n"
+
+#: openvt/openvt.c:217
+#, c-format
+msgid "openvt: Unable to set new session (%s)\n"
+msgstr "openvt: Kan geen nieuwe sessie starten (%s)\n"
 
-#: src/deallocvt.c:18
+#: openvt/openvt.c:225
 #, c-format
-msgid "usage: %s [N1 N2 ...]\n"
-msgstr "aanroep: %s [N1 N2 ...]\n"
+msgid ""
+"\n"
+"openvt: could not open %s R/W (%s)\n"
+msgstr "\nopenvt: Kan %s niet openen voor lezen en schrijven (%s)\n"
+
+#: openvt/openvt.c:281
+#, fuzzy, c-format
+msgid "openvt: could not deallocate console %d\n"
+msgstr "openvt: kon console %d niet opruimen\n"
+
+#: src/chvt.c:22
+msgid "usage: chvt N\n"
+msgstr "aanroep: chvt N\n"
 
-#: src/deallocvt.c:41
+#: src/deallocvt.c:35
 #, c-format
 msgid "%s: deallocating all unused consoles failed\n"
 msgstr "%s: het opruimen van alle ongebruikte consoles faalde\n"
 
-#: src/deallocvt.c:49
+#: src/deallocvt.c:43
 #, c-format
 msgid "%s: 0: illegal VT number\n"
 msgstr "%s: 0: niet-toegestaan VT nummer\n"
 
-#: src/deallocvt.c:52
+#: src/deallocvt.c:46
+#, c-format
 msgid "%s: VT 1 is the console and cannot be deallocated\n"
 msgstr "%s: VT 1 is het console en kan niet opgeruimd worden\n"
 
-#: src/deallocvt.c:57
+#: src/deallocvt.c:51
 #, c-format
 msgid "%s: could not deallocate console %d\n"
 msgstr "%s: kon console %d niet opruimen\n"
 
-#: src/dumpkeys.c:63
+#: src/dumpkeys.c:64
 #, c-format
 msgid "KDGKBENT error at index 0 in table %d: "
 msgstr "KDGKBENT fout bij index 0 in tabel %d: "
 
-#: src/dumpkeys.c:76
+#: src/dumpkeys.c:77
+#, c-format
 msgid "%s: cannot find any keymaps?\n"
 msgstr "%s: kan geen toetsenbordtabellen vinden?\n"
 
-#: src/dumpkeys.c:81
+#: src/dumpkeys.c:82
+#, c-format
 msgid "%s: plain map not allocated? very strange ...\n"
 msgstr "%s: geen gewone toetsenbordtabel? vreemd ...\n"
 
-#: src/dumpkeys.c:111
+#: src/dumpkeys.c:114
+#, c-format
 msgid "KDGKBENT error at index %d in table %d: "
 msgstr "KDGKBENT fout bij index %d in tabel %d: "
 
-#: src/dumpkeys.c:228
+#: src/dumpkeys.c:242
 #, c-format
 msgid "keycode range supported by kernel:           1 - %d\n"
 msgstr "deze kernel kent de toetscodes in het interval: 1 - %d\n"
 
-#: src/dumpkeys.c:230
+#: src/dumpkeys.c:244
 #, c-format
 msgid "max number of actions bindable to a key:         %d\n"
 msgstr "aantal bekende toetsacties:                     %d\n"
 
-#: src/dumpkeys.c:233
+#: src/dumpkeys.c:247
 #, c-format
 msgid "number of keymaps in actual use:                 %d\n"
 msgstr "aantal toetsenbordtabellen nu in gebruik:       %d\n"
 
-#: src/dumpkeys.c:236
+#: src/dumpkeys.c:250
 #, c-format
 msgid "of which %d dynamically allocated\n"
 msgstr "waarvan %d dynamisch gealloceerd\n"
 
-#: src/dumpkeys.c:237
+#: src/dumpkeys.c:251
 msgid "ranges of action codes supported by kernel:\n"
 msgstr "intervallen van actiecodes die deze kernel kent:\n"
 
-#: src/dumpkeys.c:242
+#: src/dumpkeys.c:256
 #, c-format
 msgid "number of function keys supported by kernel: %d\n"
 msgstr "aantal functietoetsen ondersteund door deze kernel: %d\n"
 
-#: src/dumpkeys.c:245
+#: src/dumpkeys.c:259
 #, c-format
 msgid "max nr of compose definitions: %d\n"
 msgstr "maximum aantal definities van samengestelde symbolen: %d\n"
 
-#: src/dumpkeys.c:247
+#: src/dumpkeys.c:261
 #, c-format
 msgid "nr of compose definitions in actual use: %d\n"
 msgstr "huidig aantal definities van samengestelde symbolen: %d\n"
 
-#: src/dumpkeys.c:270
+#: src/dumpkeys.c:285
 #, c-format
 msgid ""
 "Symbols recognized by %s:\n"
@@ -108,7 +170,7 @@ msgstr ""
 "(getalswaarde, symbool)\n"
 "\n"
 
-#: src/dumpkeys.c:282
+#: src/dumpkeys.c:298
 msgid ""
 "\n"
 "The following synonyms are recognized:\n"
@@ -118,12 +180,12 @@ msgstr ""
 "De volgende synoniemen kunnen gebruikt worden:\n"
 "\n"
 
-#: src/dumpkeys.c:284
+#: src/dumpkeys.c:300
 #, c-format
 msgid "%-15s for %s\n"
 msgstr "%-15s voor %s\n"
 
-#: src/dumpkeys.c:286
+#: src/dumpkeys.c:302
 msgid ""
 "\n"
 "Recognized modifier names and their column numbers:\n"
@@ -131,26 +193,27 @@ msgstr ""
 "\n"
 "Namen van Shift-achtige toetsen en de bijbehorende kolommen:\n"
 
-#: src/dumpkeys.c:346
+#: src/dumpkeys.c:365
 #, c-format
 msgid "# not alt_is_meta: on keymap %d key %d is bound to"
 msgstr "# geen alt_is_meta: op tabel %d is toets %d toegewezen aan"
 
-#: src/dumpkeys.c:421
+#: src/dumpkeys.c:440
 msgid "impossible: not meta?\n"
 msgstr "dit kan niet: niet meta?\n"
 
-#: src/dumpkeys.c:477
+#: src/dumpkeys.c:497
 #, c-format
 msgid "KDGKBSENT failed at index %d: "
 msgstr "KDGKBSENT faalde bij index %d: "
 
-#: src/dumpkeys.c:497
+#: src/dumpkeys.c:517
 #, c-format
 msgid "dumpkeys version %s"
 msgstr "dumpkeys versie %s"
 
-#: src/dumpkeys.c:499
+#: src/dumpkeys.c:518
+#, fuzzy
 msgid ""
 "\n"
 "usage: dumpkeys [options...]\n"
@@ -166,10 +229,7 @@ msgid ""
 "\t   --funcs-only\t    display only the function key strings\n"
 "\t   --keys-only\t    display only key bindings\n"
 "\t   --compose-only   display only compose key combinations\n"
-"\t-c --charset=iso-8859-{1,2,3,4,5,7,8,9}\n"
-"\t             koi8-{r,u}\t\t\n"
-"\t\t\t    interpret character action codes to be from the\n"
-"\t\t\t    specified character set\n"
+"\t-c --charset="
 msgstr ""
 "\n"
 "aanroep: dumpkeys [opties...]\n"
@@ -190,37 +250,31 @@ msgstr ""
 "\t             koi8-{r,u}\t\t\n"
 "\t\t\t    interpreteer de symboolnamen als passend in de genoemde standaard\n"
 
-#: src/findfile.c:14
-msgid "Out of Memory\n"
-msgstr "Onvoldoende geheugen\n"
-
-#: src/findfile.c:24
-msgid "Out of Memory?\n"
-msgstr "Onvoldoende geheugen?\n"
+#: src/dumpkeys.c:535
+msgid ""
+"\t\t\t    interpret character action codes to be from the\n"
+"\t\t\t    specified character set\n"
+msgstr ""
 
-#: src/findfile.c:61
+#: src/findfile.c:43
 #, c-format
 msgid "error executing  %s\n"
 msgstr "fout bij het uitvoeren van %s\n"
 
-#: src/getfd.c:57
-msgid "Couldnt get a file descriptor referring to the console\n"
-msgstr "Het lukte me niet een referentie (fd) naar het console te krijgen\n"
-
-#: src/getkeycodes.c:18
+#: src/getkeycodes.c:17
 msgid "usage: getkeycodes\n"
 msgstr "aanroep: getkeycodes\n"
 
-#: src/getkeycodes.c:34
+#: src/getkeycodes.c:33
 msgid "Plain scancodes xx (hex) versus keycodes (dec)\n"
 msgstr "Gewone scancodes xx (hex) met bijbehorende toetscodes (decimaal)\n"
 
-#: src/getkeycodes.c:35
+#: src/getkeycodes.c:34
 msgid "0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n"
 msgstr ""
 "0 is een fout; voor 1-88 (0x01-0x58) zijn scancode en toetscode gelijk\n"
 
-#: src/getkeycodes.c:39
+#: src/getkeycodes.c:38
 msgid ""
 "\n"
 "\n"
@@ -230,132 +284,387 @@ msgstr ""
 "\n"
 "Scancodes voorafgegaan door e0 (hex)\n"
 
-#: src/getkeycodes.c:59
+#: src/getkeycodes.c:58
 #, c-format
 msgid "failed to get keycode for scancode 0x%x\n"
 msgstr "kon geen toetscode vinden bij scancode 0x%x\n"
 
-#: src/getunimap.c:43
+#: src/getunimap.c:45
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s [-s]\n"
+msgstr "Aanroep:\n\t%s [-s]\n"
+
+#: src/getunimap.c:66
 #, c-format
 msgid "strange... ct changed from %d to %d\n"
 msgstr "vreemd... # veranderde van %d in %d\n"
 
-#: src/kbd_mode.c:20
+#: src/kbd_mode.c:19
 msgid "usage: kbd_mode [-a|-u|-k|-s]\n"
 msgstr "aanroep: kbd_mode [-a|-u|-k|-s]\n"
 
-#: src/kbd_mode.c:40
+#: src/kbd_mode.c:39
 msgid "kbd_mode: error reading keyboard mode\n"
 msgstr "kbd_mode: kan de toetsenbordtoestend niet uitlezen\n"
 
-#: src/kbd_mode.c:45
+#: src/kbd_mode.c:44
 msgid "The keyboard is in raw (scancode) mode\n"
 msgstr "Het toetsenbord levert ruwe scancodes af\n"
 
-#: src/kbd_mode.c:48
+#: src/kbd_mode.c:47
 msgid "The keyboard is in mediumraw (keycode) mode\n"
 msgstr "Het toetsenbord levert toetscodes af\n"
 
-#: src/kbd_mode.c:51
+#: src/kbd_mode.c:50
 msgid "The keyboard is in the default (ASCII) mode\n"
 msgstr "Het toetsenbord levert gewone letters af\n"
 
-#: src/kbd_mode.c:54
+#: src/kbd_mode.c:53
 msgid "The keyboard is in Unicode (UTF-8) mode\n"
 msgstr "Het toetsenbord levert Unicode symbolen af\n"
 
-#: src/kbd_mode.c:57
+#: src/kbd_mode.c:56
 msgid "The keyboard is in some unknown mode\n"
 msgstr "Het toetsenbord levert iets onbekends af\n"
 
-#: src/kbd_mode.c:75
+#: src/kbd_mode.c:74
 #, c-format
 msgid "%s: error setting keyboard mode\n"
 msgstr "%s: fout bij het instellen van de toetsenbord toestand\n"
 
-#: src/kdfontop.c:164 src/kdfontop.c:214
-msgid "setfont bug: getfont called with count<256\n"
-msgstr "interne fout in setfont: getfont aangeroepen met count<256\n"
+#: src/kbdrate.c:139 src/kbdrate.c:272
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr ""
+
+#: src/kbdrate.c:247
+msgid "Cannot open /dev/port"
+msgstr "Kan /dev/port niet openen"
 
-#: src/ksyms.c:857
+#: src/kdfontop.c:152
+msgid "kdfontop.c: only width 8 supported\n"
+msgstr "kdfontop.c: alleen breedte 8 wordt ondersteund\n"
+
+#: src/kdfontop.c:178
+msgid "bug: getfont called with count<256\n"
+msgstr "interne fout: getfont aangeroepen met count<256\n"
+
+#: src/ksyms.c:1668
 #, c-format
 msgid "unknown charset %s - ignoring charset request\n"
 msgstr "onbekende standaard %s - invoerregel genegeerd\n"
 
-#: src/ksyms.c:891
+#: src/ksyms.c:1740
+#, c-format
+msgid "assuming iso-8859-1 %s\n"
+msgstr "ik zal %s uit iso-8859-1 nemen\n"
+
+#: src/ksyms.c:1747
+#, c-format
+msgid "assuming iso-8859-15 %s\n"
+msgstr "ik zal %s uit iso-8859-15 nemen\n"
+
+#: src/ksyms.c:1754
 #, c-format
 msgid "assuming iso-8859-2 %s\n"
 msgstr "ik zal %s uit iso-8859-2 nemen\n"
 
-#: src/ksyms.c:898
+#: src/ksyms.c:1761
 #, c-format
 msgid "assuming iso-8859-3 %s\n"
 msgstr "ik zal %s uit iso-8859-3 nemen\n"
 
-#: src/ksyms.c:905
+#: src/ksyms.c:1768
 #, c-format
 msgid "assuming iso-8859-4 %s\n"
 msgstr "ik zal %s uit iso-8859-4 nemen\n"
 
-#: src/ksyms.c:909
+#: src/ksyms.c:1773
 #, c-format
 msgid "unknown keysym '%s'\n"
 msgstr "onbekend symbool '%s'\n"
 
-#: src/loadunimap.c:59 src/mapscrn.c:51
+#: src/ksyms.c:1808
 #, c-format
-msgid "usage: %s [-o map.orig] map-file\n"
-msgstr "aanroep: %s [-o toetsbestand.oud] toetsbestand\n"
+msgid "plus before %s ignored\n"
+msgstr ""
+
+#: loadkeys.y:197
+#, c-format
+msgid "'%s' is not a function key symbol"
+msgstr "'%s' is geen functietoetssymbool"
+
+#: loadkeys.y:260
+#, c-format
+msgid "too many (%d) entries on one line"
+msgstr "teveel (%d) elementen op een regel"
+
+#: loadkeys.y:273
+msgid "too many keydefinitions on one line"
+msgstr "teveel toetsdefinities op een regel"
+
+#: loadkeys.y:292
+#, c-format
+msgid ""
+"loadkeys version %s\n"
+"\n"
+"Usage: loadkeys [option...] [mapfile...]\n"
+"\n"
+"valid options are:\n"
+"\n"
+"\t-c --clearcompose clear kernel compose table\n"
+"\t-d --default\t  load \""
+msgstr ""
+"loadkeys versie %s\n"
+"\n"
+"Aanroep: loadkeys [option...] [mapfile...]\n"
+"\n"
+"geldige opties zijn:\n"
+"\n"
+"\t-c --clearcompose clear kernel compose table\n"
+"\t-d --default\t  load \""
+
+#: loadkeys.y:368
+msgid "syntax error in map file\n"
+msgstr "Fout in het omnummerbestand\n"
+
+#: loadkeys.y:370
+msgid "key bindings not changed\n"
+msgstr "toetsinstellingen onveranderd\n"
+
+#: loadkeys.y:427
+msgid "includes nested too deeply"
+msgstr "include-bestanden te diep genest"
+
+#. start reading include file
+#: loadkeys.y:550
+#, c-format
+msgid "switching to %s\n"
+msgstr "ik lees nu van %s\n"
+
+#: loadkeys.y:556
+#, c-format
+msgid "cannot open include file %s"
+msgstr "Kan het include-bestand %s niet openen"
+
+#: loadkeys.y:603
+#, c-format
+msgid "Cannot find %s\n"
+msgstr "Kan het bestand %s niet vinden\n"
+
+#: loadkeys.y:616
+#, c-format
+msgid "cannot open file %s\n"
+msgstr "Kan het bestand %s niet openen\n"
+
+#: loadkeys.y:627
+#, c-format
+msgid "Loading %s\n"
+msgstr "Fout bij het lezen van %s\n"
+
+#: loadkeys.y:639
+#, c-format
+msgid "addmap called with bad index %d"
+msgstr "addmap aangeroepen met foute index %d"
+
+#: loadkeys.y:643
+#, c-format
+msgid "adding map %d violates explicit keymaps line"
+msgstr "het toevoegen van tabel %d is in strijd met de gegeven `keymaps' regel"
+
+#: loadkeys.y:657
+#, c-format
+msgid "killkey called with bad index %d"
+msgstr "killkey aangeroepen met foute index %d"
+
+#: loadkeys.y:659
+#, c-format
+msgid "killkey called with bad table %d"
+msgstr "killkey aangeroepen met foute tabel %d"
+
+#: loadkeys.y:673
+#, c-format
+msgid "addkey called with bad index %d"
+msgstr "addkey aangeroepen met foute index %d"
+
+#: loadkeys.y:675
+#, c-format
+msgid "addkey called with bad table %d"
+msgstr "addkey aangeroepen met foute tabel %d"
+
+#: loadkeys.y:715
+#, c-format
+msgid "%s: addfunc called with bad func %d\n"
+msgstr "%s: addfunc aangeroepen met foute func %d\n"
+
+#: loadkeys.y:735
+#, c-format
+msgid "%s: addfunc: func_buf overflow\n"
+msgstr "%s: addfunc: func_buf is te klein\n"
+
+#: loadkeys.y:753
+msgid "compose table overflow\n"
+msgstr "de compose-tabel is te klein\n"
+
+#: loadkeys.y:790
+#, c-format
+msgid "Keymap %d: Permission denied\n"
+msgstr "Toettabel %d: dat mag niet\n"
+
+#: loadkeys.y:799
+msgid "    FAILED"
+msgstr "    FAALDE"
+
+#: loadkeys.y:802
+#, c-format
+msgid "failed to bind key %d to value %d\n"
+msgstr "kon toets %d niet de waarde %d toekennen\n"
+
+#: loadkeys.y:813
+#, c-format
+msgid "deallocate keymap %d\n"
+msgstr "geef het geheugen van toetsdefinitietabel %d vrij\n"
+
+#: loadkeys.y:819
+#, c-format
+msgid "%s: could not deallocate keymap %d\n"
+msgstr "%s: kon toetsdefinitietabel %d niet opruimen\n"
+
+#: loadkeys.y:834
+#, c-format
+msgid "%s: cannot deallocate or clear keymap\n"
+msgstr "%s: kan toetsdefinitietabel niet vrijgeven of schoonvegen\n"
+
+#: loadkeys.y:845
+#, c-format
+msgid "%s: failed to restore keyboard mode\n"
+msgstr "%s: fout bij het herstellen van de toetsenbord toestand\n"
+
+#: loadkeys.y:848
+#, c-format
+msgid ""
+"%s: warning: this map uses Unicode symbols\n"
+"    (perhaps you want to do `kbd_mode -u'?)\n"
+msgstr ""
+"%s: waarschuwing: deze toetsenbordtabel gebruikt Unicode symbolen\n"
+"    (misschien wilt u `kbd_mode -u' zeggen?)\n"
+
+#: loadkeys.y:892
+#, c-format
+msgid "failed to bind string '%s' to function %s\n"
+msgstr "kon de string '%s' niet aan de functie %s binden\n"
+
+#: loadkeys.y:899
+#, c-format
+msgid "failed to clear string %s\n"
+msgstr "kon de string %s niet leegmaken\n"
+
+#: loadkeys.y:916
+msgid "too many compose definitions\n"
+msgstr "teveel definities van samengestelde symbolen\n"
+
+#: loadkeys.y:976
+msgid "impossible error in do_constant"
+msgstr "onmogelijke fout in do_constant"
+
+#: loadkeys.y:994
+#, c-format
+msgid ""
+"\n"
+"Changed %d %s and %d %s.\n"
+msgstr ""
+"\n"
+"Veranderde %d %s en %d %s.\n"
+
+#: loadkeys.y:995
+msgid "key"
+msgstr "toets"
+
+#: loadkeys.y:995
+msgid "keys"
+msgstr "toetsen"
+
+#: loadkeys.y:996
+msgid "string"
+msgstr "string"
+
+#: loadkeys.y:996
+msgid "strings"
+msgstr "strings"
+
+#: loadkeys.y:998
+#, c-format
+msgid "Loaded %d compose %s.\n"
+msgstr "%d %s voor samengestelde symbolen geladen\n"
+
+#: loadkeys.y:999
+msgid "definition"
+msgstr "definitie"
+
+#: loadkeys.y:999
+msgid "definitions"
+msgstr "definities"
+
+#: loadkeys.y:1001
+msgid "(No change in compose definitions.)\n"
+msgstr "(Geen wijziging in definities van samengestelde symbolen.)\n"
+
+#: loadkeys.y:1034
+#, c-format
+msgid "loadkeys: don't know how to compose for %s\n"
+msgstr ""
+"loadkeys: ik ken de definities van de samengestelde symbolen voor %s niet\n"
+
+#: src/loadunimap.c:57
+#, c-format
+msgid "usage: %s [-o map.orig] [map-file]\n"
+msgstr "aanroep: %s [-o toetsbestand.oud] [toetsbestand]\n"
 
 #: src/loadunimap.c:109
 #, c-format
 msgid "trying hashlevel %d\n"
 msgstr "ik probeer hash niveau %d\n"
 
-#: src/loadunimap.c:124
-#, c-format
-msgid "%s: out of memory\n"
-msgstr "%s: onvoldoende geheugen\n"
-
-#: src/loadunimap.c:149
+#: src/loadunimap.c:146
 #, c-format
 msgid "Loading unicode map from file %s\n"
 msgstr "Zal Unicode toetsbestand %s laden\n"
 
-#: src/loadunimap.c:155
+#: src/loadunimap.c:152
 #, c-format
 msgid "%s: %s: Warning: line too long\n"
 msgstr "%s: %s: Waarschuwing: regel te lang\n"
 
-#: src/loadunimap.c:177 src/loadunimap.c:188 src/psfaddtable.c:204
-#: src/psfaddtable.c:217
+#: src/loadunimap.c:174 src/loadunimap.c:185
 #, c-format
 msgid "Bad input line: %s\n"
 msgstr "Invoer fout in de regel: %s\n"
 
-#: src/loadunimap.c:198 src/psfaddtable.c:228
+#: src/loadunimap.c:195
 #, c-format
 msgid "%s: Glyph number (0x%x) larger than font length\n"
 msgstr "%s: Tekennummer (0x%x) groter dan fontgrootte\n"
 
-#: src/loadunimap.c:204 src/psfaddtable.c:235
+#: src/loadunimap.c:201
 #, c-format
 msgid "%s: Bad end of range (0x%x)\n"
 msgstr "%s: Fout intervaleind (0x%x)\n"
 
-#: src/loadunimap.c:224 src/psfaddtable.c:260
+#: src/loadunimap.c:221 src/psfxtable.c:167
 #, c-format
 msgid ""
 "%s: Corresponding to a range of font positions, there should be a Unicode "
 "range\n"
 msgstr "%s: Bj een interval van fontposities hoort een Unicode interval\n"
 
-#: src/loadunimap.c:233 src/psfaddtable.c:270
+#: src/loadunimap.c:230 src/psfxtable.c:176
 #, c-format
 msgid "%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n"
 msgstr "%s: Fout Unicode interval bij fontpositieinterval 0x%x-0x%x\n"
 
-#: src/loadunimap.c:240 src/psfaddtable.c:278
+#: src/loadunimap.c:237 src/psfxtable.c:183
 #, c-format
 msgid ""
 "%s: Unicode range U+%x-U+%x not of the same length as font position range "
@@ -364,12 +673,12 @@ msgstr ""
 "%s: Unicode interval U+%x-U+%x niet even lang als fontpositie interval "
 "0x%x-0x%x\n"
 
-#: src/loadunimap.c:258 src/psfaddtable.c:297
+#: src/loadunimap.c:255 src/psfxtable.c:204
 #, c-format
 msgid "%s: trailing junk (%s) ignored\n"
 msgstr "%s: rommel (%s) aan het eind genegeerd\n"
 
-#: src/loadunimap.c:264
+#: src/loadunimap.c:261
 #, c-format
 msgid ""
 "%s: not loading empty unimap\n"
@@ -378,146 +687,238 @@ msgstr ""
 "%s: ik laad geen lege Unicodetabel\n"
 "(als je dat echt wilt, gebruik de -f [forceer] optie)\n"
 
-#: src/loadunimap.c:285
+#: src/loadunimap.c:282
 #, c-format
 msgid "%s: out of memory?\n"
 msgstr "%s: onvoldoende geheugen?\n"
 
-#: src/loadunimap.c:295
+#: src/loadunimap.c:292
 msgid "entry"
 msgstr "element"
 
-#: src/loadunimap.c:295
+#: src/loadunimap.c:292
 msgid "entries"
 msgstr "elementen"
 
-#: src/loadunimap.c:321
+#: src/loadunimap.c:318
 #, c-format
 msgid "Saved unicode map on `%s'\n"
 msgstr "Heb de Unicodetabel weggeschreven in `%s'\n"
 
-#: src/loadunimap.c:353
+#: src/loadunimap.c:338
 msgid "Appended Unicode map\n"
 msgstr "Heb de Unicodetabel toegevoegd\n"
 
-#: src/mapscrn.c:68
+#: src/mapscrn.c:55
+#, c-format
+msgid "usage: %s [-o map.orig] map-file\n"
+msgstr "aanroep: %s [-o toetsbestand.oud] toetsbestand\n"
+
+#: src/mapscrn.c:72
 #, c-format
 msgid "mapscrn: cannot open map file _%s_\n"
 msgstr "mapscrn: kan het omnummerbestand _%s_ niet openen\n"
 
-#: src/mapscrn.c:73
+#: src/mapscrn.c:77
 msgid "Cannot stat map file"
 msgstr "De stat() aanroep faalt op het omnummerbestand"
 
-#: src/mapscrn.c:78
+#: src/mapscrn.c:82
 #, c-format
 msgid "Loading symbolic screen map from file %s\n"
 msgstr "Zal het symbolische omnummerbestand %s laden\n"
 
-#: src/mapscrn.c:82
+#: src/mapscrn.c:86
 msgid "Error parsing symbolic map\n"
 msgstr "Fout bij het ontleden van het symbolische omnummerbestand\n"
 
-#: src/mapscrn.c:86
+#: src/mapscrn.c:90
 #, c-format
 msgid "Loading binary screen map from file %s\n"
 msgstr "Zal het binaire omnummerbestand %s laden\n"
 
-#: src/mapscrn.c:90
+#: src/mapscrn.c:94
 msgid "Cannot read map from file"
 msgstr "Fout bij het lezen van het omnummerbestand"
 
-#: src/mapscrn.c:103
+#: src/mapscrn.c:107
 #, c-format
 msgid "Loaded screen map from `%s'\n"
 msgstr "Afbeeldingsbestand uit `%s' geladen\n"
 
-#: src/mapscrn.c:149
+#: src/mapscrn.c:153
 #, c-format
 msgid "mapscrn: format error detected in _%s_\n"
 msgstr "mapscrn: syntax fout ontdekt in _%s_\n"
 
-#: src/mapscrn.c:172
+#: src/mapscrn.c:176
 msgid "Error writing map to file"
 msgstr "Fout bij het schrijven van het omnummerbestand"
 
-#: src/mapscrn.c:178
+#: src/mapscrn.c:182
 #, c-format
 msgid "Saved screen map in `%s'\n"
 msgstr "Huidige omnummering weggeschreven in het bestand `%s'\n"
 
-#: src/psfaddtable.c:33
+#: src/psffontop.c:52
 #, c-format
-msgid ""
-"Usage: \n"
-"        %s psffont chartable [outfile]\n"
+msgid "%s: short ucs2 unicode table\n"
+msgstr "%s: te korte UCS2 Unicode tabel\n"
+
+#: src/psffontop.c:79
+#, c-format
+msgid "%s: short utf8 unicode table\n"
+msgstr "%s: te korte UTF-8 Unicode tabel\n"
+
+#: src/psffontop.c:94
+#, c-format
+msgid "%s: bad utf8\n"
+msgstr "%s: incorrect UTF-8\n"
+
+#: src/psffontop.c:119
+#, c-format
+msgid "%s: short unicode table\n"
+msgstr "%s: te korte Unicode tabel\n"
+
+#: src/psffontop.c:198
+#, c-format
+msgid "%s: Error reading input font"
+msgstr "%s: Fout bij het lezen van het font"
+
+#: src/psffontop.c:212
+#, c-format
+msgid "%s: Bad call of readpsffont\n"
+msgstr ""
+
+#: src/psffontop.c:227
+#, c-format
+msgid "%s: Unsupported psf file mode (%d)\n"
+msgstr "%s: Niet ondersteund psf bestand\n"
+
+#: src/psffontop.c:243
+#, c-format
+msgid "%s: Unsupported psf version (%d)\n"
+msgstr "%s: Niet ondersteund psf bestand\n"
+
+#: src/psffontop.c:257
+#, c-format
+msgid "%s: zero input font length?\n"
 msgstr ""
-"Aanroep: \n"
-"         %s psf-font Unicodetabel [uitvoer]\n"
 
-#: src/psfaddtable.c:136 src/psfgettable.c:75 src/psfstriptable.c:75
+#: src/psffontop.c:262
 #, c-format
-msgid "%s: Cannot read psf header\n"
-msgstr "%s: Kan de psf kop niet lezen\n"
+msgid "%s: zero input character size?\n"
+msgstr "%s: lettergrootte 0?\n"
 
-#: src/psfaddtable.c:142 src/psfgettable.c:81 src/psfstriptable.c:81
-msgid "%s: Bad magic number\n"
-msgstr "%s: Fout magisch getal\n"
+#: src/psffontop.c:268
+#, c-format
+msgid "%s: Input file: bad input length (%d)\n"
+msgstr "%s: Invoer heeft rare grootte (%d)\n"
+
+#: src/psffontop.c:295
+#, fuzzy, c-format
+msgid "%s: Input file: trailing garbage\n"
+msgstr "Invoer heeft rare grootte\n"
 
-#: src/psfaddtable.c:148 src/psfgettable.c:87 src/psfstriptable.c:87
+#: src/psffontop.c:328
 #, c-format
-msgid "%s: Unknown mode number (%d)\n"
-msgstr "%s: Onbekend psf type (%d)\n"
+msgid "appendunicode: illegal unicode %u\n"
+msgstr ""
 
-#: src/psfaddtable.c:181
+#: src/psfxtable.c:110
 #, c-format
 msgid "%s: Warning: line too long\n"
 msgstr "%s: Waarschuwing: regel te lang\n"
 
-#: src/psfgettable.c:23 src/psfstriptable.c:25
-#, c-format
+#: src/psfxtable.c:124 src/psfxtable.c:134
+#, fuzzy, c-format
+msgid "%s: Bad input line: %s\n"
+msgstr "Invoer fout in de regel: %s\n"
+
+#: src/psfxtable.c:143
+#, fuzzy, c-format
+msgid "%s: Glyph number (0x%lx) past end of font\n"
+msgstr "%s: Tekennummer (0x%x) groter dan fontgrootte\n"
+
+#: src/psfxtable.c:148
+#, fuzzy, c-format
+msgid "%s: Bad end of range (0x%lx)\n"
+msgstr "%s: Fout intervaleind (0x%x)\n"
+
+#: src/psfxtable.c:256
+#, fuzzy, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont intable outfont\n"
+msgstr ""
+"Aanroep: \n"
+"         %s psf-font Unicodetabel [uitvoer]\n"
+
+#: src/psfxtable.c:265
+#, fuzzy, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont [outtable]\n"
+msgstr ""
+"Aanroep: \n"
+"         %s psf-font [uitvoer]\n"
+
+#: src/psfxtable.c:274
+#, fuzzy, c-format
 msgid ""
-"Usage: \n"
-"        %s psffont [outfile]\n"
+"Usage:\n"
+"\t%s infont outfont\n"
 msgstr ""
 "Aanroep: \n"
 "         %s psf-font [uitvoer]\n"
 
-#: src/psfgettable.c:96
+#: src/psfxtable.c:297
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n"
+msgstr ""
+
+#: src/psfxtable.c:356
+#, fuzzy, c-format
+msgid "%s: Bad magic number on %s\n"
+msgstr "%s: Fout magisch getal\n"
+
+#: src/psfxtable.c:371
 #, c-format
-msgid "%s: Font has no character table\n"
-msgstr "%s: Dit font heeft geen Unicode tabel\n"
+msgid "%s: psf file with unknown magic\n"
+msgstr ""
 
-#: src/psfstriptable.c:96
+#: src/psfxtable.c:387
 #, c-format
-msgid "%s: Font already had no character table\n"
-msgstr "%s: Dit font had geen Unicode tabel\n"
+msgid "%s: input font does not have an index\n"
+msgstr ""
 
-#: src/resizecons.c:145
+#: src/resizecons.c:149
 #, c-format
 msgid "resizecons: cannot find videomode file %s\n"
 msgstr "resizecons: kan videomode bestand %s niet vinden\n"
 
-#: src/resizecons.c:164
+#: src/resizecons.c:168
 msgid "Invalid number of lines\n"
 msgstr "Ongeldig aantal regels\n"
 
-#: src/resizecons.c:230
+#: src/resizecons.c:234
 #, c-format
 msgid "Old mode: %dx%d  New mode: %dx%d\n"
 msgstr "Oud scherm: %dx%d  Nieuw scherm: %dx%d\n"
 
-#: src/resizecons.c:232
+#: src/resizecons.c:236
 #, c-format
 msgid "Old #scanlines: %d  New #scanlines: %d  Character height: %d\n"
 msgstr "Oud #scanlijnen: %d  Nieuw #scanlijnen: %d  Letterhoogte: %d\n"
 
-#: src/resizecons.c:243
+#: src/resizecons.c:247
 #, c-format
 msgid "resizecons: the command `%s' failed\n"
 msgstr "resizecons: het commando `%s' faalde\n"
 
-#: src/resizecons.c:308
+#: src/resizecons.c:315
 #, c-format
 msgid ""
 "resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n"
@@ -525,7 +926,7 @@ msgstr ""
 "resizecons: vergeet niet om TERM aan te passen (mogelijk tot con%dx%d of "
 "linux-%dx%d)\n"
 
-#: src/resizecons.c:321
+#: src/resizecons.c:328
 msgid ""
 "resizecons:\n"
 "call is:  resizecons COLSxROWS  or:  resizecons COLS ROWS\n"
@@ -537,44 +938,45 @@ msgstr ""
 "of: resizecons -lines ROWS, waarbij ROWS een van de waarden 25, 28, 30, 34, "
 "36, 40, 44, 50, 60 heeft\n"
 
-#: src/resizecons.c:359
+#: src/resizecons.c:366
 msgid "resizecons: cannot get I/O permissions.\n"
 msgstr "resizecons: ik heb geen toestemming voor directe I/O\n"
 
-#: src/screendump.c:38
+#: src/screendump.c:46
 msgid "usage: screendump [n]\n"
 msgstr "aanroep: screendump [n]\n"
 
-#: src/screendump.c:55 src/screendump.c:120 src/setfont.c:251
-msgid "Out of memory?\n"
-msgstr "Onvoldoende geheugen?\n"
-
-#: src/screendump.c:59
+#: src/screendump.c:66
 #, c-format
 msgid "Error reading %s\n"
 msgstr "Fout bij het lezen van %s\n"
 
-#: src/screendump.c:94
-msgid "Out of memory.\n"
-msgstr "Onvoldoende geheugen.\n"
-
-#: src/screendump.c:104
+#: src/screendump.c:107
 #, c-format
 msgid "couldn't read %s, and cannot ioctl dump\n"
 msgstr "kan %s niet lezen, en kan ook niet dumpen via een ioctl\n"
 
+#. we tried this just to be sure, but TIOCLINUX
+#. function 0 has been disabled since 1.1.92
+#. Do not mention `ioctl dump' in error msg
 #: src/screendump.c:113
 #, c-format
+msgid "couldn't read %s\n"
+msgstr ""
+
+#: src/screendump.c:122
+#, c-format
 msgid "Strange ... screen is both %dx%d and %dx%d ??\n"
 msgstr "Vreemd ... het scherm is zowel %dx%d als %dx%d ??\n"
 
-#: src/screendump.c:135
+#: src/screendump.c:140
 msgid "Error writing screendump\n"
 msgstr "Fout bij het schrijven van de schermdump\n"
 
-#: src/setfont.c:63
+#: src/setfont.c:76
+#, fuzzy
 msgid ""
-"Usage: setfont [write-options] [-<N>] [newfont] [-m consolemap] [-u "
+"Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u "
 "unicodemap]\n"
 "  write-options (take place before file loading):\n"
 "    -o  <filename>\tWrite current font to <filename>\n"
@@ -617,12 +1019,16 @@ msgstr ""
 "    -V\t\tDruk de programmaversie af\n"
 "Bestanden worden geladen uit het huidige directory of  /usr/lib/kbd/*/.\n"
 
-#: src/setfont.c:106
+#: src/setfont.c:121
 #, c-format
 msgid "setfont version %s\n"
 msgstr "setfont versie %s\n"
 
-#: src/setfont.c:160
+#: src/setfont.c:169
+msgid "setfont: too many input files\n"
+msgstr ""
+
+#: src/setfont.c:177
 msgid ""
 "setfont: cannot both restore from character ROM and from file. Font "
 "unchanged.\n"
@@ -630,21 +1036,46 @@ msgstr ""
 "setfont: kan niet tegelijk vanuit teken-ROM en van een bestand lezen. Font "
 "ongewijzigd.\n"
 
-#: src/setfont.c:221
+#: src/setfont.c:245
 #, c-format
 msgid "Bad character size %d\n"
 msgstr "Foute tegengrootte %d\n"
 
-#: src/setfont.c:232
+#: src/setfont.c:266
+#, c-format
+msgid "%s: font position 32 is nonblank\n"
+msgstr ""
+
+#: src/setfont.c:274
+#, c-format
+msgid "%s: wiped it\n"
+msgstr ""
+
+#: src/setfont.c:278
+#, c-format
+msgid "%s: background will look funny\n"
+msgstr ""
+
+#: src/setfont.c:288
 #, c-format
 msgid "Loading %d-char 8x%d font from file %s\n"
 msgstr "Ga %d-teken 8x%d font uit het bestand %s laden\n"
 
-#: src/setfont.c:270
+#: src/setfont.c:291
+#, fuzzy, c-format
+msgid "Loading %d-char 8x%d font\n"
+msgstr "Ga %d-teken 8x%d font uit het bestand %s laden\n"
+
+#: src/setfont.c:332
+#, c-format
+msgid "%s: bug in do_loadtable\n"
+msgstr ""
+
+#: src/setfont.c:340
 msgid "Loading Unicode mapping table...\n"
 msgstr "Ga Unicodetabel laden\n"
 
-#: src/setfont.c:279
+#: src/setfont.c:349
 msgid ""
 "It seems this kernel is older than 1.1.92\n"
 "No Unicode mapping table loaded.\n"
@@ -652,49 +1083,58 @@ msgstr ""
 "Zo te zien is de kernel ouder dan 1.1.92\n"
 "Geen Unicodetabel geladen.\n"
 
-#: src/setfont.c:317
+#: src/setfont.c:396 src/setfont.c:469
+#, c-format
+msgid "Cannot open font file %s\n"
+msgstr "Kan het font %s niet openen\n"
+
+#: src/setfont.c:407
+#, c-format
+msgid "When loading several fonts, all must be psf fonts - %s isn't\n"
+msgstr ""
+
+#: src/setfont.c:414
+#, fuzzy, c-format
+msgid "Read %d-char 8x%d font from file %s\n"
+msgstr "Ga %d-teken 8x%d font uit het bestand %s laden\n"
+
+#: src/setfont.c:419
+msgid "When loading several fonts, all must have the same pointsize\n"
+msgstr ""
+
+#: src/setfont.c:456
 msgid "Cannot find default font\n"
 msgstr "Kan het standaard font niet vinden\n"
 
-#: src/setfont.c:324
+#: src/setfont.c:463
 #, c-format
 msgid "Cannot find %s font\n"
 msgstr "Kan het %s font niet vinden\n"
 
-#: src/setfont.c:330
-#, c-format
-msgid "Cannot open font file %s\n"
-msgstr "Kan het font %s niet openen\n"
-
-#: src/setfont.c:342
-msgid "Error reading input font"
-msgstr "Fout bij het lezen van het font"
-
-#: src/setfont.c:351
-msgid ""
-"Setfont is so naive as to believe that font files\n"
-"have a size of at most 32kB.  Unfortunately it seems\n"
-"that you encountered an exception.  If this really is\n"
-"a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n"
+#: src/setfont.c:506
+msgid "No final newline in combine file\n"
 msgstr ""
-"Setfont denkt dat een font nooit groter dan 32kB kan zijn.\n"
-"Helaas ziet het er naar uit dat U een uitzondering bent tegengekomen.\n"
-"Als dit echt een font is, (i) compileer setfont opnieuw, en (ii) schrijf "
-"naar aeb@cwi.nl .\n"
 
-#: src/setfont.c:376
-msgid "Unsupported psf file mode\n"
-msgstr "Niet ondersteund psf bestand\n"
+#: src/setfont.c:512
+#, fuzzy
+msgid "Too many files to combine\n"
+msgstr "teveel (%d) elementen op een regel"
 
-#: src/setfont.c:385
-msgid "Input file: bad length\n"
-msgstr "Invoer heeft rare grootte\n"
+#. restorefont -w writes a SVGA font to file
+#. restorefont -r restores it
+#. These fonts have size 32768, for two 512-char fonts.
+#. In fact, when BROKEN_GRAPHICS_PROGRAMS is defined,
+#. and it always is, there is no default font that is saved,
+#. so probably the second half is always garbage.
+#: src/setfont.c:535
+msgid "Hmm - a font from restorefont? Using the first half.\n"
+msgstr ""
 
-#: src/setfont.c:402
+#: src/setfont.c:551
 msgid "Bad input file size\n"
 msgstr "Invoer heeft foute grootte\n"
 
-#: src/setfont.c:421
+#: src/setfont.c:570
 msgid ""
 "This file contains 3 fonts: 8x8, 8x14 and 8x16. Please indicate\n"
 "using an option -8 or -14 or -16 which one you want loaded.\n"
@@ -702,29 +1142,29 @@ msgstr ""
 "Dit bestand bevat 3 fonts: 8x8, 8x14 en 8x16. Vertel met behulp\n"
 "van een optie -8 of -14 of -16 welke van de drie geladen moet worden.\n"
 
-#: src/setfont.c:435
+#: src/setfont.c:584
 #, c-format
 msgid "You asked for font size %d, but only 8, 14, 16 are possible here.\n"
 msgstr "U vroeg om fontgrootte %d, maar ik heb alleen 8, 14, 16 in voorraad.\n"
 
-#: src/setfont.c:471
+#: src/setfont.c:621
 msgid "Cannot write font file header"
 msgstr "Fout bij het schrijven van de font kop"
 
-#: src/setfont.c:477
+#: src/setfont.c:627
 msgid "Found nothing to save\n"
 msgstr "Er was niets om weg te schrijven\n"
 
-#: src/setfont.c:481
+#: src/setfont.c:631
 msgid "Cannot write font file"
 msgstr "Fout bij het wegschrijven van het font"
 
-#: src/setfont.c:485
+#: src/setfont.c:635
 #, c-format
 msgid "Saved %d-char 8x%d font file on %s\n"
 msgstr "Heb %d-teken 8x%d font in het bestand %s weggeschreven\n"
 
-#: src/setkeycodes.c:21
+#: src/setkeycodes.c:20
 msgid ""
 "usage: setkeycode scancode keycode ...\n"
 " (where scancode is either xx or e0xx, given in hexadecimal,\n"
@@ -734,27 +1174,28 @@ msgstr ""
 " (waarbij scancode xx of e0xx is, gegeven in hexadecimaal,\n"
 "  en de toetscode decimaal gegeven wordt)\n"
 
-#: src/setkeycodes.c:38
+#: src/setkeycodes.c:37
 msgid "even number of arguments expected"
 msgstr "ik verwacht een even aantal parameters"
 
-#: src/setkeycodes.c:45
+#: src/setkeycodes.c:44
 msgid "error reading scancode"
 msgstr "fout bij het lezen van de scancode"
 
-#: src/setkeycodes.c:51
+#: src/setkeycodes.c:50
 msgid "code outside bounds"
 msgstr "codewaarde te groot"
 
-#: src/setkeycodes.c:54
+#: src/setkeycodes.c:53
 #, c-format
 msgid "failed to set scancode %x to keycode %d\n"
 msgstr "kon scancode %x niet toewijzen aan toetscode %d\n"
 
-#: src/setleds.c:20
+#: src/setleds.c:24
+#, fuzzy, c-format
 msgid ""
 "Usage:\n"
-"\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll ]]\n"
+"\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll %s]]\n"
 "Thus,\n"
 "\tsetleds +caps -num\n"
 "will set CapsLock, clear NumLock and leave ScrollLock unchanged.\n"
@@ -778,58 +1219,75 @@ msgstr ""
 "Met de -D vlag wordt ook de standaard toestand aangepast, zodat een\n"
 "latere reset de toestand niet wijzigt.\n"
 
-#: src/setleds.c:74
+#: src/setleds.c:89
 msgid "Error reading current led setting. Maybe stdin is not a VT?\n"
 msgstr "Fout bij het lezen van de leds. Is stdin wel een VT?\n"
 
-#: src/setleds.c:81
+#: src/setleds.c:108
 msgid "Error reading current flags setting. Maybe an old kernel?\n"
 msgstr "Fout bij het lezen van de toetsenbordtoestand. Een oude kernel?\n"
 
-#: src/setleds.c:108
+#: src/setleds.c:121 src/setleds.c:136
+#, fuzzy
+msgid "Error reading current led setting from /dev/kbd.\n"
+msgstr "Fout bij het lezen van de leds. Is stdin wel een VT?\n"
+
+#: src/setleds.c:125
+msgid "KIOCGLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:140
+msgid "KIOCSLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:158
+msgid "Error opening /dev/kbd.\n"
+msgstr ""
+
+#: src/setleds.c:194
 msgid "Error resetting ledmode\n"
 msgstr "Fout bij het zetten van de leds\n"
 
-#: src/setleds.c:117
+#: src/setleds.c:203
 msgid "Current default flags:  "
 msgstr "Huidige standaardtoestand:  "
 
-#: src/setleds.c:121
+#: src/setleds.c:207
 msgid "Current flags:          "
 msgstr "Huidige toestand:           "
 
-#: src/setleds.c:125
+#: src/setleds.c:211
 msgid "Current leds:           "
 msgstr "Huidige leds:               "
 
-#: src/setleds.c:153 src/setmetamode.c:90
+#: src/setleds.c:247 src/setmetamode.c:88
 #, c-format
 msgid ""
 "unrecognized argument: _%s_\n"
 "\n"
 msgstr "onbekende parameter: _%s_\n"
 
-#: src/setleds.c:162
+#: src/setleds.c:256
 msgid "Old default flags:    "
 msgstr "Oude standaardtoestand:   "
 
-#: src/setleds.c:164
+#: src/setleds.c:258
 msgid "New default flags:    "
 msgstr "Nieuwe standaardtoestand: "
 
-#: src/setleds.c:171
+#: src/setleds.c:265
 msgid "Old flags:            "
 msgstr "Oude toestand:            "
 
-#: src/setleds.c:173
+#: src/setleds.c:267
 msgid "New flags:            "
 msgstr "Nieuwe toestand:"
 
-#: src/setleds.c:186
+#: src/setleds.c:281 src/setleds.c:290
 msgid "Old leds:             "
 msgstr "Oude leds:                "
 
-#: src/setleds.c:188
+#: src/setleds.c:283 src/setleds.c:292
 msgid "New leds:             "
 msgstr "Nieuwe leds:              "
 
@@ -849,31 +1307,32 @@ msgstr ""
 "om het metabit van een andere VT te veranderen.\n"
 "De toestand voor en na de aanroep wordt gerapporteerd.\n"
 
-#: src/setmetamode.c:36
+#: src/setmetamode.c:35
 msgid "Meta key sets high order bit\n"
 msgstr "De Metatoets zet het achtste bit\n"
 
-#: src/setmetamode.c:39
+#: src/setmetamode.c:38
 msgid "Meta key gives Esc prefix\n"
 msgstr "De Metatoets geeft een Esc prefix\n"
 
-#: src/setmetamode.c:42
+#: src/setmetamode.c:41
 msgid "Strange mode for Meta key?\n"
 msgstr "Rare Metatoets instelling??\n"
 
-#: src/setmetamode.c:74
+#: src/setmetamode.c:72
 msgid "Error reading current setting. Maybe stdin is not a VT?\n"
 msgstr "Fout bij het lezen van de huidige toestand. Is stdin wel een VT?\n"
 
-#: src/setmetamode.c:94
+#: src/setmetamode.c:92
 msgid "old state:    "
 msgstr "oude toestand:    "
 
-#: src/setmetamode.c:100
+#: src/setmetamode.c:98
 msgid "new state:    "
 msgstr "nieuwe toestand:  "
 
 #: src/setvesablank.c:21
+#, c-format
 msgid "usage: %s\n"
 msgstr "aanroep: %s\n"
 
@@ -914,12 +1373,12 @@ msgstr ""
 "[ als je dit under X probeert, dan werkt het misschien niet\n"
 "want de X server leest ook van /dev/console ]\n"
 
-#: src/showkey.c:63
+#: src/showkey.c:65
 #, c-format
 msgid "caught signal %d, cleaning up...\n"
 msgstr "kreeg signaal %d, herstel de oude toestand weer...\n"
 
-#: src/showkey.c:75
+#: src/showkey.c:79
 #, c-format
 msgid ""
 "showkey version %s\n"
@@ -944,7 +1403,7 @@ msgstr ""
 "\t-s --scancodes\tgeef alleen de scancodes\n"
 "\t-k --keycodes\tgeef alleen de toetscodes (standaard)\n"
 
-#: src/showkey.c:148
+#: src/showkey.c:152
 msgid ""
 "\n"
 "Press any keys - Ctrl-D will terminate this program\n"
@@ -953,234 +1412,59 @@ msgstr ""
 "\n"
 "Druk willekeurige toetsen in. Ctrl-D beeindigt het programma\n"
 
-#: src/showkey.c:217
+#: src/showkey.c:221
 msgid "press any key (program terminates 10s after last keypress)...\n"
 msgstr "Druk willekeurige toetsen in. Na 10 sec wachten stopt het programma.\n"
 
-#: src/showkey.c:225
+#: src/showkey.c:229
+#, c-format
 msgid "keycode %3d %s\n"
 msgstr "toetscode %3d %s\n"
 
-#: src/showkey.c:227
+#: src/showkey.c:231
 msgid "release"
 msgstr "loslaten"
 
-#: src/showkey.c:228
+#: src/showkey.c:232
 msgid "press"
 msgstr "indrukken"
 
-#: src/loadkeys.y:196
-#, c-format
-msgid "'%s' is not a function key symbol"
-msgstr "'%s' is geen functietoetssymbool"
-
-#: src/loadkeys.y:259
-#, c-format
-msgid "too many (%d) entries on one line"
-msgstr "teveel (%d) elementen op een regel"
-
-#: src/loadkeys.y:272
-msgid "too many keydefinitions on one line"
-msgstr "teveel toetsdefinities op een regel"
-
-#: src/loadkeys.y:291
-#, c-format
-msgid ""
-"loadkeys version %s\n"
-"\n"
-"Usage: loadkeys [option...] [mapfile...]\n"
-"\n"
-"valid options are:\n"
-"\n"
-"\t-c --clearcompose clear kernel compose table\n"
-"\t-d --default\t  load \""
-msgstr ""
-"loadkeys versie %s\n"
-"\n"
-"Aanroep: loadkeys [option...] [mapfile...]\n"
-"\n"
-"geldige opties zijn:\n"
-"\n"
-"\t-c --clearcompose clear kernel compose table\n"
-"\t-d --default\t  load \""
-
-#: src/loadkeys.y:362
-msgid "syntax error in map file\n"
-msgstr "Fout in het omnummerbestand\n"
-
-#: src/loadkeys.y:364
-msgid "key bindings not changed\n"
-msgstr "toetsinstellingen onveranderd\n"
-
-#: src/loadkeys.y:421
-msgid "includes nested too deeply"
-msgstr "include-bestanden te diep genest"
-
-#. start reading include file
-#: src/loadkeys.y:544
-#, c-format
-msgid "switching to %s\n"
-msgstr "ik lees nu van %s\n"
-
-#: src/loadkeys.y:550
-msgid "cannot open include file %s"
-msgstr "Kan het include-bestand %s niet openen"
-
-#: src/loadkeys.y:597
-msgid "Cannot find %s\n"
-msgstr "Kan het bestand %s niet vinden\n"
-
-#: src/loadkeys.y:610
-msgid "cannot open file %s\n"
-msgstr "Kan het bestand %s niet openen\n"
-
-#: src/loadkeys.y:621
-msgid "Loading %s\n"
-msgstr "Fout bij het lezen van %s\n"
-
-#: src/loadkeys.y:633
-#, c-format
-msgid "addmap called with bad index %d"
-msgstr "addmap aangeroepen met foute index %d"
-
-#: src/loadkeys.y:637
-#, c-format
-msgid "adding map %d violates explicit keymaps line"
-msgstr "het toevoegen van tabel %d is in strijd met de gegeven `keymaps' regel"
-
-#: src/loadkeys.y:651
-#, c-format
-msgid "killkey called with bad index %d"
-msgstr "killkey aangeroepen met foute index %d"
-
-#: src/loadkeys.y:653
-#, c-format
-msgid "killkey called with bad table %d"
-msgstr "killkey aangeroepen met foute tabel %d"
-
-#: src/loadkeys.y:667
-#, c-format
-msgid "addkey called with bad index %d"
-msgstr "addkey aangeroepen met foute index %d"
-
-#: src/loadkeys.y:669
-#, c-format
-msgid "addkey called with bad table %d"
-msgstr "addkey aangeroepen met foute tabel %d"
-
-#: src/loadkeys.y:709
-#, c-format
-msgid "%s: addfunc called with bad func %d\n"
-msgstr "%s: addfunc aangeroepen met foute func %d\n"
-
-#: src/loadkeys.y:729
-#, c-format
-msgid "%s: addfunc: func_buf overflow\n"
-msgstr "%s: addfunc: func_buf is te klein\n"
-
-#: src/loadkeys.y:747
-msgid "compose table overflow\n"
-msgstr "de compose-tabel is te klein\n"
-
-#: src/loadkeys.y:784
-#, c-format
-msgid "Keymap %d: Permission denied\n"
-msgstr "Toettabel %d: dat mag niet\n"
-
-#: src/loadkeys.y:793
-msgid "    FAILED"
-msgstr "    FAALDE"
-
-#: src/loadkeys.y:796
-msgid "failed to bind key %d to value %d\n"
-msgstr "kon toets %d niet de waarde %d toekennen\n"
-
-#: src/loadkeys.y:807
-#, c-format
-msgid "deallocate keymap %d\n"
-msgstr "geef het geheugen van toetsdefinitietabel %d vrij\n"
-
-#: src/loadkeys.y:813
-msgid "%s: could not deallocate keymap %d\n"
-msgstr "%s: kon toetsdefinitietabel %d niet opruimen\n"
-
-#: src/loadkeys.y:828
-msgid "%s: cannot deallocate or clear keymap\n"
-msgstr "%s: kan toetsdefinitietabel niet vrijgeven of schoonvegen\n"
-
-#: src/loadkeys.y:839
-msgid "%s: failed to restore keyboard mode\n"
-msgstr "%s: fout bij het herstellen van de toetsenbord toestand\n"
-
-#: src/loadkeys.y:842
-#, c-format
-msgid ""
-"%s: warning: this map uses Unicode symbols\n"
-"    (perhaps you want to do `kbd_mode -u'?)\n"
-msgstr ""
-"%s: waarschuwing: deze toetsenbordtabel gebruikt Unicode symbolen\n"
-"    (misschien wilt u `kbd_mode -u' zeggen?)\n"
-
-#: src/loadkeys.y:886
-#, c-format
-msgid "failed to bind string '%s' to function %s\n"
-msgstr "kon de string '%s' niet aan de functie %s binden\n"
-
-#: src/loadkeys.y:893
-#, c-format
-msgid "failed to clear string %s\n"
-msgstr "kon de string %s niet leegmaken\n"
-
-#: src/loadkeys.y:910
-msgid "too many compose definitions\n"
-msgstr "teveel definities van samengestelde symbolen\n"
-
-#: src/loadkeys.y:970
-msgid "impossible error in do_constant"
-msgstr "onmogelijke fout in do_constant"
-
-#: src/loadkeys.y:988
+#: src/xmalloc.c:14
 #, c-format
-msgid ""
-"\n"
-"Changed %d %s and %d %s.\n"
-msgstr ""
-"\n"
-"Veranderde %d %s en %d %s.\n"
+msgid "%s: out of memory\n"
+msgstr "%s: onvoldoende geheugen\n"
 
-#: src/loadkeys.y:989
-msgid "key"
-msgstr "toets"
+#~ msgid "usage: %s [N1 N2 ...]\n"
+#~ msgstr "aanroep: %s [N1 N2 ...]\n"
 
-#: src/loadkeys.y:989
-msgid "keys"
-msgstr "toetsen"
+#~ msgid "Out of Memory\n"
+#~ msgstr "Onvoldoende geheugen\n"
 
-#: src/loadkeys.y:990
-msgid "string"
-msgstr "string"
+#~ msgid "Out of Memory?\n"
+#~ msgstr "Onvoldoende geheugen?\n"
 
-#: src/loadkeys.y:990
-msgid "strings"
-msgstr "strings"
+#~ msgid "%s: Cannot read psf header\n"
+#~ msgstr "%s: Kan de psf kop niet lezen\n"
 
-#: src/loadkeys.y:992
-msgid "Loaded %d compose %s.\n"
-msgstr "%d %s voor samengestelde symbolen geladen\n"
+#~ msgid "%s: Unknown mode number (%d)\n"
+#~ msgstr "%s: Onbekend psf type (%d)\n"
 
-#: src/loadkeys.y:993
-msgid "definition"
-msgstr "definitie"
+#~ msgid "%s: Font already had no character table\n"
+#~ msgstr "%s: Dit font had geen Unicode tabel\n"
 
-#: src/loadkeys.y:993
-msgid "definitions"
-msgstr "definities"
+#~ msgid "Out of memory?\n"
+#~ msgstr "Onvoldoende geheugen?\n"
 
-#: src/loadkeys.y:995
-msgid "(No change in compose definitions.)\n"
-msgstr "(Geen wijziging in definities van samengestelde symbolen.)\n"
+#~ msgid "Out of memory.\n"
+#~ msgstr "Onvoldoende geheugen.\n"
 
-#: src/loadkeys.y:1028
-#, c-format
-msgid "loadkeys: don't know how to compose for %s\n"
-msgstr "loadkeys: ik ken de definities van de samengestelde symbolen voor %s niet\n"
+#~ msgid ""
+#~ "Setfont is so naive as to believe that font files\n"
+#~ "have a size of at most 32kB.  Unfortunately it seems\n"
+#~ "that you encountered an exception.  If this really is\n"
+#~ "a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n"
+#~ msgstr ""
+#~ "Setfont denkt dat een font nooit groter dan 32kB kan zijn.\n"
+#~ "Helaas ziet het er naar uit dat U een uitzondering bent tegengekomen.\n"
+#~ "Als dit echt een font is, (i) compileer setfont opnieuw, en (ii) schrijf "
+#~ "naar aeb@cwi.nl .\n"
index f67fee6..066ca13 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: kbd 0.98\n"
-"POT-Creation-Date: 1999-03-14 20:57+0100\n"
-"PO-Revision-Date: 1999-03-14 09:36+0500\n"
+"Project-Id-Version: kbd 0.99\n"
+"POT-Creation-Date: 1999-10-08 20:28+0200\n"
+"PO-Revision-Date: 1999-03-15 09:36+0500\n"
 "Last-Translator: QingLong <QingLong@Bolizm>\n"
 "Language-Team: LANGUAGE <RU@li.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=koi8-r\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/chvt.c:23
-msgid "usage: chvt N\n"
-msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: chvt N\n"
+#: openvt/openvt.c:67
+#, fuzzy, c-format
+msgid "openvt: %s: illegal vt number\n"
+msgstr "%s: 0: ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ VT\n"
+
+#: openvt/openvt.c:91
+msgid "openvt: only root can use the -u flag.\n"
+msgstr ""
+
+#: openvt/openvt.c:105 src/getfd.c:63
+msgid "Couldnt get a file descriptor referring to the console\n"
+msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ËÏÎÓÏÌÉ\n"
+
+#: openvt/openvt.c:117
+#, fuzzy
+msgid "openvt: cannot find a free vt\n"
+msgstr "%s: ÎÅÔ ÎÉËÁËÉÈ ÒÁÓËÌÁÄÏË, ×ÏÏÂÝÅ?\n"
+
+#: openvt/openvt.c:122
+#, c-format
+msgid "openvt: cannot check whether vt %d is free\n"
+msgstr ""
+
+#: openvt/openvt.c:123 openvt/openvt.c:128
+msgid "        use `openvt -f' to force.\n"
+msgstr ""
+
+#: openvt/openvt.c:127
+#, c-format
+msgid "openvt: vt %d is in use; command aborted\n"
+msgstr ""
+
+#: openvt/openvt.c:155
+#, c-format
+msgid "openvt: Unable to open %s: %s\n"
+msgstr ""
+
+#: openvt/openvt.c:167
+#, c-format
+msgid "openvt: Cannot open %s read/write (%s)\n"
+msgstr ""
+
+#: openvt/openvt.c:205
+#, c-format
+msgid "openvt: using VT %s\n"
+msgstr ""
+
+#: openvt/openvt.c:217
+#, c-format
+msgid "openvt: Unable to set new session (%s)\n"
+msgstr ""
 
-#: src/deallocvt.c:18
+#: openvt/openvt.c:225
 #, c-format
-msgid "usage: %s [N1 N2 ...]\n"
-msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s [N1 N2 ...]\n"
+msgid ""
+"\n"
+"openvt: could not open %s R/W (%s)\n"
+msgstr ""
+
+#: openvt/openvt.c:281
+#, fuzzy, c-format
+msgid "openvt: could not deallocate console %d\n"
+msgstr "%s: ÎÕ, ÎÅ ÓÍÏÇÌÁ Ñ ×ÙÓ×ÏÂÏÄÉÔØ ËÏÎÓÏÌØ %d\n"
+
+#: src/chvt.c:22
+msgid "usage: chvt N\n"
+msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: chvt N\n"
 
-#: src/deallocvt.c:41
+#: src/deallocvt.c:35
 #, c-format
 msgid "%s: deallocating all unused consoles failed\n"
 msgstr "%s: ÎÅ ÕÄÁÌÏÓØ ×ÙÓ×ÏÂÏÄÉÔØ ×ÓÅ ÎÅÉÓÐÏÌØÚÕÅÍÙÅ ËÏÎÓÏÌÉ\n"
 
-#: src/deallocvt.c:49
+#: src/deallocvt.c:43
 #, c-format
 msgid "%s: 0: illegal VT number\n"
 msgstr "%s: 0: ÎÅÄÏÐÕÓÔÉÍÙÊ ÎÏÍÅÒ VT\n"
 
-#: src/deallocvt.c:52
+#: src/deallocvt.c:46
 #, c-format
 msgid "%s: VT 1 is the console and cannot be deallocated\n"
 msgstr "%s: VT 1 --- ÜÔÏ ËÏÎÓÏÌØ É ÎÅ ÍÏÖÅÔ ÂÙÔØ ×ÙÓ×ÏÂÏÖÄÅÎÁ\n"
 
-#: src/deallocvt.c:57
+#: src/deallocvt.c:51
 #, c-format
 msgid "%s: could not deallocate console %d\n"
 msgstr "%s: ÎÕ, ÎÅ ÓÍÏÇÌÁ Ñ ×ÙÓ×ÏÂÏÄÉÔØ ËÏÎÓÏÌØ %d\n"
 
-#: src/dumpkeys.c:63
+#: src/dumpkeys.c:64
 #, c-format
 msgid "KDGKBENT error at index 0 in table %d: "
 msgstr "ÏÛÉÂËÁ KDGKBENT ÐÏ ÉÎÄÅËÓÕ 0 × ÔÁÂÌÉÃÅ %d: "
 
-#: src/dumpkeys.c:76
+#: src/dumpkeys.c:77
 #, c-format
 msgid "%s: cannot find any keymaps?\n"
 msgstr "%s: ÎÅÔ ÎÉËÁËÉÈ ÒÁÓËÌÁÄÏË, ×ÏÏÂÝÅ?\n"
 
-#: src/dumpkeys.c:81
+#: src/dumpkeys.c:82
 #, c-format
 msgid "%s: plain map not allocated? very strange ...\n"
 msgstr "%s: ÎÅ ÕÓÔÁÎÏ×ÌÅÎÁ ÐÒÏÓÔÁÑ ÒÁÓËÌÁÄËÁ? ïÞÅÎØ ÓÔÒÁÎÎÏ...\n"
 
-#: src/dumpkeys.c:111
+#: src/dumpkeys.c:114
 #, c-format
 msgid "KDGKBENT error at index %d in table %d: "
 msgstr "ÏÛÉÂËÁ KDGKBENT ÐÏ ÉÎÄÅËÓÕ %d × ÔÁÂÌÉÃÅ %d: "
 
-#: src/dumpkeys.c:228
+#: src/dumpkeys.c:242
 #, c-format
 msgid "keycode range supported by kernel:           1 - %d\n"
 msgstr "ÄÉÁÐÁÚÏΠËÏÄÏ× ËÌÁ×ÉÛ, ÉÚ×ÅÓÔÎÙÈ ÑÄÒÕ:      1 -- %d\n"
 
-#: src/dumpkeys.c:230
+#: src/dumpkeys.c:244
 #, c-format
 msgid "max number of actions bindable to a key:         %d\n"
 msgstr "ÎÁ ÏÄÎÕ ËÌÁ×ÉÛÕ ×ÓÅÇÏ ÍÏÖÎÏ ÐÏ×ÅÓÉÔØ ÄÅÊÓÔ×ÉÊ:   %d\n"
 
-#: src/dumpkeys.c:233
+#: src/dumpkeys.c:247
 #, c-format
 msgid "number of keymaps in actual use:                 %d\n"
 msgstr "ÒÅÁÌØÎÏ ÉÓÐÏÌØÚÕÅÍÙÈ ÒÁÓËÌÁÄÏË:                  %d\n"
 
-#: src/dumpkeys.c:236
+#: src/dumpkeys.c:250
 #, c-format
 msgid "of which %d dynamically allocated\n"
 msgstr "ÉÚ ÎÉÈ ÕÓÔÁÎÏ×ÌÅÎÏ ÄÉÎÁÍÉÞÅÓËÉ:                  %d\n"
 
-#: src/dumpkeys.c:237
+#: src/dumpkeys.c:251
 msgid "ranges of action codes supported by kernel:\n"
 msgstr "ËÏÄÙ ÄÅÊÓÔ×ÉÊ, ÄÏÐÕÓËÁÅÍÙÅ ÑÄÒÏÍ:\n"
 
-#: src/dumpkeys.c:242
+#: src/dumpkeys.c:256
 #, c-format
 msgid "number of function keys supported by kernel: %d\n"
 msgstr "ÆÕÎËÃÉÏÎÁÌØÎÙÈ ËÌÁ×ÉÛ, ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÑÄÒÏÍ: %d\n"
 
-#: src/dumpkeys.c:245
+#: src/dumpkeys.c:259
 #, c-format
 msgid "max nr of compose definitions: %d\n"
 msgstr "ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÏÓÔÁ×ÎÙÈ ÏÐÒÅÄÅÌÅÎÉÊ: %d\n"
 
-#: src/dumpkeys.c:247
+#: src/dumpkeys.c:261
 #, c-format
 msgid "nr of compose definitions in actual use: %d\n"
 msgstr "ÒÅÁÌØÎÏ ÉÓÐÏÌØÚÕÅÍÙÈ ÓÏÓÔÁ×ÎÙÈ ÏÐÒÅÄÅÌÅÎÉÊ: %d\n"
 
-#: src/dumpkeys.c:270
+#: src/dumpkeys.c:285
 #, c-format
 msgid ""
 "Symbols recognized by %s:\n"
@@ -113,7 +172,7 @@ msgstr ""
 "(ÞÉÓÌÏ×ÏÅ ÚÎÁÞÅÎÉÅ, ÓÉÍ×ÏÌ)\n"
 "\n"
 
-#: src/dumpkeys.c:282
+#: src/dumpkeys.c:298
 msgid ""
 "\n"
 "The following synonyms are recognized:\n"
@@ -123,12 +182,12 @@ msgstr ""
 "ðÏÎÉÍÁÅÍÙÅ ÓÉÎÏÎÉÍÙ:\n"
 "\n"
 
-#: src/dumpkeys.c:284
+#: src/dumpkeys.c:300
 #, c-format
 msgid "%-15s for %s\n"
 msgstr "%-15s ×ÍÅÓÔÏ %s\n"
 
-#: src/dumpkeys.c:286
+#: src/dumpkeys.c:302
 msgid ""
 "\n"
 "Recognized modifier names and their column numbers:\n"
@@ -136,26 +195,27 @@ msgstr ""
 "\n"
 "éÚ×ÅÓÔÎÙÅ ÎÁÚ×ÁÎÉÑ ÍÏÄÉÆÉËÁÔÏÒÏ× É ÎÏÍÅÒÁ ÉÍ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ËÏÌÏÎÏË: \n"
 
-#: src/dumpkeys.c:346
+#: src/dumpkeys.c:365
 #, c-format
 msgid "# not alt_is_meta: on keymap %d key %d is bound to"
 msgstr "# ÎÅ alt_is_meta: × ÒÁÓËÌÁÄËÅ %d ËÌÁ×ÉÛÅ %d ÎÁÚÎÁÞÅÎÏ"
 
-#: src/dumpkeys.c:421
+#: src/dumpkeys.c:440
 msgid "impossible: not meta?\n"
 msgstr "ÇÌÀË: ÎÅ `meta'?\n"
 
-#: src/dumpkeys.c:477
+#: src/dumpkeys.c:497
 #, c-format
 msgid "KDGKBSENT failed at index %d: "
 msgstr "KDGKBSENT ÏÂÌÏÍÉÌÓÑ ÎÁ ÉÎÄÅËÓÅ %d: "
 
-#: src/dumpkeys.c:497
+#: src/dumpkeys.c:517
 #, c-format
 msgid "dumpkeys version %s"
 msgstr "dumpkeys ×ÅÒÓÉÉ %s"
 
-#: src/dumpkeys.c:499
+#: src/dumpkeys.c:518
+#, fuzzy
 msgid ""
 "\n"
 "usage: dumpkeys [options...]\n"
@@ -171,10 +231,7 @@ msgid ""
 "\t   --funcs-only\t    display only the function key strings\n"
 "\t   --keys-only\t    display only key bindings\n"
 "\t   --compose-only   display only compose key combinations\n"
-"\t-c --charset=iso-8859-{1,2,3,4,5,7,8,9}\n"
-"\t             koi8-{r,u}\t\t\n"
-"\t\t\t    interpret character action codes to be from the\n"
-"\t\t\t    specified character set\n"
+"\t-c --charset="
 msgstr ""
 "\n"
 "ðÏÌØÚÕ×ÁÔÉÓÑ ÔÁË: dumpkeys [ÏÐÃÉÉ...]\n"
@@ -195,39 +252,33 @@ msgstr ""
 "\t                   \tÐÏÌÁÇÁÔØ ËÏÄÉÒÏ×ËÏÊ ÕËÁÚÁÎÎÕÀ\n"
 "\t                   \t(ÉÍÅÅÔ ÓÍÙÓÌ ÄÌÑ ÂÕË×ÅÎÎÙÈ ÓÉÍ×ÏÌÏ×)\n"
 
-#: src/findfile.c:14
-msgid "Out of Memory\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ\n"
-
-#: src/findfile.c:24
-msgid "Out of Memory?\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ?\n"
+#: src/dumpkeys.c:535
+msgid ""
+"\t\t\t    interpret character action codes to be from the\n"
+"\t\t\t    specified character set\n"
+msgstr ""
 
-#: src/findfile.c:61
+#: src/findfile.c:43
 #, c-format
 msgid "error executing  %s\n"
 msgstr "ÏÛÉÂËÁ ÉÓÐÏÌÎÅÎÉÑ %s\n"
 
-#: src/getfd.c:57
-msgid "Couldnt get a file descriptor referring to the console\n"
-msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ËÏÎÓÏÌÉ\n"
-
-#: src/getkeycodes.c:18
+#: src/getkeycodes.c:17
 msgid "usage: getkeycodes\n"
 msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: getkeycodes\n"
 
-#: src/getkeycodes.c:34
+#: src/getkeycodes.c:33
 msgid "Plain scancodes xx (hex) versus keycodes (dec)\n"
 msgstr ""
 "óÏÂÓÔ×ÅÎÎÏ ÓËÁÎ-ËÏÄÙ xx (hex) É, ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ, ËÏÄÙ ËÌÁ×ÉÛ (ÄÅÓÑÔÉÞÎÙÅ)\n"
 
-#: src/getkeycodes.c:35
+#: src/getkeycodes.c:34
 msgid "0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n"
 msgstr ""
 "0 --- ÏÛÉÂËÁ; ÓËÁÎ-ËÏÄÙ 1--88 (0x01--0x58) ÒÁ×ÎÙ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ËÏÄÁÍ "
 "ËÌÁ×ÉÛ\n"
 
-#: src/getkeycodes.c:39
+#: src/getkeycodes.c:38
 msgid ""
 "\n"
 "\n"
@@ -237,81 +288,342 @@ msgstr ""
 "\n"
 "óËÁÎ-ËÏÄÙ Ó `Escape' e0 xx (hex)\n"
 
-#: src/getkeycodes.c:59
+#: src/getkeycodes.c:58
 #, c-format
 msgid "failed to get keycode for scancode 0x%x\n"
 msgstr "ÎÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ËÏÄ ËÌÁ×ÉÛÉ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÓËÁÎ-ËÏÄÕ 0x%x\n"
 
-#: src/getunimap.c:43
+#: src/getunimap.c:45
+#, fuzzy, c-format
+msgid ""
+"Usage:\n"
+"\t%s [-s]\n"
+msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s\n"
+
+#: src/getunimap.c:66
 #, c-format
 msgid "strange... ct changed from %d to %d\n"
 msgstr "ÓÔÒÁÎÎÏ... ct ÉÚÍÅÎÉÌÓÑ Ó %d ÎÁ %d\n"
 
-#: src/kbd_mode.c:20
+#: src/kbd_mode.c:19
 msgid "usage: kbd_mode [-a|-u|-k|-s]\n"
 msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: kbd_mode [-s|-u|-k|-a]\n"
 
-#: src/kbd_mode.c:40
+#: src/kbd_mode.c:39
 msgid "kbd_mode: error reading keyboard mode\n"
 msgstr "kbd_mode: ÏÛÉÂËÁ ÞÔÅÎÉÑ ÒÅÖÉÍÁ ËÌÁ×ÉÁÔÕÒÙ\n"
 
-#: src/kbd_mode.c:45
+#: src/kbd_mode.c:44
 msgid "The keyboard is in raw (scancode) mode\n"
 msgstr "ëÌÁ×ÉÁÔÕÒÁ ÎÁÈÏÄÉÔÓÑ × ÓÙÒÏÍ (raw) ÒÅÖÉÍÅ (ÛÌ£Ô ÓËÁÎ-ËÏÄÙ)\n"
 
-#: src/kbd_mode.c:48
+#: src/kbd_mode.c:47
 msgid "The keyboard is in mediumraw (keycode) mode\n"
 msgstr "ëÌÁ×ÉÁÔÕÒÁ ÎÁÈÏÄÉÔÓÑ × ÐÏÌÕÓÙÒÏÍ ÒÅÖÉÍÅ (ÛÌ£Ô ËÏÄÙ ËÌÁ×ÉÛ)\n"
 
-#: src/kbd_mode.c:51
+#: src/kbd_mode.c:50
 msgid "The keyboard is in the default (ASCII) mode\n"
 msgstr "ëÌÁ×ÉÁÔÕÒÁ ÎÁÈÏÄÉÔÓÑ × ÏÂÙÞÎÏÍ ÒÅÖÉÍÅ (ÛÌ£Ô ASCII-ËÏÄÙ ÚÎÁËÏ×)\n"
 
-#: src/kbd_mode.c:54
+#: src/kbd_mode.c:53
 msgid "The keyboard is in Unicode (UTF-8) mode\n"
 msgstr "ëÌÁ×ÉÁÔÕÒÁ ÎÁÈÏÄÉÔÓÑ × ÒÅÖÉÍÅ Unicode (ÛÌ£Ô ËÏÄÙ ÚÎÁËÏ× × UTF-8)\n"
 
-#: src/kbd_mode.c:57
+#: src/kbd_mode.c:56
 msgid "The keyboard is in some unknown mode\n"
 msgstr "ëÌÁ×ÉÁÔÕÒÁ (×ÒÏÄÅ ÕÎÄÅÒ×ÕÄÁ) ÎÁÈÏÄÉÔÓÑ × ÎÅÉÚ×ÅÓÔÎÏÍ ÒÅÖÉÍÅ\n"
 
-#: src/kbd_mode.c:75
+#: src/kbd_mode.c:74
 #, c-format
 msgid "%s: error setting keyboard mode\n"
 msgstr "%s: ÏÛÉÂËÁ ÕÓÔÁÎÏ×ËÉ ÒÅÖÉÍÁ ËÌÁ×ÉÁÔÕÒÙ\n"
 
-#: src/kdfontop.c:164 src/kdfontop.c:214
-msgid "setfont bug: getfont called with count<256\n"
+#: src/kbdrate.c:139 src/kbdrate.c:272
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr ""
+
+#: src/kbdrate.c:247
+#, fuzzy
+msgid "Cannot open /dev/port"
+msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
+
+#: src/kdfontop.c:152
+msgid "kdfontop.c: only width 8 supported\n"
+msgstr ""
+
+#: src/kdfontop.c:178
+#, fuzzy
+msgid "bug: getfont called with count<256\n"
 msgstr "ÏÛÉÂËÁ × setfont: getfont ÂÙÌÁ ×ÙÚ×ÁÎÁ Ó count < 256\n"
 
-#: src/ksyms.c:857
+#: src/ksyms.c:1668
 #, c-format
 msgid "unknown charset %s - ignoring charset request\n"
 msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÄÉÒÏ×ËÁ %s --- ÐÒÏÐÕÓËÁÀ ÚÁÐÒÏÓ ËÏÄÉÒÏ×ËÉ ÍÅÖÄÕ ÕÛÅÊ\n"
 
-#: src/ksyms.c:891
+#: src/ksyms.c:1740
+#, fuzzy, c-format
+msgid "assuming iso-8859-1 %s\n"
+msgstr "ÐÏÌÁÇÁÀ iso-8859-2 %s\n"
+
+#: src/ksyms.c:1747
+#, fuzzy, c-format
+msgid "assuming iso-8859-15 %s\n"
+msgstr "ÐÏÌÁÇÁÀ iso-8859-2 %s\n"
+
+#: src/ksyms.c:1754
 #, c-format
 msgid "assuming iso-8859-2 %s\n"
 msgstr "ÐÏÌÁÇÁÀ iso-8859-2 %s\n"
 
-#: src/ksyms.c:898
+#: src/ksyms.c:1761
 #, c-format
 msgid "assuming iso-8859-3 %s\n"
 msgstr "ÐÏÌÁÇÁÀ iso-8859-3 %s\n"
 
-#: src/ksyms.c:905
+#: src/ksyms.c:1768
 #, c-format
 msgid "assuming iso-8859-4 %s\n"
 msgstr "ÐÏÌÁÇÁÀ iso-8859-4 %s\n"
 
-#: src/ksyms.c:909
+#: src/ksyms.c:1773
 #, c-format
 msgid "unknown keysym '%s'\n"
 msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ keysym `%s'\n"
 
-#: src/loadunimap.c:59 src/mapscrn.c:51
+#: src/ksyms.c:1808
 #, c-format
-msgid "usage: %s [-o map.orig] map-file\n"
+msgid "plus before %s ignored\n"
+msgstr ""
+
+#: loadkeys.y:197
+#, c-format
+msgid "'%s' is not a function key symbol"
+msgstr "`%s' ÎÅ Ñ×ÌÑÅÔ ÓÏÂÏÊ ÓÉÍ×ÏÌ ÆÕÎËÃÉÏÎÁÌØÎÏÊ ËÌÁ×ÉÛÉ"
+
+#: loadkeys.y:260
+#, c-format
+msgid "too many (%d) entries on one line"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ (%d) ÛÔÕË × ÏÄÎÏÊ ÓÔÒÏÞËÅ"
+
+#: loadkeys.y:273
+msgid "too many keydefinitions on one line"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÏÐÒÅÄÅÌÅÎÉÊ ËÌÁ×ÉÛ ÎÁ ÏÄÎÏÊ ÓÔÒÏËÅ"
+
+#: loadkeys.y:292
+#, c-format
+msgid ""
+"loadkeys version %s\n"
+"\n"
+"Usage: loadkeys [option...] [mapfile...]\n"
+"\n"
+"valid options are:\n"
+"\n"
+"\t-c --clearcompose clear kernel compose table\n"
+"\t-d --default\t  load \""
+msgstr ""
+"loadkeys ×ÅÒÓÉÉ %s\n"
+"\n"
+"ðÏÌØÚÏ×ÁÔØÓÑ ÔÁË: loadkeys [ÏÐÃÉÉ...] [ÓÈÅÍÁ_ÏÔÏÂÒÁÖÅÎÉÑ_ÜËÒÁÎÁ...]\n"
+"\n"
+"ïÐÃÉÉ:\n"
+"\t-c --clearcompose\tÏÞÉÓÔÉÔØ ÑÄÒ£ÎÕÀ ÔÁÂÌÉÃÕ ÍÏÄÉÆÉËÁÔÏÒÏ×\n"
+"\t-d --default     \tÚÁÇÒÕÚÉÔØ\""
+
+#: loadkeys.y:368
+msgid "syntax error in map file\n"
+msgstr "ÓÉÎÔÁËÓÉÞÅÓËÁÑ ÏÛÉÂËÁ × ÆÁÊÌÅ ÏÔÏÂÒÁÖÅÎÉÑ\n"
+
+#: loadkeys.y:370
+msgid "key bindings not changed\n"
+msgstr "ËÌÁ×ÉÛÎÙÅ ÎÁÚÎÁÞÅÎÉÑ ÎÅ ÉÚÍÅÎÉÌÉÓØ\n"
+
+#: loadkeys.y:427
+msgid "includes nested too deeply"
+msgstr "ÆÁÊÌÙ ×ÓÔÁ×ÌÅÎÙ ÎÁ ÓÌÉÛËÏÍ ÂÏÌØÛÕÀ ÇÌÕÂÉÎÕ"
+
+#. start reading include file
+#: loadkeys.y:550
+#, c-format
+msgid "switching to %s\n"
+msgstr "ÐÅÒÅËÌÀÞÁÀÓØ ÎÁ %s\n"
+
+#: loadkeys.y:556
+#, c-format
+msgid "cannot open include file %s"
+msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ (×ÓÔÁ×ÌÑÅÍÙÊ) ÆÁÊÌ %s"
+
+#: loadkeys.y:603
+#, c-format
+msgid "Cannot find %s\n"
+msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ %s\n"
+
+#: loadkeys.y:616
+#, c-format
+msgid "cannot open file %s\n"
+msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
+
+#: loadkeys.y:627
+#, c-format
+msgid "Loading %s\n"
+msgstr "úÁÇÒÕÖÁÀ %s\n"
+
+#: loadkeys.y:639
+#, c-format
+msgid "addmap called with bad index %d"
+msgstr "addmap ×ÙÚ×ÁÎÁ Ó ËÒÉ×ÙÍ ÉÎÄÅËÓÏÍ %d"
+
+#: loadkeys.y:643
+#, c-format
+msgid "adding map %d violates explicit keymaps line"
+msgstr "ÎÁÌÏÖÅÎÉÅ ÓÈÅÍÙ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ %d ÐÒÏÔÉ×ÏÒÅÞÉÔ Ñ×ÎÏÍÕ ÕËÁÚÁÎÉÀ keymaps"
+
+#: loadkeys.y:657
+#, c-format
+msgid "killkey called with bad index %d"
+msgstr "killkey ×ÙÚ×ÁÎÁ Ó ÎÅÄÏÐÕÓÔÉÍÙÍ ÉÎÄÅËÓÏÍ %d"
+
+#: loadkeys.y:659
+#, c-format
+msgid "killkey called with bad table %d"
+msgstr "killkey ×ÙÚ×ÁÎÁ Ó ËÒÉ×ÏÊ ÔÁÂÌÉÃÅÊ %d"
+
+#: loadkeys.y:673
+#, c-format
+msgid "addkey called with bad index %d"
+msgstr "addkey ×ÙÚ×ÁÎÁΠӠÎÅÄÏÕÓÔÉÍÙÍ ÉÎÄÅËÓÏÍ %d"
+
+#: loadkeys.y:675
+#, c-format
+msgid "addkey called with bad table %d"
+msgstr "addkey ×ÙÚ×ÁÎÁ Ó ËÒÉ×ÏÊ ÔÁÂÌÉÃÅÊ %d"
+
+#: loadkeys.y:715
+#, c-format
+msgid "%s: addfunc called with bad func %d\n"
+msgstr "addfunc ×ÙÚ×ÁÎÁ Ó ÎÅÄÏÐÕÓÔÉÍÏÊ ÆÕÎËÃÉÅÊ %d\n"
+
+#: loadkeys.y:735
+#, c-format
+msgid "%s: addfunc: func_buf overflow\n"
+msgstr "%s: addfunc: ÐÅÒÅÐÏÌÎÅÎÉÅ func_buf\n"
+
+#: loadkeys.y:753
+msgid "compose table overflow\n"
+msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÔÁÂÌÉÃÙ ÓÏÓÔÁ×ÎÙÈ ÎÁÚÎÁÞÅÎÉÊ\n"
+
+#: loadkeys.y:790
+#, c-format
+msgid "Keymap %d: Permission denied\n"
+msgstr "òÁÓËÌÁÄËÁ %d: ÎÅ ÒÁÚÒÅÛÅÎÏ\n"
+
+#: loadkeys.y:799
+msgid "    FAILED"
+msgstr "    ïâìïí"
+
+#: loadkeys.y:802
+#, c-format
+msgid "failed to bind key %d to value %d\n"
+msgstr "ÎÅ ÕÄÁÌÏÓØ ÓÏÐÏÓÔÁ×ÉÔØ ËÌÁ×ÉÛÅ %d ÚÎÁÞÅÎÉÅ %d\n"
+
+#: loadkeys.y:813
+#, c-format
+msgid "deallocate keymap %d\n"
+msgstr "×ÙÓ×ÏÂÏÖÄÅÎÁ ÒÁÓËÌÁÄËÁ %d\n"
+
+#: loadkeys.y:819
+#, c-format
+msgid "%s: could not deallocate keymap %d\n"
+msgstr "%s: ÎÅ ÕÄÁÌÏÓØ ×ÙÓ×ÏÂÏÄÉÔØ ÒÁÓËÌÁÄËÕ %d\n"
+
+#: loadkeys.y:834
+#, c-format
+msgid "%s: cannot deallocate or clear keymap\n"
+msgstr "%s: ÎÅ ÕÄÁÌÏÓØ ×ÙÓ×ÏÂÏÄÉÔØ ÉÌÉ ×ÙÞÉÓÔÉÔØ ÒÁÓËÌÁÄËÕ\n"
+
+#: loadkeys.y:845
+#, c-format
+msgid "%s: failed to restore keyboard mode\n"
+msgstr "%s: ÎÅ ÕÄÁÌÏÓØ ×ÏÓÓÔÁÎÏ×ÉÔØ ÒÅÖÉÍ ËÌÁ×ÉÁÔÕÒÙ\n"
+
+#: loadkeys.y:848
+#, c-format
+msgid ""
+"%s: warning: this map uses Unicode symbols\n"
+"    (perhaps you want to do `kbd_mode -u'?)\n"
+msgstr ""
+"%s: ÐÒÅÄÏÓÔÅÒÅÖÅÎÉÅ: ÜÔÁ ÓÈÅÍÁ ÉÓÐÏÌØÚÕÅÔ ÓÉÍ×ÏÌÙ Unicode\n"
+"\t(ÍÏÖÅÔ, ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ `kbd_mode -u'?)\n"
+
+#: loadkeys.y:892
+#, c-format
+msgid "failed to bind string '%s' to function %s\n"
+msgstr "ÎÅ ÕÄÁÌÏÓØ ÐÏ×ÅÓÉÔØ ÓÔÒÏÞËÕ `%s' ÎÁ ÆÕÎËÃÉÀ %s\n"
+
+#: loadkeys.y:899
+#, c-format
+msgid "failed to clear string %s\n"
+msgstr "ÎÅ ÕÄÁÌÏÓØ ÏÞÉÓÔÉÔØ ÓÔÒÏÞËÕ `%s'\n"
+
+#: loadkeys.y:916
+msgid "too many compose definitions\n"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÓÏÓÔÁ×ÎÙÈ ÏÐÒÅÄÅÌÅÎÉÊ\n"
+
+#: loadkeys.y:976
+msgid "impossible error in do_constant"
+msgstr "ÓÕÒÏ×ÙÊ ÇÌÀË × do_constant"
+
+#: loadkeys.y:994
+#, c-format
+msgid ""
+"\n"
+"Changed %d %s and %d %s.\n"
+msgstr ""
+"\n"
+"éÚÍÅÎÅÎÙ %d %s É %d %s.\n"
+
+#: loadkeys.y:995
+msgid "key"
+msgstr "ËÌÁ×ÉÛÁ"
+
+#: loadkeys.y:995
+msgid "keys"
+msgstr "ËÌÁ×ÉÛ"
+
+#: loadkeys.y:996
+msgid "string"
+msgstr "ÓÔÒÏÞËÁ"
+
+#: loadkeys.y:996
+msgid "strings"
+msgstr "ÓÔÒÏÞÅË"
+
+#: loadkeys.y:998
+#, c-format
+msgid "Loaded %d compose %s.\n"
+msgstr "úÁÇÒÕÖÅÎÏ %d ÓÏÓÔÁ×ÎÙÈ %s.\n"
+
+#: loadkeys.y:999
+msgid "definition"
+msgstr "ÏÐÒÅÄÅÌÅÎÉÅ"
+
+#: loadkeys.y:999
+msgid "definitions"
+msgstr "ÏÐÒÅÄÅÌÅÎÉÊ"
+
+#: loadkeys.y:1001
+msgid "(No change in compose definitions.)\n"
+msgstr "(óÏÓÔÁ×ÎÙÅ ÏÐÒÅÄÅÌÅÎÉÑ ÎÅ ÐÒÅÔÅÒÐÅÌÉ ÉÚÍÅÎÅÎÉÊ.)\n"
+
+#: loadkeys.y:1034
+#, c-format
+msgid "loadkeys: don't know how to compose for %s\n"
+msgstr "loadkeys: ÎÅ ÚÎÁÀ, ËÁË ÓÏÓÔÁ×ÌÑÔØ × %s\n"
+
+#: src/loadunimap.c:57
+#, fuzzy, c-format
+msgid "usage: %s [-o map.orig] [map-file]\n"
 msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s [-o ÉÓÈÏÄÎÁÑ_ÒÁÓËÌÁÄËÁ] ÆÁÊÌ_Ó_ÒÁÓËÌÁÄËÏÊ\n"
 
 #: src/loadunimap.c:109
@@ -319,38 +631,32 @@ msgstr "
 msgid "trying hashlevel %d\n"
 msgstr "ÐÒÏÂÕÀ hashlevel %d\n"
 
-#: src/loadunimap.c:124
-#, c-format
-msgid "%s: out of memory\n"
-msgstr "%s: ÎÅÈ×ÁÔËÁ ÐÁÍÑÔÉ\n"
-
-#: src/loadunimap.c:149
+#: src/loadunimap.c:146
 #, c-format
 msgid "Loading unicode map from file %s\n"
 msgstr "úÁÇÒÕÖÁÀ unicode-ÓÈÅÍÕ ÉÚ ÆÁÊÌÁ %s\n"
 
-#: src/loadunimap.c:155
+#: src/loadunimap.c:152
 #, c-format
 msgid "%s: %s: Warning: line too long\n"
 msgstr "%s: %s: ðÒÅÄÏÓÔÅÒÅÖÅÎÉÅ: ÓÌÉÛËÏÍ ÄÌÉÎÎÁÑ ÓÔÒÏÞËÁ\n"
 
-#: src/loadunimap.c:177 src/loadunimap.c:188 src/psfaddtable.c:204
-#: src/psfaddtable.c:217
+#: src/loadunimap.c:174 src/loadunimap.c:185
 #, c-format
 msgid "Bad input line: %s\n"
 msgstr "ëÒÉ×ÁÑ ÓÔÒÏÞËÁ ÎÁ ××ÏÄÅ: %s\n"
 
-#: src/loadunimap.c:198 src/psfaddtable.c:228
+#: src/loadunimap.c:195
 #, c-format
 msgid "%s: Glyph number (0x%x) larger than font length\n"
 msgstr "%s: îÏÍÅÒ ÚÎÁËÁ (0x%x) ÂÏÌØÛÅ ËÏÌÉÞÅÓÔ×Á ÚÎÁËÏ× × ÜÔÏÍ ÛÒÉÆÔÅ\n"
 
-#: src/loadunimap.c:204 src/psfaddtable.c:235
+#: src/loadunimap.c:201
 #, c-format
 msgid "%s: Bad end of range (0x%x)\n"
 msgstr "%s: ëÒÉ×ÏÊ ËÏÎÅàÄÉÁÐÁÚÏÎÁ (0x%x)\n"
 
-#: src/loadunimap.c:224 src/psfaddtable.c:260
+#: src/loadunimap.c:221 src/psfxtable.c:167
 #, c-format
 msgid ""
 "%s: Corresponding to a range of font positions, there should be a Unicode "
@@ -359,13 +665,13 @@ msgstr ""
 "%s: äÉÁÐÁÚÏÎÕ ÐÏÚÉÃÉÊ ÛÒÉÆÔÁ ÄÏÌÖÅΠÓÏÏÔ×ÅÔÓÔ×Ï×ÁÔØ ÎÅËÉÊ ÄÉÁÐÁÚÏΠנ"
 "Unicode\n"
 
-#: src/loadunimap.c:233 src/psfaddtable.c:270
+#: src/loadunimap.c:230 src/psfxtable.c:176
 #, c-format
 msgid "%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n"
 msgstr ""
 "îÅÄÏÐÕÓÔÉÍÙÊ Unicode-ÄÉÁÐÁÚÏÎ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÄÉÁÐÁÚÏÎÕ ÛÒÉÆÔÁ 0x%x--0x%x\n"
 
-#: src/loadunimap.c:240 src/psfaddtable.c:278
+#: src/loadunimap.c:237 src/psfxtable.c:183
 #, c-format
 msgid ""
 "%s: Unicode range U+%x-U+%x not of the same length as font position range "
@@ -374,12 +680,12 @@ msgstr ""
 "%s: Unicode-ÄÉÁÐÁÚÏΠU+%x--U+%x ÏÔÌÉÞÁÅÔÓÑ ÄÌÉÎÏÊ ÏÔ ÄÉÁÐÁÚÏÎÁ ÛÒÉÆÔÁ "
 "0x%x--0x%x\n"
 
-#: src/loadunimap.c:258 src/psfaddtable.c:297
+#: src/loadunimap.c:255 src/psfxtable.c:204
 #, c-format
 msgid "%s: trailing junk (%s) ignored\n"
 msgstr "%s: ÓÉÆ ÎÁ ËÏÎÃÅ (%s) --- ÐÒÏÐÕÓËÁÀ\n"
 
-#: src/loadunimap.c:264
+#: src/loadunimap.c:261
 #, c-format
 msgid ""
 "%s: not loading empty unimap\n"
@@ -388,139 +694,230 @@ msgstr ""
 "%s: ÎÅ ÓÔÁÎÕ ÇÒÕÚÉÔØ ÐÕÓÔÕÀ unimap\n"
 "(ÅÓÌÉ ÷Ù ÎÁÓÔÁÉ×ÁÅÔÅ, ×ÏÓÐÏÌØÚÕÊÔÅÓØ ÏÐÃÉÅÊ `-f')\n"
 
-#: src/loadunimap.c:285
+#: src/loadunimap.c:282
 #, c-format
 msgid "%s: out of memory?\n"
 msgstr "%s: ÎÅÈ×ÁÔËÁ ÐÁÍÑÔÉ?\n"
 
-#: src/loadunimap.c:295
+#: src/loadunimap.c:292
 msgid "entry"
 msgstr "ÐÕÎËÔ"
 
-#: src/loadunimap.c:295
+#: src/loadunimap.c:292
 msgid "entries"
 msgstr "ÐÕÎËÔÙ"
 
-#: src/loadunimap.c:321
+#: src/loadunimap.c:318
 #, c-format
 msgid "Saved unicode map on `%s'\n"
 msgstr "úÁÐÉÓÁÌ unicode-ÓÈÅÍÕ × `%s'\n"
 
-#: src/loadunimap.c:353
+#: src/loadunimap.c:338
 msgid "Appended Unicode map\n"
 msgstr "äÏÂÁ×ÉÌ × Unicode-ÓÈÅÍÕ\n"
 
-#: src/mapscrn.c:68
+#: src/mapscrn.c:55
+#, c-format
+msgid "usage: %s [-o map.orig] map-file\n"
+msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s [-o ÉÓÈÏÄÎÁÑ_ÒÁÓËÌÁÄËÁ] ÆÁÊÌ_Ó_ÒÁÓËÌÁÄËÏÊ\n"
+
+#: src/mapscrn.c:72
 #, c-format
 msgid "mapscrn: cannot open map file _%s_\n"
 msgstr "mapscrn: ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ \"%s\"\n"
 
-#: src/mapscrn.c:73
+#: src/mapscrn.c:77
 msgid "Cannot stat map file"
 msgstr "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÆÁÊÌÅ (stat)"
 
-#: src/mapscrn.c:78
+#: src/mapscrn.c:82
 #, c-format
 msgid "Loading symbolic screen map from file %s\n"
 msgstr "úÁÇÒÕÖÁÀ ÏÐÉÓÁÎÉÅ ÓÈÅÍÙ ÏÔÏÂÒÁÖÅÎÉÑ ÜËÒÁÎÁ ÉÚ ÆÁÊÌÁ %s\n"
 
-#: src/mapscrn.c:82
+#: src/mapscrn.c:86
 msgid "Error parsing symbolic map\n"
 msgstr "ïÛÉÂËÁ ÒÁÓÓÁÓÙ×ÁÎÉÑ ÏÐÉÓÁÎÉÑ ÓÈÅÍÙ ÏÔÏÂÒÁÖÅÎÉÑ\n"
 
-#: src/mapscrn.c:86
+#: src/mapscrn.c:90
 #, c-format
 msgid "Loading binary screen map from file %s\n"
 msgstr "úÁÇÒÕÖÁÀ ÓÈÅÍÕ ÏÔÏÂÒÁÖÅÎÉÑ ÜËÒÁÎÁ ÉÚ ÆÁÊÌÁ %s\n"
 
-#: src/mapscrn.c:90
+#: src/mapscrn.c:94
 msgid "Cannot read map from file"
 msgstr "îÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ ÓÈÅÍÕ ÏÔÏÂÒÁÖÅÎÉÑ ÉÚ ÆÁÊÌÁ"
 
-#: src/mapscrn.c:103
+#: src/mapscrn.c:107
 #, c-format
 msgid "Loaded screen map from `%s'\n"
 msgstr "óÈÅÍÁ ÏÔÏÂÒÁÖÅÎÉÑ ÜËÒÁÎÁ ÚÁÇÒÕÖÅÎÁ ÉÚ `%s'\n"
 
-#: src/mapscrn.c:149
+#: src/mapscrn.c:153
 #, c-format
 msgid "mapscrn: format error detected in _%s_\n"
 msgstr "mapscrn: ÏÂÎÁÒÕÖÅÎÁ ÏÛÉÂËÁ × ÆÏÒÍÁÔÅ ÄÁÎÎÙÈ × \"%s\"\n"
 
-#: src/mapscrn.c:172
+#: src/mapscrn.c:176
 msgid "Error writing map to file"
 msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × ÆÁÊÌ"
 
-#: src/mapscrn.c:178
+#: src/mapscrn.c:182
 #, c-format
 msgid "Saved screen map in `%s'\n"
 msgstr "óÈÅÍÁ ÏÔÏÂÒÁÖÅÎÉÑ ÜËÒÁÎÁ ÚÁÐÉÓÁÎÁ × `%s'\n"
 
-#: src/psfaddtable.c:33
+#: src/psffontop.c:52
+#, fuzzy, c-format
+msgid "%s: short ucs2 unicode table\n"
+msgstr "%s: ûÒÉÆÔ ÎÅ ÉÍÅÅÔ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
+
+#: src/psffontop.c:79
+#, c-format
+msgid "%s: short utf8 unicode table\n"
+msgstr ""
+
+#: src/psffontop.c:94
+#, c-format
+msgid "%s: bad utf8\n"
+msgstr ""
+
+#: src/psffontop.c:119
+#, fuzzy, c-format
+msgid "%s: short unicode table\n"
+msgstr "%s: ûÒÉÆÔ ÎÅ ÉÍÅÅÔ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
+
+#: src/psffontop.c:198
+#, fuzzy, c-format
+msgid "%s: Error reading input font"
+msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ ×ÈÏÄÎÏÇÏ ÛÒÉÆÔÁ"
+
+#: src/psffontop.c:212
 #, c-format
+msgid "%s: Bad call of readpsffont\n"
+msgstr ""
+
+#: src/psffontop.c:227
+#, fuzzy, c-format
+msgid "%s: Unsupported psf file mode (%d)\n"
+msgstr "ó ÜÔÉÍ ÔÉÐÏÍ psf-ÆÁÊÌÁ Ñ ÒÁÂÏÔÁÔØ ÎÅ ÕÍÅÀ\n"
+
+#: src/psffontop.c:243
+#, fuzzy, c-format
+msgid "%s: Unsupported psf version (%d)\n"
+msgstr "ó ÜÔÉÍ ÔÉÐÏÍ psf-ÆÁÊÌÁ Ñ ÒÁÂÏÔÁÔØ ÎÅ ÕÍÅÀ\n"
+
+#: src/psffontop.c:257
+#, c-format
+msgid "%s: zero input font length?\n"
+msgstr ""
+
+#: src/psffontop.c:262
+#, fuzzy, c-format
+msgid "%s: zero input character size?\n"
+msgstr "%s: ûÒÉÆÔ ÎÅ ÉÍÅÅÔ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
+
+#: src/psffontop.c:268
+#, fuzzy, c-format
+msgid "%s: Input file: bad input length (%d)\n"
+msgstr "æÁÊÌ ××ÏÄÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ\n"
+
+#: src/psffontop.c:295
+#, fuzzy, c-format
+msgid "%s: Input file: trailing garbage\n"
+msgstr "æÁÊÌ ××ÏÄÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ\n"
+
+#: src/psffontop.c:328
+#, c-format
+msgid "appendunicode: illegal unicode %u\n"
+msgstr ""
+
+#: src/psfxtable.c:110
+#, c-format
+msgid "%s: Warning: line too long\n"
+msgstr "%s: ðÒÅÄÏÓÔÅÒÅÖÅÎÉÅ: ÓÌÉÛËÏÍ ÄÌÉÎÎÁÑ ÓÔÒÏÞËÁ\n"
+
+#: src/psfxtable.c:124 src/psfxtable.c:134
+#, fuzzy, c-format
+msgid "%s: Bad input line: %s\n"
+msgstr "ëÒÉ×ÁÑ ÓÔÒÏÞËÁ ÎÁ ××ÏÄÅ: %s\n"
+
+#: src/psfxtable.c:143
+#, fuzzy, c-format
+msgid "%s: Glyph number (0x%lx) past end of font\n"
+msgstr "%s: îÏÍÅÒ ÚÎÁËÁ (0x%x) ÂÏÌØÛÅ ËÏÌÉÞÅÓÔ×Á ÚÎÁËÏ× × ÜÔÏÍ ÛÒÉÆÔÅ\n"
+
+#: src/psfxtable.c:148
+#, fuzzy, c-format
+msgid "%s: Bad end of range (0x%lx)\n"
+msgstr "%s: ëÒÉ×ÏÊ ËÏÎÅàÄÉÁÐÁÚÏÎÁ (0x%x)\n"
+
+#: src/psfxtable.c:256
+#, fuzzy, c-format
 msgid ""
-"Usage: \n"
-"        %s psffont chartable [outfile]\n"
+"Usage:\n"
+"\t%s infont intable outfont\n"
 msgstr ""
 "ðÏÌØÚÏ×ÁÔØÓÑ ÔÁË:\n"
 "\t%s psf-ÛÒÉÆÔ ÔÁÂÌÉÃÁ-ÚÎÁËÏ× [ÆÁÊÌ_×Ù×ÏÄÁ]\n"
 
-#: src/psfaddtable.c:136 src/psfgettable.c:75 src/psfstriptable.c:75
-#, c-format
-msgid "%s: Cannot read psf header\n"
-msgstr "%s: îÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ psf-ÚÁÇÏÌÏ×ÏË\n"
-
-#: src/psfaddtable.c:142 src/psfgettable.c:81 src/psfstriptable.c:81
-#, c-format
-msgid "%s: Bad magic number\n"
-msgstr "%s: ëÒÉ×ÏÊ ÐÒÉÚÎÁË (magic number)\n"
-
-#: src/psfaddtable.c:148 src/psfgettable.c:87 src/psfstriptable.c:87
-#, c-format
-msgid "%s: Unknown mode number (%d)\n"
-msgstr "%s: îÅÉÚ×ÅÓÔÎÙÊ ÎÏÍÅÒ ÒÅÖÉÍÁ (%d)\n"
-
-#: src/psfaddtable.c:181
-#, c-format
-msgid "%s: Warning: line too long\n"
-msgstr "%s: ðÒÅÄÏÓÔÅÒÅÖÅÎÉÅ: ÓÌÉÛËÏÍ ÄÌÉÎÎÁÑ ÓÔÒÏÞËÁ\n"
+#: src/psfxtable.c:265
+#, fuzzy, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont [outtable]\n"
+msgstr ""
+"ðÏÌØÚÏ×ÁÔØÓÑ ÔÁË:\n"
+"\t%s psf-ÛÒÉÆÔ [ÆÁÊÌ_×Ù×ÏÄÁ]\n"
 
-#: src/psfgettable.c:23 src/psfstriptable.c:25
-#, c-format
+#: src/psfxtable.c:274
+#, fuzzy, c-format
 msgid ""
-"Usage: \n"
-"        %s psffont [outfile]\n"
+"Usage:\n"
+"\t%s infont outfont\n"
 msgstr ""
 "ðÏÌØÚÏ×ÁÔØÓÑ ÔÁË:\n"
 "\t%s psf-ÛÒÉÆÔ [ÆÁÊÌ_×Ù×ÏÄÁ]\n"
 
-#: src/psfgettable.c:96
+#: src/psfxtable.c:297
 #, c-format
-msgid "%s: Font has no character table\n"
-msgstr "%s: ûÒÉÆÔ ÎÅ ÉÍÅÅÔ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
+msgid ""
+"Usage:\n"
+"\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n"
+msgstr ""
 
-#: src/psfstriptable.c:96
+#: src/psfxtable.c:356
+#, fuzzy, c-format
+msgid "%s: Bad magic number on %s\n"
+msgstr "%s: ëÒÉ×ÏÊ ÐÒÉÚÎÁË (magic number)\n"
+
+#: src/psfxtable.c:371
+#, c-format
+msgid "%s: psf file with unknown magic\n"
+msgstr ""
+
+#: src/psfxtable.c:387
 #, c-format
-msgid "%s: Font already had no character table\n"
-msgstr "%s: ûÒÉÆÔ ÕÖÅ ÂÙÌ ÂÅÚ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
+msgid "%s: input font does not have an index\n"
+msgstr ""
 
-#: src/resizecons.c:145
+#: src/resizecons.c:149
 #, c-format
 msgid "resizecons: cannot find videomode file %s\n"
 msgstr "resizecons: ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÆÁÊÌ ×ÉÄÅÏÒÅÖÉÍÁ %s\n"
 
-#: src/resizecons.c:164
+#: src/resizecons.c:168
 msgid "Invalid number of lines\n"
 msgstr "îÅÄÏÐÕÓÔÉÍÏÅ ÞÉÓÌÏ ÓÔÒÏË\n"
 
-#: src/resizecons.c:230
+#: src/resizecons.c:234
 #, c-format
 msgid "Old mode: %dx%d  New mode: %dx%d\n"
 msgstr ""
 "ðÒÅÖÎÉÊ ÒÅÖÉÍ: %dx%d\n"
 "  îÏ×ÙÊ ÒÅÖÉÍ: %dx%d\n"
 
-#: src/resizecons.c:232
+#: src/resizecons.c:236
 #, c-format
 msgid "Old #scanlines: %d  New #scanlines: %d  Character height: %d\n"
 msgstr ""
@@ -528,12 +925,12 @@ msgstr ""
 "óÔÒÏË ÒÁÚ×£ÒÔËÉ ×   ÎÏ×ÏÍ ÒÅÖÉÍÅ: %d\n"
 "                   ÷ÙÓÏÔÁ ÛÒÉÆÔÁ: %d\n"
 
-#: src/resizecons.c:243
+#: src/resizecons.c:247
 #, c-format
 msgid "resizecons: the command `%s' failed\n"
 msgstr "resizecons: ËÏÍÁÎÄÁ `%s' ÎÅ ÕÄÁÌÁÓØ\n"
 
-#: src/resizecons.c:308
+#: src/resizecons.c:315
 #, c-format
 msgid ""
 "resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n"
@@ -541,7 +938,7 @@ msgstr ""
 "resizecons: ÎÅ ÚÁÂÕÄØÔÅ ÓÍÅÎÉÔØ TERM (×ÏÚÍÏÖÎÏ, ÎÁ con%dx%d ÉÌÉ "
 "linux-%dx%d)\n"
 
-#: src/resizecons.c:321
+#: src/resizecons.c:328
 msgid ""
 "resizecons:\n"
 "call is:  resizecons COLSxROWS  or:  resizecons COLS ROWS\n"
@@ -555,46 +952,47 @@ msgstr ""
 ", ÇÄÅ ÐÁÒÁÍÅÔÒ óôòïþåë ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÚÎÁÞÅÎÉÑ:\n"
 "\t25, 28, 30, 34, 36, 40, 44, 50, 60\n"
 
-#: src/resizecons.c:359
+#: src/resizecons.c:366
 msgid "resizecons: cannot get I/O permissions.\n"
 msgstr "resizecons: ÎÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÐÒÁ×Á ÎÁ ÄÏÓÔÕРËÏ ××ÏÄÕ-×Ù×ÏÄÕ.\n"
 
-#: src/screendump.c:38
+#: src/screendump.c:46
 msgid "usage: screendump [n]\n"
 msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: screendump [n]\n"
 
-#: src/screendump.c:55 src/screendump.c:120 src/setfont.c:251
-msgid "Out of memory?\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ?\n"
-
-#: src/screendump.c:59
+#: src/screendump.c:66
 #, c-format
 msgid "Error reading %s\n"
 msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ %s\n"
 
-#: src/screendump.c:94
-msgid "Out of memory.\n"
-msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ.\n"
-
-#: src/screendump.c:104
+#: src/screendump.c:107
 #, c-format
 msgid "couldn't read %s, and cannot ioctl dump\n"
 msgstr ""
 "ÎÅ ÓÍÏÇ ÐÒÏÞÉÔÁÔØ %s É ÎÅ ÍÏÇÕ ÕÐÒÁ×ÌÑÔØ ÆÁÊÌ-ÄÅÓËÒÉÐÔÏÒÏÍ ÓÂÒÏÓÁ (ioctl "
 "dump)\n"
 
+#. we tried this just to be sure, but TIOCLINUX
+#. function 0 has been disabled since 1.1.92
+#. Do not mention `ioctl dump' in error msg
 #: src/screendump.c:113
 #, c-format
+msgid "couldn't read %s\n"
+msgstr ""
+
+#: src/screendump.c:122
+#, c-format
 msgid "Strange ... screen is both %dx%d and %dx%d ??\n"
 msgstr "îÕ É ÎÕ! üËÒÁΠÏÄÎÏ×ÒÅÍÅÎÎÏ É %dx%d, É %dx%d?\n"
 
-#: src/screendump.c:135
+#: src/screendump.c:140
 msgid "Error writing screendump\n"
 msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ ÜËÒÁÎÎÏÇÏ ÓÂÒÏÓÁ\n"
 
-#: src/setfont.c:63
+#: src/setfont.c:76
+#, fuzzy
 msgid ""
-"Usage: setfont [write-options] [-<N>] [newfont] [-m consolemap] [-u "
+"Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u "
 "unicodemap]\n"
 "  write-options (take place before file loading):\n"
 "    -o  <filename>\tWrite current font to <filename>\n"
@@ -650,12 +1048,16 @@ msgstr ""
 "\n"
 "æÁÊÌÙ ÚÁÇÒÕÖÁÀÔÓÑ ÉÚ ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ ÉÌÉ ÉÚ `/usr/share/kbd/...'.\n"
 
-#: src/setfont.c:106
+#: src/setfont.c:121
 #, c-format
 msgid "setfont version %s\n"
 msgstr "setfont ×ÅÒÓÉÉ %s\n"
 
-#: src/setfont.c:160
+#: src/setfont.c:169
+msgid "setfont: too many input files\n"
+msgstr ""
+
+#: src/setfont.c:177
 msgid ""
 "setfont: cannot both restore from character ROM and from file. Font "
 "unchanged.\n"
@@ -663,21 +1065,46 @@ msgstr ""
 "setfont: ÎÅ ÍÏÇÕ ÓÔÁ×ÉÔØ ÛÒÉÆÔ ÓÒÁÚÕ É ÉÚ ðúõ, É ÉÚ ÆÁÊÌÁ. ûÒÉÆÔ îå "
 "ÉÚÍÅΣÎ.\n"
 
-#: src/setfont.c:221
+#: src/setfont.c:245
 #, c-format
 msgid "Bad character size %d\n"
 msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÒÁÚÍÅÒ ÚÎÁËÁ %d\n"
 
-#: src/setfont.c:232
+#: src/setfont.c:266
+#, c-format
+msgid "%s: font position 32 is nonblank\n"
+msgstr ""
+
+#: src/setfont.c:274
+#, c-format
+msgid "%s: wiped it\n"
+msgstr ""
+
+#: src/setfont.c:278
+#, c-format
+msgid "%s: background will look funny\n"
+msgstr ""
+
+#: src/setfont.c:288
 #, c-format
 msgid "Loading %d-char 8x%d font from file %s\n"
 msgstr "úÁÇÒÕÖÁÀ %d-ÚÎÁËÏ×ÙÊ ÛÒÉÆÔ 8x%d ÉÚ ÆÁÊÌÁ %s\n"
 
-#: src/setfont.c:270
+#: src/setfont.c:291
+#, fuzzy, c-format
+msgid "Loading %d-char 8x%d font\n"
+msgstr "úÁÇÒÕÖÁÀ %d-ÚÎÁËÏ×ÙÊ ÛÒÉÆÔ 8x%d ÉÚ ÆÁÊÌÁ %s\n"
+
+#: src/setfont.c:332
+#, c-format
+msgid "%s: bug in do_loadtable\n"
+msgstr ""
+
+#: src/setfont.c:340
 msgid "Loading Unicode mapping table...\n"
 msgstr "úÁÇÒÕÖÁÀ Unicode-ÔÁÂÌÉÃÕ...\n"
 
-#: src/setfont.c:279
+#: src/setfont.c:349
 msgid ""
 "It seems this kernel is older than 1.1.92\n"
 "No Unicode mapping table loaded.\n"
@@ -685,51 +1112,58 @@ msgstr ""
 "ðÏÈÏÖÅ, ÑÄÒÏ ÄÒÅ×ÎÅÅ 1.1.92!\n"
 "îÉËÁËÉÈ Unicode-ÔÁÂÌÉàÎÅ ÚÁÇÒÕÖÅÎÏ.\n"
 
-#: src/setfont.c:317
+#: src/setfont.c:396 src/setfont.c:469
+#, c-format
+msgid "Cannot open font file %s\n"
+msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
+
+#: src/setfont.c:407
+#, c-format
+msgid "When loading several fonts, all must be psf fonts - %s isn't\n"
+msgstr ""
+
+#: src/setfont.c:414
+#, fuzzy, c-format
+msgid "Read %d-char 8x%d font from file %s\n"
+msgstr "úÁÇÒÕÖÁÀ %d-ÚÎÁËÏ×ÙÊ ÛÒÉÆÔ 8x%d ÉÚ ÆÁÊÌÁ %s\n"
+
+#: src/setfont.c:419
+msgid "When loading several fonts, all must have the same pointsize\n"
+msgstr ""
+
+#: src/setfont.c:456
 msgid "Cannot find default font\n"
 msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÏÓÎÏ×ÎÏÊ ÛÒÉÆÔ (ËÏÔÏÒÙÊ `ÐÏ ÕÍÏÌÞÁÎÉÀ')\n"
 
-#: src/setfont.c:324
+#: src/setfont.c:463
 #, c-format
 msgid "Cannot find %s font\n"
 msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ %s\n"
 
-#: src/setfont.c:330
-#, c-format
-msgid "Cannot open font file %s\n"
-msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
-
-#: src/setfont.c:342
-msgid "Error reading input font"
-msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ ×ÈÏÄÎÏÇÏ ÛÒÉÆÔÁ"
+#: src/setfont.c:506
+msgid "No final newline in combine file\n"
+msgstr ""
 
-#: src/setfont.c:351
-msgid ""
-"Setfont is so naive as to believe that font files\n"
-"have a size of at most 32kB.  Unfortunately it seems\n"
-"that you encountered an exception.  If this really is\n"
-"a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n"
-msgstr ""
-"Setfont ÎÁÉ×ÅΠÎÁÓÔÏÌØËÏ, ÞÔÏ ÐÏÌÁÇÁÅÔ,\n"
-"ÞÔÏ ÆÁÊÌÙ ÛÒÉÆÔÏ× ÍÏÇÕÔ ÂÙÔØ ÏÔ ÓÉÌÙ 32KB.\n"
-"õ×Ù, ÐÏÈÏÖÅ, ÷Ù ÎÁÔËÎÕÌÉÓØ ÎÁ ÉÓËÌÀÞÅÎÉÅ.\n"
-"åÓÌÉ ÜÔÏ É × ÓÁÍÏÍ ÄÅÌÅ ÛÒÉÆÔÏ×ÙÊ ÆÁÊÌ, ÔÏ:\n"
-"   1. ÐÅÒÅËÏÍÐÉÌÉÒÕÊÔÅ, ÐÏÖÁÌÕÊÓÔÁ, setfont,\n"
-"   2. ÓÏÏÂÝÉÔÅ Ï ÜÔÏÍ <aeb@cwi.nl>.\n"
-
-#: src/setfont.c:376
-msgid "Unsupported psf file mode\n"
-msgstr "ó ÜÔÉÍ ÔÉÐÏÍ psf-ÆÁÊÌÁ Ñ ÒÁÂÏÔÁÔØ ÎÅ ÕÍÅÀ\n"
+#: src/setfont.c:512
+#, fuzzy
+msgid "Too many files to combine\n"
+msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ (%d) ÛÔÕË × ÏÄÎÏÊ ÓÔÒÏÞËÅ"
 
-#: src/setfont.c:385
-msgid "Input file: bad length\n"
-msgstr "æÁÊÌ ××ÏÄÁ: ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ\n"
+#. restorefont -w writes a SVGA font to file
+#. restorefont -r restores it
+#. These fonts have size 32768, for two 512-char fonts.
+#. In fact, when BROKEN_GRAPHICS_PROGRAMS is defined,
+#. and it always is, there is no default font that is saved,
+#. so probably the second half is always garbage.
+#: src/setfont.c:535
+msgid "Hmm - a font from restorefont? Using the first half.\n"
+msgstr ""
 
-#: src/setfont.c:402
+#: src/setfont.c:551
 msgid "Bad input file size\n"
 msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÒÁÚÍÅÒ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ\n"
 
-#: src/setfont.c:421
+#: src/setfont.c:570
 msgid ""
 "This file contains 3 fonts: 8x8, 8x14 and 8x16. Please indicate\n"
 "using an option -8 or -14 or -16 which one you want loaded.\n"
@@ -738,29 +1172,29 @@ msgstr ""
 "õËÁÖÉÔÅ, ÐÏÖÁÌÕÊÓÔÁ, ÏÄÎÉÍ ÉÚ ËÌÀÞÉËÏ×: -8, -14 ÉÌÉ -16,\n"
 "ËÁËÏÊ ÉÍÅÎÎÏ ÷Ù ÈÏÔÉÔÅ ÚÁÇÒÕÚÉÔØ.\n"
 
-#: src/setfont.c:435
+#: src/setfont.c:584
 #, c-format
 msgid "You asked for font size %d, but only 8, 14, 16 are possible here.\n"
 msgstr "÷Ù ÐÒÏÓÉÌÉ ÛÒÉÆÔ ÒÁÚÍÅÒÁ %d, ÎÏ ×ÏÚÍÏÖÎÙ ÔÏÌØËÏ 8, 14 ÉÌÉ 16.\n"
 
-#: src/setfont.c:471
+#: src/setfont.c:621
 msgid "Cannot write font file header"
 msgstr "îÅ ÍÏÇÕ ÚÁÐÉÓÁÔØ ÚÁÇÏÌÏ×ÏË ÆÁÊÌÁ ÛÒÉÆÔÁ"
 
-#: src/setfont.c:477
+#: src/setfont.c:627
 msgid "Found nothing to save\n"
 msgstr "îÅ ÎÁÛ£Ì, ÞÔÏ ÚÁÐÉÓÁÔØ\n"
 
-#: src/setfont.c:481
+#: src/setfont.c:631
 msgid "Cannot write font file"
 msgstr "îÅ ÍÏÇÕ ÚÁÐÉÓÁÔØ ÆÁÊÌ ÛÒÉÆÔÁ"
 
-#: src/setfont.c:485
+#: src/setfont.c:635
 #, c-format
 msgid "Saved %d-char 8x%d font file on %s\n"
 msgstr "úÁÐÉÓÁÌ %d-ÚÎÁËÏ×ÙÊ ÛÒÉÆÔ 8x%d × ÆÁÊÌ %s\n"
 
-#: src/setkeycodes.c:21
+#: src/setkeycodes.c:20
 msgid ""
 "usage: setkeycode scancode keycode ...\n"
 " (where scancode is either xx or e0xx, given in hexadecimal,\n"
@@ -770,27 +1204,28 @@ msgstr ""
 "óËÁÎ-ËÏÄ ÓÌÅÄÕÅÔ ÐÉÓÁÔØ × ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÏÍ ×ÉÄÅ: xx ÉÌÉ e0xx,\n"
 "ËÏÄ ËÌÁ×ÉÛÉ --- × ÄÅÓÑÔÉÞÎÏÊ ÚÁÐÉÓÉ.\n"
 
-#: src/setkeycodes.c:38
+#: src/setkeycodes.c:37
 msgid "even number of arguments expected"
 msgstr "ÏÖÉÄÁÅÔÓÑ Þ£ÔÎÏÅ ÞÉÓÌÏ ÁÒÇÕÍÅÎÔÏ×"
 
-#: src/setkeycodes.c:45
+#: src/setkeycodes.c:44
 msgid "error reading scancode"
 msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ ÓËÁÎ-ËÏÄÁ"
 
-#: src/setkeycodes.c:51
+#: src/setkeycodes.c:50
 msgid "code outside bounds"
 msgstr "ËÏÄ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ"
 
-#: src/setkeycodes.c:54
+#: src/setkeycodes.c:53
 #, c-format
 msgid "failed to set scancode %x to keycode %d\n"
 msgstr "ÎÅ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÓËÁÎ-ËÏÄ %x ËÏÄÕ %d\n"
 
-#: src/setleds.c:20
+#: src/setleds.c:24
+#, fuzzy, c-format
 msgid ""
 "Usage:\n"
-"\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll ]]\n"
+"\tsetleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll %s]]\n"
 "Thus,\n"
 "\tsetleds +caps -num\n"
 "will set CapsLock, clear NumLock and leave ScrollLock unchanged.\n"
@@ -817,32 +1252,50 @@ msgstr ""
 "ÉÈ ÉÈ ÚÎÁÞÅÎÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ, ÔÁË ÞÔÏ ÐÏÓÌÅÄÕÀÝÉÊ ÐÅÒÅÚÁÐÕÓË ÓÉÓÔÅÍÙ\n"
 "ÏÓÔÁ×ÉÔ ÜÔÉ ÆÌÁÖËÉ ÂÅÚ ÉÚÍÅÎÅÎÉÊ.\n"
 
-#: src/setleds.c:74
+#: src/setleds.c:89
 msgid "Error reading current led setting. Maybe stdin is not a VT?\n"
 msgstr ""
 "ïÛÉÂËÁ ÞÔÅÎÉÑ ÔÅËÕÝÅÇÏ ÓÏÓÔÏÑÎÉÑ ÌÁÍÐÏÞÅË. íÏÖÅÔ, stdin É ÎÅ VT ÓÏ×ÓÅÍ?\n"
 
-#: src/setleds.c:81
+#: src/setleds.c:108
 msgid "Error reading current flags setting. Maybe an old kernel?\n"
 msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ ÔÅËÕÝÅÇÏ ÓÏÓÔÏÑÎÉÑ ÆÌÁÖËÏ×. íÏÖÅÔ, ÑÄÒÏ ÓÔÁÒÏ×ÁÔÏ?\n"
 
-#: src/setleds.c:108
+#: src/setleds.c:121 src/setleds.c:136
+#, fuzzy
+msgid "Error reading current led setting from /dev/kbd.\n"
+msgstr ""
+"ïÛÉÂËÁ ÞÔÅÎÉÑ ÔÅËÕÝÅÇÏ ÓÏÓÔÏÑÎÉÑ ÌÁÍÐÏÞÅË. íÏÖÅÔ, stdin É ÎÅ VT ÓÏ×ÓÅÍ?\n"
+
+#: src/setleds.c:125
+msgid "KIOCGLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:140
+msgid "KIOCSLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:158
+msgid "Error opening /dev/kbd.\n"
+msgstr ""
+
+#: src/setleds.c:194
 msgid "Error resetting ledmode\n"
 msgstr "ïÛÉÂËÁ ÕÓÔÁÎÏ×ËÉ ÌÁÍÐÏÞÅË × ÉÓÈÏÄÎÏÅ ÓÏÓÔÏÑÎÉÅ\n"
 
-#: src/setleds.c:117
+#: src/setleds.c:203
 msgid "Current default flags:  "
 msgstr "ôÅËÕÝÉÅ ÆÌÁÖËÉ `ÐÏ ÕÍÏÌÞÁÎÉÀ':   "
 
-#: src/setleds.c:121
+#: src/setleds.c:207
 msgid "Current flags:          "
 msgstr "ôÅËÕÝÉÅ ÆÌÁÖËÉ:                   "
 
-#: src/setleds.c:125
+#: src/setleds.c:211
 msgid "Current leds:           "
 msgstr "ôÅËÕÝÅÅ ÓÏÓÔÏÑÎÉÅ ÌÁÍÐÏÞÅË:      "
 
-#: src/setleds.c:153 src/setmetamode.c:90
+#: src/setleds.c:247 src/setmetamode.c:88
 #, c-format
 msgid ""
 "unrecognized argument: _%s_\n"
@@ -851,27 +1304,27 @@ msgstr ""
 "ÎÅÐÏÎÑÔÎÙÊ ÁÒÇÕÍÅÎÔ: \"%s\"\n"
 "\n"
 
-#: src/setleds.c:162
+#: src/setleds.c:256
 msgid "Old default flags:    "
 msgstr "ðÒÅÖÎÉÅ ÆÌÁÖËÉ `ÐÏ ÕÍÏÌÞÁÎÉÀ':   "
 
-#: src/setleds.c:164
+#: src/setleds.c:258
 msgid "New default flags:    "
 msgstr "  îÏ×ÙÅ ÆÌÁÖËÉ `ÐÏ ÕÍÏÌÞÁÎÉÀ':   "
 
-#: src/setleds.c:171
+#: src/setleds.c:265
 msgid "Old flags:            "
 msgstr "ðÒÅÖÎÉÅ ÆÌÁÖËÉ:                  "
 
-#: src/setleds.c:173
+#: src/setleds.c:267
 msgid "New flags:            "
 msgstr "  îÏ×ÙÅ ÆÌÁÖËÉ:                  "
 
-#: src/setleds.c:186
+#: src/setleds.c:281 src/setleds.c:290
 msgid "Old leds:             "
 msgstr "ðÒÅÖÎÅÅ ÓÏÓÔÏÑÎÉÅ ÌÁÍÐÏÞÅË:      "
 
-#: src/setleds.c:188
+#: src/setleds.c:283 src/setleds.c:292
 msgid "New leds:             "
 msgstr "  îÏ×ÏÅ ÓÏÓÔÏÑÎÉÅ ÌÁÍÐÏÞÅË:      "
 
@@ -892,27 +1345,27 @@ msgstr ""
 "ÞÔÏÂÙ ÕÐÒÁ×ÌÑÔØ ÓÏÓÔÏÑÎÉÅÍ ÄÒÕÇÏÇÏ VT.\n"
 "äÏËÌÁÄÁÀÔÓÑ ÓÏÓÔÏÑÎÉÑ ÄÏ É ÐÏÓÌÅ ÉÚÍÅÎÅÎÉÑ.\n"
 
-#: src/setmetamode.c:36
+#: src/setmetamode.c:35
 msgid "Meta key sets high order bit\n"
 msgstr "ëÌÁ×ÉÛÁ Meta ÕÓÔÁÎÁ×ÌÉ×ÁÅÔ ÓÔÁÒÛÉÊ ÂÉÔ\n"
 
-#: src/setmetamode.c:39
+#: src/setmetamode.c:38
 msgid "Meta key gives Esc prefix\n"
 msgstr "ëÌÁ×ÉÛÁ Meta ÄÁ£Ô Esc-ÐÒÅÆÉËÓ\n"
 
-#: src/setmetamode.c:42
+#: src/setmetamode.c:41
 msgid "Strange mode for Meta key?\n"
 msgstr "óÔÒÁÎÎÙÊ ÒÅÖÉÍ ËÌÁ×ÉÛÉ Meta\n"
 
-#: src/setmetamode.c:74
+#: src/setmetamode.c:72
 msgid "Error reading current setting. Maybe stdin is not a VT?\n"
 msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ ÔÅËÕÝÅÇÏ ÓÏÓÔÏÑÎÉÑ. íÏÖÅÔ, stdin É ÎÅ VT ÓÏ×ÓÅÍ?\n"
 
-#: src/setmetamode.c:94
+#: src/setmetamode.c:92
 msgid "old state:    "
 msgstr "ÐÒÅÖÎÅÅ ÓÏÓÔÏÑÎÉÅ:   "
 
-#: src/setmetamode.c:100
+#: src/setmetamode.c:98
 msgid "new state:    "
 msgstr "  ÎÏ×ÏÅ ÓÏÓÔÏÑÎÉÅ:   "
 
@@ -958,12 +1411,12 @@ msgstr ""
 "[ ÅÓÌÉ ÷Ù ÐÙÔÁÅÔÅÓØ ÐÒÏÄÅÌÁÔØ ÜÔÏ ÐÏÄ X-ÁÍÉ, ÏÎÏ, ×ÏÚÍÏÖÎÏ,\n"
 "  É ÎÅ ÓÒÁÂÏÔÁÅÔ, ÔÁË ËÁË X ÓÅÒ×ÅÒ ÔÏÖÅ ÞÉÔÁÅÔ /dev/console ]\n"
 
-#: src/showkey.c:63
+#: src/showkey.c:65
 #, c-format
 msgid "caught signal %d, cleaning up...\n"
 msgstr "ÐÏÊÍÁÌ ÓÉÇÎÁÌ %d, ÕÂÉÒÁÀ ÚÁ ÓÏÂÏÊ...\n"
 
-#: src/showkey.c:75
+#: src/showkey.c:79
 #, c-format
 msgid ""
 "showkey version %s\n"
@@ -989,7 +1442,7 @@ msgstr ""
 "\t-k --keycodes \tÐÏËÁÚÁÔØ ÔÏÌØËÏ ÐÒÏÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÎÎÙÅ ËÏÄÙ ËÌÁ×ÉÛ\n"
 "\t              \t(ÅÓÌÉ ÎÅ ÕËÁÚÁÎÏ Ñ×ÎÏ ÉÎÏÅ, ÐÏÌÁÇÁÅÔÓÑ `keycodes')\n"
 
-#: src/showkey.c:148
+#: src/showkey.c:152
 msgid ""
 "\n"
 "Press any keys - Ctrl-D will terminate this program\n"
@@ -1005,238 +1458,64 @@ msgstr ""
 "\n"
 " (×ÙÈÏÄÉÔØ ÐÏ Ctrl-D)\n"
 
-#: src/showkey.c:217
+#: src/showkey.c:221
 msgid "press any key (program terminates 10s after last keypress)...\n"
 msgstr ""
 "ÎÁÖÍÉÔÅ ÎÁ ËÌÁ×ÉÛÕ `any' (ÏÎÁ ÎÁ ÓÉÓÔÅÍÎÏÍ ÂÌÏËÅ)...\n"
 "ðÒÏÇÒÁÍÍÁ ÚÁ×ÅÒÛÁÅÔÓÑ ÐÏÓÌÅ 10 ÓÅËÕÎÄ `ÐÏËÏÑ' (ÎÅ ÎÁÖÉÍÁÅÔÓÑ ÎÉ ÏÄÎÁ "
 "ËÌÁ×ÉÛÁ)\n"
 
-#: src/showkey.c:225
+#: src/showkey.c:229
 #, c-format
 msgid "keycode %3d %s\n"
 msgstr "ËÌÁ×ÉÛÁ %3d (ËÏÄ) %s\n"
 
-#: src/showkey.c:227
+#: src/showkey.c:231
 msgid "release"
 msgstr "ÏÔÐÕÝÅÎÁ"
 
-#: src/showkey.c:228
+#: src/showkey.c:232
 msgid "press"
 msgstr "ÎÁÖÁÔÁ"
 
-#: src/loadkeys.y:196
-#, c-format
-msgid "'%s' is not a function key symbol"
-msgstr ""
-
-#: src/loadkeys.y:259
-#, c-format
-msgid "too many (%d) entries on one line"
-msgstr ""
-
-#: src/loadkeys.y:272
-msgid "too many keydefinitions on one line"
-msgstr ""
-
-#: src/loadkeys.y:291
-#, c-format
-msgid ""
-"loadkeys version %s\n"
-"\n"
-"Usage: loadkeys [option...] [mapfile...]\n"
-"\n"
-"valid options are:\n"
-"\n"
-"\t-c --clearcompose clear kernel compose table\n"
-"\t-d --default\t  load \""
-msgstr ""
-
-#: src/loadkeys.y:362
-#, fuzzy
-msgid "syntax error in map file\n"
-msgstr "ïÛÉÂËÁ ÚÁÐÉÓÉ × ÆÁÊÌ"
-
-#: src/loadkeys.y:364
-msgid "key bindings not changed\n"
-msgstr ""
-
-#: src/loadkeys.y:421
-msgid "includes nested too deeply"
-msgstr ""
-
-#. start reading include file
-#: src/loadkeys.y:544
-#, c-format
-msgid "switching to %s\n"
-msgstr ""
-
-#: src/loadkeys.y:550
-#, fuzzy, c-format
-msgid "cannot open include file %s"
-msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
-
-#: src/loadkeys.y:597
-#, fuzzy, c-format
-msgid "Cannot find %s\n"
-msgstr "îÅ ÍÏÇÕ ÎÁÊÔÉ ÛÒÉÆÔ %s\n"
-
-#: src/loadkeys.y:610
-#, fuzzy, c-format
-msgid "cannot open file %s\n"
-msgstr "îÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ %s\n"
-
-#: src/loadkeys.y:621
-#, fuzzy, c-format
-msgid "Loading %s\n"
-msgstr "ïÛÉÂËÁ ÞÔÅÎÉÑ %s\n"
-
-#: src/loadkeys.y:633
-#, c-format
-msgid "addmap called with bad index %d"
-msgstr ""
-
-#: src/loadkeys.y:637
-#, c-format
-msgid "adding map %d violates explicit keymaps line"
-msgstr ""
-
-#: src/loadkeys.y:651
-#, c-format
-msgid "killkey called with bad index %d"
-msgstr ""
-
-#: src/loadkeys.y:653
-#, c-format
-msgid "killkey called with bad table %d"
-msgstr ""
-
-#: src/loadkeys.y:667
-#, c-format
-msgid "addkey called with bad index %d"
-msgstr ""
-
-#: src/loadkeys.y:669
-#, c-format
-msgid "addkey called with bad table %d"
-msgstr ""
-
-#: src/loadkeys.y:709
-#, c-format
-msgid "%s: addfunc called with bad func %d\n"
-msgstr ""
-
-#: src/loadkeys.y:729
-#, c-format
-msgid "%s: addfunc: func_buf overflow\n"
-msgstr ""
-
-#: src/loadkeys.y:747
-msgid "compose table overflow\n"
-msgstr ""
-
-#: src/loadkeys.y:784
-#, c-format
-msgid "Keymap %d: Permission denied\n"
-msgstr ""
-
-#: src/loadkeys.y:793
-msgid "    FAILED"
-msgstr ""
-
-#: src/loadkeys.y:796
-#, fuzzy, c-format
-msgid "failed to bind key %d to value %d\n"
-msgstr "ÎÅ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÓËÁÎ-ËÏÄ %x ËÏÄÕ %d\n"
-
-#: src/loadkeys.y:807
+#: src/xmalloc.c:14
 #, c-format
-msgid "deallocate keymap %d\n"
-msgstr ""
-
-#: src/loadkeys.y:813
-#, fuzzy, c-format
-msgid "%s: could not deallocate keymap %d\n"
-msgstr "%s: ÎÕ, ÎÅ ÓÍÏÇÌÁ Ñ ×ÙÓ×ÏÂÏÄÉÔØ ËÏÎÓÏÌØ %d\n"
-
-#: src/loadkeys.y:828
-#, fuzzy, c-format
-msgid "%s: cannot deallocate or clear keymap\n"
-msgstr "%s: ÎÕ, ÎÅ ÓÍÏÇÌÁ Ñ ×ÙÓ×ÏÂÏÄÉÔØ ËÏÎÓÏÌØ %d\n"
-
-#: src/loadkeys.y:839
-#, fuzzy, c-format
-msgid "%s: failed to restore keyboard mode\n"
-msgstr "%s: ÏÛÉÂËÁ ÕÓÔÁÎÏ×ËÉ ÒÅÖÉÍÁ ËÌÁ×ÉÁÔÕÒÙ\n"
-
-#: src/loadkeys.y:842
-#, c-format
-msgid ""
-"%s: warning: this map uses Unicode symbols\n"
-"    (perhaps you want to do `kbd_mode -u'?)\n"
-msgstr ""
-
-#: src/loadkeys.y:886
-#, c-format
-msgid "failed to bind string '%s' to function %s\n"
-msgstr ""
-
-#: src/loadkeys.y:893
-#, c-format
-msgid "failed to clear string %s\n"
-msgstr ""
-
-#: src/loadkeys.y:910
-#, fuzzy
-msgid "too many compose definitions\n"
-msgstr "ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÏÓÔÁ×ÎÙÈ ÏÐÒÅÄÅÌÅÎÉÊ: %d\n"
-
-#: src/loadkeys.y:970
-msgid "impossible error in do_constant"
-msgstr ""
-
-#: src/loadkeys.y:988
-#, c-format
-msgid ""
-"\n"
-"Changed %d %s and %d %s.\n"
-msgstr ""
+msgid "%s: out of memory\n"
+msgstr "%s: ÎÅÈ×ÁÔËÁ ÐÁÍÑÔÉ\n"
 
-#: src/loadkeys.y:989
-msgid "key"
-msgstr ""
+#~ msgid "usage: %s [N1 N2 ...]\n"
+#~ msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s [N1 N2 ...]\n"
 
-#: src/loadkeys.y:989
-msgid "keys"
-msgstr ""
+#~ msgid "Out of Memory\n"
+#~ msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ\n"
 
-#: src/loadkeys.y:990
-msgid "string"
-msgstr ""
+#~ msgid "Out of Memory?\n"
+#~ msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ?\n"
 
-#: src/loadkeys.y:990
-msgid "strings"
-msgstr ""
+#~ msgid "%s: Cannot read psf header\n"
+#~ msgstr "%s: îÅ ÍÏÇÕ ÐÒÏÞÉÔÁÔØ psf-ÚÁÇÏÌÏ×ÏË\n"
 
-#: src/loadkeys.y:992
-#, fuzzy, c-format
-msgid "Loaded %d compose %s.\n"
-msgstr "óÈÅÍÁ ÏÔÏÂÒÁÖÅÎÉÑ ÜËÒÁÎÁ ÚÁÇÒÕÖÅÎÁ ÉÚ `%s'\n"
+#~ msgid "%s: Unknown mode number (%d)\n"
+#~ msgstr "%s: îÅÉÚ×ÅÓÔÎÙÊ ÎÏÍÅÒ ÒÅÖÉÍÁ (%d)\n"
 
-#: src/loadkeys.y:993
-msgid "definition"
-msgstr ""
+#~ msgid "%s: Font already had no character table\n"
+#~ msgstr "%s: ûÒÉÆÔ ÕÖÅ ÂÙÌ ÂÅÚ ÚÎÁËÏ×ÏÊ ÔÁÂÌÉÃÙ\n"
 
-#: src/loadkeys.y:993
-msgid "definitions"
-msgstr ""
+#~ msgid "Out of memory?\n"
+#~ msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ?\n"
 
-#: src/loadkeys.y:995
-#, fuzzy
-msgid "(No change in compose definitions.)\n"
-msgstr "ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÏÓÔÁ×ÎÙÈ ÏÐÒÅÄÅÌÅÎÉÊ: %d\n"
+#~ msgid "Out of memory.\n"
+#~ msgstr "îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ.\n"
 
-#: src/loadkeys.y:1028
-#, c-format
-msgid "loadkeys: don't know how to compose for %s\n"
-msgstr ""
+#~ msgid ""
+#~ "Setfont is so naive as to believe that font files\n"
+#~ "have a size of at most 32kB.  Unfortunately it seems\n"
+#~ "that you encountered an exception.  If this really is\n"
+#~ "a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n"
+#~ msgstr ""
+#~ "Setfont ÎÁÉ×ÅΠÎÁÓÔÏÌØËÏ, ÞÔÏ ÐÏÌÁÇÁÅÔ,\n"
+#~ "ÞÔÏ ÆÁÊÌÙ ÛÒÉÆÔÏ× ÍÏÇÕÔ ÂÙÔØ ÏÔ ÓÉÌÙ 32KB.\n"
+#~ "õ×Ù, ÐÏÈÏÖÅ, ÷Ù ÎÁÔËÎÕÌÉÓØ ÎÁ ÉÓËÌÀÞÅÎÉÅ.\n"
+#~ "åÓÌÉ ÜÔÏ É × ÓÁÍÏÍ ÄÅÌÅ ÛÒÉÆÔÏ×ÙÊ ÆÁÊÌ, ÔÏ:\n"
+#~ "   1. ÐÅÒÅËÏÍÐÉÌÉÒÕÊÔÅ, ÐÏÖÁÌÕÊÓÔÁ, setfont,\n"
+#~ "   2. ÓÏÏÂÝÉÔÅ Ï ÜÔÏÍ <aeb@cwi.nl>.\n"
index 2b7baf8..4183f1a 100755 (executable)
@@ -6,13 +6,13 @@
 > .null
 > POTFILES.in
 
-for x in ../*/*.c; do
+for x in ../*/*.c ../src/version.h; do
 echo "$x \\" >> POTFILES
 done
 echo .null   >> POTFILES
 
 cd ..
-for x in */*.c; do
+for x in */*.c src/version.h; do
 echo "$x" >> po/POTFILES.in
 done
 cd po
similarity index 100%
rename from sample.rc
rename to rc/sample.rc
diff --git a/rc/suse-kbd.rc b/rc/suse-kbd.rc
new file mode 100644 (file)
index 0000000..5cf77ba
--- /dev/null
@@ -0,0 +1,97 @@
+#! /bin/sh
+# Copyright (c) 1995-1998 S.u.S.E. GmbH Fuerth, Germany.
+#
+# Author:   Burchard Steinbild <bs@suse.de>
+#
+# /sbin/init.d/kbd
+#
+#   and symbolic its link
+#
+# /sbin/rckbd
+#
+
+. /etc/rc.config
+
+test -n "$KEYTABLE" -a "$KEYTABLE" != YAST_ASK || {
+    echo KEYTABLE is not set in /etc/rc.config.  Exit.
+    exit 0
+}
+
+test -x /usr/bin/find || {
+    echo $0: /usr/bin/find does not exist. Exit.
+    exit 1
+}
+
+test -d /usr/lib/kbd/keymaps || {
+    echo Directory /usr/lib/kbd/keymaps does not exit.  Exit.
+    exit 1
+}
+
+#
+# first search the wanted keytable.
+#
+MACHINE=`/bin/uname -m 2> /dev/null`
+case $MACHINE in
+  i?86)
+    KEY_PATH=/usr/lib/kbd/keymaps/i386
+  ;;
+  *)
+    KEY_PATH=/usr/lib/kbd/keymaps/$MACHINE
+  ;;
+esac
+
+FIND_PARAMS="-name $KEYTABLE -o -name $KEYTABLE.gz -o -name $KEYTABLE.map -o -name $KEYTABLE.map.gz"
+
+if test -e /$KEYTABLE ; then
+    KEYMAP=$KEYTABLE
+else
+    KEYMAP=`/usr/bin/find $KEY_PATH $FIND_PARAMS 2> /dev/null`
+fi
+
+test -z "$KEYMAP" && \
+    KEYMAP=`/usr/bin/find /usr/lib/kbd/keymaps $FIND_PARAMS`
+
+
+return=$rc_done
+case "$1" in
+    start|restart|reload)
+        if test -z "$KEYMAP" ; then
+            echo Can not find a keymap for $KEYTABLE.  Exit.
+            exit 1
+        else
+            if test ! -f "$KEYMAP" ; then
+                echo Found more than one keymap for $KEYTABLE:
+                for i in $KEYMAP ; do
+                    echo "      $i"
+                    KEYMAP=$i
+                done
+                echo Using $KEYMAP.
+                echo If you want another one, please add complete path to 
+                echo KEYTABLE in /etc/rc.config.
+            fi
+        fi
+       retmsg="`loadkeys $KEYMAP 2>&1`"
+       if test $? -eq 0 ; then
+           echo $KEYMAP > /var/run/keymap
+       else
+           return=$rc_failed
+       fi
+       echo -e "Loading keymap ${retmsg#Loading*/usr/lib/kbd/keymaps/*/}${return}"
+       ;;
+    stop)
+       ;;
+    check|status)
+        if test -f /var/run/keymap ; then
+            echo Keymap `cat /var/run/keymap` is loaded.
+        else
+            exit 1
+        fi
+       ;;
+    *)
+       echo "Usage: $0 {start|stop|restart|check}"
+       exit 1
+       ;;
+esac
+
+test "$return" = "$rc_done" || exit 1
+exit 0
diff --git a/src/CHANGELOG b/src/CHANGELOG
new file mode 100644 (file)
index 0000000..940df27
--- /dev/null
@@ -0,0 +1,54 @@
+From: Bruno Haible <haible@ilog.fr>
+Date:   Mon, 4 Oct 1999 16:03:41 +0200 (MET DST)
+
+[patch on kbd-0.99]
+
+The precise changes are as follows:
+
+* ksyms.h:
+  - New structure `sym', includes a Unicode value.
+  - Use "const char *" instead of "char *", this helps me ensure that I don't
+    accidentally clobber a string literal.
+  - Declare a new function `unicodetoksym', which is used to make pretty
+    output for dumpkeys when in Unicode mode (i.e. convert back "U+0401" to
+    "cyrillic_capital_letter_io").
+* ksyms.c:
+  - Add Unicode codes to all syms.
+* cyrillic.syms.h, ethiopic.syms.h: Likewise.
+* ksyms.c:
+  - I'm really not confident that it's safe to erase the upper half of
+    latin1_syms in set_charset(). It might cause obscure bugs. Therefore I
+    split latin1_syms into `iso646_syms' whose upper half can be freely
+    modified, and `latin1_syms' proper which contains only the Latin1 syms.
+    I.e. treat Latin1 like Latin2, Latin3 etc.
+    { Hmm. It was correct. Now all character sets except latin1 are broken. }
+  - Added a few comments in front of the spec_syms, pad_syms, etc. tables.
+    Without these comments, it was really hard to understand the "big picture"
+    of the keyboard driver. Especially since "sticky_syms" corresponds to
+    KT_SLOCK, and KT_LATIN actually means KT_8BIT - how would you guess?
+  - In koi8_r_syms, added the range 128..159 which was previously unmapped.
+  - Added function unicodetoksym, for dumpkeys.
+  - ksymtocode: Add support for the `prefer_unicode' flag set by the -u
+    option. Treat Latin1 like Latin2, Latin3 etc.
+  - Added function unicodetocode which converts a Unicode value to a
+    16-bit code for the keyboard driver. Set unicode_used = 1 only if
+    Unicode is really needed.
+  - Added function add_capslock which outputs a warning if it has to
+    ignore the "+" flag (because of the current limitation in the kernel:
+    only KT_LATIN codes are capable of CapsLock treatment).
+* loadkeys.y:
+  - The unicode_used variable has been transferred to ksyms.c, because it's
+    now used there. Otherwise `dumpkeys' wouldn't link.
+  - Use the capslock function. `unicode_used' is now set if it really used,
+    it depends on both the keymap entry _and_ the value of the -u option.
+  - Implement option --unicode.
+* analyze.l:
+  - Use unicodetocode here, so the upper level (loadkeys.y) can operate on
+    KTYP/KVAL composed code.
+* dumpkeys.c:
+  - printksym bug fix: KT_LETTER was assumed to be the largest KT_* value. It
+    is not.
+  - printksym uses unicodetoksym in order to print the ksym string. This
+    generates more maintainable keymaps. ("cedilla" tells the user a lot
+    more than "U+00b8".)
+
index ddd8944..e838b68 100644 (file)
@@ -1,3 +1,5 @@
+include ../make_include
+
 # Something like /usr/lib/kbd or /usr/share/kbd
 ifndef DATADIR
 DATADIR = @datadir@
@@ -9,22 +11,28 @@ endif
 
 PROGS   = dumpkeys loadkeys showkey setfont showfont \
          setleds setmetamode kbd_mode chvt deallocvt \
-         psfaddtable psfgettable psfstriptable \
-         getkeycodes setkeycodes
+         psfxtable kbdrate
 
 # probably also getkeycodes and setkeycodes are arch-specific;
 # they will work on an alpha, though, and perhaps be dummy on a sun
+ifneq ($(ARCH), m68k)
+ifneq ($(ARCH), sparc)
+PROGS += getkeycodes setkeycodes
+endif
+endif
 
-I386PROGS = resizecons
+ifeq ($(ARCH), i386)
+PROGS += resizecons
+endif
 
 OLDPROGS= mapscrn loadunimap
 
 MISC    = screendump setvesablank spawn_console spawn_login \
-         getunimap clrunimap fgconsole
+         getunimap clrunimap fgconsole outpsfheader
 
 SHCMDS  = unicode_start unicode_stop
 
-WARN   = -Wall
+WARN   = -Wall -Wmissing-prototypes -Wstrict-prototypes
 DEFS   = -DDATADIR=\"$(DATADIR)\"
 CFLAGS  = -O2
 LDFLAGS = -s
@@ -42,17 +50,16 @@ progs:      $(PROGS)
 
 old:   $(OLDPROGS)
 
-i386:  $(I386PROGS)
-
 install:       all
        install -s -m 0755 -o root $(PROGS) $(OLDPROGS) $(BINDIR)
 #      install -s -m 0755 -o root $(MISC) $(BINDIR)
 #      install -c -m 0755 -o root $(SHCMDS) $(BINDIR)
+       for i in psfaddtable psfgettable psfstriptable; do \
+               rm -f $(BINDIR)/$$i; ln -s $(BINDIR)/psfxtable $(BINDIR)/$$i; \
+       done
+       @echo "You may also want to add psf.magic to /usr/lib/magic"
 
 
-install386:    i386
-       install $(I386PROGS) $(BINDIR)
-
 # loadkeys.o: separate rule since the flex output does not permit -Wall
 loadkeys.o:    loadkeys.c analyze.c
        $(CC) -c $(CFLAGS) $(DEFS) $<
@@ -66,30 +73,67 @@ main_mapscrn.o: mapscrn.c paths.h
 main_loadunimap.o: loadunimap.c paths.h
        $(CC) $(CFLAGS) $(WARN) $(DEFS) -DMAIN -c $< -o $@
 
-$(OLDPROGS): %: main_%.o findfile.o
+$(OLDPROGS): %: main_%.o findfile.o psffontop.o
        $(CC) $(LDFLAGS) $^ -o $@
 
 
-clean:
+clean reallyclean spotless distclean:
        rm -f core *.o analyze.c loadkeys.c
-
-reallyclean spotless distclean: clean
-       rm -f $(PROGS) $(OLDPROGS) $(MISC) $(I386PROGS) *~
+       rm -f $(PROGS) $(OLDPROGS) $(MISC) *~
 
 $(PROGS): %: %.o
 
-dumpkeys loadkeys: ksyms.o
+#
+# dependencies
+#
+
+ksyms.o: koi8.syms.h ethiopic.syms.h
+
+findfile.o loadkeys.o loadunimap.o mapscrn.o resizecons.o setfont.o: findfile.h
+
+catwithfont.o chvt.o clrunimap.o deallocvt.o dumpkeys.o fgconsole.o: getfd.h
+getfd.o getkeycodes.o getunimap.o kbd_mode.o loadkeys.o loadunimap.o: getfd.h
+mapscrn.o resizecons.o setfont.o setkeycodes.o setvesablank.o: getfd.h
+showkey.o: getfd.h
+
+kdfontop.o setfont.o: kdfontop.h
 
-ksyms.o: cyrillic.syms.h ethiopic.syms.h
+dumpkeys.o ksyms.o loadkeys.o: ksyms.h
 
-loadkeys.o mapscrn.o setfont.o resizecons.o loadunimap.o: paths.h
+dumpkeys.o loadkeys.o: modifiers.h
 
-psfaddtable.o psfgettable.o psfstriptable.o setfont.o: psf.h
+catwithfont.o chvt.o clrunimap.o deallocvt.o dumpkeys.o fgconsole.o: nls.h
+findfile.o getfd.o getkeycodes.o getunimap.o kbd_mode.o kbdrate.o: nls.h
+kdfontop.o ksyms.o loadkeys.o loadunimap.o mapscrn.o psffontop.o: nls.h
+psfxtable.o resizecons.o screendump.o setfont.o setkeycodes.o setleds.o: nls.h
+setmetamode.o setvesablank.o showfont.o showkey.o xmalloc.o: nls.h
 
-loadkeys mapscrn setfont resizecons loadunimap: findfile.o
+loadkeys.o loadunimap.o mapscrn.o resizecons.o setfont.o: paths.h
 
-chvt clrunimap deallocvt dumpkeys getkeycodes getunimap kbd_mode: getfd.o
-loadkeys loadunimap mapscrn resizecons setkeycodes setfont: getfd.o
+loadunimap.o psffontop.o psfxtable.o setfont.o: psf.h
+
+psffontop.o psfxtable.o setfont.o: psffontop.h
+
+dumpkeys.o kbdrate.o loadkeys.o setfont.o showkey.o: version.h
+
+findfile.o loadunimap.o psffontop.o psfxtable.o setfont.o xmalloc.o: xmalloc.h
+
+#
+# constituent object files
+#
+
+dumpkeys loadkeys: ksyms.o xmalloc.o
+
+getunimap screendump: xmalloc.o
+
+psfxtable: psffontop.o xmalloc.o
+
+loadkeys mapscrn setfont resizecons loadunimap: findfile.o xmalloc.o
+
+chvt clrunimap deallocvt dumpkeys fgconsole getkeycodes getunimap: getfd.o
+kbd_mode loadkeys loadunimap mapscrn resizecons setkeycodes setfont: getfd.o
 setvesablank showkey: getfd.o
 
-setfont: mapscrn.o loadunimap.o kdfontop.o
+setfont: mapscrn.o loadunimap.o kdfontop.o psffontop.o
+
+catwithfont: kdfontop.o
diff --git a/src/README.psftable b/src/README.psftable
deleted file mode 100644 (file)
index b217d14..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-These programs contributed by H. Peter Anwin (hpa@nwu.edu), 25 Oct 1994,
-modified by aeb.
-
-Add psf.magic to /etc/magic if you use that.
index 4a163b9..5135e26 100644 (file)
@@ -1,8 +1,8 @@
 %{
 #include <stdlib.h>
 #include <linux/kd.h>
-
-extern int ksymtocode(char *s);
+#include "ksyms.h"
+#include "xmalloc.h"
 
 extern int line_nr;
 int    yylval;
@@ -13,12 +13,11 @@ char *filename;
 
 #undef yywrap
 extern int yywrap(void);
-extern int yyerror(char *s);
+extern int yyerror(const char *s);
 extern void stringovfl(void);
-extern void lkfatal(char *s);
-extern void lkfatal1(char *s, char *s2);
+extern void lkfatal(const char *s);
+extern void lkfatal1(const char *s, const char *s2);
 extern void open_include(char *s);
-extern void *xmalloc(size_t);
 %}
 
 %s RVALUE
index 1626dcf..da55550 100644 (file)
@@ -7,18 +7,23 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <fcntl.h>
+#include "getfd.h"
 #include "nls.h"
-
-extern int getfd(void);
+#include "version.h"
 
 int
 main(int argc, char *argv[]) {
     int fd, num;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+       print_version_and_exit();
+
     if (argc != 2) {
        fprintf(stderr, _("usage: chvt N\n"));
        exit(1);
index e75a3f9..62f0e08 100644 (file)
@@ -9,10 +9,9 @@
 #include <fcntl.h>
 #include <linux/kd.h>
 #include <sys/ioctl.h>
+#include "getfd.h"
 #include "nls.h"
 
-extern int getfd(void);
-
 int
 main(int argc, char *argv[]) {
        struct unimapinit advice;
@@ -32,4 +31,6 @@ main(int argc, char *argv[]) {
                perror("PIO_UNIMAPCLR");
                exit(1);
        }
+
+       return 0;
 }
diff --git a/src/cyrillic.syms.h b/src/cyrillic.syms.h
deleted file mode 100644 (file)
index 7e61f7b..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-char *koi8_r_syms[] = { /* 160-255 */
-    "",                        /* 0240 */
-    "",
-    "",
-    "cyrillic_small_letter_io",
-    "",
-    "",
-    "",
-    "",
-    "",                        /* 0250 */
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",                        /* 0260 */
-    "",
-    "",
-    "cyrillic_capital_letter_io",
-    "",
-    "",
-    "",
-    "",
-    "",                        /* 0270 */
-    "",
-    "",
-    "",
-    "",
-    "",
-    "",
-    "copyright",
-    "cyrillic_small_letter_yu",                        /* 0300 */
-    "cyrillic_small_letter_a",
-    "cyrillic_small_letter_be",
-    "cyrillic_small_letter_tse",
-    "cyrillic_small_letter_de",
-    "cyrillic_small_letter_ie",
-    "cyrillic_small_letter_ef",
-    "cyrillic_small_letter_ghe",
-    "cyrillic_small_letter_ha",                        /* 0310 */
-    "cyrillic_small_letter_i",
-    "cyrillic_small_letter_short_i",
-    "cyrillic_small_letter_ka",
-    "cyrillic_small_letter_el",
-    "cyrillic_small_letter_em",
-    "cyrillic_small_letter_en",
-    "cyrillic_small_letter_o",
-    "cyrillic_small_letter_pe",                                /* 0320 */
-    "cyrillic_small_letter_ya",
-    "cyrillic_small_letter_er",
-    "cyrillic_small_letter_es",
-    "cyrillic_small_letter_te",
-    "cyrillic_small_letter_u",
-    "cyrillic_small_letter_zhe",
-    "cyrillic_small_letter_ve",
-    "cyrillic_small_soft_sign",                                /* 0330 */
-    "cyrillic_small_letter_yeru",
-    "cyrillic_small_letter_ze",
-    "cyrillic_small_letter_sha",
-    "cyrillic_small_letter_e",
-    "cyrillic_small_letter_shcha",
-    "cyrillic_small_letter_che",
-    "cyrillic_small_hard_sign",
-    "cyrillic_capital_letter_yu",                      /* 0340 */
-    "cyrillic_capital_letter_a",
-    "cyrillic_capital_letter_be",
-    "cyrillic_capital_letter_tse",
-    "cyrillic_capital_letter_de",
-    "cyrillic_capital_letter_ie",
-    "cyrillic_capital_letter_ef",
-    "cyrillic_capital_letter_ghe",
-    "cyrillic_capital_letter_ha",                      /* 0350 */
-    "cyrillic_capital_letter_i",
-    "cyrillic_capital_letter_short_i",
-    "cyrillic_capital_letter_ka",
-    "cyrillic_capital_letter_el",
-    "cyrillic_capital_letter_em",
-    "cyrillic_capital_letter_en",
-    "cyrillic_capital_letter_o",
-    "cyrillic_capital_letter_pe",                      /* 0360 */
-    "cyrillic_capital_letter_ya",
-    "cyrillic_capital_letter_er",
-    "cyrillic_capital_letter_es",
-    "cyrillic_capital_letter_te",
-    "cyrillic_capital_letter_u",
-    "cyrillic_capital_letter_zhe",
-    "cyrillic_capital_letter_ve",
-    "cyrillic_capital_soft_sign",                      /* 0370 */
-    "cyrillic_capital_letter_yeru",
-    "cyrillic_capital_letter_ze",
-    "cyrillic_capital_letter_sha",
-    "cyrillic_capital_letter_e",
-    "cyrillic_capital_letter_shcha",
-    "cyrillic_capital_letter_che",
-    "cyrillic_capital_hard_sign"
-};
index 264144f..9d70614 100644 (file)
@@ -8,29 +8,25 @@
 #include <sys/ioctl.h>
 #include <linux/vt.h>
 #include <stdio.h>
+#include "getfd.h"
 #include "nls.h"
-
-extern int getfd(void);
-char *progname;
-
-void
-usage(){
-    fprintf(stderr, _("usage: %s [N1 N2 ...]\n"), progname);
-    exit(1);
-}
+#include "version.h"
 
 int
 main(int argc, char *argv[]) {
     int fd, num, i;
 
     if (argc < 1)              /* unlikely */
-      exit(1);
-    progname = argv[0];
+        exit(1);
+    set_progname(argv[0]);
 
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+       print_version_and_exit();
+
     fd = getfd();
 
     if (argc == 1) {
@@ -56,7 +52,6 @@ main(int argc, char *argv[]) {
            perror("VT_DISALLOCATE");
            fprintf(stderr, _("%s: could not deallocate console %d\n"),
                    progname, num);
-           exit(1);
        }
     }
     exit(0);
index 80a85c3..447d293 100644 (file)
 #include <string.h>
 #include <errno.h>
 #include "ksyms.h"
+#include "getfd.h"
 #include "modifiers.h"
 #include "nls.h"
+#include "version.h"
 
 #ifndef KT_LETTER
 #define KT_LETTER KT_LATIN
@@ -39,9 +41,6 @@
 #define MAX_NR_KEYMAPS NR_KEYMAPS
 #endif
 
-#define VERSION "0.98"
-char *progname;
-extern int getfd();
 static int fd;
 
 static int verbose;
@@ -49,7 +48,8 @@ static int verbose;
 int keymap_index[MAX_NR_KEYMAPS];              /* inverse of good_keymap */
 int good_keymap[MAX_NR_KEYMAPS], keymapnr, allocct;
 
-void get_keymaps(void) {
+static void
+get_keymaps(void) {
        int i, j;
        struct kbentry ke;
 
@@ -83,7 +83,8 @@ void get_keymaps(void) {
        }
 }
 
-void print_keymaps(void) {
+static void
+print_keymaps(void) {
        int i,m0,m;
 
        printf("keymaps ");
@@ -101,7 +102,8 @@ void print_keymaps(void) {
        printf("\n");
 }
 
-int get_bind(u_char index, u_char table) {
+static int
+get_bind(u_char index, u_char table) {
        struct kbentry ke;
 
        ke.kb_index = index;
@@ -115,16 +117,21 @@ int get_bind(u_char index, u_char table) {
        return ke.kb_value;
 }
 
-void print_keysym(int code, char numeric) {
+static void
+print_keysym(int code, char numeric) {
        int t;
        int v;
-       char *p;
+       const char *p;
 
        printf(" ");
        t = KTYP(code);
        v = KVAL(code);
-       if (t > KT_LETTER) {
-               printf("U+%04x          ", code ^ 0xf000);
+       if (t >= syms_size) {
+               code = code ^ 0xf000;
+               if (!numeric && (p = unicodetoksym(code)) != NULL)
+                       printf("%-16s", p);
+               else
+                       printf("U+%04x          ", code);
                return;
        }
        if (t == KT_LETTER) {
@@ -141,7 +148,8 @@ void print_keysym(int code, char numeric) {
                printf("0x%04x          ", code);
 }
 
-char valid_type(int t) {
+static char
+valid_type(int t) {
        struct kbentry ke;
        char status;
 
@@ -152,7 +160,8 @@ char valid_type(int t) {
        return status;
 }
 
-u_char maximum_val(int t) {
+static u_char
+maximum_val(int t) {
        struct kbentry ke, ke0;
        int i;
 
@@ -180,7 +189,7 @@ int maxval[NR_TYPES];
 /* isgraph() does not know about iso-8859; printing the character
    unescaped makes the output easier to check. Maybe this should
    be an option. Use locale? */
-void
+static void
 outchar (unsigned char c) {
        printf("'");
        printf((c == '\'' || c == '\\') ? "\\%c"
@@ -189,9 +198,10 @@ outchar (unsigned char c) {
        printf("'");
 }
 
-struct kbdiacrs kd;
+static struct kbdiacrs kd;
 
-void get_diacs(void) {
+static void
+get_diacs(void) {
        static int got_diacs = 0;
 
        if(!got_diacs && ioctl(fd, KDGKBDIACR, (unsigned long)&kd)) {
@@ -201,12 +211,14 @@ void get_diacs(void) {
        got_diacs = 1;
 }
 
-int nr_of_diacs(void) {
+static int
+nr_of_diacs(void) {
        get_diacs();
        return kd.kb_cnt;
 }
 
-void dump_diacs(void) {
+static void
+dump_diacs(void) {
        int i;
 
        get_diacs();
@@ -222,7 +234,8 @@ void dump_diacs(void) {
 }
 #endif        
 
-void show_short_info(void) {
+static void
+show_short_info(void) {
        int i;
 
        printf(_("keycode range supported by kernel:           1 - %d\n"),
@@ -248,7 +261,7 @@ void show_short_info(void) {
               nr_of_diacs());
 }
 
-struct {
+static struct {
     char *name;
     int bit;
 } modifiers[] = {
@@ -262,12 +275,14 @@ struct {
     { "ctrlr", KG_CTRLR  }
 };
 
-void dump_symbols(void) {
+static void
+dump_symbols(void) {
        int t;
        int v;
-       char *p;
+       const char *p;
 
-       printf(_("Symbols recognized by %s:\n(numeric value, symbol)\n\n"), progname);
+       printf(_("Symbols recognized by %s:\n(numeric value, symbol)\n\n"),
+              progname);
        for (t = 0; t < syms_size; t++) {
            if (syms[t].size) {
                for (v = 0; v < syms[t].size; v++)
@@ -288,7 +303,8 @@ void dump_symbols(void) {
          printf("%s\t\t%3d\n", modifiers[t].name, 1 << modifiers[t].bit);
 }
 
-void print_mod(int x) {
+static void
+print_mod(int x) {
        int t;
 
        if (!x)
@@ -299,7 +315,8 @@ void print_mod(int x) {
            printf("%s\t", modifiers[t].name);
 }
 
-void print_bind(int bufj, int i, int j, char numeric) {
+static void
+print_bind(int bufj, int i, int j, char numeric) {
        if(j)
            printf("\t");
        print_mod(j);
@@ -313,7 +330,8 @@ void print_bind(int bufj, int i, int j, char numeric) {
 #define SEPARATE_LINES 2       /* one line for each (modifier,keycode) pair */
 #define        UNTIL_HOLE      3       /* one line for each keycode, until 1st hole */
 
-void dump_keys(char table_shape, char numeric) {
+static void
+dump_keys(char table_shape, char numeric) {
        int i, j, k;
        int buf[MAX_NR_KEYMAPS];
        int isletter, islatin, isasexpected;
@@ -463,7 +481,8 @@ no_shorthands:
        }
 }
 
-void dump_funcs(void) {
+static void
+dump_funcs(void) {
        int i;
        struct kbsentry fbuf;
        char *p;
@@ -492,35 +511,36 @@ void dump_funcs(void) {
        }
 }
 
-/* bah - xgettext forces us to uglify this */
-void usage(void) {
+static void
+usage(void) {
        fprintf(stderr, _("dumpkeys version %s"), VERSION);
-       fprintf(stderr, _(
-"\n"
-"usage: dumpkeys [options...]\n"
-"\n"
-"valid options are:\n"
-"\n"
-"      -h --help           display this help text\n"
-"      -i --short-info     display information about keyboard driver\n"
-"      -l --long-info      display above and symbols known to loadkeys\n"
-"      -n --numeric        display keytable in hexadecimal notation\n"
-"      -f --full-table     don't use short-hand notations, one row per keycode\n"
-"      -1 --separate-lines one line per (modifier,keycode) pair\n"
-"         --funcs-only     display only the function key strings\n"
-"         --keys-only      display only key bindings\n"
-"         --compose-only   display only compose key combinations\n"
-"      -c --charset=iso-8859-{1,2,3,4,5,7,8,9}\n"
-"                   koi8-{r,u}         \n"
-"                          interpret character action codes to be from the\n"
-"                          specified character set\n"
-));
+       fprintf(stderr, _("\
+\n\
+usage: dumpkeys [options...]\n\
+\n\
+valid options are:\n\
+\n\
+       -h --help           display this help text\n\
+       -i --short-info     display information about keyboard driver\n\
+       -l --long-info      display above and symbols known to loadkeys\n\
+       -n --numeric        display keytable in hexadecimal notation\n\
+       -f --full-table     don't use short-hand notations, one row per keycode\n\
+       -1 --separate-lines one line per (modifier,keycode) pair\n\
+          --funcs-only     display only the function key strings\n\
+          --keys-only      display only key bindings\n\
+          --compose-only   display only compose key combinations\n\
+       -c --charset="));
+       list_charsets(stderr);
+       fprintf(stderr, _("\
+                           interpret character action codes to be from the\n\
+                           specified character set\n\
+"));
        exit(1);
 }
 
 int
 main (int argc, char *argv[]) {
-       const char *short_opts = "hilvsnf1S:c:";
+       const char *short_opts = "hilvsnf1S:c:V";
        const struct option long_opts[] = {
                { "help",       no_argument,            NULL, 'h' },
                { "short-info", no_argument,            NULL, 'i' },
@@ -532,8 +552,9 @@ main (int argc, char *argv[]) {
                { "funcs-only", no_argument,            NULL, 't' },
                { "keys-only",  no_argument,            NULL, 'k' },
                { "compose-only",no_argument,           NULL, 'd' },
-               { "verbose",    no_argument,            NULL, 'v' },
                { "charset",    required_argument,      NULL, 'c' },
+               { "verbose",    no_argument,            NULL, 'v' },
+               { "version",    no_argument,            NULL, 'V' },
                { NULL, 0, NULL, 0 }
        };
        int c;
@@ -545,7 +566,7 @@ main (int argc, char *argv[]) {
        char keys_only = 0;
        char diac_only = 0;
 
-       progname = argv[0];
+       set_progname(argv[0]);
 
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
@@ -590,6 +611,8 @@ main (int argc, char *argv[]) {
                                        usage();
                                printf("charset \"%s\"\n", optarg);
                                break;
+                       case 'V':
+                               print_version_and_exit();
                        case 'h':
                        case '?':
                                usage();
index 928838e..4a5fbf9 100644 (file)
  *
  *  { "iso-10646-18", iso_10646_18_syms, 159 },
  */
-char* iso_10646_18_syms[] = {  /* 0x1200 - 0x137F */
-    "ethiopic_syllable_ha", "ethiopic_syllable_hu", "ethiopic_syllable_hi", "ethiopic_syllable_haa", "ethiopic_syllable_hee", "ethiopic_syllable_he", "ethiopic_syllable_ho", "",
-    "ethiopic_syllable_la", "ethiopic_syllable_lu", "ethiopic_syllable_li", "ethiopic_syllable_laa", "ethiopic_syllable_lee", "ethiopic_syllable_le", "ethiopic_syllable_lo", "ethiopic_syllable_lwa",
-    "ethiopic_syllable_hha", "ethiopic_syllable_hhu", "ethiopic_syllable_hhi", "ethiopic_syllable_hhaa", "ethiopic_syllable_hhee", "ethiopic_syllable_hhe", "ethiopic_syllable_hho", "ethiopic_syllable_hhwa",
-    "ethiopic_syllable_ma", "ethiopic_syllable_mu", "ethiopic_syllable_mi", "ethiopic_syllable_maa", "ethiopic_syllable_mee", "ethiopic_syllable_me", "ethiopic_syllable_mo", "ethiopic_syllable_mwaa",
-    "ethiopic_syllable_sza", "ethiopic_syllable_szu", "ethiopic_syllable_szi", "ethiopic_syllable_szaa", "ethiopic_syllable_szee", "ethiopic_syllable_sze", "ethiopic_syllable_szo", "ethiopic_syllable_szwa",
-    "ethiopic_syllable_ra", "ethiopic_syllable_ru", "ethiopic_syllable_ri", "ethiopic_syllable_raa", "ethiopic_syllable_ree", "ethiopic_syllable_re", "ethiopic_syllable_ro", "ethiopic_syllable_rwa",
-    "ethiopic_syllable_sa", "ethiopic_syllable_su", "ethiopic_syllable_si", "ethiopic_syllable_saa", "ethiopic_syllable_see", "ethiopic_syllable_se", "ethiopic_syllable_so", "ethiopic_syllable_swa",
-    "ethiopic_syllable_sha", "ethiopic_syllable_shu", "ethiopic_syllable_shi", "ethiopic_syllable_shaa", "ethiopic_syllable_shee", "ethiopic_syllable_she", "ethiopic_syllable_sho", "ethiopic_syllable_shwa",
-    "ethiopic_syllable_qa", "ethiopic_syllable_qu", "ethiopic_syllable_qi", "ethiopic_syllable_qaa", "ethiopic_syllable_qee", "ethiopic_syllable_qe", "ethiopic_syllable_qo", "",
-    "ethiopic_syllable_qwa", "", "ethiopic_syllable_qwi", "ethiopic_syllable_qwaa", "ethiopic_syllable_qwee", "ethiopic_syllable_qwe", "", "",
-    "ethiopic_syllable_qha", "ethiopic_syllable_qhu", "ethiopic_syllable_qhi", "ethiopic_syllable_qhaa", "ethiopic_syllable_qhee", "ethiopic_syllable_qhe", "ethiopic_syllable_qho", "",
-    "ethiopic_syllable_qhwa", "", "ethiopic_syllable_qhwi", "ethiopic_syllable_qhwaa", "ethiopic_syllable_qhwee", "ethiopic_syllable_qhwe", "", "",
-    "ethiopic_syllable_ba", "ethiopic_syllable_bu", "ethiopic_syllable_bi", "ethiopic_syllable_baa", "ethiopic_syllable_bee", "ethiopic_syllable_be", "ethiopic_syllable_bo", "ethiopic_syllable_bwaa",
-    "ethiopic_syllable_va", "ethiopic_syllable_vu", "ethiopic_syllable_vi", "ethiopic_syllable_vaa", "ethiopic_syllable_vee", "ethiopic_syllable_ve", "ethiopic_syllable_vo", "ethiopic_syllable_vwa",
-    "ethiopic_syllable_ta", "ethiopic_syllable_tu", "ethiopic_syllable_ti", "ethiopic_syllable_taa", "ethiopic_syllable_tee", "ethiopic_syllable_te", "ethiopic_syllable_to", "ethiopic_syllable_twa",
-    "ethiopic_syllable_ca", "ethiopic_syllable_cu", "ethiopic_syllable_ci", "ethiopic_syllable_caa", "ethiopic_syllable_cee", "ethiopic_syllable_ce", "ethiopic_syllable_co", "ethiopic_syllable_cwa",
-    "ethiopic_syllable_xa", "ethiopic_syllable_xu", "ethiopic_syllable_xi", "ethiopic_syllable_xaa", "ethiopic_syllable_xee", "ethiopic_syllable_xe", "ethiopic_syllable_xo", "",
-    "ethiopic_syllable_xwa", "", "ethiopic_syllable_xwi", "ethiopic_syllable_xwaa", "ethiopic_syllable_xwee", "ethiopic_syllable_xwe", "", "",
-    "ethiopic_syllable_na", "ethiopic_syllable_nu", "ethiopic_syllable_ni", "ethiopic_syllable_naa", "ethiopic_syllable_nee", "ethiopic_syllable_ne", "ethiopic_syllable_no", "ethiopic_syllable_nwa",
-    "ethiopic_syllable_nya", "ethiopic_syllable_nyu", "ethiopic_syllable_nyi", "ethiopic_syllable_nyaa", "ethiopic_syllable_nyee", "ethiopic_syllable_nye", "ethiopic_syllable_nyo", "ethiopic_syllable_nywa",
-    "ethiopic_syllable_glottal_a", "ethiopic_syllable_glottal_u", "ethiopic_syllable_glottal_i", "ethiopic_syllable_glottal_aa", "ethiopic_syllable_glottal_ee", "ethiopic_syllable_glottal_e", "ethiopic_syllable_glottal_o", "ethiopic_syllable_glottal_wa",
-    "ethiopic_syllable_ka", "ethiopic_syllable_ku", "ethiopic_syllable_ki", "ethiopic_syllable_kaa", "ethiopic_syllable_kee", "ethiopic_syllable_ke", "ethiopic_syllable_ko", "",
-    "ethiopic_syllable_kwa", "", "ethiopic_syllable_kwi", "ethiopic_syllable_kwaa", "ethiopic_syllable_kwee", "ethiopic_syllable_kwe", "", "",
-    "ethiopic_syllable_kxa", "ethiopic_syllable_kxu", "ethiopic_syllable_kxi", "ethiopic_syllable_kxaa", "ethiopic_syllable_kxee", "ethiopic_syllable_kxe", "ethiopic_syllable_kxo", "",
-    "ethiopic_syllable_kxwa", "", "ethiopic_syllable_kxwi", "ethiopic_syllable_kxwaa", "ethiopic_syllable_kxwee", "ethiopic_syllable_kxwe", "", "",
-    "ethiopic_syllable_wa", "ethiopic_syllable_wu", "ethiopic_syllable_wi", "ethiopic_syllable_waa", "ethiopic_syllable_wee", "ethiopic_syllable_we", "ethiopic_syllable_wo", "",
-    "ethiopic_syllable_pharyngeal_a", "ethiopic_syllable_pharyngeal_u", "ethiopic_syllable_pharyngeal_i", "ethiopic_syllable_pharyngeal_aa", "ethiopic_syllable_pharyngeal_ee", "ethiopic_syllable_pharyngeal_e", "ethiopic_syllable_pharyngeal_o", "",
-    "ethiopic_syllable_za", "ethiopic_syllable_zu", "ethiopic_syllable_zi", "ethiopic_syllable_zaa", "ethiopic_syllable_zee", "ethiopic_syllable_ze", "ethiopic_syllable_zo", "ethiopic_syllable_zwa",
-    "ethiopic_syllable_zha", "ethiopic_syllable_zhu", "ethiopic_syllable_zhi", "ethiopic_syllable_zhaa", "ethiopic_syllable_zhee", "ethiopic_syllable_zhe", "ethiopic_syllable_zho", "ethiopic_syllable_zhwa",
-    "ethiopic_syllable_ya", "ethiopic_syllable_yu", "ethiopic_syllable_yi", "ethiopic_syllable_yaa", "ethiopic_syllable_yee", "ethiopic_syllable_ye", "ethiopic_syllable_yo", "",
-    "ethiopic_syllable_da", "ethiopic_syllable_du", "ethiopic_syllable_di", "ethiopic_syllable_daa", "ethiopic_syllable_dee", "ethiopic_syllable_de", "ethiopic_syllable_do", "ethiopic_syllable_dwa",
-    "ethiopic_syllable_dda", "ethiopic_syllable_ddu", "ethiopic_syllable_ddi", "ethiopic_syllable_ddaa", "ethiopic_syllable_ddee", "ethiopic_syllable_dde", "ethiopic_syllable_ddo", "ethiopic_syllable_ddwa",
-    "ethiopic_syllable_ja", "ethiopic_syllable_ju", "ethiopic_syllable_ji", "ethiopic_syllable_jaa", "ethiopic_syllable_jee", "ethiopic_syllable_je", "ethiopic_syllable_jo", "ethiopic_syllable_jwa",
-    "ethiopic_syllable_ga", "ethiopic_syllable_gu", "ethiopic_syllable_gi", "ethiopic_syllable_gaa", "ethiopic_syllable_gee", "ethiopic_syllable_ge", "ethiopic_syllable_go", "",
-    "ethiopic_syllable_gwa", "", "ethiopic_syllable_gwi", "ethiopic_syllable_gwaa", "ethiopic_syllable_gwee", "ethiopic_syllable_gwe", "", "",
-    "ethiopic_syllable_gga", "ethiopic_syllable_ggu", "ethiopic_syllable_ggi", "ethiopic_syllable_ggaa", "ethiopic_syllable_ggee", "ethiopic_syllable_gge", "ethiopic_syllable_ggo", "",
-    "ethiopic_syllable_tha", "ethiopic_syllable_thu", "ethiopic_syllable_thi", "ethiopic_syllable_thaa", "ethiopic_syllable_thee", "ethiopic_syllable_the", "ethiopic_syllable_tho", "ethiopic_syllable_thwa",
-    "ethiopic_syllable_cha", "ethiopic_syllable_chu", "ethiopic_syllable_chi", "ethiopic_syllable_chaa", "ethiopic_syllable_chee", "ethiopic_syllable_che", "ethiopic_syllable_cho", "ethiopic_syllable_chwa",
-    "ethiopic_syllable_pha", "ethiopic_syllable_phu", "ethiopic_syllable_phi", "ethiopic_syllable_phaa", "ethiopic_syllable_phee", "ethiopic_syllable_phe", "ethiopic_syllable_pho", "ethiopic_syllable_phwa",
-    "ethiopic_syllable_tsa", "ethiopic_syllable_tsu", "ethiopic_syllable_tsi", "ethiopic_syllable_tsaa", "ethiopic_syllable_tsee", "ethiopic_syllable_tse", "ethiopic_syllable_tso", "ethiopic_syllable_tswa",
-    "ethiopic_syllable_tza", "ethiopic_syllable_tzu", "ethiopic_syllable_tzi", "ethiopic_syllable_tzaa", "ethiopic_syllable_tzee", "ethiopic_syllable_tze", "ethiopic_syllable_tzo", "",
-    "ethiopic_syllable_fa", "ethiopic_syllable_fu", "ethiopic_syllable_fi", "ethiopic_syllable_faa", "ethiopic_syllable_fee", "ethiopic_syllable_fe", "ethiopic_syllable_fo", "ethiopic_syllable_fwaa",
-    "ethiopic_syllable_pa", "ethiopic_syllable_pu", "ethiopic_syllable_pi", "ethiopic_syllable_paa", "ethiopic_syllable_pee", "ethiopic_syllable_pe", "ethiopic_syllable_po", "ethiopic_syllable_pwaa",
-    "ethiopic_syllable_mya", "ethiopic_syllable_rya", "ethiopic_syllable_fya", "", "", "", "", "",
-    "", "ethiopic_wordspace", "ethiopic_full_stop", "ethiopic_comma", "ethiopic_semicolon", "ethiopic_colon", "ethiopic_preface_colon", "ethiopic_question_mark",
-    "ethiopic_paragraph_separator", "ethiopic_digit_one", "ethiopic_digit_two", "ethiopic_digit_three", "ethiopic_digit_four", "ethiopic_digit_five", "ethiopic_digit_six", "ethiopic_digit_seven",
-    "ethiopic_digit_eight", "ethiopic_digit_nine", "ethiopic_number_ten", "ethiopic_number_twenty", "ethiopic_number_thirty", "ethiopic_number_forty", "ethiopic_number_fifty", "ethiopic_number_sixty",
-    "ethiopic_number_seventy", "ethiopic_number_eighty", "ethiopic_number_ninety", "ethiopic_number_hundred", "ethiopic_number_ten_thousand", "", "", ""
+static sym iso_10646_18_syms[] = {  /* 0x1200 - 0x137F */
+       { 0x1200, "ethiopic_syllable_ha" },
+       { 0x1201, "ethiopic_syllable_hu" },
+       { 0x1202, "ethiopic_syllable_hi" },
+       { 0x1203, "ethiopic_syllable_haa" },
+       { 0x1204, "ethiopic_syllable_hee" },
+       { 0x1205, "ethiopic_syllable_he" },
+       { 0x1206, "ethiopic_syllable_ho" },
+       { 0x1207, "" },
+       { 0x1208, "ethiopic_syllable_la" },
+       { 0x1209, "ethiopic_syllable_lu" },
+       { 0x120A, "ethiopic_syllable_li" },
+       { 0x120B, "ethiopic_syllable_laa" },
+       { 0x120C, "ethiopic_syllable_lee" },
+       { 0x120D, "ethiopic_syllable_le" },
+       { 0x120E, "ethiopic_syllable_lo" },
+       { 0x120F, "ethiopic_syllable_lwa" },
+       { 0x1210, "ethiopic_syllable_hha" },
+       { 0x1211, "ethiopic_syllable_hhu" },
+       { 0x1212, "ethiopic_syllable_hhi" },
+       { 0x1213, "ethiopic_syllable_hhaa" },
+       { 0x1214, "ethiopic_syllable_hhee" },
+       { 0x1215, "ethiopic_syllable_hhe" },
+       { 0x1216, "ethiopic_syllable_hho" },
+       { 0x1217, "ethiopic_syllable_hhwa" },
+       { 0x1218, "ethiopic_syllable_ma" },
+       { 0x1219, "ethiopic_syllable_mu" },
+       { 0x121A, "ethiopic_syllable_mi" },
+       { 0x121B, "ethiopic_syllable_maa" },
+       { 0x121C, "ethiopic_syllable_mee" },
+       { 0x121D, "ethiopic_syllable_me" },
+       { 0x121E, "ethiopic_syllable_mo" },
+       { 0x121F, "ethiopic_syllable_mwaa" },
+       { 0x1220, "ethiopic_syllable_sza" },
+       { 0x1221, "ethiopic_syllable_szu" },
+       { 0x1222, "ethiopic_syllable_szi" },
+       { 0x1223, "ethiopic_syllable_szaa" },
+       { 0x1224, "ethiopic_syllable_szee" },
+       { 0x1225, "ethiopic_syllable_sze" },
+       { 0x1226, "ethiopic_syllable_szo" },
+       { 0x1227, "ethiopic_syllable_szwa" },
+       { 0x1228, "ethiopic_syllable_ra" },
+       { 0x1229, "ethiopic_syllable_ru" },
+       { 0x122A, "ethiopic_syllable_ri" },
+       { 0x122B, "ethiopic_syllable_raa" },
+       { 0x122C, "ethiopic_syllable_ree" },
+       { 0x122D, "ethiopic_syllable_re" },
+       { 0x122E, "ethiopic_syllable_ro" },
+       { 0x122F, "ethiopic_syllable_rwa" },
+       { 0x1230, "ethiopic_syllable_sa" },
+       { 0x1231, "ethiopic_syllable_su" },
+       { 0x1232, "ethiopic_syllable_si" },
+       { 0x1233, "ethiopic_syllable_saa" },
+       { 0x1234, "ethiopic_syllable_see" },
+       { 0x1235, "ethiopic_syllable_se" },
+       { 0x1236, "ethiopic_syllable_so" },
+       { 0x1237, "ethiopic_syllable_swa" },
+       { 0x1238, "ethiopic_syllable_sha" },
+       { 0x1239, "ethiopic_syllable_shu" },
+       { 0x123A, "ethiopic_syllable_shi" },
+       { 0x123B, "ethiopic_syllable_shaa" },
+       { 0x123C, "ethiopic_syllable_shee" },
+       { 0x123D, "ethiopic_syllable_she" },
+       { 0x123E, "ethiopic_syllable_sho" },
+       { 0x123F, "ethiopic_syllable_shwa" },
+       { 0x1240, "ethiopic_syllable_qa" },
+       { 0x1241, "ethiopic_syllable_qu" },
+       { 0x1242, "ethiopic_syllable_qi" },
+       { 0x1243, "ethiopic_syllable_qaa" },
+       { 0x1244, "ethiopic_syllable_qee" },
+       { 0x1245, "ethiopic_syllable_qe" },
+       { 0x1246, "ethiopic_syllable_qo" },
+       { 0x1247, "" },
+       { 0x1248, "ethiopic_syllable_qwa" },
+       { 0x1249, "" },
+       { 0x124A, "ethiopic_syllable_qwi" },
+       { 0x124B, "ethiopic_syllable_qwaa" },
+       { 0x124C, "ethiopic_syllable_qwee" },
+       { 0x124D, "ethiopic_syllable_qwe" },
+       { 0x124E, "" },
+       { 0x124F, "" },
+       { 0x1250, "ethiopic_syllable_qha" },
+       { 0x1251, "ethiopic_syllable_qhu" },
+       { 0x1252, "ethiopic_syllable_qhi" },
+       { 0x1253, "ethiopic_syllable_qhaa" },
+       { 0x1254, "ethiopic_syllable_qhee" },
+       { 0x1255, "ethiopic_syllable_qhe" },
+       { 0x1256, "ethiopic_syllable_qho" },
+       { 0x1257, "" },
+       { 0x1258, "ethiopic_syllable_qhwa" },
+       { 0x1259, "" },
+       { 0x125A, "ethiopic_syllable_qhwi" },
+       { 0x125B, "ethiopic_syllable_qhwaa" },
+       { 0x125C, "ethiopic_syllable_qhwee" },
+       { 0x125D, "ethiopic_syllable_qhwe" },
+       { 0x125E, "" },
+       { 0x125F, "" },
+       { 0x1260, "ethiopic_syllable_ba" },
+       { 0x1261, "ethiopic_syllable_bu" },
+       { 0x1262, "ethiopic_syllable_bi" },
+       { 0x1263, "ethiopic_syllable_baa" },
+       { 0x1264, "ethiopic_syllable_bee" },
+       { 0x1265, "ethiopic_syllable_be" },
+       { 0x1266, "ethiopic_syllable_bo" },
+       { 0x1267, "ethiopic_syllable_bwaa" },
+       { 0x1268, "ethiopic_syllable_va" },
+       { 0x1269, "ethiopic_syllable_vu" },
+       { 0x126A, "ethiopic_syllable_vi" },
+       { 0x126B, "ethiopic_syllable_vaa" },
+       { 0x126C, "ethiopic_syllable_vee" },
+       { 0x126D, "ethiopic_syllable_ve" },
+       { 0x126E, "ethiopic_syllable_vo" },
+       { 0x126F, "ethiopic_syllable_vwa" },
+       { 0x1270, "ethiopic_syllable_ta" },
+       { 0x1271, "ethiopic_syllable_tu" },
+       { 0x1272, "ethiopic_syllable_ti" },
+       { 0x1273, "ethiopic_syllable_taa" },
+       { 0x1274, "ethiopic_syllable_tee" },
+       { 0x1275, "ethiopic_syllable_te" },
+       { 0x1276, "ethiopic_syllable_to" },
+       { 0x1277, "ethiopic_syllable_twa" },
+       { 0x1278, "ethiopic_syllable_ca" },
+       { 0x1279, "ethiopic_syllable_cu" },
+       { 0x127A, "ethiopic_syllable_ci" },
+       { 0x127B, "ethiopic_syllable_caa" },
+       { 0x127C, "ethiopic_syllable_cee" },
+       { 0x127D, "ethiopic_syllable_ce" },
+       { 0x127E, "ethiopic_syllable_co" },
+       { 0x127F, "ethiopic_syllable_cwa" },
+       { 0x1280, "ethiopic_syllable_xa" },
+       { 0x1281, "ethiopic_syllable_xu" },
+       { 0x1282, "ethiopic_syllable_xi" },
+       { 0x1283, "ethiopic_syllable_xaa" },
+       { 0x1284, "ethiopic_syllable_xee" },
+       { 0x1285, "ethiopic_syllable_xe" },
+       { 0x1286, "ethiopic_syllable_xo" },
+       { 0x1287, "" },
+       { 0x1288, "ethiopic_syllable_xwa" },
+       { 0x1289, "" },
+       { 0x128A, "ethiopic_syllable_xwi" },
+       { 0x128B, "ethiopic_syllable_xwaa" },
+       { 0x128C, "ethiopic_syllable_xwee" },
+       { 0x128D, "ethiopic_syllable_xwe" },
+       { 0x128E, "" },
+       { 0x128F, "" },
+       { 0x1290, "ethiopic_syllable_na" },
+       { 0x1291, "ethiopic_syllable_nu" },
+       { 0x1292, "ethiopic_syllable_ni" },
+       { 0x1293, "ethiopic_syllable_naa" },
+       { 0x1294, "ethiopic_syllable_nee" },
+       { 0x1295, "ethiopic_syllable_ne" },
+       { 0x1296, "ethiopic_syllable_no" },
+       { 0x1297, "ethiopic_syllable_nwa" },
+       { 0x1298, "ethiopic_syllable_nya" },
+       { 0x1299, "ethiopic_syllable_nyu" },
+       { 0x129A, "ethiopic_syllable_nyi" },
+       { 0x129B, "ethiopic_syllable_nyaa" },
+       { 0x129C, "ethiopic_syllable_nyee" },
+       { 0x129D, "ethiopic_syllable_nye" },
+       { 0x129E, "ethiopic_syllable_nyo" },
+       { 0x129F, "ethiopic_syllable_nywa" },
+       { 0x12A0, "ethiopic_syllable_glottal_a" },
+       { 0x12A1, "ethiopic_syllable_glottal_u" },
+       { 0x12A2, "ethiopic_syllable_glottal_i" },
+       { 0x12A3, "ethiopic_syllable_glottal_aa" },
+       { 0x12A4, "ethiopic_syllable_glottal_ee" },
+       { 0x12A5, "ethiopic_syllable_glottal_e" },
+       { 0x12A6, "ethiopic_syllable_glottal_o" },
+       { 0x12A7, "ethiopic_syllable_glottal_wa" },
+       { 0x12A8, "ethiopic_syllable_ka" },
+       { 0x12A9, "ethiopic_syllable_ku" },
+       { 0x12AA, "ethiopic_syllable_ki" },
+       { 0x12AB, "ethiopic_syllable_kaa" },
+       { 0x12AC, "ethiopic_syllable_kee" },
+       { 0x12AD, "ethiopic_syllable_ke" },
+       { 0x12AE, "ethiopic_syllable_ko" },
+       { 0x12AF, "" },
+       { 0x12B0, "ethiopic_syllable_kwa" },
+       { 0x12B1, "" },
+       { 0x12B2, "ethiopic_syllable_kwi" },
+       { 0x12B3, "ethiopic_syllable_kwaa" },
+       { 0x12B4, "ethiopic_syllable_kwee" },
+       { 0x12B5, "ethiopic_syllable_kwe" },
+       { 0x12B6, "" },
+       { 0x12B7, "" },
+       { 0x12B8, "ethiopic_syllable_kxa" },
+       { 0x12B9, "ethiopic_syllable_kxu" },
+       { 0x12BA, "ethiopic_syllable_kxi" },
+       { 0x12BB, "ethiopic_syllable_kxaa" },
+       { 0x12BC, "ethiopic_syllable_kxee" },
+       { 0x12BD, "ethiopic_syllable_kxe" },
+       { 0x12BE, "ethiopic_syllable_kxo" },
+       { 0x12BF, "" },
+       { 0x12C0, "ethiopic_syllable_kxwa" },
+       { 0x12C1, "" },
+       { 0x12C2, "ethiopic_syllable_kxwi" },
+       { 0x12C3, "ethiopic_syllable_kxwaa" },
+       { 0x12C4, "ethiopic_syllable_kxwee" },
+       { 0x12C5, "ethiopic_syllable_kxwe" },
+       { 0x12C6, "" },
+       { 0x12C7, "" },
+       { 0x12C8, "ethiopic_syllable_wa" },
+       { 0x12C9, "ethiopic_syllable_wu" },
+       { 0x12CA, "ethiopic_syllable_wi" },
+       { 0x12CB, "ethiopic_syllable_waa" },
+       { 0x12CC, "ethiopic_syllable_wee" },
+       { 0x12CD, "ethiopic_syllable_we" },
+       { 0x12CE, "ethiopic_syllable_wo" },
+       { 0x12CF, "" },
+       { 0x12D0, "ethiopic_syllable_pharyngeal_a" },
+       { 0x12D1, "ethiopic_syllable_pharyngeal_u" },
+       { 0x12D2, "ethiopic_syllable_pharyngeal_i" },
+       { 0x12D3, "ethiopic_syllable_pharyngeal_aa" },
+       { 0x12D4, "ethiopic_syllable_pharyngeal_ee" },
+       { 0x12D5, "ethiopic_syllable_pharyngeal_e" },
+       { 0x12D6, "ethiopic_syllable_pharyngeal_o" },
+       { 0x12D7, "" },
+       { 0x12D8, "ethiopic_syllable_za" },
+       { 0x12D9, "ethiopic_syllable_zu" },
+       { 0x12DA, "ethiopic_syllable_zi" },
+       { 0x12DB, "ethiopic_syllable_zaa" },
+       { 0x12DC, "ethiopic_syllable_zee" },
+       { 0x12DD, "ethiopic_syllable_ze" },
+       { 0x12DE, "ethiopic_syllable_zo" },
+       { 0x12DF, "ethiopic_syllable_zwa" },
+       { 0x12E0, "ethiopic_syllable_zha" },
+       { 0x12E1, "ethiopic_syllable_zhu" },
+       { 0x12E2, "ethiopic_syllable_zhi" },
+       { 0x12E3, "ethiopic_syllable_zhaa" },
+       { 0x12E4, "ethiopic_syllable_zhee" },
+       { 0x12E5, "ethiopic_syllable_zhe" },
+       { 0x12E6, "ethiopic_syllable_zho" },
+       { 0x12E7, "ethiopic_syllable_zhwa" },
+       { 0x12E8, "ethiopic_syllable_ya" },
+       { 0x12E9, "ethiopic_syllable_yu" },
+       { 0x12EA, "ethiopic_syllable_yi" },
+       { 0x12EB, "ethiopic_syllable_yaa" },
+       { 0x12EC, "ethiopic_syllable_yee" },
+       { 0x12ED, "ethiopic_syllable_ye" },
+       { 0x12EE, "ethiopic_syllable_yo" },
+       { 0x12EF, "" },
+       { 0x12F0, "ethiopic_syllable_da" },
+       { 0x12F1, "ethiopic_syllable_du" },
+       { 0x12F2, "ethiopic_syllable_di" },
+       { 0x12F3, "ethiopic_syllable_daa" },
+       { 0x12F4, "ethiopic_syllable_dee" },
+       { 0x12F5, "ethiopic_syllable_de" },
+       { 0x12F6, "ethiopic_syllable_do" },
+       { 0x12F7, "ethiopic_syllable_dwa" },
+       { 0x12F8, "ethiopic_syllable_dda" },
+       { 0x12F9, "ethiopic_syllable_ddu" },
+       { 0x12FA, "ethiopic_syllable_ddi" },
+       { 0x12FB, "ethiopic_syllable_ddaa" },
+       { 0x12FC, "ethiopic_syllable_ddee" },
+       { 0x12FD, "ethiopic_syllable_dde" },
+       { 0x12FE, "ethiopic_syllable_ddo" },
+       { 0x12FF, "ethiopic_syllable_ddwa" },
+       { 0x1300, "ethiopic_syllable_ja" },
+       { 0x1301, "ethiopic_syllable_ju" },
+       { 0x1302, "ethiopic_syllable_ji" },
+       { 0x1303, "ethiopic_syllable_jaa" },
+       { 0x1304, "ethiopic_syllable_jee" },
+       { 0x1305, "ethiopic_syllable_je" },
+       { 0x1306, "ethiopic_syllable_jo" },
+       { 0x1307, "ethiopic_syllable_jwa" },
+       { 0x1308, "ethiopic_syllable_ga" },
+       { 0x1309, "ethiopic_syllable_gu" },
+       { 0x130A, "ethiopic_syllable_gi" },
+       { 0x130B, "ethiopic_syllable_gaa" },
+       { 0x130C, "ethiopic_syllable_gee" },
+       { 0x130D, "ethiopic_syllable_ge" },
+       { 0x130E, "ethiopic_syllable_go" },
+       { 0x130F, "" },
+       { 0x1310, "ethiopic_syllable_gwa" },
+       { 0x1311, "" },
+       { 0x1312, "ethiopic_syllable_gwi" },
+       { 0x1313, "ethiopic_syllable_gwaa" },
+       { 0x1314, "ethiopic_syllable_gwee" },
+       { 0x1315, "ethiopic_syllable_gwe" },
+       { 0x1316, "" },
+       { 0x1317, "" },
+       { 0x1318, "ethiopic_syllable_gga" },
+       { 0x1319, "ethiopic_syllable_ggu" },
+       { 0x131A, "ethiopic_syllable_ggi" },
+       { 0x131B, "ethiopic_syllable_ggaa" },
+       { 0x131C, "ethiopic_syllable_ggee" },
+       { 0x131D, "ethiopic_syllable_gge" },
+       { 0x131E, "ethiopic_syllable_ggo" },
+       { 0x131F, "" },
+       { 0x1320, "ethiopic_syllable_tha" },
+       { 0x1321, "ethiopic_syllable_thu" },
+       { 0x1322, "ethiopic_syllable_thi" },
+       { 0x1323, "ethiopic_syllable_thaa" },
+       { 0x1324, "ethiopic_syllable_thee" },
+       { 0x1325, "ethiopic_syllable_the" },
+       { 0x1326, "ethiopic_syllable_tho" },
+       { 0x1327, "ethiopic_syllable_thwa" },
+       { 0x1328, "ethiopic_syllable_cha" },
+       { 0x1329, "ethiopic_syllable_chu" },
+       { 0x132A, "ethiopic_syllable_chi" },
+       { 0x132B, "ethiopic_syllable_chaa" },
+       { 0x132C, "ethiopic_syllable_chee" },
+       { 0x132D, "ethiopic_syllable_che" },
+       { 0x132E, "ethiopic_syllable_cho" },
+       { 0x132F, "ethiopic_syllable_chwa" },
+       { 0x1330, "ethiopic_syllable_pha" },
+       { 0x1331, "ethiopic_syllable_phu" },
+       { 0x1332, "ethiopic_syllable_phi" },
+       { 0x1333, "ethiopic_syllable_phaa" },
+       { 0x1334, "ethiopic_syllable_phee" },
+       { 0x1335, "ethiopic_syllable_phe" },
+       { 0x1336, "ethiopic_syllable_pho" },
+       { 0x1337, "ethiopic_syllable_phwa" },
+       { 0x1338, "ethiopic_syllable_tsa" },
+       { 0x1339, "ethiopic_syllable_tsu" },
+       { 0x133A, "ethiopic_syllable_tsi" },
+       { 0x133B, "ethiopic_syllable_tsaa" },
+       { 0x133C, "ethiopic_syllable_tsee" },
+       { 0x133D, "ethiopic_syllable_tse" },
+       { 0x133E, "ethiopic_syllable_tso" },
+       { 0x133F, "ethiopic_syllable_tswa" },
+       { 0x1340, "ethiopic_syllable_tza" },
+       { 0x1341, "ethiopic_syllable_tzu" },
+       { 0x1342, "ethiopic_syllable_tzi" },
+       { 0x1343, "ethiopic_syllable_tzaa" },
+       { 0x1344, "ethiopic_syllable_tzee" },
+       { 0x1345, "ethiopic_syllable_tze" },
+       { 0x1346, "ethiopic_syllable_tzo" },
+       { 0x1347, "" },
+       { 0x1348, "ethiopic_syllable_fa" },
+       { 0x1349, "ethiopic_syllable_fu" },
+       { 0x134A, "ethiopic_syllable_fi" },
+       { 0x134B, "ethiopic_syllable_faa" },
+       { 0x134C, "ethiopic_syllable_fee" },
+       { 0x134D, "ethiopic_syllable_fe" },
+       { 0x134E, "ethiopic_syllable_fo" },
+       { 0x134F, "ethiopic_syllable_fwaa" },
+       { 0x1350, "ethiopic_syllable_pa" },
+       { 0x1351, "ethiopic_syllable_pu" },
+       { 0x1352, "ethiopic_syllable_pi" },
+       { 0x1353, "ethiopic_syllable_paa" },
+       { 0x1354, "ethiopic_syllable_pee" },
+       { 0x1355, "ethiopic_syllable_pe" },
+       { 0x1356, "ethiopic_syllable_po" },
+       { 0x1357, "ethiopic_syllable_pwaa" },
+       { 0x1358, "ethiopic_syllable_mya" },
+       { 0x1359, "ethiopic_syllable_rya" },
+       { 0x135A, "ethiopic_syllable_fya" },
+       { 0x135B, "" },
+       { 0x135C, "" },
+       { 0x135D, "" },
+       { 0x135E, "" },
+       { 0x135F, "" },
+       { 0x1360, "" },
+       { 0x1361, "ethiopic_wordspace" },
+       { 0x1362, "ethiopic_full_stop" },
+       { 0x1363, "ethiopic_comma" },
+       { 0x1364, "ethiopic_semicolon" },
+       { 0x1365, "ethiopic_colon" },
+       { 0x1366, "ethiopic_preface_colon" },
+       { 0x1367, "ethiopic_question_mark" },
+       { 0x1368, "ethiopic_paragraph_separator" },
+       { 0x1369, "ethiopic_digit_one" },
+       { 0x136A, "ethiopic_digit_two" },
+       { 0x136B, "ethiopic_digit_three" },
+       { 0x136C, "ethiopic_digit_four" },
+       { 0x136D, "ethiopic_digit_five" },
+       { 0x136E, "ethiopic_digit_six" },
+       { 0x136F, "ethiopic_digit_seven" },
+       { 0x1370, "ethiopic_digit_eight" },
+       { 0x1371, "ethiopic_digit_nine" },
+       { 0x1372, "ethiopic_number_ten" },
+       { 0x1373, "ethiopic_number_twenty" },
+       { 0x1374, "ethiopic_number_thirty" },
+       { 0x1375, "ethiopic_number_forty" },
+       { 0x1376, "ethiopic_number_fifty" },
+       { 0x1377, "ethiopic_number_sixty" },
+       { 0x1378, "ethiopic_number_seventy" },
+       { 0x1379, "ethiopic_number_eighty" },
+       { 0x137A, "ethiopic_number_ninety" },
+       { 0x137B, "ethiopic_number_hundred" },
+       { 0x137C, "ethiopic_number_ten_thousand" },
+       { 0x137D, "" },
+       { 0x137E, "" },
+       { 0x137F, "" }
 };
index f845974..e222ab1 100644 (file)
@@ -1,23 +1,26 @@
 /*
  * fgconsole.c - aeb - 960123 - Print foreground console
  */
+#include <stdio.h>
 #include <sys/ioctl.h>
 #include <linux/vt.h>
+#include "getfd.h"
 #include "nls.h"
 
 int
-main(){
-    struct vt_stat vtstat;
+main(int argc, char **argv){
+       int fd;
+       struct vt_stat vtstat;
 
-    setlocale(LC_ALL, "");
-    bindtextdomain(PACKAGE, LOCALEDIR);
-    textdomain(PACKAGE);
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
-    /* replace 0 by getfd() for a somewhat more robust version */
-    if (ioctl(0, VT_GETSTATE, &vtstat)) {
-        perror("fgconsole: VT_GETSTATE");
-       exit(1);
-    }
-    printf("%d\n", vtstat.v_active);
-    return 0;
+       fd = getfd();
+       if (ioctl(fd, VT_GETSTATE, &vtstat)) {
+               perror("fgconsole: VT_GETSTATE");
+               exit(1);
+       }
+       printf("%d\n", vtstat.v_active);
+       return 0;
 }
index dd5b5c8..57d94b6 100644 (file)
@@ -5,28 +5,10 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <dirent.h>
+#include "xmalloc.h"
+#include "findfile.h"
 #include "nls.h"
 
-void *
-xmalloc(size_t n) {
-       void *p = malloc(n);
-       if (p == NULL) {
-               fprintf(stderr, _("Out of Memory\n"));
-               exit(1);
-       }
-       return p;
-}
-
-char *
-xstrdup(char *p) {
-       char *q = strdup(p);
-       if (q == NULL) {
-               fprintf(stderr, _("Out of Memory?\n"));
-               exit(1);
-       }
-       return q;
-}
-
 char pathname[1024];
 static int ispipe;
 
diff --git a/src/findfile.h b/src/findfile.h
new file mode 100644 (file)
index 0000000..bc6de6a
--- /dev/null
@@ -0,0 +1,2 @@
+extern void fpclose(FILE *fp);
+extern FILE *findfile(char *fnam, char **dirpath, char **suffixes);
index e714f5e..816672a 100644 (file)
@@ -1,9 +1,11 @@
 #include <stdio.h>
+#include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
 #include <linux/kd.h>
 #include <sys/ioctl.h>
 #include "nls.h"
+#include "getfd.h"
 
 /*
  * getfd.c
@@ -29,8 +31,12 @@ open_a_console(char *fnam) {
     fd = open(fnam, O_RDONLY);
     if (fd < 0 && errno == EACCES)
       fd = open(fnam, O_WRONLY);
-    if (fd < 0 || ! is_a_console(fd))
+    if (fd < 0)
       return -1;
+    if (!is_a_console(fd)) {
+      close(fd);
+      return -1;
+    }
     return fd;
 }
 
diff --git a/src/getfd.h b/src/getfd.h
new file mode 100644 (file)
index 0000000..625f472
--- /dev/null
@@ -0,0 +1 @@
+extern int getfd(void);
index 27b029a..1fe69ae 100644 (file)
@@ -9,11 +9,11 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <linux/kd.h>
+#include "getfd.h"
 #include "nls.h"
+#include "version.h"
 
-extern int getfd(void);
-
-void
+static void
 usage(void) {
     fprintf(stderr, _("usage: getkeycodes\n"));
     exit(1);
@@ -24,10 +24,15 @@ main(int argc, char **argv) {
     int fd, sc;
     struct kbkeycode a;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+      print_version_and_exit();
+
     if (argc != 1)
       usage();
     fd = getfd();
index c355477..c961b0d 100644 (file)
@@ -1,8 +1,12 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <errno.h>
-#include <asm/ioctls.h>
+#include <sys/ioctl.h>
 #include <linux/kd.h>
+#include "getfd.h"
+#include "xmalloc.h"
 #include "nls.h"
+#include "version.h"
 
 #ifndef USE_LIBC
 /* There is such function in libc5 but it doesn't work for me [libc 5.4.13] */
 #define wctomb our_wctomb
 #endif
 
-extern int getfd();
-extern char *malloc();
+static int
+ud_compar(const void *u1, const void *u2){
+       unsigned short fp1 = ((struct unipair *) u1)->fontpos;
+       unsigned short fp2 = ((struct unipair *) u2)->fontpos;
+       return (int) fp1 - (int) fp2;
+}
+
+int
+main(int argc, char **argv){
+       int sortflag = 0;
+       char mb[]={0,0,0,0,0,0,0,0};
+       unsigned mb_length;
+       int fd, ct;
+       struct unimapdesc ud;
+       int i;
 
-main(){
-    char mb[]={0,0,0,0,0,0,0,0};
-    unsigned mb_length;
-    int fd, ct;
-    struct unimapdesc ud;
-    int i;
+       set_progname(argv[0]);
 
-    setlocale(LC_ALL, "");
-    bindtextdomain(PACKAGE, LOCALEDIR);
-    textdomain(PACKAGE);
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
-    fd = getfd();
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+               print_version_and_exit();
 
-    ud.entry_ct = ct = 0;
-    ud.entries = 0;
-    if (ioctl(fd, GIO_UNIMAP, &ud)) {
-       if (errno != ENOMEM) {
-           perror("GIO_UNIMAP");
-           exit(1);
+       if (argc == 2 && !strcmp(argv[1], "-s")) {
+               sortflag = 1;
+               argc--;
+       }
+       if (argc != 1) {
+               fprintf(stderr, _("Usage:\n\t%s [-s]\n"), progname);
+               exit(1);
        }
-       ct = ud.entry_ct;
-       ud.entries = (struct unipair *) malloc(ct * sizeof(struct unipair));
+
+       fd = getfd();
+
+       ud.entry_ct = ct = 0;
+       ud.entries = 0;
        if (ioctl(fd, GIO_UNIMAP, &ud)) {
-           perror("GIO_UNIMAP (2)");
-           exit(1);
+               if (errno != ENOMEM) {
+                       perror("GIO_UNIMAP");
+                       exit(1);
+               }
+               ct = ud.entry_ct;
+               ud.entries = xmalloc(ct * sizeof(struct unipair));
+               if (ioctl(fd, GIO_UNIMAP, &ud)) {
+                       perror("GIO_UNIMAP (2)");
+                       exit(1);
+               }
+               if (ct != ud.entry_ct)
+                       fprintf(stderr,
+                               _("strange... ct changed from %d to %d\n"),
+                               ct, ud.entry_ct);
+
+               /* someone could change the unimap between our
+                  first and second ioctl, so the above errors
+                  are not impossible */
+       }
+
+       if (sortflag) {
+               printf("# sorted kernel unimap - count=%d\n", ud.entry_ct);
+               /* sort and merge entries */
+               qsort (ud.entries, ud.entry_ct, sizeof(ud.entries[0]),
+                      ud_compar);
+               for(i=0; i<ud.entry_ct && i<ct; i++) {
+                       int fp = ud.entries[i].fontpos;
+                       printf("0x%03x\tU+%04x", fp, ud.entries[i].unicode);
+                       while (i+1 < ud.entry_ct && i+1 < ct &&
+                              ud.entries[i+1].fontpos == fp)
+                               printf(" U+%04x", ud.entries[++i].unicode);
+                       printf("\n");
+               }
+       } else {
+               printf("# kernel unimap - count=%d\n", ud.entry_ct);
+               for(i=0; i<ud.entry_ct && i<ct; i++) {
+                       mb_length=wctomb (mb, ud.entries[i].unicode);
+                       mb[ (mb_length > 6) ? 0 : mb_length ] = 0 ;
+                       printf("0x%03x\tU+%04x\t# %s \n",
+                              ud.entries[i].fontpos,
+                              ud.entries[i].unicode, mb);
+               }
        }
-       if (ct != ud.entry_ct)
-         fprintf(stderr, _("strange... ct changed from %d to %d\n"),
-                 ct, ud.entry_ct);
-
-       /* someone could change the unimap between our
-          first and second ioctl, so the above errors
-          are not impossible */
-    }
-    printf("# count=%d\n", ud.entry_ct);
-    for(i=0; i<ud.entry_ct && i<ct; i++) {
-        mb_length=wctomb (mb, ud.entries[i].unicode);
-        mb[ (mb_length > 6) ? 0 : mb_length ] = 0 ;
-        printf("0x%03x\tU+%04x\t# %s \n", ud.entries[i].fontpos,
-               ud.entries[i].unicode, mb);
-    }
+
+       return 0;
 }
index 6799a9e..6338398 100644 (file)
@@ -9,14 +9,12 @@
 #include <sys/ioctl.h>
 #include <linux/types.h>
 #include <linux/kd.h>
+#include "getfd.h"
 #include "nls.h"
+#include "version.h"
 
-char *progname;
-
-extern int getfd(void);
-
-void
-usage(){
+static void
+usage(void){
     fprintf(stderr, _("usage: kbd_mode [-a|-u|-k|-s]\n"));
     exit(1);
 }
@@ -25,12 +23,15 @@ int
 main(int argc, char *argv[]){
         int fd, mode;
 
-       progname = argv[0];
+       set_progname(argv[0]);
 
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+           print_version_and_exit();
+
        fd = getfd();
 
        if (argc == 1) {
diff --git a/src/kbdrate.c b/src/kbdrate.c
new file mode 100644 (file)
index 0000000..3bb6582
--- /dev/null
@@ -0,0 +1,281 @@
+/*
+From: faith@cs.unc.edu (Rik Faith)
+Subject: User mode keyboard rate changer
+Date: 27 Apr 92 13:44:26 GMT
+
+I put together this program, called kbdrate.c, which will reset the keyboard
+repeat rate and delay in user mode.  The program must have read/write
+access to /dev/port, so if /dev/port is only read/writeable by group port,
+then kbdrate must run setgid to group port (for example).
+
+The "rate" is the rate in characters per second
+
+The "delay" is the amount of time the key must remain depressed before it
+will start to repeat.
+
+Usage examples:
+
+kbdrate                 set rate to IBM default (10.9 cps, 250ms delay)
+kbdrate -r 30.0         set rate to 30 cps and delay to 250ms
+kbdrate -r 20.0 -s      set rate to 20 cps (delay 250ms) -- don't print message
+kbdrate -r 0 -d 0       set rate to 2.0 cps and delay to 250 ms
+
+I find it useful to put kbdrate in my /etc/rc file so that the keyboard
+rate is set to something that I find comfortable at boot time.  This sure
+beats rebuilding the kernel!
+
+
+  kbdrate.c -- Set keyboard typematic rate (and delay)
+  Created: Thu Apr 23 12:24:30 1992
+  Author: Rickard E. Faith, faith@cs.unc.edu
+
+  Copyright 1992 Rickard E. Faith.  Distributed under the GPL.
+  This program comes with ABSOLUTELY NO WARRANTY.
+  Usage: kbdrate [-r rate] [-d delay] [-s]
+         Rate can range from 2.0 to 30.0 (units are characters per second)
+         Delay can range from 250 to 1000 (units are milliseconds)
+         -s suppressed message
+  Compiles under gcc 2.1 for Linux (tested with the pre-0.96 kernel)
+  Wed Jun 22 21:35:43 1994, faith@cs.unc.edu:
+            Changed valid_rates per suggestion by Andries.Brouwer@cwi.nl.
+  Wed Jun 22 22:18:29 1994, faith@cs.unc.edu:
+            Added patch for AUSTIN notebooks from John Bowman
+            (bowman@hagar.ph.utexas.edu)
+  Linux/68k modifications by Roman Hodek 
+                               (Roman.Hodek@informatik.uni-erlangen.de):
+  Reading/writing the Intel I/O ports via /dev/port is not the
+  English way... Such hardware dependant stuff can never work on
+  other architectures.
+  
+  Linux/68k has an new ioctl for setting the keyboard repeat rate
+  and delay. Both values are counted in msecs, the kernel will do
+  any rounding to values possible with the underlying hardware.
+  kbdrate now first tries if the KDKBDREP ioctl is available. If it
+  is, it is used, else the old method is applied.
+
+  1999-02-22 Arkadiusz Mi¶kiewicz <misiek@misiek.eu.org>
+  - added Native Language Support
+
+  1999-03-17
+  Linux/SPARC modifications by Jeffrey Connell <ankh@canuck.gen.nz>:
+  It seems that the KDKBDREP ioctl is not available on this platform.
+  However, Linux/SPARC has its own ioctl for this, with yet another
+  different measurement system.  Thus, try for KIOCSRATE, too.
+
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <sys/file.h>
+#include <sys/ioctl.h>
+
+#include "../defines.h"
+#ifdef HAVE_kd_h
+#include <linux/kd.h>
+#endif
+#ifdef __sparc__
+#include <asm/param.h>
+#include <asm/kbio.h>
+#endif
+
+#include "nls.h"
+#include "version.h"
+
+static int valid_rates[] = { 300, 267, 240, 218, 200, 185, 171, 160, 150,
+                                   133, 120, 109, 100, 92, 86, 80, 75, 67,
+                                   60, 55, 50, 46, 43, 40, 37, 33, 30, 27,
+                                   25, 23, 21, 20 };
+#define RATE_COUNT (sizeof( valid_rates ) / sizeof( int ))
+
+static int valid_delays[] = { 250, 500, 750, 1000 };
+#define DELAY_COUNT (sizeof( valid_delays ) / sizeof( int ))
+
+static int
+KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
+#ifdef KDKBDREP
+       /* This ioctl is defined in <linux/kd.h> but is not
+          implemented anywhere - must be in some m68k patches. */
+       struct kbd_repeat kbdrep_s;
+
+       /* don't change, just test */
+       kbdrep_s.rate = -1;
+       kbdrep_s.delay = -1;
+       if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
+               if (errno == EINVAL)
+                       return 0;
+               perror( "ioctl(KDKBDREP)" );
+               exit( 1 );
+       }
+
+       /* do the change */
+       if (rate == 0)                          /* switch repeat off */
+               kbdrep_s.rate = 0;
+       else
+               kbdrep_s.rate  = 1000.0 / rate;         /* convert cps to msec */
+       if (kbdrep_s.rate < 1)
+               kbdrep_s.rate = 1;
+       kbdrep_s.delay = delay;
+       if (kbdrep_s.delay < 1)
+               kbdrep_s.delay = 1;
+   
+       if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
+               perror( "ioctl(KDKBDREP)" );
+               exit( 1 );
+       }
+
+       /* report */
+       if (kbdrep_s.rate == 0)
+               rate = 0;
+       else
+               rate = 1000.0 / (double) kbdrep_s.rate;
+
+       if (!silent)
+               printf( _("Typematic Rate set to %.1f cps (delay = %d ms)\n"),
+                       rate, kbdrep_s.delay );
+
+       return 1;                       /* success! */
+
+#else /* no KDKBDREP */
+       return 0;
+#endif /* KDKBDREP */
+}
+
+static int
+KIOCSRATE_ioctl_ok(double rate, int delay, int silent) {
+#ifdef KIOCSRATE
+       struct kbd_rate kbdrate_s;
+       int fd;
+
+       fd = open("/dev/kbd", O_RDONLY);
+       if (fd == -1) {
+               perror( "open(/dev/kbd)" );
+               exit( 1 );
+       }
+
+       kbdrate_s.rate = (int) (rate + 0.5);  /* round up */
+       kbdrate_s.delay = delay * HZ / 1000;  /* convert ms to Hz */
+       if (kbdrate_s.rate > 50)
+               kbdrate_s.rate = 50;
+
+       if (ioctl( fd, KIOCSRATE, &kbdrate_s )) {
+               perror( "ioctl(KIOCSRATE)" );
+               exit( 1 );
+       }
+       close( fd );
+
+       if (!silent)
+               printf( "Typematic Rate set to %d cps (delay = %d ms)\n",
+                       kbdrate_s.rate, kbdrate_s.delay * 1000 / HZ );
+
+       return 1;
+#else /* no KIOCSRATE */
+       return 0;
+#endif /* KIOCSRATE */
+}
+
+int main( int argc, char **argv )
+{
+#ifdef __sparc__
+       double      rate = 5.0;      /* Default rate */
+       int         delay = 200;     /* Default delay */
+#else
+       double      rate = 10.9;     /* Default rate */
+       int         delay = 250;     /* Default delay */
+#endif
+       int         value = 0x7f;    /* Maximum delay with slowest rate */
+                                /* DO NOT CHANGE this value */
+       int         silent = 0;
+       int         fd;
+       char        data;
+       int         c;
+       int         i;
+       extern char *optarg;
+
+       set_progname(argv[0]);
+
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+               print_version_and_exit();
+
+       while ( (c = getopt( argc, argv, "r:d:sv" )) != EOF ) {
+               switch (c) {
+               case 'r':
+                       rate = atof( optarg );
+                       break;
+               case 'd':
+                       delay = atoi( optarg );
+                       break;
+               case 's':
+                       silent = 1;
+                       break;
+               case 'v':
+                       fprintf(stderr, "kbdrate from kbd-%s\n", VERSION);
+                       exit(0);
+               }
+       }
+
+       if(KDKBDREP_ioctl_ok(rate, delay, silent))      /* m68k? */
+               return 0;
+
+       if(KIOCSRATE_ioctl_ok(rate, delay, silent))     /* sparc? */
+               return 0;
+
+
+       /* The ioport way */
+
+       for (i = 0; i < RATE_COUNT; i++)
+               if (rate * 10 >= valid_rates[i]) {
+                       value &= 0x60;
+                       value |= i;
+                       break;
+               }
+
+
+       for (i = 0; i < DELAY_COUNT; i++)
+               if (delay <= valid_delays[i]) {
+                       value &= 0x1f;
+                       value |= i << 5;
+                       break;
+               }
+
+       if ( (fd = open( "/dev/port", O_RDWR )) < 0) {
+               perror( _("Cannot open /dev/port") );
+               exit( 1 );
+       }
+
+       do {
+               lseek( fd, 0x64, 0 );
+               read( fd, &data, 1 );
+       } while ((data & 2) == 2 );  /* wait */
+
+       lseek( fd, 0x60, 0 );
+       data = 0xf3;                 /* set typematic rate */
+       write( fd, &data, 1 );
+
+       do {
+               lseek( fd, 0x64, 0 );
+               read( fd, &data, 1 );
+       } while ((data & 2) == 2 );  /* wait */
+
+       lseek( fd, 0x60, 0 );
+       sleep( 1 );
+       write( fd, &value, 1 );
+
+       close( fd );
+
+       if (!silent)
+               printf( _("Typematic Rate set to %.1f cps (delay = %d ms)\n"),
+                       valid_rates[value & 0x1f] / 10.0,
+                       valid_delays[ (value & 0x60) >> 5 ] );
+
+       return 0;
+}
index e524d80..bfc70ce 100644 (file)
@@ -1,8 +1,14 @@
-/* Font handling differs between various kernel versions */
+/*
+ * kdfontop.c - export getfont() and putfont()
+ *
+ * Font handling differs between various kernel versions.
+ * Hide the differences in this file.
+ */
 #include <stdio.h>
 #include <errno.h>
 #include <sys/ioctl.h>
 #include <linux/kd.h>
+#include "kdfontop.h"
 #include "nls.h"
 
 /*
@@ -106,6 +112,7 @@ struct console_font_op {
                                         data points to name / NULL */
 #define KD_FONT_OP_COPY         3     /* Copy from another console */
 
+#define KD_FONT_FLAG_OLD       0x80000000 /* Invoked via old interface */
 #define KD_FONT_FLAG_DONT_RECALC 1    /* Don't call adjust_height() */
                          /* (Used internally for PIO_FONT support) */
 #endif /* KDFONTOP */
@@ -124,7 +131,7 @@ font_charheight(char *buf, int count) {
        
 
 int
-getfont(int fd, char *buf, int *count) {
+getfont(int fd, char *buf, int *count, int *height) {
        struct consolefontdesc cfd;
        struct console_font_op cfo;
        int i;
@@ -132,16 +139,23 @@ getfont(int fd, char *buf, int *count) {
        /* First attempt: KDFONTOP */
        cfo.op = KD_FONT_OP_GET;
        cfo.flags = 0;
-       cfo.width = cfo.height = 0;
+       cfo.width = cfo.height = 32;
        cfo.charcount = *count;
        cfo.data = buf;
        i = ioctl(fd, KDFONTOP, &cfo);
        if (i == 0) {
                *count = cfo.charcount;
+               if (height)
+                       *height = cfo.height;
+               if (cfo.width != 8) {
+                       fprintf(stderr,
+                               _("kdfontop.c: only width 8 supported\n"));
+                       exit(1);
+               }
                return 0;
        }
        if (errno != ENOSYS && errno != EINVAL) {
-               perror("setfont: KDFONTOP");
+               perror("getfont: KDFONTOP");
                return -1;
        }
 
@@ -155,18 +169,18 @@ getfont(int fd, char *buf, int *count) {
                return 0;
        }
        if (errno != ENOSYS && errno != EINVAL) {
-               perror("setfont: GIO_FONTX");
+               perror("getfont: GIO_FONTX");
                return -1;
        }
 
        /* Third attempt: GIO_FONT */
        if (*count < 256) {
-               fprintf(stderr, _("setfont bug: getfont called with count<256\n"));
+               fprintf(stderr, _("bug: getfont called with count<256\n"));
                exit(1);
        }
        i = ioctl(fd, GIO_FONT, buf);
        if (i) {
-               perror("setfont: GIO_FONT");
+               perror("getfont: GIO_FONT");
                return -1;
        }
        *count = 256;
@@ -193,7 +207,7 @@ putfont(int fd, char *buf, int count, int height) {
        if (i == 0)
                return 0;
        if (errno != ENOSYS && errno != EINVAL) {
-               perror("setfont: KDFONTOP");
+               perror("putfont: KDFONTOP");
                return -1;
        }
 
@@ -205,18 +219,15 @@ putfont(int fd, char *buf, int count, int height) {
        if (i == 0)
                return 0;
        if (errno != ENOSYS && errno != EINVAL) {
-               perror("setfont: PIO_FONTX");
+               perror("putfont: PIO_FONTX");
                return -1;
        }
 
        /* Third attempt: PIO_FONT */
-       if (count < 256) {
-               fprintf(stderr, _("setfont bug: getfont called with count<256\n"));
-               exit(1);
-       }
+       /* This will load precisely 256 chars, independent of count */
        i = ioctl(fd, PIO_FONT, buf);
        if (i) {
-               perror("setfont: PIO_FONT");
+               perror("putfont: PIO_FONT");
                return -1;
        }
        return 0;
diff --git a/src/kdfontop.h b/src/kdfontop.h
new file mode 100644 (file)
index 0000000..da33746
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ * Read kernel font into BUF with room for COUNT 32x32 glyphs.
+ * Return 0 on success -1 on failure.
+ * Sets number of glyphs in COUNT, glyph height in HEIGHT.
+ */
+extern int getfont(int fd, char *buf, int *count, int *height);
+
+/*
+ * Load kernel font of pointsize HEIGHT from BUF with length COUNT.
+ * Return 0 on success, -1 on failure.
+ */
+extern int putfont(int fd, char *buf, int count, int height);
+
+/*
+ * Find the maximum height of nonblank pixels (in the 32*COUNT bytes of BUF).
+ */
+extern int font_charheight(char *buf, int count);
diff --git a/src/koi8.syms.h b/src/koi8.syms.h
new file mode 100644 (file)
index 0000000..5df7f1b
--- /dev/null
@@ -0,0 +1,137 @@
+/* For koi8-r, see rfc1489.txt */
+/* For koi8-u, see rfc2319.txt
+   it is identical to koi8-r with 8 exceptions */
+/* Since koi8-r did not have letters on these 8 places,
+   we can use the same table for both. */
+/* TODO: check unicode values for these 8 positions */
+
+static sym koi8_syms[] = { /* 128-255 */
+       { 0x2500, "" },                        /* 0200 */
+       { 0x2502, "" },
+       { 0x250c, "" },
+       { 0x2510, "" },
+       { 0x2514, "" },
+       { 0x2518, "" },
+       { 0x251c, "" },
+       { 0x2524, "" },
+       { 0x252c, "" },                        /* 0210 */
+       { 0x2534, "" },
+       { 0x253c, "" },
+       { 0x2580, "" },
+       { 0x2584, "" },
+       { 0x2588, "" },
+       { 0x258c, "" },
+       { 0x2590, "" },
+       { 0x2591, "" },                        /* 0220 */
+       { 0x2592, "" },
+       { 0x2593, "" },
+       { 0x2320, "" },
+       { 0x25a0, "" },
+       { 0x2219, "" },
+       { 0x221a, "" },
+       { 0x2248, "" },
+       { 0x2264, "" },                        /* 0230 */
+       { 0x2265, "" },
+       { 0x00a0, "" },
+       { 0x2321, "" },
+       { 0x00b0, "" },
+       { 0x00b2, "" },
+       { 0x00b7, "" },
+       { 0x00f7, "" },
+       { 0x2550, "" },                        /* 0240 */
+       { 0x2551, "" },
+       { 0x2552, "" },
+       { 0x0451, "cyrillic_small_letter_io" },
+       { 0x2553, "ukrainian_cyrillic_small_letter_ie" },  /* koi8-u #164 */
+       { 0x2554, "" },
+       { 0x2555, "ukrainian_cyrillic_small_letter_i" },   /* koi8-u #166 */
+       { 0x2556, "ukrainian_cyrillic_small_letter_yi" },  /* koi8-u #167 */
+       { 0x2557, "" },                        /* 0250 */
+       { 0x2558, "" },
+       { 0x2559, "" },
+       { 0x255a, "" },
+       { 0x255b, "" },
+       { 0x255c, "ukrainian_cyrillic_small_letter_ghe_with_upturn" }, /* koi8-u #173 */
+       { 0x255d, "" },
+       { 0x255e, "" },
+       { 0x255f, "" },                        /* 0260 */
+       { 0x2560, "" },
+       { 0x2561, "" },
+       { 0x0401, "cyrillic_capital_letter_io" },
+       { 0x2562, "ukrainian_cyrillic_capital_letter_ie" },/* koi8-u #180 */
+       { 0x2563, "" },
+       { 0x2564, "ukrainian_cyrillic_capital_letter_i" }, /* koi8-u #182 */
+       { 0x2565, "ukrainian_cyrillic_capital_letter_yi" },/* koi8-u #183 */
+       { 0x2566, "" },                        /* 0270 */
+       { 0x2567, "" },
+       { 0x2568, "" },
+       { 0x2569, "" },
+       { 0x256a, "" },
+       { 0x256b, "ukrainian_cyrillic_capital_letter_ghe_with_upturn" },/* koi8-u #189 */
+       { 0x256c, "" },
+       { 0x00a9, "copyright" },
+       { 0x044e, "cyrillic_small_letter_yu" },                        /* 0300 */
+       { 0x0430, "cyrillic_small_letter_a" },
+       { 0x0431, "cyrillic_small_letter_be" },
+       { 0x0446, "cyrillic_small_letter_tse" },
+       { 0x0434, "cyrillic_small_letter_de" },
+       { 0x0435, "cyrillic_small_letter_ie" },
+       { 0x0444, "cyrillic_small_letter_ef" },
+       { 0x0433, "cyrillic_small_letter_ghe" },
+       { 0x0445, "cyrillic_small_letter_ha" },                        /* 0310 */
+       { 0x0438, "cyrillic_small_letter_i" },
+       { 0x0439, "cyrillic_small_letter_short_i" },
+       { 0x043a, "cyrillic_small_letter_ka" },
+       { 0x043b, "cyrillic_small_letter_el" },
+       { 0x043c, "cyrillic_small_letter_em" },
+       { 0x043d, "cyrillic_small_letter_en" },
+       { 0x043e, "cyrillic_small_letter_o" },
+       { 0x043f, "cyrillic_small_letter_pe" },                                /* 0320 */
+       { 0x044f, "cyrillic_small_letter_ya" },
+       { 0x0440, "cyrillic_small_letter_er" },
+       { 0x0441, "cyrillic_small_letter_es" },
+       { 0x0442, "cyrillic_small_letter_te" },
+       { 0x0443, "cyrillic_small_letter_u" },
+       { 0x0436, "cyrillic_small_letter_zhe" },
+       { 0x0432, "cyrillic_small_letter_ve" },
+       { 0x044c, "cyrillic_small_soft_sign" },                                /* 0330 */
+       { 0x044b, "cyrillic_small_letter_yeru" },
+       { 0x0437, "cyrillic_small_letter_ze" },
+       { 0x0448, "cyrillic_small_letter_sha" },
+       { 0x044d, "cyrillic_small_letter_e" },
+       { 0x0449, "cyrillic_small_letter_shcha" },
+       { 0x0447, "cyrillic_small_letter_che" },
+       { 0x044a, "cyrillic_small_hard_sign" },
+       { 0x042e, "cyrillic_capital_letter_yu" },                      /* 0340 */
+       { 0x0410, "cyrillic_capital_letter_a" },
+       { 0x0411, "cyrillic_capital_letter_be" },
+       { 0x0426, "cyrillic_capital_letter_tse" },
+       { 0x0414, "cyrillic_capital_letter_de" },
+       { 0x0415, "cyrillic_capital_letter_ie" },
+       { 0x0424, "cyrillic_capital_letter_ef" },
+       { 0x0413, "cyrillic_capital_letter_ghe" },
+       { 0x0425, "cyrillic_capital_letter_ha" },                      /* 0350 */
+       { 0x0418, "cyrillic_capital_letter_i" },
+       { 0x0419, "cyrillic_capital_letter_short_i" },
+       { 0x041a, "cyrillic_capital_letter_ka" },
+       { 0x041b, "cyrillic_capital_letter_el" },
+       { 0x041c, "cyrillic_capital_letter_em" },
+       { 0x041d, "cyrillic_capital_letter_en" },
+       { 0x041e, "cyrillic_capital_letter_o" },
+       { 0x041f, "cyrillic_capital_letter_pe" },                      /* 0360 */
+       { 0x042f, "cyrillic_capital_letter_ya" },
+       { 0x0420, "cyrillic_capital_letter_er" },
+       { 0x0421, "cyrillic_capital_letter_es" },
+       { 0x0422, "cyrillic_capital_letter_te" },
+       { 0x0423, "cyrillic_capital_letter_u" },
+       { 0x0416, "cyrillic_capital_letter_zhe" },
+       { 0x0412, "cyrillic_capital_letter_ve" },
+       { 0x042c, "cyrillic_capital_soft_sign" },                      /* 0370 */
+       { 0x042b, "cyrillic_capital_letter_yeru" },
+       { 0x0417, "cyrillic_capital_letter_ze" },
+       { 0x0428, "cyrillic_capital_letter_sha" },
+       { 0x042d, "cyrillic_capital_letter_e" },
+       { 0x0429, "cyrillic_capital_letter_shcha" },
+       { 0x0427, "cyrillic_capital_letter_che" },
+       { 0x042a, "cyrillic_capital_hard_sign" }
+};
index e516cd0..94ad991 100644 (file)
@@ -4,7 +4,9 @@
 #include "ksyms.h"
 #include "nls.h"
 
-static char *latin1_syms[] = {
+/* Keysyms whose KTYP is KT_LATIN or KT_LETTER and whose KVAL is 0..127. */
+
+static const char *iso646_syms[] = {
        "nul",
        "Control_a",
        "Control_b",
@@ -133,38 +135,11 @@ static char *latin1_syms[] = {
        "braceright",
        "asciitilde",
        "Delete",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
-       "",
+
+       /* set_charset() fills in charset dependent strings here. */
+       /* start with the latin1 defaults */
+       "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
+       "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
        "nobreakspace",
        "exclamdown",
        "cent",
@@ -260,219 +235,997 @@ static char *latin1_syms[] = {
        "udiaeresis",
        "yacute",
        "thorn",
-       "ydiaeresis"
+       "ydiaeresis",
+};
+
+/* Keysyms whose KTYP is KT_LATIN or KT_LETTER and whose KVAL is 128..255,
+   and their Unicode equivalent. */
+
+static sym latin1_syms[] = {
+       { 0x00a0, "nobreakspace" },
+       { 0x00a1, "exclamdown" },
+       { 0x00a2, "cent" },
+       { 0x00a3, "sterling" },
+       { 0x00a4, "currency" },
+       { 0x00a5, "yen" },
+       { 0x00a6, "brokenbar" },
+       { 0x00a7, "section" },
+       { 0x00a8, "diaeresis" },
+       { 0x00a9, "copyright" },
+       { 0x00aa, "ordfeminine" },
+       { 0x00ab, "guillemotleft" },
+       { 0x00ac, "notsign" },
+       { 0x00ad, "hyphen" },
+       { 0x00ae, "registered" },
+       { 0x00af, "macron" },
+       { 0x00b0, "degree" },
+       { 0x00b1, "plusminus" },
+       { 0x00b2, "twosuperior" },
+       { 0x00b3, "threesuperior" },
+       { 0x00b4, "acute" },
+       { 0x00b5, "mu" },
+       { 0x00b6, "paragraph" },
+       { 0x00b7, "periodcentered" },
+       { 0x00b8, "cedilla" },
+       { 0x00b9, "onesuperior" },
+       { 0x00ba, "masculine" },
+       { 0x00bb, "guillemotright" },
+       { 0x00bc, "onequarter" },
+       { 0x00bd, "onehalf" },
+       { 0x00be, "threequarters" },
+       { 0x00bf, "questiondown" },
+       { 0x00c0, "Agrave" },
+       { 0x00c1, "Aacute" },
+       { 0x00c2, "Acircumflex" },
+       { 0x00c3, "Atilde" },
+       { 0x00c4, "Adiaeresis" },
+       { 0x00c5, "Aring" },
+       { 0x00c6, "AE" },
+       { 0x00c7, "Ccedilla" },
+       { 0x00c8, "Egrave" },
+       { 0x00c9, "Eacute" },
+       { 0x00ca, "Ecircumflex" },
+       { 0x00cb, "Ediaeresis" },
+       { 0x00cc, "Igrave" },
+       { 0x00cd, "Iacute" },
+       { 0x00ce, "Icircumflex" },
+       { 0x00cf, "Idiaeresis" },
+       { 0x00d0, "ETH" },
+       { 0x00d1, "Ntilde" },
+       { 0x00d2, "Ograve" },
+       { 0x00d3, "Oacute" },
+       { 0x00d4, "Ocircumflex" },
+       { 0x00d5, "Otilde" },
+       { 0x00d6, "Odiaeresis" },
+       { 0x00d7, "multiply" },
+       { 0x00d8, "Ooblique" },
+       { 0x00d9, "Ugrave" },
+       { 0x00da, "Uacute" },
+       { 0x00db, "Ucircumflex" },
+       { 0x00dc, "Udiaeresis" },
+       { 0x00dd, "Yacute" },
+       { 0x00de, "THORN" },
+       { 0x00df, "ssharp" },
+       { 0x00e0, "agrave" },
+       { 0x00e1, "aacute" },
+       { 0x00e2, "acircumflex" },
+       { 0x00e3, "atilde" },
+       { 0x00e4, "adiaeresis" },
+       { 0x00e5, "aring" },
+       { 0x00e6, "ae" },
+       { 0x00e7, "ccedilla" },
+       { 0x00e8, "egrave" },
+       { 0x00e9, "eacute" },
+       { 0x00ea, "ecircumflex" },
+       { 0x00eb, "ediaeresis" },
+       { 0x00ec, "igrave" },
+       { 0x00ed, "iacute" },
+       { 0x00ee, "icircumflex" },
+       { 0x00ef, "idiaeresis" },
+       { 0x00f0, "eth" },
+       { 0x00f1, "ntilde" },
+       { 0x00f2, "ograve" },
+       { 0x00f3, "oacute" },
+       { 0x00f4, "ocircumflex" },
+       { 0x00f5, "otilde" },
+       { 0x00f6, "odiaeresis" },
+       { 0x00f7, "division" },
+       { 0x00f8, "oslash" },
+       { 0x00f9, "ugrave" },
+       { 0x00fa, "uacute" },
+       { 0x00fb, "ucircumflex" },
+       { 0x00fc, "udiaeresis" },
+       { 0x00fd, "yacute" },
+       { 0x00fe, "thorn" },
+       { 0x00ff, "ydiaeresis" }
 };
 
-static char *latin2_syms[] = {
-    "", "Aogonek", "breve", "Lstroke", "", "Lcaron", "Sacute", "",
-    "", "Scaron", "Scedilla", "Tcaron", "Zacute", "", "Zcaron", "Zabovedot",
-    "", "aogonek", "ogonek", "lstroke", "", "lcaron", "sacute", "caron",
-    "", "scaron", "scedilla", "tcaron", "zacute", "doubleacute", "zcaron", "zabovedot",
-    "Racute", "", "", "Abreve", "", "Lacute", "Cacute", "",
-    "Ccaron", "", "Eogonek", "", "Ecaron", "", "", "Dcaron",
-    "Dstroke", "Nacute", "Ncaron", "", "", "Odoubleacute", "", "",
-    "Rcaron", "Uring", "", "Udoubleacute", "", "", "Tcedilla", "",
-    "racute", "", "", "abreve", "", "lacute", "cacute", "",
-    "ccaron", "", "eogonek", "", "ecaron", "", "", "dcaron",
-    "dstroke", "nacute", "ncaron", "", "", "odoubleacute", "", "",
-    "rcaron", "uring", "", "udoubleacute", "", "", "tcedilla", "abovedot"
+static sym latin2_syms[] = {
+       { 0x00a0, "" },
+       { 0x0104, "Aogonek" },
+       { 0x02d8, "breve" },
+       { 0x0141, "Lstroke" },
+       { 0x00a4, "" },
+       { 0x013d, "Lcaron" },
+       { 0x015a, "Sacute" },
+       { 0x00a7, "" },
+       { 0x00a8, "" },
+       { 0x0160, "Scaron" },
+       { 0x015e, "Scedilla" },
+       { 0x0164, "Tcaron" },
+       { 0x0179, "Zacute" },
+       { 0x00ad, "" },
+       { 0x017d, "Zcaron" },
+       { 0x017b, "Zabovedot" },
+       { 0x00b0, "" },
+       { 0x0105, "aogonek" },
+       { 0x02db, "ogonek" },
+       { 0x0142, "lstroke" },
+       { 0x00b4, "" },
+       { 0x013e, "lcaron" },
+       { 0x015b, "sacute" },
+       { 0x02c7, "caron" },
+       { 0x00b8, "" },
+       { 0x0161, "scaron" },
+       { 0x015f, "scedilla" },
+       { 0x0165, "tcaron" },
+       { 0x017a, "zacute" },
+       { 0x02dd, "doubleacute" },
+       { 0x017e, "zcaron" },
+       { 0x017c, "zabovedot" },
+       { 0x0154, "Racute" },
+       { 0x00c1, "" },
+       { 0x00c2, "" },
+       { 0x0102, "Abreve" },
+       { 0x00c4, "" },
+       { 0x0139, "Lacute" },
+       { 0x0106, "Cacute" },
+       { 0x00c7, "" },
+       { 0x010c, "Ccaron" },
+       { 0x00c9, "" },
+       { 0x0118, "Eogonek" },
+       { 0x00cb, "" },
+       { 0x011a, "Ecaron" },
+       { 0x00cd, "" },
+       { 0x00ce, "" },
+       { 0x010e, "Dcaron" },
+       { 0x0110, "Dstroke" },
+       { 0x0143, "Nacute" },
+       { 0x0147, "Ncaron" },
+       { 0x00d3, "" },
+       { 0x00d4, "" },
+       { 0x0150, "Odoubleacute" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x0158, "Rcaron" },
+       { 0x016e, "Uring" },
+       { 0x00da, "" },
+       { 0x0170, "Udoubleacute" },
+       { 0x00dc, "" },
+       { 0x00dd, "" },
+       { 0x0162, "Tcedilla" },
+       { 0x00df, "" },
+       { 0x0155, "racute" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0x0103, "abreve" },
+       { 0x00e4, "" },
+       { 0x013a, "lacute" },
+       { 0x0107, "cacute" },
+       { 0x00e7, "" },
+       { 0x010d, "ccaron" },
+       { 0x00e9, "" },
+       { 0x0119, "eogonek" },
+       { 0x00eb, "" },
+       { 0x011b, "ecaron" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x010f, "dcaron" },
+       { 0x0111, "dstroke" },
+       { 0x0144, "nacute" },
+       { 0x0148, "ncaron" },
+       { 0x00f3, "" },
+       { 0x00f4, "" },
+       { 0x0151, "odoubleacute" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x0159, "rcaron" },
+       { 0x016f, "uring" },
+       { 0x00fa, "" },
+       { 0x0171, "udoubleacute" },
+       { 0x00fc, "" },
+       { 0x00fd, "" },
+       { 0x0163, "tcedilla" },
+       { 0x02d9, "abovedot" }
 };
 
-static char *mazovia_syms[] = { /* as specified by Wlodek Bzyl <matwb@univ.gda.pl> */
-    "", "", "", "", "", "", "aogonek", "", /* 8x */
-    "", "", "", "", "", "cacute", "", "Aogonek",
-    "Eogonek", "eogonek", "lstroke", "", "", "Cacute", "", "", /* 9x */
-    "Sacute", "", "", "", "Lstroke", "", "sacute", "",
-    "Zacute", "Zabovedot", "oacute", "Oacute",
-    "nacute", "Nacute", "zacute", "zabovedot", /* ax */
-    "", "", "", "", "", "", "guillemotleft", "guillemotright",
-    "", "", "", "", "", "", "", "", /* bx */
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "", /* cx */
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "", /* dx */
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "", /* ex */
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "", /* fx */
-    "", "", "", "", "", "", "", "quotedblbase"
+static sym mazovia_syms[] = {
+       /* as specified by Wlodek Bzyl <matwb@univ.gda.pl> */
+       { 0x0080, "" },
+       { 0x0081, "" },
+       { 0x0082, "" },
+       { 0x0083, "" },
+       { 0x0084, "" },
+       { 0x0085, "" },
+       { 0x0105, "aogonek" },
+       { 0x0087, "" },
+       { 0x0088, "" },
+       { 0x0089, "" },
+       { 0x008a, "" },
+       { 0x008b, "" },
+       { 0x008c, "" },
+       { 0x0107, "cacute" },
+       { 0x008e, "" },
+       { 0x0104, "Aogonek" },
+       { 0x0118, "Eogonek" },
+       { 0x0119, "eogonek" },
+       { 0x0142, "lstroke" },
+       { 0x0093, "" },
+       { 0x0094, "" },
+       { 0x0106, "Cacute" },
+       { 0x0096, "" },
+       { 0x0097, "" },
+       { 0x015a, "Sacute" },
+       { 0x0099, "" },
+       { 0x009a, "" },
+       { 0x009b, "" },
+       { 0x0141, "Lstroke" },
+       { 0x009d, "" },
+       { 0x015b, "sacute" },
+       { 0x009f, "" },
+       { 0x0179, "Zacute" },
+       { 0x017b, "Zabovedot" },
+       { 0x00f3, "oacute" },
+       { 0x00d3, "Oacute" },
+       { 0x0144, "nacute" },
+       { 0x0143, "Nacute" },
+       { 0x017a, "zacute" },
+       { 0x017c, "zabovedot" },
+       { 0x00a8, "" },
+       { 0x00a9, "" },
+       { 0x00aa, "" },
+       { 0x00ab, "" },
+       { 0x00ac, "" },
+       { 0x00ad, "" },
+       { 0x00ab, "guillemotleft" },
+       { 0x00bb, "guillemotright" },
+       { 0x00b0, "" },
+       { 0x00b1, "" },
+       { 0x00b2, "" },
+       { 0x00b3, "" },
+       { 0x00b4, "" },
+       { 0x00b5, "" },
+       { 0x00b6, "" },
+       { 0x00b7, "" },
+       { 0x00b8, "" },
+       { 0x00b9, "" },
+       { 0x00ba, "" },
+       { 0x00bb, "" },
+       { 0x00bc, "" },
+       { 0x00bd, "" },
+       { 0x00be, "" },
+       { 0x00bf, "" },
+       { 0x00c0, "" },
+       { 0x00c1, "" },
+       { 0x00c2, "" },
+       { 0x00c3, "" },
+       { 0x00c4, "" },
+       { 0x00c5, "" },
+       { 0x00c6, "" },
+       { 0x00c7, "" },
+       { 0x00c8, "" },
+       { 0x00c9, "" },
+       { 0x00ca, "" },
+       { 0x00cb, "" },
+       { 0x00cc, "" },
+       { 0x00cd, "" },
+       { 0x00ce, "" },
+       { 0x00cf, "" },
+       { 0x00d0, "" },
+       { 0x00d1, "" },
+       { 0x00d2, "" },
+       { 0x00d3, "" },
+       { 0x00d4, "" },
+       { 0x00d5, "" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x00d8, "" },
+       { 0x00d9, "" },
+       { 0x00da, "" },
+       { 0x00db, "" },
+       { 0x00dc, "" },
+       { 0x00dd, "" },
+       { 0x00de, "" },
+       { 0x00df, "" },
+       { 0x00e0, "" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0x00e3, "" },
+       { 0x00e4, "" },
+       { 0x00e5, "" },
+       { 0x00e6, "" },
+       { 0x00e7, "" },
+       { 0x00e8, "" },
+       { 0x00e9, "" },
+       { 0x00ea, "" },
+       { 0x00eb, "" },
+       { 0x00ec, "" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x00ef, "" },
+       { 0x00f0, "" },
+       { 0x00f1, "" },
+       { 0x00f2, "" },
+       { 0x00f3, "" },
+       { 0x00f4, "" },
+       { 0x00f5, "" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x00f8, "" },
+       { 0x00f9, "" },
+       { 0x00fa, "" },
+       { 0x00fb, "" },
+       { 0x00fc, "" },
+       { 0x00fd, "" },
+       { 0x00fe, "" },
+       { 0x201e, "quotedblbase" }
 };
 
-static char *latin3_syms[] = {
-    "", "Hstroke", "", "", "", "", "Hcircumflex", "",
-    "", "Iabovedot", "", "Gbreve", "Jcircumflex", "", "", "",
-    "", "hstroke", "", "", "", "", "hcircumflex", "",
-    "", "idotless", "", "gbreve", "jcircumflex", "", "", "",
-    "", "", "", "", "", "Cabovedot", "Ccircumflex", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "Gabovedot", "", "",
-    "Gcircumflex", "", "", "", "", "Ubreve", "Scircumflex", "",
-    "", "", "", "", "", "cabovedot", "ccircumflex", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "gabovedot", "", "",
-    "gcircumflex", "", "", "", "", "ubreve", "scircumflex", ""
+static sym latin3_syms[] = {
+       { 0x00a0, "" },
+       { 0x0126, "Hstroke" },
+       { 0x02d8, "" },
+       { 0x00a3, "" },
+       { 0x00a4, "" },
+       { 0xfffd, "" },
+       { 0x0124, "Hcircumflex" },
+       { 0x00a7, "" },
+       { 0x00a8, "" },
+       { 0x0130, "Iabovedot" },
+       { 0x015e, "" },
+       { 0x011e, "Gbreve" },
+       { 0x0134, "Jcircumflex" },
+       { 0x00ad, "" },
+       { 0xfffd, "" },
+       { 0x017b, "" },
+       { 0x00b0, "" },
+       { 0x0127, "hstroke" },
+       { 0x00b2, "" },
+       { 0x00b3, "" },
+       { 0x00b4, "" },
+       { 0x00b5, "" },
+       { 0x0125, "hcircumflex" },
+       { 0x00b7, "" },
+       { 0x00b8, "" },
+       { 0x0131, "idotless" },
+       { 0x015f, "" },
+       { 0x011f, "gbreve" },
+       { 0x0135, "jcircumflex" },
+       { 0x00bd, "" },
+       { 0xfffd, "" },
+       { 0x017c, "" },
+       { 0x00c0, "" },
+       { 0x00c1, "" },
+       { 0x00c2, "" },
+       { 0xfffd, "" },
+       { 0x00c4, "" },
+       { 0x010a, "Cabovedot" },
+       { 0x0108, "Ccircumflex" },
+       { 0x00c7, "" },
+       { 0x00c8, "" },
+       { 0x00c9, "" },
+       { 0x00ca, "" },
+       { 0x00cb, "" },
+       { 0x00cc, "" },
+       { 0x00cd, "" },
+       { 0x00ce, "" },
+       { 0x00cf, "" },
+       { 0xfffd, "" },
+       { 0x00d1, "" },
+       { 0x00d2, "" },
+       { 0x00d3, "" },
+       { 0x00d4, "" },
+       { 0x0120, "Gabovedot" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x011c, "Gcircumflex" },
+       { 0x00d9, "" },
+       { 0x00da, "" },
+       { 0x00db, "" },
+       { 0x00dc, "" },
+       { 0x016c, "Ubreve" },
+       { 0x015c, "Scircumflex" },
+       { 0x00df, "" },
+       { 0x00e0, "" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0xfffd, "" },
+       { 0x00e4, "" },
+       { 0x010b, "cabovedot" },
+       { 0x0109, "ccircumflex" },
+       { 0x00e7, "" },
+       { 0x00e8, "" },
+       { 0x00e9, "" },
+       { 0x00ea, "" },
+       { 0x00eb, "" },
+       { 0x00ec, "" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x00ef, "" },
+       { 0xfffd, "" },
+       { 0x00f1, "" },
+       { 0x00f2, "" },
+       { 0x00f3, "" },
+       { 0x00f4, "" },
+       { 0x0121, "gabovedot" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x011d, "gcircumflex" },
+       { 0x00f9, "" },
+       { 0x00fa, "" },
+       { 0x00fb, "" },
+       { 0x00fc, "" },
+       { 0x016d, "ubreve" },
+       { 0x015d, "scircumflex" },
+       { 0x02d9, "" }
 };
 
-static char *latin4_syms[] = {
-    "", "", "kra", "Rcedilla", "", "Itilde", "Lcedilla", "",
-    "", "", "Emacron", "Gcedilla", "Tslash", "", "", "",
-    "", "", "", "rcedilla", "", "itilde", "lcedilla", "",
-    "", "", "emacron", "gcedilla", "tslash", "ENG", "", "eng",
-    "Amacron", "", "", "", "", "", "", "Iogonek",
-    "", "", "", "", "Eabovedot", "", "", "Imacron",
-    "", "Ncedilla", "Omacron", "Kcedilla", "", "", "", "",
-    "", "Uogonek", "", "", "", "Utilde", "Umacron", "",
-    "amacron", "", "", "", "", "", "", "iogonek",
-    "", "", "", "", "eabovedot", "", "", "imacron",
-    "", "ncedilla", "omacron", "kcedilla", "", "", "", "",
-    "", "uogonek", "", "", "", "utilde", "umacron", ""
+static sym latin4_syms[] = {
+       { 0x00a0, "" },
+       { 0x0104, "" },
+       { 0x0138, "kra" },
+       { 0x0156, "Rcedilla" },
+       { 0x00a4, "" },
+       { 0x0128, "Itilde" },
+       { 0x013b, "Lcedilla" },
+       { 0x00a7, "" },
+       { 0x00a8, "" },
+       { 0x0160, "" },
+       { 0x0112, "Emacron" },
+       { 0x0122, "Gcedilla" },
+       { 0x0166, "Tslash" },
+       { 0x00ad, "" },
+       { 0x017d, "" },
+       { 0x00af, "" },
+       { 0x00b0, "" },
+       { 0x0105, "" },
+       { 0x02db, "" },
+       { 0x0157, "rcedilla" },
+       { 0x00b4, "" },
+       { 0x0129, "itilde" },
+       { 0x013c, "lcedilla" },
+       { 0x02c7, "" },
+       { 0x00b8, "" },
+       { 0x0161, "" },
+       { 0x0113, "emacron" },
+       { 0x0123, "gcedilla" },
+       { 0x0167, "tslash" },
+       { 0x014a, "ENG" },
+       { 0x017e, "" },
+       { 0x014b, "eng" },
+       { 0x0100, "Amacron" },
+       { 0x00c1, "" },
+       { 0x00c2, "" },
+       { 0x00c3, "" },
+       { 0x00c4, "" },
+       { 0x00c5, "" },
+       { 0x00c6, "" },
+       { 0x012e, "Iogonek" },
+       { 0x010c, "" },
+       { 0x00c9, "" },
+       { 0x0118, "" },
+       { 0x00cb, "" },
+       { 0x0116, "Eabovedot" },
+       { 0x00cd, "" },
+       { 0x00ce, "" },
+       { 0x012a, "Imacron" },
+       { 0x0110, "" },
+       { 0x0145, "Ncedilla" },
+       { 0x014c, "Omacron" },
+       { 0x0136, "Kcedilla" },
+       { 0x00d4, "" },
+       { 0x00d5, "" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x00d8, "" },
+       { 0x0172, "Uogonek" },
+       { 0x00da, "" },
+       { 0x00db, "" },
+       { 0x00dc, "" },
+       { 0x0168, "Utilde" },
+       { 0x016a, "Umacron" },
+       { 0x00df, "" },
+       { 0x0101, "amacron" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0x00e3, "" },
+       { 0x00e4, "" },
+       { 0x00e5, "" },
+       { 0x00e6, "" },
+       { 0x012f, "iogonek" },
+       { 0x010d, "" },
+       { 0x00e9, "" },
+       { 0x0119, "" },
+       { 0x00eb, "" },
+       { 0x0117, "eabovedot" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x012b, "imacron" },
+       { 0x0111, "" },
+       { 0x0146, "ncedilla" },
+       { 0x014d, "omacron" },
+       { 0x0137, "kcedilla" },
+       { 0x00f4, "" },
+       { 0x00f5, "" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x00f8, "" },
+       { 0x0173, "uogonek" },
+       { 0x00fa, "" },
+       { 0x00fb, "" },
+       { 0x00fc, "" },
+       { 0x0169, "utilde" },
+       { 0x016b, "umacron" },
+       { 0x02d9, "" }
 };
 
-static char *iso_8859_5_syms[] = { /* 160-255 */
-    "no-break_space",                                  /* 0240 */
-    "cyrillic_capital_letter_io",
-    "serbocroatian_cyrillic_capital_letter_dje",
-    "macedonian_cyrillic_capital_letter_gje",
-    "ukrainian_cyrillic_capital_letter_ie",
-    "macedonian_cyrillic_capital_letter_dze",
-    "ukrainian_cyrillic_capital_letter_i",
-    "ukrainian_cyrillic_capital_letter_yi",
-    "cyrillic_capital_letter_je",                      /* 0250 */
-    "cyrillic_capital_letter_lje",
-    "cyrillic_capital_letter_nje",
-    "serbocroatian_cyrillic_capital_letter_chje",
-    "macedonian_cyrillic_capital_letter_kje",
-    "soft_hyphen",
-    "bielorussian_cyrillic_capital_letter_short_u",
-    "cyrillic_capital_letter_dze",
-    "cyrillic_capital_letter_a",                       /* 0260 */
-    "cyrillic_capital_letter_be",
-    "cyrillic_capital_letter_ve",
-    "cyrillic_capital_letter_ghe",
-    "cyrillic_capital_letter_de",
-    "cyrillic_capital_letter_ie",
-    "cyrillic_capital_letter_zhe",
-    "cyrillic_capital_letter_ze",
-    "cyrillic_capital_letter_i",                       /* 0270 */
-    "cyrillic_capital_letter_short_i",
-    "cyrillic_capital_letter_ka",
-    "cyrillic_capital_letter_el",
-    "cyrillic_capital_letter_em",
-    "cyrillic_capital_letter_en",
-    "cyrillic_capital_letter_o",
-    "cyrillic_capital_letter_pe",
-    "cyrillic_capital_letter_er",                      /* 0300 */
-    "cyrillic_capital_letter_es",
-    "cyrillic_capital_letter_te",
-    "cyrillic_capital_letter_u",
-    "cyrillic_capital_letter_ef",
-    "cyrillic_capital_letter_ha",
-    "cyrillic_capital_letter_tse",
-    "cyrillic_capital_letter_che",
-    "cyrillic_capital_letter_sha",                     /* 0310 */
-    "cyrillic_capital_letter_shcha",
-    "cyrillic_capital_hard_sign",
-    "cyrillic_capital_letter_yeru",
-    "cyrillic_capital_soft_sign",
-    "cyrillic_capital_letter_e",
-    "cyrillic_capital_letter_yu",
-    "cyrillic_capital_letter_ya",
-    "cyrillic_small_letter_a",                         /* 0320 */
-    "cyrillic_small_letter_be",
-    "cyrillic_small_letter_ve",
-    "cyrillic_small_letter_ghe",
-    "cyrillic_small_letter_de",
-    "cyrillic_small_letter_ie",
-    "cyrillic_small_letter_zhe",
-    "cyrillic_small_letter_ze",
-    "cyrillic_small_letter_i",                         /* 0330 */
-    "cyrillic_small_letter_short_i",
-    "cyrillic_small_letter_ka",
-    "cyrillic_small_letter_el",
-    "cyrillic_small_letter_em",
-    "cyrillic_small_letter_en",
-    "cyrillic_small_letter_o",
-    "cyrillic_small_letter_pe",
-    "cyrillic_small_letter_er",                                /* 0340 */
-    "cyrillic_small_letter_es",
-    "cyrillic_small_letter_te",
-    "cyrillic_small_letter_u",
-    "cyrillic_small_letter_ef",
-    "cyrillic_small_letter_ha",
-    "cyrillic_small_letter_tse",
-    "cyrillic_small_letter_che",
-    "cyrillic_small_letter_sha",                       /* 0350 */
-    "cyrillic_small_letter_shcha",
-    "cyrillic_small_hard_sign",
-    "cyrillic_small_letter_yeru",
-    "cyrillic_small_soft_sign",
-    "cyrillic_small_letter_e",
-    "cyrillic_small_letter_yu",
-    "cyrillic_small_letter_ya",
-    "number_acronym",                                  /* 0360 */
-    "cyrillic_small_letter_io",
-    "serbocroatian_cyrillic_small_letter_dje",
-    "macedonian_cyrillic_small_letter_gje",
-    "ukrainian_cyrillic_small_letter_ie",
-    "macedonian_cyrillic_small_letter_dze",
-    "ukrainian_cyrillic_small_letter_i",
-    "ukrainian_cyrillic_small_letter_yi",
-    "cyrillic_small_letter_je",                                /* 0370 */
-    "cyrillic_small_letter_lje",
-    "cyrillic_small_letter_nje",
-    "serbocroatian_cyrillic_small_letter_chje",
-    "macedonian_cyrillic_small_letter_kje",
-    "paragraph_sign",
-    "bielorussian_cyrillic_small_letter_short_u",      /* printing error in ECMA-113 */
-    "cyrillic_small_letter_dze"
+static sym iso_8859_5_syms[] = { /* 160-255 */
+       { 0x00a0, "no-break_space" },                                   /* 0240 */
+       { 0x0401, "cyrillic_capital_letter_io" },
+       { 0x0402, "serbocroatian_cyrillic_capital_letter_dje" },
+       { 0x0403, "macedonian_cyrillic_capital_letter_gje" },
+       { 0x0404, "ukrainian_cyrillic_capital_letter_ie" },
+       { 0x0405, "macedonian_cyrillic_capital_letter_dze" },
+       { 0x0406, "ukrainian_cyrillic_capital_letter_i" },
+       { 0x0407, "ukrainian_cyrillic_capital_letter_yi" },
+       { 0x0408, "cyrillic_capital_letter_je" },                       /* 0250 */
+       { 0x0409, "cyrillic_capital_letter_lje" },
+       { 0x040a, "cyrillic_capital_letter_nje" },
+       { 0x040b, "serbocroatian_cyrillic_capital_letter_chje" },
+       { 0x040c, "macedonian_cyrillic_capital_letter_kje" },
+       { 0x00ad, "soft_hyphen" },
+       { 0x040e, "bielorussian_cyrillic_capital_letter_short_u" },
+       { 0x040f, "cyrillic_capital_letter_dze" },
+       { 0x0410, "cyrillic_capital_letter_a" },                        /* 0260 */
+       { 0x0411, "cyrillic_capital_letter_be" },
+       { 0x0412, "cyrillic_capital_letter_ve" },
+       { 0x0413, "cyrillic_capital_letter_ghe" },
+       { 0x0414, "cyrillic_capital_letter_de" },
+       { 0x0415, "cyrillic_capital_letter_ie" },
+       { 0x0416, "cyrillic_capital_letter_zhe" },
+       { 0x0417, "cyrillic_capital_letter_ze" },
+       { 0x0418, "cyrillic_capital_letter_i" },                        /* 0270 */
+       { 0x0419, "cyrillic_capital_letter_short_i" },
+       { 0x041a, "cyrillic_capital_letter_ka" },
+       { 0x041b, "cyrillic_capital_letter_el" },
+       { 0x041c, "cyrillic_capital_letter_em" },
+       { 0x041d, "cyrillic_capital_letter_en" },
+       { 0x041e, "cyrillic_capital_letter_o" },
+       { 0x041f, "cyrillic_capital_letter_pe" },
+       { 0x0420, "cyrillic_capital_letter_er" },                       /* 0300 */
+       { 0x0421, "cyrillic_capital_letter_es" },
+       { 0x0422, "cyrillic_capital_letter_te" },
+       { 0x0423, "cyrillic_capital_letter_u" },
+       { 0x0424, "cyrillic_capital_letter_ef" },
+       { 0x0425, "cyrillic_capital_letter_ha" },
+       { 0x0426, "cyrillic_capital_letter_tse" },
+       { 0x0427, "cyrillic_capital_letter_che" },
+       { 0x0428, "cyrillic_capital_letter_sha" },                      /* 0310 */
+       { 0x0429, "cyrillic_capital_letter_shcha" },
+       { 0x042a, "cyrillic_capital_hard_sign" },
+       { 0x042b, "cyrillic_capital_letter_yeru" },
+       { 0x042c, "cyrillic_capital_soft_sign" },
+       { 0x042d, "cyrillic_capital_letter_e" },
+       { 0x042e, "cyrillic_capital_letter_yu" },
+       { 0x042f, "cyrillic_capital_letter_ya" },
+       { 0x0430, "cyrillic_small_letter_a" },                          /* 0320 */
+       { 0x0431, "cyrillic_small_letter_be" },
+       { 0x0432, "cyrillic_small_letter_ve" },
+       { 0x0433, "cyrillic_small_letter_ghe" },
+       { 0x0434, "cyrillic_small_letter_de" },
+       { 0x0435, "cyrillic_small_letter_ie" },
+       { 0x0436, "cyrillic_small_letter_zhe" },
+       { 0x0437, "cyrillic_small_letter_ze" },
+       { 0x0438, "cyrillic_small_letter_i" },                          /* 0330 */
+       { 0x0439, "cyrillic_small_letter_short_i" },
+       { 0x043a, "cyrillic_small_letter_ka" },
+       { 0x043b, "cyrillic_small_letter_el" },
+       { 0x043c, "cyrillic_small_letter_em" },
+       { 0x043d, "cyrillic_small_letter_en" },
+       { 0x043e, "cyrillic_small_letter_o" },
+       { 0x043f, "cyrillic_small_letter_pe" },
+       { 0x0440, "cyrillic_small_letter_er" },                         /* 0340 */
+       { 0x0441, "cyrillic_small_letter_es" },
+       { 0x0442, "cyrillic_small_letter_te" },
+       { 0x0443, "cyrillic_small_letter_u" },
+       { 0x0444, "cyrillic_small_letter_ef" },
+       { 0x0445, "cyrillic_small_letter_ha" },
+       { 0x0446, "cyrillic_small_letter_tse" },
+       { 0x0447, "cyrillic_small_letter_che" },
+       { 0x0448, "cyrillic_small_letter_sha" },                        /* 0350 */
+       { 0x0449, "cyrillic_small_letter_shcha" },
+       { 0x044a, "cyrillic_small_hard_sign" },
+       { 0x044b, "cyrillic_small_letter_yeru" },
+       { 0x044c, "cyrillic_small_soft_sign" },
+       { 0x044d, "cyrillic_small_letter_e" },
+       { 0x044e, "cyrillic_small_letter_yu" },
+       { 0x044f, "cyrillic_small_letter_ya" },
+       { 0x2116, "number_acronym" },                                   /* 0360 */
+       { 0x0451, "cyrillic_small_letter_io" },
+       { 0x0452, "serbocroatian_cyrillic_small_letter_dje" },
+       { 0x0453, "macedonian_cyrillic_small_letter_gje" },
+       { 0x0454, "ukrainian_cyrillic_small_letter_ie" },
+       { 0x0455, "macedonian_cyrillic_small_letter_dze" },
+       { 0x0456, "ukrainian_cyrillic_small_letter_i" },
+       { 0x0457, "ukrainian_cyrillic_small_letter_yi" },
+       { 0x0458, "cyrillic_small_letter_je" },                         /* 0370 */
+       { 0x0459, "cyrillic_small_letter_lje" },
+       { 0x045a, "cyrillic_small_letter_nje" },
+       { 0x045b, "serbocroatian_cyrillic_small_letter_chje" },
+       { 0x045c, "macedonian_cyrillic_small_letter_kje" },
+       { 0x00a7, "paragraph_sign" },
+       { 0x045e, "bielorussian_cyrillic_small_letter_short_u" },       /* printing error in ECMA-113 */
+       { 0x045f, "cyrillic_small_letter_dze" }
 };
 
-static char *iso_8859_7_syms[] = { /* 160-255 */
-    "", "leftquote", "rightquote", "", "", "", "", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "accent", "diaeresisaccent", "Alphaaccent", "",
-    "Epsilonaccent", "Etaaccent", "Iotaaccent", "rightanglequote", "Omicronaccent", "onehalf", "Upsilonaccent", "Omegaaccent",
-    "iotadiaeresisaccent", "Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta",
-    "Theta", "Iota", "Kappa", "Lamda" /*sic*/, "Mu", "Nu", "Ksi", "Omicron",
-    "Pi", "Rho", "", "Sigma", "Tau", "Upsilon", "Phi", "Khi",
-    "Psi", "Omega", "Iotadiaeresis", "Upsilondiaeresis", "alphaaccent", "epsilonaccent", "etaaccent", "iotaaccent",
-    "upsilondiaeresisaccent", "alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta",
-    "theta", "iota", "kappa", "lamda" /*sic*/, "mu", "nu", "ksi", "omicron",
-    "pi", "rho", "terminalsigma", "sigma", "tau", "upsilon", "phi", "khi",
-    "psi", "omega", "iotadiaeresis", "upsilondiaeresis", "omicronaccent", "upsilonaccent", "omegaaccent", ""
+static sym iso_8859_7_syms[] = { /* 160-255 */
+       { 0x00a0, "" },
+       { 0x02bd, "leftquote" },
+       { 0x02bc, "rightquote" },
+       { 0x00a3, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0x00a6, "" },
+       { 0x00a7, "" },
+       { 0x00a8, "" },
+       { 0x00a9, "" },
+       { 0xfffd, "" },
+       { 0x00ab, "" },
+       { 0x00ac, "" },
+       { 0x00ad, "" },
+       { 0xfffd, "" },
+       { 0x2015, "" },
+       { 0x00b0, "" },
+       { 0x00b1, "" },
+       { 0x00b2, "" },
+       { 0x00b3, "" },
+       { 0x0384, "accent" },
+       { 0x0385, "diaeresisaccent" },
+       { 0x0386, "Alphaaccent" },
+       { 0x00b7, "" },
+       { 0x0388, "Epsilonaccent" },
+       { 0x0389, "Etaaccent" },
+       { 0x038a, "Iotaaccent" },
+       { 0x00bb, "rightanglequote" },
+       { 0x038c, "Omicronaccent" },
+       { 0x00bd, "onehalf" },
+       { 0x038e, "Upsilonaccent" },
+       { 0x038f, "Omegaaccent" },
+       { 0x0390, "iotadiaeresisaccent" },
+       { 0x0391, "Alpha" },
+       { 0x0392, "Beta" },
+       { 0x0393, "Gamma" },
+       { 0x0394, "Delta" },
+       { 0x0395, "Epsilon" },
+       { 0x0396, "Zeta" },
+       { 0x0397, "Eta" },
+       { 0x0398, "Theta" },
+       { 0x0399, "Iota" },
+       { 0x039a, "Kappa" },
+       { 0x039b, "Lamda" /*sic*/ },
+       { 0x039c, "Mu" },
+       { 0x039d, "Nu" },
+       { 0x039e, "Ksi" },
+       { 0x039f, "Omicron" },
+       { 0x03a0, "Pi" },
+       { 0x03a1, "Rho" },
+       { 0xfffd, "" },
+       { 0x03a3, "Sigma" },
+       { 0x03a4, "Tau" },
+       { 0x03a5, "Upsilon" },
+       { 0x03a6, "Phi" },
+       { 0x03a7, "Khi" },
+       { 0x03a8, "Psi" },
+       { 0x03a9, "Omega" },
+       { 0x03aa, "Iotadiaeresis" },
+       { 0x03ab, "Upsilondiaeresis" },
+       { 0x03ac, "alphaaccent" },
+       { 0x03ad, "epsilonaccent" },
+       { 0x03ae, "etaaccent" },
+       { 0x03af, "iotaaccent" },
+       { 0x03b0, "upsilondiaeresisaccent" },
+       { 0x03b1, "alpha" },
+       { 0x03b2, "beta" },
+       { 0x03b3, "gamma" },
+       { 0x03b4, "delta" },
+       { 0x03b5, "epsilon" },
+       { 0x03b6, "zeta" },
+       { 0x03b7, "eta" },
+       { 0x03b8, "theta" },
+       { 0x03b9, "iota" },
+       { 0x03ba, "kappa" },
+       { 0x03bb, "lamda" /*sic*/ },
+       { 0x03bc, "mu" },
+       { 0x03bd, "nu" },
+       { 0x03be, "ksi" },
+       { 0x03bf, "omicron" },
+       { 0x03c0, "pi" },
+       { 0x03c1, "rho" },
+       { 0x03c2, "terminalsigma" },
+       { 0x03c3, "sigma" },
+       { 0x03c4, "tau" },
+       { 0x03c5, "upsilon" },
+       { 0x03c6, "phi" },
+       { 0x03c7, "khi" },
+       { 0x03c8, "psi" },
+       { 0x03c9, "omega" },
+       { 0x03ca, "iotadiaeresis" },
+       { 0x03cb, "upsilondiaeresis" },
+       { 0x03cc, "omicronaccent" },
+       { 0x03cd, "upsilonaccent" },
+       { 0x03ce, "omegaaccent" },
+       { 0xfffd, "" }
 };
 
-static char *iso_8859_8_syms[] = {
-    "", "", "", "", "", "", "", "",
-    "", "", "multiplication", "", "", "", "", "overscore",
-    "", "", "", "", "", "", "", "",
-    "", "", "division", "", "", "", "", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "",
-    "", "", "", "", "", "", "", "doubleunderscore",
-    "alef", "bet", "gimel", "dalet", "he", "vav", "zayin", "het",
-    "tet", "yod", "finalkaf", "kaf", "lamed", "finalmem", "mem", "finalnun",
-    "nun", "samekh", "ayin", "finalpe", "pe", "finaltsadi", "tsadi", "qof",
-    "resh", "shin", "tav", "", "", "", "", ""
+static sym iso_8859_8_syms[] = {
+       { 0x00a0, "" },
+       { 0xfffd, "" },
+       { 0x00a2, "" },
+       { 0x00a3, "" },
+       { 0x00a4, "" },
+       { 0x00a5, "" },
+       { 0x00a6, "" },
+       { 0x00a7, "" },
+       { 0x00a8, "" },
+       { 0x00a9, "" },
+       { 0x00d7, "multiplication" },
+       { 0x00ab, "" },
+       { 0x00ac, "" },
+       { 0x00ad, "" },
+       { 0x00ae, "" },
+       { 0x203e, "overscore" },
+       { 0x00b0, "" },
+       { 0x00b1, "" },
+       { 0x00b2, "" },
+       { 0x00b3, "" },
+       { 0x00b4, "" },
+       { 0x00b5, "" },
+       { 0x00b6, "" },
+       { 0x00b7, "" },
+       { 0x00b8, "" },
+       { 0x00b9, "" },
+       { 0x00f7, "division" },
+       { 0x00bb, "" },
+       { 0x00bc, "" },
+       { 0x00bd, "" },
+       { 0x00be, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0x2017, "doubleunderscore" },
+       { 0x05d0, "alef" },
+       { 0x05d1, "bet" },
+       { 0x05d2, "gimel" },
+       { 0x05d3, "dalet" },
+       { 0x05d4, "he" },
+       { 0x05d5, "vav" },
+       { 0x05d6, "zayin" },
+       { 0x05d7, "het" },
+       { 0x05d8, "tet" },
+       { 0x05d9, "yod" },
+       { 0x05da, "finalkaf" },
+       { 0x05db, "kaf" },
+       { 0x05dc, "lamed" },
+       { 0x05dd, "finalmem" },
+       { 0x05de, "mem" },
+       { 0x05df, "finalnun" },
+       { 0x05e0, "nun" },
+       { 0x05e1, "samekh" },
+       { 0x05e2, "ayin" },
+       { 0x05e3, "finalpe" },
+       { 0x05e4, "pe" },
+       { 0x05e5, "finaltsadi" },
+       { 0x05e6, "tsadi" },
+       { 0x05e7, "qof" },
+       { 0x05e8, "resh" },
+       { 0x05e9, "shin" },
+       { 0x05ea, "tav" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" },
+       { 0xfffd, "" }
 };
 
-static char *iso_8859_9_syms[] = { /* latin-5 */
+static sym iso_8859_9_syms[] = { /* latin-5 */
        /* Identical to latin-1, but with the 6 symbols
           ETH, eth, THORN, thorn, Yacute, yacute replaced by
           Gbreve, gbreve, Scedilla, scedilla, Idotabove, dotlessi */
-       "Gbreve", "", "", "", "", "", "", "",         /* 0320-0327 */
-       "", "", "", "", "", "Idotabove", "Scedilla", "",
-       "", "", "", "", "", "", "", "",               /* 0340-0347 */
-       "", "", "", "", "", "", "", "",               /* 0350-0357 */
-       "gbreve", "", "", "", "", "", "", "",         /* 0360-0367 */
-       "", "", "", "", "", "dotlessi", "scedilla", ""
+       { 0x011e, "Gbreve" },
+       { 0x00d1, "" },
+       { 0x00d2, "" },
+       { 0x00d3, "" },
+       { 0x00d4, "" },
+       { 0x00d5, "" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x00d8, "" },
+       { 0x00d9, "" },
+       { 0x00da, "" },
+       { 0x00db, "" },
+       { 0x00dc, "" },
+       { 0x0130, "Idotabove" },
+       { 0x015e, "Scedilla" },
+       { 0x00df, "" },
+       { 0x00e0, "" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0x00e3, "" },
+       { 0x00e4, "" },
+       { 0x00e5, "" },
+       { 0x00e6, "" },
+       { 0x00e7, "" },
+       { 0x00e8, "" },
+       { 0x00e9, "" },
+       { 0x00ea, "" },
+       { 0x00eb, "" },
+       { 0x00ec, "" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x00ef, "" },
+       { 0x011f, "gbreve" },
+       { 0x00f1, "" },
+       { 0x00f2, "" },
+       { 0x00f3, "" },
+       { 0x00f4, "" },
+       { 0x00f5, "" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x00f8, "" },
+       { 0x00f9, "" },
+       { 0x00fa, "" },
+       { 0x00fb, "" },
+       { 0x00fc, "" },
+       { 0x0131, "dotlessi" },
+       { 0x015f, "scedilla" },
+       { 0x00ff, "" }
 };
 
-#include "cyrillic.syms.h"
+#include "koi8.syms.h"
 #include "ethiopic.syms.h"
 
-static char *fn_syms[] = {
+static sym iso_8859_15_syms[] = {
+       /* latin-1 with 8 changes */
+       { 0x00a0, "" },
+       { 0x00a1, "" },
+       { 0x00a2, "" },
+       { 0x00a3, "" },
+       { 0x20ac, "euro" },
+       { 0x00a5, "" },
+       { 0x0160, "Scaron" },
+       { 0x00a7, "" },
+       { 0x0161, "scaron" },
+       { 0x00a9, "" },
+       { 0x00aa, "" },
+       { 0x00ab, "" },
+       { 0x00ac, "" },
+       { 0x00ad, "" },
+       { 0x00ae, "" },
+       { 0x00af, "" },
+       { 0x00b0, "" },
+       { 0x00b1, "" },
+       { 0x00b2, "" },
+       { 0x00b3, "" },
+       { 0x017d, "Zcaron" },
+       { 0x00b5, "" },
+       { 0x00b6, "" },
+       { 0x00b7, "" },
+       { 0x017e, "zcaron" },
+       { 0x00b9, "" },
+       { 0x00ba, "" },
+       { 0x00bb, "" },
+       { 0x0152, "OE" },
+       { 0x0153, "oe" },
+       { 0x0178, "Ydiaeresis" },
+       { 0x00bf, "" },
+       { 0x00c0, "" },
+       { 0x00c1, "" },
+       { 0x00c2, "" },
+       { 0x00c3, "" },
+       { 0x00c4, "" },
+       { 0x00c5, "" },
+       { 0x00c6, "" },
+       { 0x00c7, "" },
+       { 0x00c8, "" },
+       { 0x00c9, "" },
+       { 0x00ca, "" },
+       { 0x00cb, "" },
+       { 0x00cc, "" },
+       { 0x00cd, "" },
+       { 0x00ce, "" },
+       { 0x00cf, "" },
+       { 0x00d0, "" },
+       { 0x00d1, "" },
+       { 0x00d2, "" },
+       { 0x00d3, "" },
+       { 0x00d4, "" },
+       { 0x00d5, "" },
+       { 0x00d6, "" },
+       { 0x00d7, "" },
+       { 0x00d8, "" },
+       { 0x00d9, "" },
+       { 0x00da, "" },
+       { 0x00db, "" },
+       { 0x00dc, "" },
+       { 0x00dd, "" },
+       { 0x00de, "" },
+       { 0x00df, "" },
+       { 0x00e0, "" },
+       { 0x00e1, "" },
+       { 0x00e2, "" },
+       { 0x00e3, "" },
+       { 0x00e4, "" },
+       { 0x00e5, "" },
+       { 0x00e6, "" },
+       { 0x00e7, "" },
+       { 0x00e8, "" },
+       { 0x00e9, "" },
+       { 0x00ea, "" },
+       { 0x00eb, "" },
+       { 0x00ec, "" },
+       { 0x00ed, "" },
+       { 0x00ee, "" },
+       { 0x00ef, "" },
+       { 0x00f0, "" },
+       { 0x00f1, "" },
+       { 0x00f2, "" },
+       { 0x00f3, "" },
+       { 0x00f4, "" },
+       { 0x00f5, "" },
+       { 0x00f6, "" },
+       { 0x00f7, "" },
+       { 0x00f8, "" },
+       { 0x00f9, "" },
+       { 0x00fa, "" },
+       { 0x00fb, "" },
+       { 0x00fc, "" },
+       { 0x00fd, "" },
+       { 0x00fe, "" },
+       { 0x00ff, "" }
+};
+
+/* Keysyms whose KTYP is KT_FN. */
+
+static const char *fn_syms[] = {
        "F1",   "F2",   "F3",   "F4",   "F5",
        "F6",   "F7",   "F8",   "F9",   "F10",
        "F11",  "F12",  "F13",  "F14",  "F15",
@@ -535,7 +1288,9 @@ static char *fn_syms[] = {
        "F246"          /* there are 10 keys named Insert etc., total 256 */
 };
 
-static char *spec_syms[] = {
+/* Keysyms whose KTYP is KT_SPEC. */
+
+static const char *spec_syms[] = {
        "VoidSymbol",
        "Return",
        "Show_Registers",
@@ -558,7 +1313,9 @@ static char *spec_syms[] = {
        "Bare_Num_Lock"
 };
 
-static char *pad_syms[] = {
+/* Keysyms whose KTYP is KT_PAD. */
+
+static const char *pad_syms[] = {
        "KP_0",
        "KP_1",
        "KP_2",
@@ -579,7 +1336,9 @@ static char *pad_syms[] = {
        "KP_MinPlus"
 };
 
-static char *dead_syms[] = {
+/* Keysyms whose KTYP is KT_DEAD. */
+
+static const char *dead_syms[] = {
        "dead_grave",
        "dead_acute",
        "dead_circumflex",
@@ -588,7 +1347,9 @@ static char *dead_syms[] = {
        "dead_cedilla"
 };
 
-static char *cons_syms[] = {
+/* Keysyms whose KTYP is KT_CONS. */
+
+static const char *cons_syms[] = {
        "Console_1",
        "Console_2",
        "Console_3",
@@ -654,14 +1415,18 @@ static char *cons_syms[] = {
        "Console_63"
 };
 
-static char *cur_syms[] = {
+/* Keysyms whose KTYP is KT_CUR. */
+
+static const char *cur_syms[] = {
        "Down",
        "Left",
        "Right",
        "Up"
 };
 
-static char *shift_syms[] = {
+/* Keysyms whose KTYP is KT_SHIFT. */
+
+static const char *shift_syms[] = {
        "Shift",
        "AltGr",
        "Control",
@@ -673,7 +1438,9 @@ static char *shift_syms[] = {
        "CapsShift"
 };
 
-static char *ascii_syms[] = {
+/* Keysyms whose KTYP is KT_ASCII. */
+
+static const char *ascii_syms[] = {
        "Ascii_0",
        "Ascii_1",
        "Ascii_2",
@@ -702,7 +1469,9 @@ static char *ascii_syms[] = {
        "Hex_F"
 };
 
-static char *lock_syms[] = {
+/* Keysyms whose KTYP is KT_LOCK. */
+
+static const char *lock_syms[] = {
        "Shift_Lock",
        "AltGr_Lock",
        "Control_Lock",
@@ -713,7 +1482,9 @@ static char *lock_syms[] = {
        "CtrlR_Lock"
 };
 
-static char *sticky_syms[] = {
+/* Keysyms whose KTYP is KT_SLOCK. */
+
+static const char *sticky_syms[] = {
        "SShift",
        "SAltGr",
        "SControl",
@@ -724,22 +1495,22 @@ static char *sticky_syms[] = {
        "SCtrlR"
 };
 
-#define E(x) { x, sizeof(x) / sizeof(char **) }
+#define E(x) { x, sizeof(x) / sizeof(x[0]) }
 
 syms_entry syms[] = {
-       E(latin1_syms),
-       E(fn_syms),
-       E(spec_syms),
-       E(pad_syms),
-       E(dead_syms),
-       E(cons_syms),
-       E(cur_syms),
-       E(shift_syms),
+       E(iso646_syms),         /* KT_LATIN */
+       E(fn_syms),             /* KT_FN */
+       E(spec_syms),           /* KT_SPEC */
+       E(pad_syms),            /* KT_PAD */
+       E(dead_syms),           /* KT_DEAD */
+       E(cons_syms),           /* KT_CONS */
+       E(cur_syms),            /* KT_CUR */
+       E(shift_syms),          /* KT_SHIFT */
        { 0, 0 },               /* KT_META */
-       E(ascii_syms),
-       E(lock_syms),
+       E(ascii_syms),          /* KT_ASCII */
+       E(lock_syms),           /* KT_LOCK */
        { 0, 0 },               /* KT_LETTER */
-       E(sticky_syms)
+       E(sticky_syms)          /* KT_SLOCK */
 };
 
 #undef E
@@ -817,12 +1588,11 @@ const int syms_size = sizeof(syms) / sizeof(syms_entry);
 const int syn_size = sizeof(synonyms) / sizeof(synonyms[0]);
 
 struct cs {
-    char *charset;
-    char **charnames;
+    const char *charset;
+    sym *charnames;
     int start;
 } charsets[] = {
-    { "iso-8859-1", 0, 0 },
-    { "mazovia", mazovia_syms, 128 },
+    { "iso-8859-1", latin1_syms, 160 },
     { "iso-8859-2", latin2_syms, 160 },
     { "iso-8859-3", latin3_syms, 160 },
     { "iso-8859-4", latin4_syms, 160 },
@@ -830,44 +1600,105 @@ struct cs {
     { "iso-8859-7", iso_8859_7_syms, 160 },
     { "iso-8859-8", iso_8859_8_syms, 160 },
     { "iso-8859-9", iso_8859_9_syms, 208 },
-    { "koi8-r",     koi8_r_syms, 160 },
-    { "koi8-u",     koi8_r_syms, 160 },
-/* I don't know the differences between koi8-r and koi8-u,
-   so I use the same syms table - Pablo Saratxaga */
+    { "iso-8859-15", iso_8859_15_syms, 160 },
+    { "mazovia",    mazovia_syms, 128 },
+    { "koi8-r",     koi8_syms, 128 },
+    { "koi8-u",     koi8_syms, 128 },
     { "iso-10646-18", iso_10646_18_syms, 159 },                /* ethiopic */
 };
 
+/* Functions for both dumpkeys and loadkeys. */
+
+static int prefer_unicode = 0;
+static const char *chosen_charset = NULL;
+
+void
+list_charsets(FILE *f) {
+       int i,j,lth,ct;
+       char *mm[] = { "iso-8859-", "koi8-" };
+
+       for (j=0; j<sizeof(mm)/sizeof(mm[0]); j++) {
+               if(j)
+                       fprintf(f, ",");
+               fprintf(f, "%s{", mm[j]);
+               ct = 0;
+               lth = strlen(mm[j]);
+               for(i=0; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
+                       if(!strncmp(charsets[i].charset, mm[j], lth)) {
+                               if(ct++)
+                                       fprintf(f, ",");
+                               fprintf(f, charsets[i].charset+lth);
+                       }
+               }
+               fprintf(f, "}");
+       }
+       for(i=0; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
+               for (j=0; j<sizeof(mm)/sizeof(mm[0]); j++) {
+                       lth = strlen(mm[j]);
+                       if(!strncmp(charsets[i].charset, mm[j], lth))
+                               goto nxti;
+               }
+               fprintf(f, ",%s", charsets[i].charset);
+       nxti:;
+       }
+       fprintf(f, "\n");
+}
+
 int
-set_charset(char *charset) {
-       char **p;
+set_charset(const char *charset) {
+       sym *p;
        int i;
 
+       if (!strcasecmp(charset, "unicode")) {
+               prefer_unicode = 1;
+               return 0;
+       }
+
        for (i = 0; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
-           if (!strcasecmp(charsets[i].charset, charset)) {
-               p = charsets[i].charnames;
-               if (p)
-                 for (i = charsets[i].start; i < 256; i++,p++) {
-                   if(*p && **p)
-                     syms[0].table[i] = *p;
+               if (!strcasecmp(charsets[i].charset, charset)) {
+                       p = charsets[i].charnames;
+                       for (i = charsets[i].start; i < 256; i++,p++) {
+                               if(p->name[0])
+                                       syms[0].table[i] = p->name;
+                       }
+                       chosen_charset = charset;
+                       return 0;
                }
-               return 0;
-           }
        }
-       if (!strcasecmp(charset, "unicode")) {
-         fprintf (stderr, _("unknown charset %s - ignoring charset request\n"),
-                  charset);
-         return 1;
+       fprintf (stderr, _("unknown charset %s - ignoring charset request\n"),
+                charset);
+       return 1;
+}
+
+const char *
+unicodetoksym(int code) {
+       int i, j;
+       sym *p;
+
+       if (code < 0)
+               return NULL;
+       if (code < 0x80)
+               return iso646_syms[code];
+       for (i = 0; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
+               p = charsets[i].charnames;
+               for (j = charsets[i].start; j < 256; j++, p++) {
+                       if (p->uni == code && p->name[0])
+                               return p->name;
+               }
        }
-       return 0;
+       return NULL;
 }
 
+/* Functions for loadkeys. */
+
+int unicode_used = 0;
+
 int
-ksymtocode(char *s)
-{
+ksymtocode(const char *s) {
        int i;
-       int j;
+       int j, jmax;
        int keycode;
-       static int warn = 0;
+       sym *p;
 
        if (!strncmp(s, "Meta_", 5)) {
                keycode = ksymtocode(s+5);
@@ -876,37 +1707,104 @@ ksymtocode(char *s)
                /* fall through to error printf */
        }
 
-       for (i = 0; i < syms_size; i++)
-               for (j = 0; j < syms[i].size; j++)
+       for (i = 0; i < syms_size; i++) {
+               jmax = ((i == 0 && prefer_unicode) ? 128 : syms[i].size);
+               for (j = 0; j < jmax; j++)
                        if (!strcmp(s,syms[i].table[j]))
                                return K(i, j);
+       }
 
        for (i = 0; i < syn_size; i++)
                if (!strcmp(s, synonyms[i].synonym))
                        return ksymtocode(synonyms[i].official_name);
 
-       for (i = 0; i < 256 - 160; i++)
-               if (!strcmp(s, latin2_syms[i])) {
-                       if(!warn++)
-                               fprintf(stderr, _("assuming iso-8859-2 %s\n"), s);
-                       return K(KT_LATIN, 160 + i);
+       if (prefer_unicode) {
+               for (i = 0; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
+                       p = charsets[i].charnames;
+                       for (j = charsets[i].start; j < 256; j++, p++)
+                               if (!strcmp(s,p->name)) {
+                                       unicode_used = 1;
+                                       return (p->uni ^ 0xf000); /* %%% */
+                               }
                }
+       } else /* if (!chosen_charset) */ {
+               /* note: some keymaps use latin1 but with euro,
+                  so set_charset() would fail */
+               /* note: some keymaps with charset line still use
+                  symbols from more than one character set,
+                  so we cannot have the  `if (!chosen_charset)'  here */
 
-       for (i = 0; i < 256 - 160; i++)
-               if (!strcmp(s, latin3_syms[i])) {
-                       if(!warn++)
-                               fprintf(stderr, _("assuming iso-8859-3 %s\n"), s);
-                       return K(KT_LATIN, 160 + i);
-               }
+               for (i = 0; i < 256 - 160; i++)
+                       if (!strcmp(s, latin1_syms[i].name)) {
+                               fprintf(stderr,
+                                       _("assuming iso-8859-1 %s\n"), s);
+                               return K(KT_LATIN, 160 + i);
+                       }
 
-       for (i = 0; i < 256 - 160; i++)
-               if (!strcmp(s, latin4_syms[i])) {
-                       if(!warn++)
-                               fprintf(stderr, _("assuming iso-8859-4 %s\n"), s);
-                       return K(KT_LATIN, 160 + i);
-               }
+               for (i = 0; i < 256 - 160; i++)
+                       if (!strcmp(s, iso_8859_15_syms[i].name)) {
+                               fprintf(stderr,
+                                       _("assuming iso-8859-15 %s\n"), s);
+                               return K(KT_LATIN, 160 + i);
+                       }
+
+               for (i = 0; i < 256 - 160; i++)
+                       if (!strcmp(s, latin2_syms[i].name)) {
+                               fprintf(stderr,
+                                       _("assuming iso-8859-2 %s\n"), s);
+                               return K(KT_LATIN, 160 + i);
+                       }
+
+               for (i = 0; i < 256 - 160; i++)
+                       if (!strcmp(s, latin3_syms[i].name)) {
+                               fprintf(stderr,
+                                       _("assuming iso-8859-3 %s\n"), s);
+                               return K(KT_LATIN, 160 + i);
+                       }
+
+               for (i = 0; i < 256 - 160; i++)
+                       if (!strcmp(s, latin4_syms[i].name)) {
+                               fprintf(stderr,
+                                       _("assuming iso-8859-4 %s\n"), s);
+                               return K(KT_LATIN, 160 + i);
+                       }
+       }
 
        fprintf(stderr, _("unknown keysym '%s'\n"), s);
 
        return -1;
 }
+
+int
+unicodetocode(int code) {
+       const char *s;
+
+       s = unicodetoksym(code);
+       if (s)
+               return ksymtocode(s);
+       else {
+               unicode_used = 1;
+               return (code ^ 0xf000); /* %%% */
+       }
+}
+
+int
+add_capslock(int code)
+{
+       char buf[7];
+       const char *p;
+
+       if (KTYP(code) == KT_LATIN)
+               return K(KT_LETTER, KVAL(code));
+       if (KTYP(code) >= syms_size) {
+               if ((p = unicodetoksym(code ^ 0xf000)) == NULL) {
+                       sprintf(buf, "U+%04x", code ^ 0xf000);
+                       p = buf;
+               }
+       } else {
+               sprintf(buf, "0x%04x", code);
+               p = buf;
+       }
+       fprintf(stderr, _("plus before %s ignored\n"), p);
+       return code;
+}
index 973d8b9..03051c7 100644 (file)
@@ -1,17 +1,32 @@
+#ifndef KSYMS_H
+#define KSYMS_H
+
+typedef struct {
+       unsigned short uni;
+       const char *name;
+} sym;
+
 typedef struct {
-       char **table;
+       const char **table;
        int size;
 } syms_entry;
 
 extern syms_entry syms[];
 
 struct syn {
-       char *synonym;
-       char *official_name;
+       const char *synonym;
+       const char *official_name;
 };
 extern struct syn synonyms[];
 
 extern const int syms_size;
 extern const int syn_size;
 
-extern int set_charset(char *name);
+extern int set_charset(const char *name);
+extern const char *unicodetoksym(int code);
+extern void list_charsets(FILE *f);
+extern int ksymtocode(const char *s);
+extern int unicodetocode(int code);
+extern int add_capslock(int code);
+
+#endif
index d68d9c9..2d9fdaf 100644 (file)
 #include <sys/ioctl.h>
 #include <ctype.h>
 #include "paths.h"
+#include "getfd.h"
+#include "findfile.h"
 #include "modifiers.h"
 #include "nls.h"
+#include "version.h"
 
 #ifndef KT_LETTER
 #define KT_LETTER KT_LATIN
 #endif
 
-/* name to use in error messages */
-char *progname;
-
 /* What keymaps are we defining? */
 char defining[MAX_NR_KEYMAPS];
 char keymaps_line_seen = 0;
@@ -106,8 +106,6 @@ char *fp = func_buf;
 #undef ECHO
 #include "analyze.c"
 
-#define VERSION "0.99"
-
 static void addmap(int map, int explicit);
 static void addkey(int index, int table, int keycode);
 static void addfunc(struct kbsentry kbs_buf);
@@ -122,13 +120,13 @@ static void keypad_as_usual(char *keyboard);
 static void function_keys_as_usual(char *keyboard);
 static void consoles_as_usual(char *keyboard);
 static void compose_as_usual(char *charset);
-static void lkfatal0(char *, int);
-extern int set_charset(char *charset);
+static void lkfatal0(const char *, int);
+extern int set_charset(const char *charset);
 extern int getfd(void);
 extern char *xstrdup(char *);
 int key_buf[MAX_NR_KEYMAPS];
 int mod;
-int unicode_used;
+extern int unicode_used;
 int private_error_ct = 0;
 %}
 
@@ -278,11 +276,11 @@ rvalue            : NUMBER
                | UNUMBER
                        {$$=($1 ^ 0xf000); unicode_used=1;}
                 | PLUS NUMBER
-                        {$$=K(KT_LETTER, KVAL($2));}
+                        {$$=add_capslock($2);}
                | LITERAL
                        {$$=$1;}
                 | PLUS LITERAL
-                        {$$=K(KT_LETTER, KVAL($2));}
+                        {$$=add_capslock($2);}
                ;
 %%                     
 
@@ -299,6 +297,7 @@ usage(void) {
 "      -h --help         display this help text\n"
 "      -m --mktable      output a \"defkeymap.c\" to stdout\n"
 "      -s --clearstrings clear kernel string table\n"
+"      -u --unicode      implicit conversion to Unicode\n"
 "      -v --verbose      report the changes\n"), VERSION);
        exit(1);
 }
@@ -313,20 +312,22 @@ int nocompose = 0;
 
 int
 main(unsigned int argc, char *argv[]) {
-       const char *short_opts = "cdhmsqv";
+       const char *short_opts = "cdhmsuqvV";
        const struct option long_opts[] = {
                { "clearcompose", no_argument, NULL, 'c' },
                { "default",    no_argument, NULL, 'd' },
                { "help",       no_argument, NULL, 'h' },
                { "mktable",    no_argument, NULL, 'm' },
                { "clearstrings", no_argument, NULL, 's' },
+               { "unicode",    no_argument, NULL, 'u' },
                { "quiet",      no_argument, NULL, 'q' },
                { "verbose",    no_argument, NULL, 'v' },
+               { "version",    no_argument, NULL, 'V' },
                { NULL, 0, NULL, 0 }
        };
        int c;
 
-       progname = argv[0];
+       set_progname(argv[0]);
 
        while ((c = getopt_long(argc, argv,
                short_opts, long_opts, NULL)) != -1) {
@@ -343,12 +344,17 @@ main(unsigned int argc, char *argv[]) {
                        case 's':
                                opts = 1;
                                break;
+                       case 'u':
+                               set_charset("unicode");
+                               break;
                        case 'q':
                                quiet = 1;
                                break;
                        case 'v':
                                verbose++;
                                break;
+                       case 'V':
+                               print_version_and_exit();
                        case 'h':
                        case '?':
                                usage();
@@ -377,7 +383,7 @@ char *filename;
 int line_nr = 1;
 
 int
-yyerror(char *s) {
+yyerror(const char *s) {
        fprintf(stderr, "%s:%d: %s\n", filename, line_nr, s);
        private_error_ct++;
        return(0);
@@ -385,13 +391,13 @@ yyerror(char *s) {
 
 /* fatal errors - change to varargs next time */
 void
-lkfatal(char *s) {
+lkfatal(const char *s) {
        fprintf(stderr, "%s: %s:%d: %s\n", progname, filename, line_nr, s);
        exit(1);
 }
 
 void
-lkfatal0(char *s, int d) {
+lkfatal0(const char *s, int d) {
        fprintf(stderr, "%s: %s:%d: ", progname, filename, line_nr);
        fprintf(stderr, s, d);
        fprintf(stderr, "\n");
@@ -399,7 +405,7 @@ lkfatal0(char *s, int d) {
 }
 
 void
-lkfatal1(char *s, char *s2) {
+lkfatal1(const char *s, const char *s2) {
        fprintf(stderr, "%s: %s:%d: ", progname, filename, line_nr);
        fprintf(stderr, s, s2);
        fprintf(stderr, "\n");
@@ -998,7 +1004,7 @@ loadkeys (void) {
 
 static void strings_as_usual(void) {
        /*
-        * 28 strings, mostly inspired by the VT100 family
+        * 26 strings, mostly inspired by the VT100 family
         */
        char *stringvalues[30] = {
                /* F1 .. F20 */
@@ -1010,7 +1016,7 @@ static void strings_as_usual(void) {
                /* Find,    Insert,    Remove,    Select,    Prior */
                "\033[1~", "\033[2~", "\033[3~", "\033[4~", "\033[5~",
                /* Next,    Macro,  Help, Do,  Pause */
-               "\033[6~", "\033[M",  0,   0, "\033[P"
+               "\033[6~",    0,      0,   0,    0
        };
        int i;
        for (i=0; i<30; i++) if(stringvalues[i]) {
index 2377b38..fb9d019 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * loadunimap.c - aeb
  *
- * Version 0.97
+ * Version 1.00
  */
 
 #include <errno.h>
 #include <linux/kd.h>
 #include <sys/ioctl.h>
 #include "paths.h"
+#include "getfd.h"
+#include "xmalloc.h"
+#include "findfile.h"
+#include "psffontop.h"
+#include "loadunimap.h"
 #include "psf.h"
 #include "nls.h"
 
-/* the three exported functions */
-void saveunicodemap(int fd, char *oufil);      /* save humanly readable */
-void loadunicodemap(int fd, char *ufil);
-void appendunicodemap(int fd, FILE *fp, int ct);/* append in psf style */
-
-extern char *malloc(), *realloc();
 extern char *progname;
-extern int getfd(void);
 extern int force;
 
-static char *unidirpath[] = { "", DATADIR "/" TRANSDIR "/", 0 };
+static char *unidirpath[] = { "", DATADIR "/" UNIMAPDIR "/", 0 };
 static char *unisuffixes[] = { "", ".uni", 0 };
 
 #ifdef MAIN
+#include "version.h"
 int verbose = 0;
 int force = 0;
-char *progname;
 
 int
 main(int argc, char *argv[]) {
        int fd;
 
-       progname = argv[0];
+       set_progname(argv[0]);
 
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+           print_version_and_exit();
+
        fd = getfd();
 
        if (argc >= 3 && !strcmp(argv[1], "-o")) {
@@ -55,8 +56,8 @@ main(int argc, char *argv[]) {
              exit(0);
        }
                
-       if (argc > 2) {
-               fprintf(stderr, _("usage: %s [-o map.orig] map-file\n"),
+       if (argc > 2 || (argc == 2 && argv[1][0] == '-' && argv[1][1])) {
+               fprintf(stderr, _("usage: %s [-o map.orig] [map-file]\n"),
                        progname);
                exit(1);
        }
@@ -70,6 +71,7 @@ main(int argc, char *argv[]) {
  * Skip spaces and read U+1234 or return -1 for error.
  * Return first non-read position in *p0 (unchanged on error).
  */ 
+static
 int getunicode(char **p0) {
   char *p = *p0;
 
@@ -91,7 +93,8 @@ int listsz = 0;
 int listct = 0;
 int fd;
 
-void outlist() {
+static void
+outlist(void) {
     advice.advised_hashsize = 0;
     advice.advised_hashstep = 0;
     advice.advised_hashlevel = 1;
@@ -116,14 +119,11 @@ void outlist() {
     listct = 0;
 }
 
-void addpair(int fp, int un) {
+static void
+addpair(int fp, int un) {
     if (listct == listsz) {
        listsz += 4096;
-       list = realloc((char *)list, listsz);
-       if (!list) {
-           fprintf(stderr, _("%s: out of memory\n"), progname);
-           exit(1);
-       }
+       list = xrealloc((char *)list, listsz);
     }
     list[listct].fontpos = fp;
     list[listct].unicode = un;
@@ -321,34 +321,22 @@ saveunicodemap(int fd, char *oufil) {
     printf(_("Saved unicode map on `%s'\n"), oufil);
 }
 
-static void
-appendunsignedshort(FILE *fp, unsigned short u) {
-  unsigned char unicodepair[2];
-
-  unicodepair[0] = (u & 0xff);
-  unicodepair[1] = ((u >> 8) & 0xff);
-  if (fwrite(unicodepair, sizeof(unicodepair), 1, fp) != 1) {
-    perror("appendunimap");
-    exit(1);
-  }
-}
-
 void
-appendunicodemap(int fd, FILE *fp, int fontsize) {
-  struct unimapdesc descr;
-  struct unipair *list;
-  int i, j;
-
-  descr = getunicodemap(fd);
-  list = descr.entries;
-
-  for(i=0; i<fontsize; i++) {
-    for(j=0; j<descr.entry_ct; j++)
-      if (list[j].fontpos == i)
-       appendunsignedshort(fp, list[j].unicode);
-    appendunsignedshort(fp, PSF_SEPARATOR);
-  }
+appendunicodemap(int fd, FILE *fp, int fontsize, int utf8) {
+       struct unimapdesc descr;
+       struct unipair *list;
+       int i, j;
+
+       descr = getunicodemap(fd);
+       list = descr.entries;
+
+       for(i=0; i<fontsize; i++) {
+               for(j=0; j<descr.entry_ct; j++)
+                       if (list[j].fontpos == i)
+                               appendunicode(fp, list[j].unicode, utf8);
+               appendseparator(fp, 0, utf8);
+       }
 
-  if (verbose)
-     printf(_("Appended Unicode map\n"));
+       if (verbose)
+               printf(_("Appended Unicode map\n"));
 }
diff --git a/src/loadunimap.h b/src/loadunimap.h
new file mode 100644 (file)
index 0000000..7c4aec0
--- /dev/null
@@ -0,0 +1,4 @@
+/* loadunimap.h */
+void saveunicodemap(int fd, char *oufil);      /* save humanly readable */
+void loadunicodemap(int fd, char *ufil);
+void appendunicodemap(int fd, FILE *fp, int ct, int utf8);
index d127efe..5ec657c 100644 (file)
@@ -11,6 +11,7 @@
 #include <sys/ioctl.h>
 #include <sys/kd.h>
 #include "paths.h"
+#include "findfile.h"
 #include "nls.h"
 
 /* the two exported functions */
@@ -25,7 +26,8 @@ static char *mapdirpath[] = { "", DATADIR "/" TRANSDIR "/", 0 };
 static char *mapsuffixes[] = { "", 0 };
 
 #ifdef MAIN
-extern int getfd(void);
+#include "getfd.h"
+#include "version.h"
 
 int verbose = 0;
 
@@ -33,10 +35,15 @@ int
 main(int argc, char *argv[]) {
        int fd;
 
+       set_progname(argv[0]);
+
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
 
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+           print_version_and_exit();
+
        fd = getfd();
 
        if (argc >= 3 && !strcmp(argv[1], "-o")) {
@@ -49,7 +56,7 @@ main(int argc, char *argv[]) {
                
        if (argc != 2) {
                fprintf(stderr, _("usage: %s [-o map.orig] map-file\n"),
-                       argv[0]);
+                       progname);
                exit(1);
        }
        loadnewmap(fd, argv[1]);
diff --git a/src/outpsfheader.c b/src/outpsfheader.c
new file mode 100644 (file)
index 0000000..06fecc6
--- /dev/null
@@ -0,0 +1,58 @@
+/* outpsfheader - auxiliary fn - not to be installed */
+#include <stdio.h>
+#include "psf.h"
+
+void
+usage(void) {
+       fprintf(stderr, "call: outpsfheader psftype fontsize charsize hastable\n");
+       exit(1);
+}
+
+int
+main(int argc, char **argv){
+       int psftype, fontsize, charsize, hastable;
+
+       if (argc != 5)
+               usage();
+       psftype = atoi(argv[1]);
+       fontsize = atoi(argv[2]);
+       charsize = atoi(argv[3]);
+       hastable = atoi(argv[4]);
+
+       if (psftype == 1) {
+               struct psf1_header h1;
+
+               if (fontsize != 256 && fontsize != 512)
+                       usage();
+               h1.magic[0] = PSF1_MAGIC0;
+               h1.magic[1] = PSF1_MAGIC1;
+               h1.mode = (fontsize == 256) ? 0 : PSF1_MODE512;
+               if (hastable)
+                       h1.mode |= PSF1_MODEHASTAB;
+               h1.charsize = charsize;
+               if (fwrite(&h1, sizeof(h1), 1, stdout) != 1) {
+                       fprintf(stderr, "write error\n");
+                       exit(1);
+               }
+       } else if (psftype == 2) {
+               struct psf2_header h2;
+
+               h2.magic[0] = PSF2_MAGIC0;
+               h2.magic[1] = PSF2_MAGIC1;
+               h2.magic[2] = PSF2_MAGIC2;
+               h2.magic[3] = PSF2_MAGIC3;
+               h2.version = 0;
+               h2.headersize = sizeof(h2);
+               h2.flags = (hastable ? PSF2_HAS_UNICODE_TABLE : 0);
+               h2.length = fontsize;
+               h2.charsize = charsize;
+               h2.width = 8;
+               h2.height = charsize;
+               if (fwrite(&h2, sizeof(h2), 1, stdout) != 1) {
+                       fprintf(stderr, "write error\n");
+                       exit(1);
+               }
+       } else
+               usage();
+       return 0;
+}
index 568f8f8..1c8e6f7 100644 (file)
@@ -1,12 +1,16 @@
 /*
  * All data is in subdirectories of DATADIR, by default /usr/lib/kbd
- * The following four subdirectories are defined:
+ * The following five subdirectories are defined:
  */
 #define KEYMAPDIR "keymaps"
-#define OLDKEYMAPDIR "keytables"
-#define FONTDIR "consolefonts"
+#define UNIMAPDIR "unimaps"
 #define TRANSDIR "consoletrans"
 #define VIDEOMODEDIR "videomodes"
+#define FONTDIR "consolefonts"
+/* subdir of the latter */
+#define PARTIALDIR "partialfonts"
+/* obsolete */
+#define OLDKEYMAPDIR "keytables"
 
 /*
  * Default keymap, and where the kernel copy of it lives.
index a87c31e..7c14341 100644 (file)
--- a/src/psf.h
+++ b/src/psf.h
@@ -1,16 +1,92 @@
-#define PSF_MAGIC1     0x36
-#define PSF_MAGIC2     0x04
+/*
+ * Format of a psf font file:
+ *
+ * 1. The header
+ * 2. The font
+ * 3. Unicode information
+ */
 
-#define PSF_MODE512    0x01
-#define PSF_MODEHASTAB 0x02
-#define PSF_MAXMODE    0x03
-#define PSF_SEPARATOR  0xFFFF
+/*
+ * Format of the Unicode information:
+ *
+ * For each font position <uc>*<seq>*<term>
+ * where <uc> is a 2-byte little endian Unicode value,
+ * <seq> = <ss><uc><uc>*, <ss> = psf1 ? 0xFFFE : 0xFE,
+ * <term> = psf1 ? 0xFFFF : 0xFF.
+ * and * denotes zero or more occurrences of the preceding item.
+ *
+ * Semantics:
+ * The leading <uc>* part gives Unicode symbols that are all
+ * represented by this font position. The following sequences
+ * are sequences of Unicode symbols - probably a symbol
+ * together with combining accents - also represented by
+ * this font position.
+ *
+ * Example:
+ * At the font position for a capital A-ring glyph, we
+ * may have:
+ *     00C5,212B,FFFE,0041,030A,FFFF
+ * Some font positions may be described by sequences only,
+ * namely when there is no precomposed Unicode value for the glyph.
+ */
 
-struct psf_header
-{
-  unsigned char magic1, magic2;        /* Magic number */
+
+#define PSF1_MAGIC0    0x36
+#define PSF1_MAGIC1    0x04
+
+#define PSF1_MODE512    0x01
+#define PSF1_MODEHASTAB 0x02
+#define PSF1_MODEHASSEQ 0x04
+#define PSF1_MAXMODE    0x05
+
+#define PSF1_SEPARATOR  0xFFFF
+#define PSF1_STARTSEQ   0xFFFE
+
+struct psf1_header {
+  unsigned char magic[2];      /* Magic number */
   unsigned char mode;          /* PSF font mode */
   unsigned char charsize;      /* Character size */
 };
 
-#define PSF_MAGIC_OK(x)        ((x).magic1 == PSF_MAGIC1 && (x).magic2 == PSF_MAGIC2)
+/*
+ * Format and semantics of psf2 version 0 are as psf (with PSF_MAXMODE == 5).
+ * However, this allows one to specify the length.
+ * It turns out to be very useful to be able to work with fonts
+ * with a few symbols or even only one (like the Euro), and
+ * with very large fonts (like several thousand Unicode symbols
+ * done in the same style).
+ * Following hpa's suggestion, psf2 uses UTF-8 rather than UCS-2,
+ * and has 32-bit magic 0x864ab572.
+ */
+
+#define PSF2_MAGIC0     0x72
+#define PSF2_MAGIC1     0xb5
+#define PSF2_MAGIC2    0x4a
+#define PSF2_MAGIC3    0x86
+
+struct psf2_header {
+       unsigned char magic[4];
+       unsigned int version;
+       unsigned int headersize;    /* offset of bitmaps in file */
+       unsigned int flags;
+       unsigned int length;        /* number of glyphs */
+       unsigned int charsize;      /* number of bytes for each character */
+       unsigned int height, width; /* max dimensions of glyphs */
+       /* charsize = height * ((width + 7) / 8) */
+};
+
+/* bits used in flags */
+#define PSF2_HAS_UNICODE_TABLE 0x01
+
+/* max version recognized so far */
+#define PSF2_MAXVERSION        0
+
+/* UTF8 separators */
+#define PSF2_SEPARATOR  0xFF
+#define PSF2_STARTSEQ   0xFE
+
+
+#define PSF1_MAGIC_OK(x)       ((x)[0]==PSF1_MAGIC0 && (x)[1]==PSF1_MAGIC1)
+#define PSF2_MAGIC_OK(x)       ((x)[0]==PSF2_MAGIC0 && (x)[1]==PSF2_MAGIC1 \
+                               && (x)[2]==PSF2_MAGIC2 && (x)[3]==PSF2_MAGIC3)
+
index 220b896..d78e12a 100644 (file)
@@ -1,8 +1,19 @@
 #
-# PC Screen (console) Fonts
+# PC Screen (console) Fonts - psf1 header
 #
 0       leshort         0x0436          psf screen font data
 >2      byte            0               256 characters, no index
 >2      byte            1               512 characters, no index
 >2     byte            2               256 characters, Unicode index
 >2     byte            3               512 characters, Unicode index
+>2     byte            4               256 characters, Unicode level 2 index 
+>2     byte            5               512 characters, Unicode level 2 index
+>3     byte            x               8x%d
+#
+# PC Screen (console) Fonts - psf2 header
+#
+0       lelong         0x864ab572      psf2 screen font data
+>12    lelong&1        1               with Unicode index
+>16    lelong          x               \b, %d glyphs
+>28    lelong          x               \b, %dx
+>24    lelong          x               \b%d
diff --git a/src/psfaddtable.c b/src/psfaddtable.c
deleted file mode 100644 (file)
index 141ba23..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * psfaddtable.c
- *
- * Add a Unicode character table to a PSF font
- *
- * Copyright (C) 1994 H. Peter Anvin
- *
- * This program may be freely copied under the terms of the GNU
- * General Public License (GPL), version 2, or at your option
- * any later version.
- *
- * Added input ranges, aeb.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sysexits.h>
-#include <string.h>
-#include <ctype.h>
-#include "psf.h"
-#include "nls.h"
-
-typedef unsigned short unicode;
-
-struct unicode_list
-{
-  unicode uc;                  /* Unicode listed */
-  struct unicode_list *next;
-};
-
-void usage(char *argv0)
-{
-  fprintf(stderr, _("Usage: \n"
-                 "        %s psffont chartable [outfile]\n"), argv0);
-  exit(EX_USAGE);
-}
-
-int getunicode(char **p0)
-{
-  char *p = *p0;
-
-  while (*p == ' ' || *p == '\t')
-    p++;
-  if (*p != 'U' || p[1] != '+' ||
-      !isxdigit(p[2]) || !isxdigit(p[3]) || !isxdigit(p[4]) ||
-      !isxdigit(p[5]) || isxdigit(p[6]))
-    return -1;
-  *p0 = p+6;
-  return strtol(p+2,0,16);
-}
-
-struct unicode_list **hookptr[512];
-
-void addpair(int fp, int un)
-{
-  struct unicode_list *newmbr;
-
-  if ( un != PSF_SEPARATOR && un <= 0xFFFF )
-    {
-       /* Add to linked list IN ORDER READ */
-                     
-       newmbr = malloc(sizeof(struct unicode_list));
-       newmbr->uc = (unicode) un;
-       newmbr->next = NULL;
-       *(hookptr[fp]) = newmbr;
-       hookptr[fp] = &(newmbr->next);
-    }
-  /* otherwise: ignore */
-}
-
-int main(int argc, char *argv[])
-{
-  FILE *in, *ctbl, *out;
-  char *inname, *tblname;
-  char buffer[65536];
-  unsigned char unicodepair[2];
-  struct unicode_list *unilist[512];
-  struct unicode_list *newmbr, tmpmbr;
-  struct psf_header psfhdr;
-  int fontlen;
-  int i;
-  int fp0, fp1, un0, un1;
-  char *p, *p1;
-
-  setlocale(LC_ALL, "");
-  bindtextdomain(PACKAGE, LOCALEDIR);
-  textdomain(PACKAGE);
-
-  if ( argc < 3 || argc > 4 )
-    usage(argv[0]);
-
-  if ( !strcmp(argv[1],"-") )
-    {
-      in = stdin;
-      inname = "stdin";
-    }
-  else
-    {
-      in = fopen(inname = argv[1], "r");
-      if ( !in )
-       {
-         perror(inname);
-         exit(EX_NOINPUT);
-       }
-    }
-
-  if ( !strcmp(argv[2],"-") && in != stdin )
-    {
-      ctbl = stdin;
-      tblname = "stdin";
-    }
-  else
-    {
-      ctbl = fopen(tblname = argv[2], "r");
-      if ( !ctbl )
-       {
-         perror(tblname);
-         exit(EX_NOINPUT);
-       }
-    }
-
-  if ( argc < 4 || !strcmp(argv[3],"-") )
-    out = stdout;
-  else
-    {
-      out = fopen(argv[3], "w");
-      if ( !out )
-       {
-         perror(argv[3]);
-         exit(EX_CANTCREAT);
-       }
-    }
-
-  if ( fread(&psfhdr, sizeof(struct psf_header), 1, in) < 1 )
-    {
-      fprintf(stderr, _("%s: Cannot read psf header\n"), inname);
-      exit(EX_DATAERR);
-    }
-
-  if (! PSF_MAGIC_OK(psfhdr) )
-    {
-      fprintf(stderr, _("%s: Bad magic number\n"), inname);
-      exit(EX_DATAERR);
-    }
-
-  if ( psfhdr.mode > PSF_MAXMODE )
-    {
-      fprintf(stderr, _("%s: Unknown mode number (%d)\n"), inname, psfhdr.mode);
-      exit(EX_DATAERR);
-    }
-
-  fontlen = ( psfhdr.mode & PSF_MODE512 ) ? 512 : 256;
-
-  /* Copy font data */
-  if ( fread(buffer, psfhdr.charsize, fontlen, in) < fontlen )
-    {
-      perror(inname);
-      exit(EX_DATAERR);
-    }
-  fclose(in);                  /* Done with input */
-
-  /* Set has-table bit in mode field, and copy to output */
-  
-  psfhdr.mode |= PSF_MODEHASTAB;
-  fwrite(&psfhdr, sizeof(struct psf_header), 1, out);
-  fwrite(buffer, psfhdr.charsize, fontlen, out);
-
-  /* Now we come to the tricky part.  Parse the input table. */
-
-  for ( i = 0 ; i < 512 ; i++ )        /* Initialize unicode list */
-    unilist[i] = NULL;
-
-  for ( i = 0 ; i < 512 ; i++ )        /* Initialize hook pointer list */
-    hookptr[i] = &(unilist[i]);
-
-  while ( fgets(buffer, sizeof(buffer), ctbl) != NULL )
-    {
-      if ( (p = strchr(buffer, '\n')) != NULL )
-       *p = '\0';
-      else
-       fprintf(stderr, _("%s: Warning: line too long\n"), tblname);
-
-      p = buffer;
-
-/*
- * Syntax accepted:
- *     <fontpos>       <unicode> <unicode> ...
- *     <range>         idem
- *     <range>         <unicode range>
- *
- * where <range> ::= <fontpos>-<fontpos>
- * and <unicode> ::= U+<h><h><h><h>
- * and <h> ::= <hexadecimal digit>
- */
-
-      while (*p == ' ' || *p == '\t')
-       p++;
-      if (!*p || *p == '#')
-       continue;       /* skip comment or blank line */
-
-      fp0 = strtol(p, &p1, 0);
-      if (p1 == p)
-       {
-         fprintf(stderr, _("Bad input line: %s\n"), buffer);
-         exit(EX_DATAERR);
-        }
-      p = p1;
-
-      while (*p == ' ' || *p == '\t')
-       p++;
-      if (*p == '-')
-       {
-         p++;
-         fp1 = strtol(p, &p1, 0);
-         if (p1 == p)
-           {
-             fprintf(stderr, _("Bad input line: %s\n"), buffer);
-             exit(EX_DATAERR);
-           }
-         p = p1;
-        }
-      else
-       fp1 = 0;
-
-      if ( fp0 < 0 || fp0 >= fontlen )
-       {
-           fprintf(stderr,
-                   _("%s: Glyph number (0x%x) larger than font length\n"),
-                   tblname, fp0);
-           exit(EX_DATAERR);
-       }
-      if ( fp1 && (fp1 < fp0 || fp1 >= fontlen) )
-       {
-           fprintf(stderr,
-                   _("%s: Bad end of range (0x%x)\n"),
-                   tblname, fp1);
-           exit(EX_DATAERR);
-       }
-
-      if (fp1)
-       {
-         /* we have a range; expect the word "idem" or a Unicode range of the
-            same length */
-         while (*p == ' ' || *p == '\t')
-           p++;
-         if (!strncmp(p, "idem", 4))
-           {
-             for (i=fp0; i<=fp1; i++)
-               addpair(i,i);
-             p += 4;
-           }
-         else
-           {
-             un0 = getunicode(&p);
-             while (*p == ' ' || *p == '\t')
-               p++;
-             if (*p != '-')
-               {
-                 fprintf(stderr,
-                         _("%s: Corresponding to a range of font positions, "
-                           "there should be a Unicode range\n"),
-                         tblname);
-                 exit(EX_DATAERR);
-               }
-             p++;
-             un1 = getunicode(&p);
-             if (un0 < 0 || un1 < 0)
-               {
-                 fprintf(stderr,
-                         _("%s: Bad Unicode range corresponding to font "
-                           "position range 0x%x-0x%x\n"),
-                         tblname, fp0, fp1);
-                 exit(EX_DATAERR);
-               }
-             if (un1 - un0 != fp1 - fp0)
-               {
-                 fprintf(stderr,
-                         _("%s: Unicode range U+%x-U+%x not of the same "
-                           "length as font position range 0x%x-0x%x\n"),
-                         tblname, un0, un1, fp0, fp1);
-                 exit(EX_DATAERR);
-               }
-             for (i=fp0; i<=fp1; i++)
-               addpair(i, un0-fp0+i);
-           }
-        }
-      else
-       {
-           /* no range; expect a list of unicode values for a single font position */
-
-           while ( (un0 = getunicode(&p)) >= 0 )
-             addpair(fp0, un0);
-       }
-      while (*p == ' ' || *p == '\t')
-       p++;
-      if (*p && *p != '#')
-       fprintf(stderr, _("%s: trailing junk (%s) ignored\n"), tblname, p);
-    }
-
-  /* Okay, we hit EOF, now glyph table should be read */
-
-  fclose(ctbl);
-
-  for ( i = 0 ; i < fontlen ; i++ )
-    {
-      for ( newmbr = unilist[i] ; newmbr ; newmbr = tmpmbr.next )
-       {
-         tmpmbr = *newmbr;
-         unicodepair[0] = (tmpmbr.uc & 0xff);
-         unicodepair[1] = ((tmpmbr.uc >> 8) & 0xff);
-         fwrite(unicodepair, sizeof(unicodepair), 1, out);
-         free(newmbr);
-       }
-
-      /* Write string terminator */
-      unicodepair[0] = (PSF_SEPARATOR & 0xff);
-      unicodepair[1] = ((PSF_SEPARATOR >> 8) & 0xff);
-      fwrite(unicodepair, sizeof(unicodepair), 1, out);
-    }
-
-  fclose(out);
-
-  exit(EX_OK);
-}
diff --git a/src/psffontop.c b/src/psffontop.c
new file mode 100644 (file)
index 0000000..def2333
--- /dev/null
@@ -0,0 +1,432 @@
+/*
+ * psffontop.c - aeb@cwi.nl, 990921
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sysexits.h>
+#include "xmalloc.h"
+#include "nls.h"
+#include "psf.h"
+#include "psffontop.h"
+
+extern char *progname;
+
+static void
+addpair(struct unicode_list *up, unsigned int uc) {
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+
+       ul = xmalloc(sizeof(struct unicode_list));
+       us = xmalloc(sizeof(struct unicode_seq));
+       us->uc = uc;
+       us->prev = us;
+       us->next = NULL;
+       ul->seq = us;
+       ul->prev = up->prev;
+       ul->prev->next = ul;
+       ul->next = NULL;
+       up->prev = ul;
+}
+
+static void
+addseq(struct unicode_list *up, unsigned int uc) {
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+
+       ul = up->prev;
+       us = xmalloc(sizeof(struct unicode_seq));
+       us->uc = uc;
+       us->prev = ul->seq->prev;
+       us->prev->next = us;
+       us->next = NULL;
+       ul->seq->prev = us;
+}
+
+static unsigned int
+assemble_ucs2(char **inptr, int cnt) {
+       unsigned char **in = (unsigned char **) inptr;
+       unsigned int u1, u2;
+
+       if (cnt < 2) {
+               char *u = _("%s: short ucs2 unicode table\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+
+       u1 = *(*in)++;
+       u2 = *(*in)++;
+       return (u1 | (u2 << 8));
+}
+
+/* called with cnt > 0 and **inptr not 0xff or 0xfe */
+static unsigned int
+assemble_utf8(char **inptr, int cnt) {
+       unsigned char *in;
+       unsigned int uc, uc2;
+       int need, bit, bad = 0;
+
+       in = (unsigned char *)(* inptr);
+       uc = *in++;
+       need = 0;
+       bit = 0x80;
+       while(uc & bit) {
+               need++;
+               bit >>= 1;
+       }
+       uc &= (bit-1);
+       if (cnt < need) {
+               char *u = _("%s: short utf8 unicode table\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+       if (need == 1)
+               bad = 1;
+       else if (need) while(--need) {
+               uc2 = *in++;
+               if ((uc2 & 0xc0) != 0x80) {
+                       bad = 1;
+                       break;
+               }
+               uc = ((uc << 6) | (uc2 & 0x3f));
+       }
+       if (bad) {
+               char *u = _("%s: bad utf8\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+       *inptr = in;
+       return uc;
+}
+       
+
+/*
+ * Read description of a single font position.
+ */
+static void
+get_uni_entry(char **inptr, char **endptr, struct unicode_list *up, int utf8) {
+       unsigned char **in = (unsigned char **) inptr;
+       unsigned char uc;
+       unicode unichar;
+       int inseq = 0;
+
+       up->next = NULL;
+       up->seq = NULL;
+       up->prev = up;
+
+       while(1) {
+               if (*endptr == *inptr) {
+                       char *u = _("%s: short unicode table\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_DATAERR);
+               }
+               if (utf8) {
+                       uc = *(*in)++;
+                       if (uc == PSF2_SEPARATOR)
+                               break;
+                       if (uc == PSF2_STARTSEQ) {
+                               inseq = 1;
+                               continue;
+                       }
+                       --(*in);
+                       unichar = assemble_utf8(inptr, *endptr - *inptr);
+               } else {
+                       unichar = assemble_ucs2(inptr, *endptr - *inptr);
+                       if (unichar == PSF1_SEPARATOR)
+                               break;
+                       if (unichar == PSF1_STARTSEQ) {
+                               inseq = 1;
+                               continue;
+                       }
+               }
+               if (inseq == 0)
+                       addpair(up, unichar);
+               else {
+                       addseq(up, unichar);
+                       inseq++;
+               }
+       }
+}
+
+/*
+ * Read a psf font and return >= 0 on success and -1 on failure.
+ * Failure means that the font was not psf (but has been read).
+ * > 0 means that the Unicode table contains sequences.
+ *
+ * The font is read either from file (when FONT is non-NULL)
+ * or from memory (namely from *ALLBUFP of size *ALLSZP).
+ * In the former case, if ALLBUFP is non-NULL, a pointer to
+ * the entire fontfile contents (possibly read from pipe)
+ * is returned in *ALLBUFP, and the size in ALLSZP, where this
+ * buffer was allocated using malloc().
+ * In FONTBUFP, FONTSZP the subinterval of ALLBUFP containing
+ * the font data is given.
+ * The number of glyphs is stored in FONTLENP.
+ * The unicodetable is stored in UCLISTHEADSP (when non-NULL), with
+ * fontpositions counted from FONTPOS0 (so that calling this several
+ * times can achieve font merging).
+ */
+extern char *progname;
+
+int
+readpsffont(FILE *fontf, char **allbufp, int *allszp,
+           char **fontbufp, int *fontszp,
+           int *fontlenp, int fontpos0,
+           struct unicode_list **uclistheadsp) {
+       char *inputbuf = NULL;
+       int inputbuflth = 0;
+       int inputlth, fontlen, charsize, hastable, ftoffset, utf8;
+       int i, k, n;
+
+       /*
+        * We used to look at the length of the input file
+        * with stat(); now that we accept compressed files,
+        * just read the entire file.
+        */
+       if (fontf) {
+               inputbuflth = 16384;    /* random */
+               inputbuf = xmalloc(inputbuflth);
+               n = 0;
+
+               while(1) {
+                       if (n >= inputbuflth) {
+                               inputbuflth *= 2;
+                               inputbuf = xrealloc(inputbuf, inputbuflth);
+                       }
+                       n += fread(inputbuf+n, 1, inputbuflth-n, fontf);
+                       if (ferror(fontf)) {
+                               char *u = _("%s: Error reading input font");
+                               fprintf(stderr, u, progname);
+                               exit(EX_DATAERR);
+                       }
+                       if (feof(fontf))
+                               break;
+               }
+               if (allbufp)
+                       *allbufp = inputbuf;
+               if (allszp)
+                       *allszp = n;
+               inputlth = n;
+       } else {
+               if (!allbufp || !allszp) {
+                       char *u = _("%s: Bad call of readpsffont\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_SOFTWARE);
+               }
+               inputbuf = *allbufp;
+               inputbuflth = inputlth = n = *allszp;
+       }
+
+       if (inputlth >= sizeof(struct psf1_header) &&
+           PSF1_MAGIC_OK((unsigned char *)inputbuf)) {
+               struct psf1_header *psfhdr;
+
+               psfhdr = (struct psf1_header *) &inputbuf[0];
+
+               if (psfhdr->mode > PSF1_MAXMODE) {
+                       char *u = _("%s: Unsupported psf file mode (%d)\n");
+                       fprintf(stderr, u, progname, psfhdr->mode);
+                       exit(EX_DATAERR);
+               }
+               fontlen = ((psfhdr->mode & PSF1_MODE512) ? 512 : 256);
+               charsize = psfhdr->charsize;
+               hastable = (psfhdr->mode & (PSF1_MODEHASTAB|PSF1_MODEHASSEQ));
+               ftoffset = sizeof(struct psf1_header);
+               utf8 = 0;
+       } else if (inputlth >= sizeof(struct psf2_header) &&
+                  PSF2_MAGIC_OK((unsigned char *)inputbuf)) {
+               struct psf2_header *psfhdr;
+
+               psfhdr = (struct psf2_header *) &inputbuf[0];
+
+               if (psfhdr->version > PSF2_MAXVERSION) {
+                       char *u = _("%s: Unsupported psf version (%d)\n");
+                       fprintf(stderr, u, progname, psfhdr->version);
+                       exit(EX_DATAERR);
+               }
+               fontlen = psfhdr->length;
+               charsize = psfhdr->charsize;
+               hastable = (psfhdr->flags & PSF2_HAS_UNICODE_TABLE);
+               ftoffset = psfhdr->headersize;
+               utf8 = 1;
+       } else
+               return -1;      /* not psf */
+
+       /* tests required - we divide by these */
+       if (fontlen == 0) {
+               char *u = _("%s: zero input font length?\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+       if (charsize == 0) {
+               char *u = _("%s: zero input character size?\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+       i = ftoffset + fontlen * charsize;
+       if (i > inputlth || (!hastable && i != inputlth)) {
+               char *u = _("%s: Input file: bad input length (%d)\n");
+               fprintf(stderr, u, progname, inputlth);
+               exit(EX_DATAERR);
+       }
+
+       if (fontbufp && allbufp)
+               *fontbufp = *allbufp + ftoffset;
+       if (fontszp)
+               *fontszp = fontlen * charsize;
+       if (fontlenp)
+               *fontlenp = fontlen;
+
+       if (hastable && uclistheadsp) {
+               char *inptr, *endptr;
+
+               inptr = inputbuf + ftoffset + fontlen * charsize;
+               endptr = inputbuf + inputlth;
+
+               *uclistheadsp = xrealloc(*uclistheadsp,
+                       (fontpos0+fontlen)*sizeof(struct unicode_list));
+
+               for (i=0; i<fontlen; i++) {
+                       k = fontpos0 + i;
+                       get_uni_entry(&inptr, &endptr,
+                                     &(*uclistheadsp)[k], utf8);
+               }
+               if (inptr != endptr) {
+                       char *u = _("%s: Input file: trailing garbage\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_DATAERR);
+               }
+       }
+
+       return 0;               /* got psf font */
+}
+
+static int
+has_sequences(struct unicode_list *uclistheads, int fontlen) {
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+       int i;
+
+       for (i=0; i<fontlen; i++) {
+               ul = uclistheads[i].next;
+               while(ul) {
+                       us = ul->seq;
+                       if (us && us->next)
+                               return 1;
+                       ul = ul->next;
+               }
+       }
+       return 0;
+}
+
+void
+appendunicode(FILE *fp, unsigned int uc, int utf8) {
+       int n = 6;
+       unsigned char out[6];
+
+       if (uc & ~0x7fffffff) {
+               fprintf(stderr, _("appendunicode: illegal unicode %u\n"), uc);
+               exit(1);
+       }
+       if (!utf8) {
+               out[--n] = ((uc >> 8) & 0xff);
+               out[--n] = (uc & 0xff);
+       } else if (uc < 0x80) {
+               out[--n] = uc;
+       } else {
+               int mask = 0x3f;
+               while (uc & ~mask) {
+                       out[--n] = 0x80 + (uc & 0x3f);
+                       uc >>= 6;
+                       mask >>= 1;
+               }
+               out[--n] = ((uc + ~mask + ~mask) & 0xff);
+       }
+       if (fwrite(out+n, 6-n, 1, fp) != 1) {
+               perror("appendunimap");
+               exit(1);
+       }
+}
+
+void
+appendseparator(FILE *fp, int seq, int utf8) {
+       int n;
+
+       if (utf8) {
+               unsigned char u = (seq ? PSF2_STARTSEQ : PSF2_SEPARATOR);
+               n = fwrite(&u, sizeof(u), 1, fp);
+       } else {
+               unsigned short u = (seq ? PSF1_STARTSEQ : PSF1_SEPARATOR);
+               n = fwrite(&u, sizeof(u), 1, fp);
+       }
+       if (n != 1) {
+               perror("appendseparator");
+               exit(1);
+       }
+}
+
+void
+writepsffont(FILE *ofil, char *fontbuf, int charsize, int fontlen,
+            int psftype, struct unicode_list *uclistheads) {
+       int i;
+       int utf8;
+       int seqs = 0;
+
+       if (uclistheads)
+               seqs = has_sequences(uclistheads, fontlen);
+
+       /* Output new font file */
+       if ((fontlen != 256 && fontlen != 512) || psftype == 2) {
+               struct psf2_header h;
+
+               h.magic[0] = PSF2_MAGIC0;
+               h.magic[1] = PSF2_MAGIC1;
+               h.magic[2] = PSF2_MAGIC2;
+               h.magic[3] = PSF2_MAGIC3;
+               h.version = 0;
+               h.headersize = sizeof(h);
+               h.flags = 0;
+               if (uclistheads != NULL)
+                       h.flags |= PSF2_HAS_UNICODE_TABLE;
+               h.length = fontlen;
+               h.charsize = charsize;
+               h.width = 8;
+               h.height = charsize;
+               fwrite(&h, sizeof(h), 1, ofil);
+               utf8 = 1;
+       } else {
+               struct psf1_header h;
+
+               h.magic[0] = PSF1_MAGIC0;
+               h.magic[1] = PSF1_MAGIC1;
+               h.mode = 0;
+               if (fontlen == 512)
+                       h.mode |= PSF1_MODE512;
+               if (uclistheads != NULL)
+                       h.mode |= (seqs ? PSF1_MODEHASSEQ : PSF1_MODEHASTAB);
+               h.charsize = charsize;
+               fwrite(&h, sizeof(h), 1, ofil);
+               utf8 = 0;
+       }
+       fwrite(fontbuf, charsize, fontlen, ofil);
+       if (uclistheads != NULL) {
+               struct unicode_list *ul;
+               struct unicode_seq *us;
+
+               for (i=0; i<fontlen; i++) {
+                       ul = uclistheads[i].next;
+                       while(ul) {
+                               us = ul->seq;
+                               if (us && us->next)
+                                       appendseparator(ofil, 1, utf8);
+                               while(us) {
+                                       appendunicode(ofil, us->uc, utf8);
+                                       us = us->next;
+                               }
+                               ul = ul->next;
+                       }
+                       appendseparator(ofil, 0, utf8);
+               }
+       }
+}
+
diff --git a/src/psffontop.h b/src/psffontop.h
new file mode 100644 (file)
index 0000000..b2c014e
--- /dev/null
@@ -0,0 +1,25 @@
+typedef unsigned int unicode;
+
+struct unicode_seq {
+       struct unicode_seq *next;
+       struct unicode_seq *prev;
+       unicode uc;
+};
+
+struct unicode_list {
+       struct unicode_list *next;
+       struct unicode_list *prev;
+       struct unicode_seq *seq;
+};
+
+extern int readpsffont(FILE *fontf, char **allbufp, int *allszp,
+                      char **fontbufp, int *fontszp,
+                      int *fontlenp, int fontpos0,
+                      struct unicode_list **uclistheadsp);
+
+extern void writepsffont(FILE *ofil, char *fontbuf,
+                        int charsize, int fontlen, int psftype,
+                        struct unicode_list *uclistheads);
+
+extern void appendunicode(FILE *fp, unsigned int uc, int utf8);
+extern void appendseparator(FILE *fp, int seq, int utf8);
diff --git a/src/psfgettable.c b/src/psfgettable.c
deleted file mode 100644 (file)
index 552daf2..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * psfgettable.c
- *
- * Extract a Unicode character table from a PSF font
- *
- * Copyright (C) 1994 H. Peter Anvin
- *
- * This program may be freely copied under the terms of the GNU
- * General Public License (GPL), version 2, or at your option
- * any later version.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sysexits.h>
-#include <string.h>
-#include "psf.h"
-#include "nls.h"
-
-typedef unsigned short unicode;
-void usage(char *argv0)
-{
-  fprintf(stderr, _("Usage: \n"
-                   "        %s psffont [outfile]\n"), argv0);
-  exit(EX_USAGE);
-}
-
-int
-main(int argc, char *argv[])
-{
-  FILE *in, *out;
-  char *inname;
-  struct psf_header psfhdr;
-  int glyph;
-  unicode unichar;
-  unsigned char unicodepair[2];
-  int fontlen;
-
-  setlocale(LC_ALL, "");
-  bindtextdomain(PACKAGE, LOCALEDIR);
-  textdomain(PACKAGE);
-
-  if ( argc < 2 || argc > 3 )
-    usage(argv[0]);
-
-  if ( !strcmp(argv[1],"-") )
-    {
-      in = stdin;
-      inname = "stdin";
-    }
-  else
-    {
-      in = fopen(inname = argv[1], "r");
-      if ( !in )
-        {
-          perror(inname);
-          exit(EX_NOINPUT);
-        }
-    }
-
-  if ( argc < 4 || !strcmp(argv[3],"-") )
-    out = stdout;
-  else
-    {
-      out = fopen(argv[3], "w");
-      if ( !out )
-        {
-          perror(argv[3]);
-          exit(EX_CANTCREAT);
-        }
-    }
-
-  if ( fread(&psfhdr, sizeof(struct psf_header), 1, in) < 1 )
-    {
-      fprintf(stderr, _("%s: Cannot read psf header\n"), inname);
-      exit(EX_DATAERR);
-    }
-  
-  if (! PSF_MAGIC_OK(psfhdr) )
-    {
-      fprintf(stderr, _("%s: Bad magic number\n"), inname);
-      exit(EX_DATAERR);
-    }
-  
-  if ( psfhdr.mode > PSF_MAXMODE )
-    {
-      fprintf(stderr, _("%s: Unknown mode number (%d)\n"),
-             inname, psfhdr.mode);
-      exit(EX_DATAERR);
-    }
-  
-  fontlen = ( psfhdr.mode & PSF_MODE512 ) ? 512 : 256;
-
-  if ( ! (psfhdr.mode & PSF_MODEHASTAB ) )
-    {
-      fprintf(stderr, _("%s: Font has no character table\n"), inname);
-      exit(EX_DATAERR);
-    }
-
-    /* Skip font data */
-  if ( fseek(in, psfhdr.charsize * fontlen, SEEK_CUR) == -1)
-    {
-      perror(inname);
-      exit(EX_DATAERR);
-    }
-
-  /* Copy table */
-
-  fprintf(out, "#\n# Character table extracted from font %s\n#\n", inname);
-
-  for ( glyph = 0 ; glyph < fontlen ; glyph++ )
-    {
-      if ( fontlen <= 256 )
-       fprintf(out, "0x%02x\t", glyph);
-      else
-       fprintf(out, "0x%03x\t", glyph);
-
-      while ( fread(unicodepair, sizeof(unicodepair), 1, in) == 1 ) {
-             unichar = (unicodepair[0] | (unicodepair[1] << 8));
-             if ( unichar == PSF_SEPARATOR )
-                     break;
-             fprintf(out, " U+%04x", unichar);
-      }
-      putc('\n', out);
-    }
-
-  fclose(in);
-  fclose(out);
-
-  exit(EX_OK);
-}
diff --git a/src/psfstriptable.c b/src/psfstriptable.c
deleted file mode 100644 (file)
index 0704e6c..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * psfgettable.c
- *
- * Extract a Unicode character table from a PSF font
- *
- * Copyright (C) 1994 H. Peter Anvin
- *
- * This program may be freely copied under the terms of the GNU
- * General Public License (GPL), version 2, or at your option
- * any later version.
- *
- * fix, aeb, 970316
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sysexits.h>
-#include <string.h>
-#include "psf.h"
-#include "nls.h"
-
-typedef unsigned short unicode;
-void usage(char *argv0)
-{
-  fprintf(stderr, _("Usage: \n"
-                   "        %s psffont [outfile]\n"), argv0);
-  exit(EX_USAGE);
-}
-
-int
-main(int argc, char *argv[])
-{
-  FILE *in, *out;
-  char *inname;
-  struct psf_header psfhdr;
-  int fontlen;
-  char buffer[65536];          /* Font data, is scratch only */
-
-  setlocale(LC_ALL, "");
-  bindtextdomain(PACKAGE, LOCALEDIR);
-  textdomain(PACKAGE);
-
-  if ( argc < 2 || argc > 3 )
-    usage(argv[0]);
-
-  if ( !strcmp(argv[1],"-") )
-    {
-      in = stdin;
-      inname = "stdin";
-    }
-  else
-    {
-      in = fopen(inname = argv[1], "r");
-      if ( !in )
-        {
-          perror(inname);
-          exit(EX_NOINPUT);
-        }
-    }
-
-  if ( argc < 3 || !strcmp(argv[2],"-") )
-    out = stdout;
-  else
-    {
-      out = fopen(argv[2], "w");
-      if ( !out )
-        {
-          perror(argv[2]);
-          exit(EX_CANTCREAT);
-        }
-    }
-
-  if ( fread(&psfhdr, sizeof(struct psf_header), 1, in) < 1 )
-    {
-      fprintf(stderr, _("%s: Cannot read psf header\n"), inname);
-      exit(EX_DATAERR);
-    }
-  
-  if (! PSF_MAGIC_OK(psfhdr) )
-    {
-      fprintf(stderr, _("%s: Bad magic number\n"), inname);
-      exit(EX_DATAERR);
-    }
-  
-  if ( psfhdr.mode > PSF_MAXMODE )
-    {
-      fprintf(stderr, _("%s: Unknown mode number (%d)\n"),
-             inname, psfhdr.mode);
-      exit(EX_DATAERR);
-    }
-  
-  fontlen = ( psfhdr.mode & PSF_MODE512 ) ? 512 : 256;
-
-  if ( ! (psfhdr.mode & PSF_MODEHASTAB ) )
-    {
-      fprintf(stderr, _("%s: Font already had no character table\n"), inname);
-    }
-
-  psfhdr.mode &= ~PSF_MODEHASTAB; /* Clear the bit */
-  
-  /* Read font data */
-  if ( fread(buffer, psfhdr.charsize, fontlen, in) < fontlen )
-    {
-      perror(inname);
-      exit(EX_DATAERR);
-    }
-
-  fclose(in);
-
-  /* Write new font file */
-  fwrite(&psfhdr, sizeof(struct psf_header), 1, out);
-  fwrite(buffer, psfhdr.charsize, fontlen, out);
-  fclose(out);
-
-  exit(EX_OK);
-}
diff --git a/src/psfxtable.c b/src/psfxtable.c
new file mode 100644 (file)
index 0000000..f151937
--- /dev/null
@@ -0,0 +1,418 @@
+/*
+ * psfxtable.c
+ *
+ * Manipulate headers and Unicode tables for psf fonts
+ *
+ * Copyright (C) 1999 Andries E. Brouwer
+ *  derived from sources that were
+ * Copyright (C) 1994 H. Peter Anvin
+ *
+ * This program may be freely copied under the terms of the GNU
+ * General Public License (GPL), version 2, or at your option
+ * any later version.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <sysexits.h>
+#include "nls.h"
+#include "version.h"
+#include "psf.h"
+#include "xmalloc.h"
+#include "psffontop.h"
+
+/*
+ * call: psfxtable -i infont -o outfont -it intable -ot outtable
+ *       psfaddtable infont intable [outfont]
+ *      psfgettable infont [outtable]
+ *      psfstriptable infont [outfont]
+ *
+ * When outfont is requested it will get psf1 header when
+ * infont had psf1 header and intable does not have sequences
+ * and psf2 header otherwise.
+ */
+
+/*
+ * Parse humanly readable unicode table.
+ * Format: lines
+ *   <fontposition><tab><uc_defs>
+ * or
+ *   <fontrange><tab><uc_defs>
+ * or
+ *   <fontrange><tab><uc_range>
+ *  where
+ *   <uc_defs> :: <empty> | <uc_def><space><uc_defs>
+ *   <uc_def> :: <uc> | <uc>,<uc_def>
+ *   <uc> :: U+<h><h><h><h>
+ *   <h> :: <hexadecimal digit>
+ *   <range> :: <value>-<value>
+ *  Blank lines and lines starting with # are ignored.
+ */
+struct unicode_list *uclistheads;
+
+static void
+addpair(int fontpos, unsigned int uc) {
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+
+       ul = xmalloc(sizeof(struct unicode_list));
+       us = xmalloc(sizeof(struct unicode_seq));
+       us->uc = uc;
+       us->prev = us;
+       us->next = NULL;
+       ul->seq = us;
+       ul->prev = uclistheads[fontpos].prev;
+       ul->prev->next = ul;
+       ul->next = NULL;
+       uclistheads[fontpos].prev = ul;
+}
+
+static void
+addseq(int fontpos, unsigned int uc) {
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+
+       ul = uclistheads[fontpos].prev;
+       us = xmalloc(sizeof(struct unicode_seq));
+       us->uc = uc;
+       us->prev = ul->seq->prev;
+       us->prev->next = us;
+       us->next = NULL;
+       ul->seq->prev = us;
+}
+
+static int
+getunicode(char **p0) {
+       char *p = *p0;
+
+       while (*p == ' ' || *p == '\t')
+               p++;
+       if (*p != 'U' || p[1] != '+' ||
+           !isxdigit(p[2]) || !isxdigit(p[3]) || !isxdigit(p[4]) ||
+           !isxdigit(p[5]) || isxdigit(p[6]))
+               return -1;
+       *p0 = p+6;
+       return strtol(p+2,0,16);
+}
+
+static void
+parse_itab_line(char *buf, int fontlen){
+       char *p, *p1;
+       int i;
+       long fp0, fp1, un0, un1;
+
+       if ((p = strchr(buf, '\n')) != NULL)
+               *p = 0;
+       else {
+               char *u = _("%s: Warning: line too long\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+
+       p = buf;
+
+       while (*p == ' ' || *p == '\t')
+               p++;
+       if (!*p || *p == '#')
+               return;
+
+       fp0 = strtol(p, &p1, 0);
+       if (p1 == p) {
+               char *u = _("%s: Bad input line: %s\n");
+               fprintf(stderr, u, progname, buf);
+               exit(EX_DATAERR);
+       }
+       p = p1;
+
+       if (*p == '-') {
+               p++;
+               fp1 = strtol(p, &p1, 0);
+               if (p1 == p) {
+                       char *u = _("%s: Bad input line: %s\n");
+                       fprintf(stderr, u, progname, buf);
+                       exit(EX_DATAERR);
+               }
+               p = p1;
+       } else
+               fp1 = 0;
+
+       if (fp0 < 0 || fp0 >= fontlen) {
+               char *u = _("%s: Glyph number (0x%lx) past end of font\n");
+               fprintf(stderr, u, progname, fp0);
+               exit(EX_DATAERR);
+       }
+       if (fp1 && (fp1 < fp0 || fp1 >= fontlen)) {
+               char *u = _("%s: Bad end of range (0x%lx)\n");
+               fprintf(stderr, u, progname, fp1);
+               exit(EX_DATAERR);
+       }
+
+       if (fp1) {
+               /* we have a range; expect the word "idem"
+                  or a Unicode range of the same length */
+               while (*p == ' ' || *p == '\t')
+                       p++;
+               if (!strncmp(p, "idem", 4)) {
+                       for (i = fp0; i <= fp1; i++)
+                               addpair(i,i);
+                       p += 4;
+               } else {
+                       un0 = getunicode(&p);
+                       while (*p == ' ' || *p == '\t')
+                               p++;
+                       if (*p != '-') {
+                               char *u = _("%s: Corresponding to a range of "
+                                           "font positions, there should be "
+                                           "a Unicode range\n");
+                               fprintf(stderr, u, progname);
+                               exit(EX_DATAERR);
+                       }
+                       p++;
+                       un1 = getunicode(&p);
+                       if (un0 < 0 || un1 < 0) {
+                               char *u = _("%s: Bad Unicode range "
+                                           "corresponding to font position "
+                                           "range 0x%x-0x%x\n");
+                               fprintf(stderr, u, progname, fp0, fp1);
+                               exit(EX_DATAERR);
+                       }
+                       if (un1 - un0 != fp1 - fp0) {
+                               char *u = _("%s: Unicode range U+%x-U+%x not "
+                                           "of the same length as font "
+                                           "position range 0x%x-0x%x\n");
+                               fprintf(stderr, u, progname,
+                                       un0, un1, fp0, fp1);
+                               exit(EX_DATAERR);
+                       }
+                       for (i = fp0; i <= fp1; i++)
+                               addpair(i, un0-fp0+i);
+               } /* not idem */
+       } else {  /* no range */
+               while ((un0 = getunicode(&p)) >= 0) {
+                       addpair(fp0, un0);
+                       while (*p++ == ',' && (un1 = getunicode(&p)) >= 0) {
+                               addseq(fp0, un1);
+                       }
+                       p--;
+               }
+               while (*p == ' ' || *p == '\t')
+                       p++;
+               if (*p && *p != '#') {
+                       char *u = _("%s: trailing junk (%s) ignored\n");
+                       fprintf(stderr, u, progname, p);
+               }
+       }
+}
+
+static void
+read_itable(FILE *itab, int fontlen, struct unicode_list **uclistheadsp) {
+       char buf[65536];
+       int i;
+
+       if (uclistheadsp) {
+               *uclistheadsp = xrealloc(*uclistheadsp,
+                                        fontlen*sizeof(struct unicode_list));
+               for (i=0; i<fontlen; i++) {
+                       struct unicode_list *up = &((*uclistheadsp)[i]);
+                       up->next = NULL;
+                       up->seq = NULL;
+                       up->prev = up;
+               }
+               while (fgets(buf, sizeof(buf), itab) != NULL)
+                       parse_itab_line(buf, fontlen);
+       }
+}
+
+int
+main(int argc, char **argv) {
+       char *ifname, *ofname, *itname, *otname;
+       FILE *ifil, *ofil, *itab, *otab;
+       int psftype, fontlen, charsize, hastable, notable;
+       int i;
+       char *inbuf, *fontbuf;
+       int inbuflth, fontbuflth;
+
+       set_progname(argv[0]);
+
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
+
+       if (argc == 2 && !strcmp(argv[1], "-V"))
+               print_version_and_exit();
+
+       ifil = ofil = itab = otab = NULL;
+       ifname = ofname = itname = otname = NULL;
+       fontbuf = NULL;
+       notable = 0;
+
+       if (!strcmp(progname, "psfaddtable")) {
+               /* Do not send binary data to stdout without explicit "-" */
+               if (argc != 4) {
+                       char *u = _("Usage:\n\t%s infont intable outfont\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_USAGE);
+               }
+               ifname = argv[1];
+               itname = argv[2];
+               ofname = argv[3];
+       } else if (!strcmp(progname, "psfgettable")) {
+               if (argc < 2 || argc > 3) {
+                       char *u = _("Usage:\n\t%s infont [outtable]\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_USAGE);
+               }
+               ifname = argv[1];
+               otname = (argc == 3) ? argv[2] : "-";
+       } else if (!strcmp(progname, "psfstriptable")) {
+               /* Do not send binary data to stdout without explicit "-" */
+               if (argc != 3) {
+                       char *u = _("Usage:\n\t%s infont outfont\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_USAGE);
+               }
+               ifname = argv[1];
+               ofname = argv[2];
+               notable = 1;
+       } else {
+               for (i = 1; i < argc; i ++) {
+                       if (!strcmp(argv[i], "-i") && i < argc-1)
+                               ifname = argv[++i];
+                       else if(!strcmp(argv[i], "-o") && i < argc-1)
+                               ofname = argv[++i];
+                       else if(!strcmp(argv[i], "-it") && i < argc-1)
+                               itname = argv[++i];
+                       else if(!strcmp(argv[i], "-ot") && i < argc-1)
+                               otname = argv[++i];
+                       else if(!strcmp(argv[i], "-nt"))
+                               notable = 1;
+                       else
+                               break;
+               }
+               if (i < argc || argc <= 1) {
+                       char *u = _("Usage:\n\t%s [-i infont] [-o outfont] "
+                                   "[-it intable] [-ot outtable] [-nt]\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_USAGE);
+               }
+       }
+
+       if (!ifname)
+               ifname = "-";
+       if (!strcmp(ifname, "-"))
+               ifil = stdin;
+       else {
+               ifil = fopen(ifname, "r");
+               if (!ifil) {
+                       perror(ifname);
+                       exit(EX_NOINPUT);
+               }
+       }
+
+       if (!itname)
+               /* nothing */;
+       else if (!strcmp(itname, "-"))
+               itab = stdin;
+       else {
+               itab = fopen(itname, "r");
+               if (!itab) {
+                       perror(itname);
+                       exit(EX_NOINPUT);
+               }
+       }
+
+       /* Refuse ifil == itab == stdin ? Perhaps not. */
+
+       if (!ofname)
+               /* nothing */;
+       else if (!strcmp(ofname, "-"))
+               ofil = stdout;
+       else {
+               ofil = fopen(ofname, "w");
+               if (!ofil) {
+                       perror(ofname);
+                       exit(EX_CANTCREAT);
+               }
+       }
+
+       if (!otname)
+               /* nothing */;
+       else if (!strcmp(otname, "-"))
+               otab = stdout;
+       else {
+               otab = fopen(otname, "w");
+               if (!otab) {
+                       perror(otname);
+                       exit(EX_CANTCREAT);
+               }
+       }
+
+       if (readpsffont(ifil, &inbuf, &inbuflth, &fontbuf, &fontbuflth,
+                      &fontlen, 0, itab ? NULL : &uclistheads) == -1) {
+               char *u = _("%s: Bad magic number on %s\n");
+               fprintf(stderr, u, progname, ifname);
+               exit(EX_DATAERR);
+       }
+       fclose(ifil);
+
+       charsize = fontbuflth/fontlen;
+
+       hastable = (uclistheads != NULL);
+
+       if (PSF1_MAGIC_OK((unsigned char *)inbuf)) {
+               psftype = 1;
+       } else if (PSF2_MAGIC_OK((unsigned char *)inbuf)) {
+               psftype = 2;
+       } else {
+               char *u = _("%s: psf file with unknown magic\n");
+               fprintf(stderr, u, progname);
+               exit(EX_DATAERR);
+       }
+
+       if (itab) {
+               read_itable(itab, fontlen, &uclistheads);
+               fclose(itab);
+       }
+
+       if (otab) {
+               struct unicode_list *ul;
+               struct unicode_seq *us;
+               char *sep;
+
+               if (!hastable) {
+                       char *u = _("%s: input font does not have an index\n");
+                       fprintf(stderr, u, progname);
+                       exit(EX_DATAERR);
+               }
+               fprintf(otab,
+                       "#\n# Character table extracted from font %s\n#\n",
+                       ifname);
+               for (i=0; i<fontlen; i++) {
+                       fprintf(otab, "0x%03x\t", i);
+                       sep = "";
+                       ul = uclistheads[i].next;
+                       while (ul) {
+                               us = ul->seq;
+                               while(us) {
+                                       fprintf(otab, "%sU+%04x", sep, us->uc);
+                                       us = us->next;
+                                       sep = ", ";
+                               }
+                               ul = ul->next;
+                               sep = " ";
+                       }
+                       fprintf(otab, "\n");
+               }
+               fclose(otab);
+       }
+
+       if (ofil) {
+               writepsffont(ofil, fontbuf, charsize, fontlen, psftype,
+                            notable ? NULL : uclistheads);
+               fclose(ofil);
+       }
+
+       return EX_OK;
+}
index 14b3bed..b3aedc2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * resizecons.c - change console video mode
  *
- * Version 0.98
+ * Version 1.00
  *
  * How to use this:
  *
@@ -12,8 +12,8 @@
  *    For me this resulted in the files 80x25, 80x28, 80x50, 80x60, 100x40,
  *    132x25, 132x28, 132x44. Put these files in /usr/lib/kbd/videomodes
  *    (or in your current dir).
- * 3. Now "resizecons COLSxROWS" will change your video mode. (Assuming you have
- *    an appropriate kernel, and svgalib works for your video card.)
+ * 3. Now "resizecons COLSxROWS" will change your video mode. (Assuming you
+ *    have an appropriate kernel, and svgalib works for your video card.)
  *
  * Note: this is experimental, but it works for me. Comments are welcome.
  * You may have to be root to get the appropriate ioperm permissions.
@@ -71,6 +71,7 @@
 
 #include <stdlib.h>
 #include <unistd.h>
+#include <string.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <errno.h>
 #endif
 #include <linux/vt.h>
 #include "paths.h"
+#include "getfd.h"
+#include "findfile.h"
 #include "nls.h"
+#include "version.h"
 
 #define MODE_RESTORETEXTMODE   0
 #define MODE_VGALINES          1
 
-extern char *index();
-extern int getfd();
 static void usage(void);
 
 /* VGA textmode register tweaking. */
-static void vga_init_io();
-static void vga_400_scanlines();
-static void vga_480_scanlines();
-static void vga_set_fontheight( int );
-static int vga_get_fontheight();
-static void vga_set_cursor( int, int );
-static void vga_set_verticaldisplayend_lowbyte( int );
+static void vga_init_io(void);
+static void vga_400_scanlines(void);
+static void vga_480_scanlines(void);
+static void vga_set_fontheight(int);
+static int vga_get_fontheight(void);
+static void vga_set_cursor(int, int);
+static void vga_set_verticaldisplayend_lowbyte(int);
 
 char *dirpath[] = { "", DATADIR "/" VIDEOMODEDIR "/", 0};
 char *suffixes[] = { "", 0 };
 
 int
-main(argc, argv) int argc; char **argv; {
+main(int argc, char **argv) {
     int rr, cc, fd, i, mode;
     struct vt_sizes vtsizes;
     struct vt_stat vtstat;
@@ -116,12 +118,18 @@ main(argc, argv) int argc; char **argv; {
     FILE *fin;
     char *defaultfont;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
     if (argc < 2)
       usage();
+
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+      print_version_and_exit();
+
     rr = 0;                    /* make gcc happy */
     cc = atoi(argv[1]);
     mode = MODE_RESTORETEXTMODE;
@@ -257,15 +265,17 @@ main(argc, argv) int argc; char **argv; {
     for (i=0; i<16; i++)
       if (vtstat.v_state & (1<<i)) {
          sprintf(tty, "/dev/tty%d", i);
-         if ((fd = open(tty, 0)) > 0) {
+         if ((fd = open(tty, O_RDONLY)) > 0) {
              if(ioctl(fd, TIOCSWINSZ, &winsize))
                perror("TIOCSWINSZ");
              close(fd);
          }
       }
 
+#if 0
     /* Try to tell selection about the change */
-    if ((fd = open("/tmp/selection.pid", 0)) >= 0) {
+    /* [may be a security risk?] */
+    if ((fd = open("/tmp/selection.pid", O_RDONLY)) >= 0) {
        char buf[64];
        int n = read(fd, buf, sizeof(buf));
        if (n > 0) {
@@ -277,6 +287,7 @@ main(argc, argv) int argc; char **argv; {
        }
        close(fd);
     }
+#endif
 
     /* do: setfont default8x16 */
     /* (other people might wish other fonts - this should be settable) */
@@ -315,7 +326,7 @@ main(argc, argv) int argc; char **argv; {
     return 0;
 }
 
-void
+static void
 usage() {
     fprintf(stderr,
            _("resizecons:\n"
index 24ebaa6..a16cc9a 100644 (file)
  * and give them your favourite owners and permissions.
  */
 #include <stdio.h>
-#include <linux/termios.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include "xmalloc.h"
 #include "nls.h"
-extern char *malloc();
+#include "version.h"
 
 int
 main(int argc, char **argv) {
@@ -30,10 +35,15 @@ main(int argc, char **argv) {
     int fd, i, j;
     char *inbuf, *outbuf, *p, *q;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+       print_version_and_exit();
+
     if (argc > 2) {
        fprintf(stderr, _("usage: screendump [n]\n"));
        exit(1);
@@ -42,19 +52,18 @@ main(int argc, char **argv) {
     cons = (argc == 2) ? atoi(argv[1]) : 0;
 
     sprintf(infile, "/dev/vcsa%d", cons);
-    fd = open(infile, 0);
+    fd = open(infile, O_RDONLY);
+    if (fd < 0 && cons == 0 && errno == ENOENT)
+      fd = open("/dev/vcsa", O_RDONLY);
     if (fd < 0 || read(fd, header, 4) != 4)
       goto try_ioctl;
     rows = header[0];
     cols = header[1];
     if (rows * cols == 0)
       goto try_ioctl;
-    inbuf = malloc(rows*cols*2);
-    outbuf = malloc(rows*(cols+1));
-    if(!inbuf || !outbuf) {
-        fprintf(stderr, _("Out of memory?\n"));
-        exit(1);
-    }
+    inbuf = xmalloc(rows*cols*2);
+    outbuf = xmalloc(rows*(cols+1));
+
     if (read(fd, inbuf, rows*cols*2) != rows*cols*2) {
         fprintf(stderr, _("Error reading %s\n"), infile);
         exit(1);
@@ -79,7 +88,7 @@ try_ioctl:
        unsigned char *screenbuf;
 
        sprintf(consnam, "/dev/tty%d", cons);
-       if((fd = open(consnam, 0)) < 0) {
+       if((fd = open(consnam, O_RDONLY)) < 0) {
            perror(consnam);
            fd = 0;
        }
@@ -89,20 +98,22 @@ try_ioctl:
            exit(1);
        }
 
-       screenbuf = malloc(2 + win.ws_row * win.ws_col);
-       if (!screenbuf) {
-           fprintf(stderr, _("Out of memory.\n"));
-           exit(1);
-       }
-
+       screenbuf = xmalloc(2 + win.ws_row * win.ws_col);
        screenbuf[0] = 0;
        screenbuf[1] = (unsigned char) cons;
 
        if (ioctl(fd,TIOCLINUX,screenbuf) &&
            (!fd || ioctl(0,TIOCLINUX,screenbuf))) {
+#if 0
            perror("TIOCLINUX");
            fprintf(stderr,_("couldn't read %s, and cannot ioctl dump\n"),
                    infile);
+#else
+           /* we tried this just to be sure, but TIOCLINUX
+              function 0 has been disabled since 1.1.92
+              Do not mention `ioctl dump' in error msg */
+           fprintf(stderr,_("couldn't read %s\n"), infile);
+#endif
            exit(1);
        }
 
@@ -115,11 +126,7 @@ try_ioctl:
            exit(1);
        }
 
-       outbuf = malloc(rows*(cols+1));
-       if(!outbuf) {
-           fprintf(stderr, _("Out of memory?\n"));
-           exit(1);
-       }
+       outbuf = xmalloc(rows*(cols+1));
        p = screenbuf + 2;
        q = outbuf;
         for (i=0; i<rows; i++) {
index 01b0125..da09a63 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * setfont.c - Eugene Crosser & Andries Brouwer
  *
- * Version 0.98
+ * Version 1.00
  *
  * Loads the console font, and possibly the corresponding screen map(s).
  * We accept two kind of screen maps, one [-m] giving the correspondence
@@ -9,40 +9,43 @@
  * font positions, and the second [-u] giving the correspondence between
  * font positions and Unicode values.
  */
-#define VERSION "0.98"
 
 #include <stdio.h>
 #include <memory.h>
 #include <fcntl.h>
 #include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <sys/kd.h>
 #include <endian.h>
+#include <sysexits.h>
 #include "paths.h"
+#include "getfd.h"
+#include "findfile.h"
+#include "loadunimap.h"
 #include "psf.h"
+#include "psffontop.h"
+#include "kdfontop.h"
+#include "xmalloc.h"
 #include "nls.h"
-
-char *progname;
+#include "version.h"
 
 static int position_codepage(int iunit);
 static void saveoldfont(int fd, char *ofil);
 static void saveoldfontplusunicodemap(int fd, char *Ofil);
 static void loadnewfont(int fd, char *ifil,
                        int iunit, int hwunit, int no_m, int no_u);
+static void loadnewfonts(int fd, char **ifiles, int ifilct,
+                       int iunit, int hwunit, int no_m, int no_u);
 static void restorefont(int fd);
 extern void saveoldmap(int fd, char *omfil);
 extern void loadnewmap(int fd, char *mfil);
-extern void saveunicodemap(int fd, char *oufil);
-extern void loadunicodemap(int fd, char *ufil);
-extern void appendunicodemap(int fd, FILE *fp, int ct);
 extern void activatemap(void);
-extern int getfd(void);
-extern int getfont(int fd, char *buf, int *count);
-extern int putfont(int fd, char *buf, int count, int height);
+extern void disactivatemap(void);
 extern int font_charheight(char *buf, int count);
-extern char *malloc();
 
 int verbose = 0;
 int force = 0;
@@ -50,17 +53,25 @@ int force = 0;
 /* search for the font in these directories (with trailing /) */
 char *fontdirpath[] = { "", DATADIR "/" FONTDIR "/", 0 };
 char *fontsuffixes[] = { "", ".psfu", ".psf", ".cp", ".fnt", 0 };
+/* hide partial fonts a bit - loading a single one is a bad idea */
+char *partfontdirpath[] = { "", DATADIR "/" FONTDIR "/" PARTIALDIR "/", 0 };
+char *partfontsuffixes[] = { "", 0 };
 
 static inline FILE*
 findfont(char *fnam) {
     return findfile(fnam, fontdirpath, fontsuffixes);
 }
 
-void
+static inline FILE*
+findpartialfont(char *fnam) {
+    return findfile(fnam, partfontdirpath, partfontsuffixes);
+}
+
+static void
 usage(void)
 {
         fprintf(stderr, _(
-"Usage: setfont [write-options] [-<N>] [newfont] [-m consolemap] [-u unicodemap]\n"
+"Usage: setfont [write-options] [-<N>] [newfont..] [-m consolemap] [-u unicodemap]\n"
 "  write-options (take place before file loading):\n"
 "    -o  <filename>    Write current font to <filename>\n"
 "    -om <filename>    Write current consolemap to <filename>\n"
@@ -79,17 +90,19 @@ usage(void)
 "    -V                Print version and exit.\n"
 "Files are loaded from the current directory or /usr/lib/kbd/*/.\n"
 ));
-       exit(1);
+       exit(EX_USAGE);
 }
 
+#define MAXIFILES 256
+
 int
 main(int argc, char *argv[])
 {
-       char *ifil, *mfil, *ufil, *Ofil, *ofil, *omfil, *oufil;
-       int fd, i, iunit, hwunit, no_m, no_u;
+       char *ifiles[MAXIFILES], *mfil, *ufil, *Ofil, *ofil, *omfil, *oufil;
+       int ifilct = 0, fd, i, iunit, hwunit, no_m, no_u;
        int restore = 0;
 
-       progname = argv[0];
+       set_progname(argv[0]);
 
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
@@ -97,14 +110,13 @@ main(int argc, char *argv[])
 
        fd = getfd();
 
-       ifil = mfil = ufil = Ofil = ofil = omfil = oufil = 0;
+       ifiles[0] = mfil = ufil = Ofil = ofil = omfil = oufil = 0;
        iunit = hwunit = 0;
        no_m = no_u = 0;
 
        for (i = 1; i < argc; i++) {
            if (!strcmp(argv[i], "-V")) {
-               printf(_("setfont version %s\n"), VERSION);
-               exit(0);
+               print_version_and_exit();
            } else if (!strcmp(argv[i], "-v")) {
                verbose = 1;
            } else if (!strcmp(argv[i], "-R")) {
@@ -150,22 +162,24 @@ main(int argc, char *argv[])
                if(iunit <= 0 || iunit > 32)
                  usage();
            } else {
-               if (ifil)
-                 usage();
-               ifil = argv[i];
+               if (ifilct == MAXIFILES) {
+                   fprintf(stderr, _("setfont: too many input files\n"));
+                   exit(EX_USAGE);
+               }
+               ifiles[ifilct++] = argv[i];
            }
        }
 
-       if (ifil && restore) {
+       if (ifilct && restore) {
            fprintf(stderr, _("setfont: cannot both restore from character ROM"
                              " and from file. Font unchanged.\n"));
-           exit(1);
+           exit(EX_USAGE);
        }
 
-       if (!ifil && !mfil && !ufil &&
+       if (!ifilct && !mfil && !ufil &&
            !Ofil && !ofil && !omfil && !oufil && !restore)
          /* reset to some default */
-         ifil = "";
+         ifiles[ifilct++] = "";
 
        if (Ofil)
          saveoldfontplusunicodemap(fd, Ofil);
@@ -191,8 +205,8 @@ main(int argc, char *argv[])
        if (restore)
          restorefont(fd);
 
-       if (ifil)
-         loadnewfont(fd, ifil, iunit, hwunit, no_m, no_u);
+       if (ifilct)
+         loadnewfonts(fd, ifiles, ifilct, iunit, hwunit, no_m, no_u);
 
        if (ufil)
          loadunicodemap(fd, ufil);
@@ -210,58 +224,111 @@ restorefont(int fd) {
        }
 }
 
+/*
+ * 0 - do not test, 1 - test and warn, 2 - test and wipe, 3 - refuse
+ */
+static int erase_mode = 1;
+
 static void
-do_loadfont(int fd, char *inbuf, int unit, int hwunit, int fontsize) {
+do_loadfont(int fd, char *inbuf, int unit, int hwunit, int fontsize,
+           char *pathname) {
        char buf[16384];
        int i;
+       int bad_video_erase_char = 0;
 
        memset(buf,0,sizeof(buf));
 
        if (unit < 1 || unit > 32) {
-           fprintf(stderr, _("Bad character size %d\n"), unit);
-           exit(1);
+               fprintf(stderr, _("Bad character size %d\n"), unit);
+               exit(EX_DATAERR);
        }
 
        if (!hwunit)
-           hwunit = unit;
+               hwunit = unit;
 
        for (i = 0; i < fontsize; i++)
-           memcpy(buf+(32*i), inbuf+(unit*i), unit);
+               memcpy(buf+(32*i), inbuf+(unit*i), unit);
 
-       if (verbose)
-         printf(_("Loading %d-char 8x%d font from file %s\n"),
-                fontsize, unit, pathname);
+       /*
+        * Due to a kernel bug, font position 32 is used
+        * to erase the screen, regardless of maps loaded.
+        * So, usually this font position should be blank.
+        */
+       if (erase_mode) {
+               for (i = 0; i < 32; i++)
+                       if (buf[32*32+i])
+                               bad_video_erase_char = 1;
+               if (bad_video_erase_char) {
+                       fprintf(stderr,
+                               _("%s: font position 32 is nonblank\n"),
+                               progname);
+                       switch(erase_mode) {
+                       case 3:
+                               exit(EX_DATAERR);
+                       case 2:
+                               for (i = 0; i < 32; i++)
+                                       buf[32*32+i] = 0;
+                               fprintf(stderr, _("%s: wiped it\n"), progname);
+                               break;
+                       case 1:
+                               fprintf(stderr,
+                                       _("%s: background will look funny\n"),
+                                       progname);
+                       }
+                       fflush(stderr);
+                       sleep(2);
+               }
+       }
+
+       if (verbose) {
+               if (pathname)
+                       printf(_("Loading %d-char 8x%d font from file %s\n"),
+                              fontsize, unit, pathname);
+               else
+                       printf(_("Loading %d-char 8x%d font\n"),
+                              fontsize, unit);
+       }
 
        if (putfont(fd, buf, fontsize, hwunit))
-         exit(1);
+               exit(EX_OSERR);
 }
 
 static void
-do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize) {
+do_loadtable(int fd, struct unicode_list *uclistheads, int fontsize) {
        struct unimapinit advice;
        struct unimapdesc ud;
        struct unipair *up;
-       int ct = 0, maxct;
-       int glyph;
-       u_short unicode;
-
-       maxct = tailsz;         /* more than enough */
-       up = (struct unipair *) malloc(maxct * sizeof(struct unipair));
-       if (!up) {
-           fprintf(stderr, _("Out of memory?\n"));
-           exit(1);
+       int i, ct = 0, maxct;
+       struct unicode_list *ul;
+       struct unicode_seq *us;
+
+       maxct = 0;
+       for (i = 0; i < fontsize; i++) {
+               ul = uclistheads[i].next;
+               while(ul) {
+                       us = ul->seq;
+                       if (us && ! us->next)
+                               maxct++;
+                       ul = ul->next;
+               }
        }
-       for (glyph = 0; glyph < fontsize; glyph++) {
-           while (tailsz >= 2) {
-               unicode = (((u_short) inbuf[1]) << 8) + inbuf[0];
-               tailsz -= 2;
-               inbuf += 2;
-               if (unicode == PSF_SEPARATOR)
-                   break;
-               up[ct].unicode = unicode;
-               up[ct].fontpos = glyph;
-               ct++;
-           }
+       up = xmalloc(maxct * sizeof(struct unipair));
+       for (i = 0; i < fontsize; i++) {
+               ul = uclistheads[i].next;
+               while(ul) {
+                       us = ul->seq;
+                       if (us && ! us->next) {
+                               up[ct].unicode = us->uc;
+                               up[ct].fontpos = i;
+                               ct++;
+                       }
+                       ul = ul->next;
+               }
+       }
+       if (ct != maxct) {
+               char *u = _("%s: bug in do_loadtable\n");
+               fprintf(stderr, u, progname);
+               exit(EX_SOFTWARE);
        }
 
        /* Note: after PIO_UNIMAPCLR and before PIO_UNIMAP
@@ -281,7 +348,7 @@ do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize) {
            } else
 #endif
              perror("PIO_UNIMAPCLR");
-           exit(1);
+           exit(EX_OSERR);
        }
        ud.entry_ct = ct;
        ud.entries = up;
@@ -292,120 +359,199 @@ do_loadtable(int fd, unsigned char *inbuf, int tailsz, int fontsize) {
            }
 #endif
            perror("PIO_UNIMAP");
-           exit(1);
+           exit(EX_OSERR);
        }
 }
 
 static void
+loadnewfonts(int fd, char **ifiles, int ifilct,
+            int iunit, int hwunit, int no_m, int no_u) {
+       FILE *fpi;
+       char *ifil, *inbuf, *fontbuf, *bigfontbuf;
+       int inputlth, fontbuflth, fontsize, unit;
+       int bigfontbuflth, bigfontsize, bigunit;
+       struct unicode_list *uclistheads;
+       int i;
+
+       if (ifilct == 1) {
+               loadnewfont(fd, ifiles[0], iunit, hwunit, no_m, no_u);
+               return;
+       }
+
+       /* several fonts that must be merged */
+       /* We just concatenate the bitmaps - only allow psf fonts */
+       bigfontbuf = NULL;
+       bigfontbuflth = 0;
+       bigfontsize = 0;
+       uclistheads = NULL;
+       bigunit = 0;
+
+       for (i=0; i<ifilct; i++) {
+               ifil = ifiles[i];
+               if ((fpi = findfont(ifil)) == NULL &&
+                   (fpi = findpartialfont(ifil)) == NULL) {
+                       fprintf(stderr, _("Cannot open font file %s\n"), ifil);
+                       exit(EX_NOINPUT);
+               }
+
+               inbuf = fontbuf = NULL;
+               inputlth = fontbuflth = 0;
+               fontsize = 0;
+
+               if(readpsffont(fpi, &inbuf, &inputlth, &fontbuf, &fontbuflth,
+                              &fontsize, bigfontsize,
+                              no_u ? NULL : &uclistheads)) {
+                       fprintf(stderr, _("When loading several fonts, all "
+                                         "must be psf fonts - %s isn't\n"),
+                               pathname);
+                       exit(EX_DATAERR);
+               }
+               unit = fontbuflth / fontsize;
+               if (verbose)
+                       printf(_("Read %d-char 8x%d font from file %s\n"),
+                              fontsize, unit, pathname);
+               if (bigunit == 0)
+                       bigunit = unit;
+               else if (bigunit != unit) {
+                       fprintf(stderr, _("When loading several fonts, all "
+                                         "must have the same pointsize\n"));
+                       exit(EX_DATAERR);
+               }
+               bigfontsize += fontsize;
+               bigfontbuflth += fontbuflth;
+               bigfontbuf = xrealloc(bigfontbuf, bigfontbuflth);
+               memcpy(bigfontbuf+bigfontbuflth-fontbuflth,
+                      fontbuf, fontbuflth);
+       }
+
+       do_loadfont(fd, bigfontbuf, bigunit, hwunit, bigfontsize, NULL);
+       if (uclistheads && !no_u)
+               do_loadtable(fd, uclistheads, bigfontsize);
+}
+
+static void
 loadnewfont(int fd, char *ifil, int iunit, int hwunit, int no_m, int no_u) {
        FILE *fpi;
        char defname[20];
-       int unit;
-       char inbuf[32768];      /* primitive */
-       int inputlth, offset;
+       int unit, def = 0;
+       char *inbuf, *fontbuf;
+       int inputlth, fontbuflth, fontsize, offset;
+       struct unicode_list *uclistheads;
 
        if (!*ifil) {
-           /* try to find some default file */
-
-           if (iunit < 0 || iunit > 32)
-             iunit = 0;
-           if (iunit == 0) {
-               if ((fpi = findfont(ifil = "default")) == NULL &&
-                   (fpi = findfont(ifil = "default8x16")) == NULL &&
-                   (fpi = findfont(ifil = "default8x14")) == NULL &&
-                   (fpi = findfont(ifil = "default8x8")) == NULL) {
-                   fprintf(stderr, _("Cannot find default font\n"));
-                   exit(1);
+               /* try to find some default file */
+
+               def = 1;                /* maybe also load default unimap */
+
+               if (iunit < 0 || iunit > 32)
+                       iunit = 0;
+               if (iunit == 0) {
+                       if ((fpi = findfont(ifil = "default")) == NULL &&
+                           (fpi = findfont(ifil = "default8x16")) == NULL &&
+                           (fpi = findfont(ifil = "default8x14")) == NULL &&
+                           (fpi = findfont(ifil = "default8x8")) == NULL) {
+                               fprintf(stderr, _("Cannot find default font\n"));
+                               exit(EX_NOINPUT);
+                       }
+               } else {
+                       sprintf(defname, "default8x%d", iunit);
+                       if ((fpi = findfont(ifil = defname)) == NULL &&
+                           (fpi = findfont(ifil = "default")) == NULL) {
+                               fprintf(stderr, _("Cannot find %s font\n"), ifil);
+                               exit(EX_NOINPUT);
+                       }
                }
-           } else {
-               sprintf(defname, "default8x%d", iunit);
-               if ((fpi = findfont(ifil = defname)) == NULL &&
-                   (fpi = findfont(ifil = "default")) == NULL) {
-                   fprintf(stderr, _("Cannot find %s font\n"), ifil);
-                   exit(1);
-               }
-           }
        } else {
-           if ((fpi = findfont(ifil)) == NULL) {
-               fprintf(stderr, _("Cannot open font file %s\n"), ifil);
-               exit(1);
-           }
+               if ((fpi = findfont(ifil)) == NULL) {
+                       fprintf(stderr, _("Cannot open font file %s\n"), ifil);
+                       exit(EX_NOINPUT);
+               }
        }
 
-       /*
-        * We used to look at the length of the input file
-        * with stat(); now that we accept compressed files,
-        * just read the entire file.
-        */
-       inputlth = fread(inbuf, 1, sizeof(inbuf), fpi);
-       if (ferror(fpi)) {
-               fprintf(stderr, _("Error reading input font"));
-               exit(1);
-       }
-       /* use malloc/realloc in case of giant files;
-          maybe these do not occur: 16kB for the font,
-          and 16kB for the map leaves 32 unicode values
-          for each font position */
-       if (!feof(fpi)) {
-               fprintf(stderr, _(
-"Setfont is so naive as to believe that font files\n"
-"have a size of at most 32kB.  Unfortunately it seems\n"
-"that you encountered an exception.  If this really is\n"
-"a font file, (i) recompile setfont, (ii) tell aeb@cwi.nl .\n"
-));
-               exit(1);
+       inbuf = fontbuf = NULL;
+       inputlth = fontbuflth = fontsize = 0;
+       uclistheads = NULL;
+       if(readpsffont(fpi, &inbuf, &inputlth, &fontbuf, &fontbuflth,
+                      &fontsize, 0, no_u ? NULL : &uclistheads) == 0) {
+               /* we've got a psf font */
+               unit = fontbuflth / fontsize;
+
+               do_loadfont(fd, fontbuf, unit, hwunit, fontsize, pathname);
+               if (uclistheads && !no_u)
+                       do_loadtable(fd, uclistheads, fontsize);
+#if 1
+               if (!uclistheads && !no_u && def)
+                       loadunicodemap(fd, "def.uni");
+#endif
+               return;
        }
-       fpclose(fpi);
-
-       /* test for psf first */
-       {
-           struct psf_header psfhdr;
-           int fontsize;
-           int hastable;
-           int head0, head;
 
-           if (inputlth < sizeof(struct psf_header))
-               goto no_psf;
-
-           psfhdr = * (struct psf_header *) &inbuf[0];
-
-           if (!PSF_MAGIC_OK(psfhdr))
-               goto no_psf;
-
-           if (psfhdr.mode > PSF_MAXMODE) {
-               fprintf(stderr, _("Unsupported psf file mode\n"));
-               exit(1);
-           }
-           fontsize = ((psfhdr.mode & PSF_MODE512) ? 512 : 256);
-           hastable = (psfhdr.mode & PSF_MODEHASTAB);
-           unit = psfhdr.charsize;
-           head0 = sizeof(struct psf_header);
-           head = head0 + fontsize*unit;
-           if (head > inputlth || (!hastable && head != inputlth)) {
-               fprintf(stderr, _("Input file: bad length\n"));
-               exit(1);
-           }
-           do_loadfont(fd, inbuf + head0, unit, hwunit, fontsize);
-           if (hastable && !no_u)
-             do_loadtable(fd, inbuf + head, inputlth-head, fontsize);
-           return;
+       /* instructions to combine fonts? */
+       { char *combineheader = "# combine partial fonts\n";
+         int chlth = strlen(combineheader);
+         char *p, *q;
+         if (inputlth >= chlth && !strncmp(inbuf, combineheader, chlth)) {
+                 char *ifiles[MAXIFILES];
+                 int ifilct = 0;
+                 q = inbuf + chlth;
+                 while(q < inbuf + inputlth) {
+                         p = q;
+                         while (q < inbuf+inputlth && *q != '\n')
+                                 q++;
+                         if (q == inbuf+inputlth) {
+                                 fprintf(stderr,
+                                         _("No final newline in combine file\n"));
+                                 exit(EX_DATAERR);
+                         }
+                         *q++ = 0;
+                         if (ifilct == MAXIFILES) {
+                                 fprintf(stderr,
+                                         _("Too many files to combine\n"));
+                                 exit(EX_DATAERR);
+                         }
+                         ifiles[ifilct++] = p;
+                 }
+                 /* recursive call */
+                 loadnewfonts(fd, ifiles, ifilct, iunit, hwunit, no_m, no_u);
+                 return;
+         }
        }
-      no_psf:
 
        /* file with three code pages? */
        if (inputlth == 9780) {
-           offset = position_codepage(iunit);
-           unit = iunit;
+               offset = position_codepage(iunit);
+               unit = iunit;
+               fontsize = 256;
+       } else if (inputlth == 32768) {
+               /* restorefont -w writes a SVGA font to file
+                  restorefont -r restores it
+                  These fonts have size 32768, for two 512-char fonts.
+                  In fact, when BROKEN_GRAPHICS_PROGRAMS is defined,
+                  and it always is, there is no default font that is saved,
+                  so probably the second half is always garbage. */
+               fprintf(stderr, _("Hmm - a font from restorefont? "
+                                 "Using the first half.\n"));
+               inputlth = 16384;       /* ignore rest */
+               fontsize = 512;
+               offset = 0;
+               unit = 32;
+               if (!hwunit)
+                       hwunit = 16;
        } else {
-           /* bare font */
-           if (inputlth & 0377) {
-               fprintf(stderr, _("Bad input file size\n"));
-               exit(1);
-           }
-           offset = 0;
-           unit = inputlth/256;
+               int rem = (inputlth % 256);
+               if (rem == 0 || rem == 40) {
+                       /* 0: bare code page bitmap */
+                       /* 40: preceded by .cp header */
+                       /* we might check some header details */
+                       offset = rem;
+               } else {
+                       fprintf(stderr, _("Bad input file size\n"));
+                       exit(EX_DATAERR);
+               }
+               fontsize = 256;
+               unit = inputlth/256;
        }
-       do_loadfont(fd, inbuf+offset, unit, hwunit, 256);
+       do_loadfont(fd, inbuf+offset, unit, hwunit, fontsize, pathname);
 }
 
 static int
@@ -422,7 +568,7 @@ position_codepage(int iunit) {
                      " Please indicate\n"
                      "using an option -8 or -14 or -16 "
                      "which one you want loaded.\n"));
-           exit(1);
+           exit(EX_USAGE);
        }
        switch (iunit) {
          case 8:
@@ -435,7 +581,7 @@ position_codepage(int iunit) {
            fprintf(stderr, _("You asked for font size %d, "
                              "but only 8, 14, 16 are possible here.\n"),
                    iunit);
-           exit(1);
+           exit(EX_USAGE);
        }
        return offset;
 }
@@ -443,11 +589,11 @@ position_codepage(int iunit) {
 static void
 do_saveoldfont(int fd, char *ofil, FILE *fpo, int unimap_follows, int *count) {
     int i, unit, ct;
-    char buf[16384];
+    char buf[65536];
 
-    ct = sizeof(buf)/32;
-    if (getfont(fd, buf, &ct))
-       exit(1);
+    ct = sizeof(buf)/(32*32/8);                /* max size 32x32, 8 bits/byte */
+    if (getfont(fd, buf, &ct, NULL))   /* ignore height given by kernel */
+       exit(EX_OSERR);
 
     /* save as efficiently as possible */
     unit = font_charheight(buf, ct);
@@ -455,21 +601,22 @@ do_saveoldfont(int fd, char *ofil, FILE *fpo, int unimap_follows, int *count) {
     /* Do we need a psf header? */
     /* Yes if ct=512 - otherwise we cannot distinguish
        a 512-char 8x8 and a 256-char 8x16 font. */
+#define ALWAYS_PSF_HEADER      1
 
-    if (ct != 256 || unimap_follows) {
-        struct psf_header psfhdr;
+    if (ct != 256 || unimap_follows || ALWAYS_PSF_HEADER) {
+        struct psf1_header psfhdr;
 
-       psfhdr.magic1 = PSF_MAGIC1;
-       psfhdr.magic2 = PSF_MAGIC2;
+       psfhdr.magic[0] = PSF1_MAGIC0;
+       psfhdr.magic[1] = PSF1_MAGIC1;
        psfhdr.mode = 0;
        if (ct != 256)
-           psfhdr.mode |= PSF_MODE512;
+           psfhdr.mode |= PSF1_MODE512;
        if (unimap_follows)
-           psfhdr.mode |= PSF_MODEHASTAB;
+           psfhdr.mode |= PSF1_MODEHASTAB;
        psfhdr.charsize = unit;
-       if (fwrite(&psfhdr, sizeof(struct psf_header), 1, fpo) != 1) {
+       if (fwrite(&psfhdr, sizeof(struct psf1_header), 1, fpo) != 1) {
            fprintf(stderr, _("Cannot write font file header"));
-           exit(1);
+           exit(EX_IOERR);
        }
     }
 
@@ -479,7 +626,7 @@ do_saveoldfont(int fd, char *ofil, FILE *fpo, int unimap_follows, int *count) {
       for (i = 0; i < ct; i++)
        if (fwrite(buf+(32*i), unit, 1, fpo) != 1) {
           fprintf(stderr, _("Cannot write font file"));
-          exit(1);
+          exit(EX_IOERR);
        }
       if (verbose)
        printf(_("Saved %d-char 8x%d font file on %s\n"), ct, unit, ofil);
@@ -495,24 +642,24 @@ saveoldfont(int fd, char *ofil) {
 
     if((fpo = fopen(ofil, "w")) == NULL) {
        perror(ofil);
-       exit(1);
+       exit(EX_CANTCREAT);
     }
     do_saveoldfont(fd, ofil, fpo, 0, NULL);
     fclose(fpo);
 }
 
 static void
-saveoldfontplusunicodemap(int fd, char *Ofil){
+saveoldfontplusunicodemap(int fd, char *Ofil) {
     FILE *fpo;
     int ct;
 
     if((fpo = fopen(Ofil, "w")) == NULL) {
        perror(Ofil);
-       exit(1);
+       exit(EX_CANTCREAT);
     }
     ct = 0;
     do_saveoldfont(fd, Ofil, fpo, 1, &ct);
-    appendunicodemap(fd, fpo, ct);
+    appendunicodemap(fd, fpo, ct, 0);
     fclose(fpo);
 }
 
index d7a7842..8949fca 100644 (file)
 #include <fcntl.h>
 #include <sys/ioctl.h>
 #include <linux/kd.h>
+#include "getfd.h"
 #include "nls.h"
+#include "version.h"
 
-extern int getfd();
-
-void
+static void
 usage(char *s) {
     fprintf(stderr, "setkeycode: %s\n", s);
     fprintf(stderr, _(
@@ -30,10 +30,15 @@ main(int argc, char **argv) {
     int fd, sc;
     struct kbkeycode a;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+      print_version_and_exit();
+
     if (argc % 2 != 1)
       usage(_("even number of arguments expected"));
     fd = getfd();
index 2a7777e..0d551b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * setleds.c - aeb, 940130, 940909
+ * setleds.c - aeb, 940130, 940909, 991008
  *
  * Call: setleds [-L] [-D] [-F] [{+|-}{num|caps|scroll}]*
  * will set or clear the indicated flags on the stdin tty,
 #include <linux/kd.h>
 #include <sys/ioctl.h>
 #include "nls.h"
+#include "version.h"
 
-void
+#ifdef __sparc__
+#include <asm/kbio.h>
+#endif
+
+static void
 usage(void)
 {
     fprintf(stderr, _(
 "Usage:\n"
-"      setleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll ]]\n"
+"      setleds [-v] [-L] [-D] [-F] [[+|-][ num | caps | scroll %s]]\n"
 "Thus,\n"
 "      setleds +caps -num\n"
 "will set CapsLock, clear NumLock and leave ScrollLock unchanged.\n"
@@ -29,58 +34,146 @@ usage(void)
 "With -L, setleds only sets the leds, and leaves the flags alone.\n"
 "With -D, setleds sets both the flags and the default flags, so\n"
 "that a subsequent reset will not change the flags.\n"
-));
+),
+#ifdef __sparc__
+    "| compose "
+#else
+    ""
+#endif
+    );
     exit(1);
 }
 
-    
-
 #define onoff(a) ((a) ? _("on ") : _("off"))
 
-void
-report(leds) int leds;
-{
-    printf("NumLock %s   CapsLock %s   ScrollLock %s\n",
-          onoff(leds & LED_NUM),
-          onoff(leds & LED_CAP),
-          onoff(leds & LED_SCR));
+/* report the bits, in the order seen on the (my) keyboard */
+#define LED_NLOCK  1
+#define LED_CMPOSE 2
+#define LED_SCRLCK 4
+#define LED_CLOCK  8
+
+static void
+sunreport(int leds) {
+       printf("NumLock %s   Compose %s   ScrollLock %s   CapsLock %s\n",
+              onoff(leds & LED_NLOCK),
+              onoff(leds & LED_CMPOSE),
+              onoff(leds & LED_SCRLCK),
+              onoff(leds & LED_CLOCK));
+}
+
+static void
+report(int leds) {
+        printf("NumLock %s   CapsLock %s   ScrollLock %s\n",
+              onoff(leds & LED_NUM),
+              onoff(leds & LED_CAP),
+              onoff(leds & LED_SCR));
 }
 
 struct led {
     char *name;
     int bit;
-} leds[3] = {
-    { "scroll", LED_SCR },
-    { "num", LED_NUM },
-    { "caps", LED_CAP }
+    int sunbit;
+} leds[] = {
+    { "scroll", LED_SCR, LED_SCRLCK },
+    { "num",    LED_NUM, LED_NLOCK },
+    { "caps",   LED_CAP, LED_CLOCK },
+#ifdef __sparc__
+    { "compose",   0,    LED_CMPOSE }
+#endif
 };
 
+static void
+getleds(char *leds) {
+    if (ioctl(0, KDGETLED, leds)) {
+       perror("KDGETLED");
+       fprintf(stderr,
+         _("Error reading current led setting. Maybe stdin is not a VT?\n"));
+       exit(1);
+    }
+}
+
+static int
+setleds(char leds) {
+    if (ioctl(0, KDSETLED, leds)) {
+       perror("KDSETLED");
+       return -1;
+    }
+    return 0;
+}
+
+static void
+getflags(char *flags) {
+    if (ioctl(0, KDGKBLED, flags)) {
+       perror("KDGKBLED");
+       fprintf(stderr,
+          _("Error reading current flags setting. Maybe an old kernel?\n"));
+       exit(1);
+    }
+}
+
+static int sunkbdfd = -1;
+
+static void
+sungetleds(char *leds) {
+#ifdef KIOCGLED
+    if (ioctl(sunkbdfd, KIOCGLED, leds)) {
+       perror("KIOCGLED");
+       fprintf(stderr,
+         _("Error reading current led setting from /dev/kbd.\n"));
+       exit(1);
+    }
+#else
+    fprintf(stderr, _("KIOCGLED unavailable?\n"));
+    exit(1);
+#endif
+}
+
+static void
+sunsetleds(char *leds) {
+#ifdef KIOCSLED
+    if (ioctl(sunkbdfd, KIOCSLED, leds)) {
+       perror("KIOCGSLED");
+       fprintf(stderr,
+         _("Error reading current led setting from /dev/kbd.\n"));
+       exit(1);
+    }
+#else
+    fprintf(stderr, _("KIOCSLED unavailable?\n"));
+    exit(1);
+#endif
+}
+
 int
-main(argc,argv) int argc; char **argv;
-{
+main(int argc, char **argv) {
     int optL = 0, optD = 0, optF = 0, verbose = 0;
     char oleds, nleds, oflags, nflags, odefflags, ndefflags;
     char nval, ndef, sign;
+    char osunleds, nsunleds, nsunval, nsundef;
     char *ap;
     struct led *lp;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
-    if (ioctl(0, KDGETLED, &oleds)) {
-       perror("KDGETLED");
-       fprintf(stderr,
-         _("Error reading current led setting. Maybe stdin is not a VT?\n"));
-       exit(1);
-    }
+    if (argc == 2 && !strcmp("-V", argv[1]))
+       print_version_and_exit();
 
-    if (ioctl(0, KDGKBLED, &oflags)) {
-       perror("KDGKBLED");
-       fprintf(stderr,
-          _("Error reading current flags setting. Maybe an old kernel?\n"));
-       exit(1);
+#ifdef __sparc__
+    sunkbdfd = open("/dev/kbd", O_RDONLY);
+    if (sunkbdfd < 0) {
+       perror("/dev/kbd");
+       fprintf(stderr, _("Error opening /dev/kbd.\n"));
+       /* exit(1); */
     }
+#endif
+
+    getflags(&oflags);
+    getleds(&oleds);
+    if (sunkbdfd >= 0)
+           sungetleds(&osunleds);
 
     while (argc > 1) {
        if (!strcmp("-L", argv[1]))
@@ -103,8 +196,7 @@ main(argc,argv) int argc; char **argv;
     if (argc <= 1) {
        if (optL) {
            nleds = 0xff;
-           if (ioctl(0, KDSETLED, &nleds)) {
-               perror("KDSETLED");
+           if (setleds(nleds)) {
                fprintf(stderr, _("Error resetting ledmode\n"));
                exit(1);
            }
@@ -123,7 +215,10 @@ main(argc,argv) int argc; char **argv;
        }
        if (optL) {
            printf(_("Current leds:           "));
-           report(oleds);
+           if (sunkbdfd >= 0)
+               sunreport(osunleds);
+           else
+               report(oleds);
        }
        exit(0);
     }
@@ -132,6 +227,8 @@ main(argc,argv) int argc; char **argv;
       optF = 1;
     nval = 0;
     ndef = 0;
+    nsunval = 0;
+    nsundef = 0;
 
     while(--argc) {
        ap = *++argv;
@@ -142,11 +239,14 @@ main(argc,argv) int argc; char **argv;
            sign = 0;
            ap++;
        }
-       for (lp = leds; lp-leds < 3; lp++) {
+       for (lp = leds; lp-leds < sizeof(leds)/sizeof(leds[0]); lp++) {
            if(!strcmp(ap, lp->name)) {
-               if(sign)
+               if(sign) {
                  nval |= lp->bit;
+                 nsunval |= lp->sunbit;
+               }
                ndef |= lp->bit;
+               nsundef |= lp->sunbit;
                goto nxtarg;
            }
        }
@@ -181,16 +281,25 @@ main(argc,argv) int argc; char **argv;
        }
     }
     if (optL) {
-       nleds = (oleds & ~ndef) | nval;
-       if (verbose) {
-           printf(_("Old leds:             "));
-           report(oleds);
-           printf(_("New leds:             "));
-           report(nleds);
-       }
-       if (ioctl(0, KDSETLED, nleds)) {
-           perror("KDSETLED");
-           exit(1);
+       if (sunkbdfd >= 0) {
+           nsunleds = (osunleds & ~nsundef) | nsunval;
+           if (verbose) {
+               printf(_("Old leds:             "));
+               sunreport(osunleds);
+               printf(_("New leds:             "));
+               sunreport(nsunleds);
+           }
+           sunsetleds(&nsunleds);
+       } else {
+           nleds = (oleds & ~ndef) | nval;
+           if (verbose) {
+               printf(_("Old leds:             "));
+               report(oleds);
+               printf(_("New leds:             "));
+               report(nleds);
+           }
+           if (setleds(nleds))
+               exit(1);
        }
     }
     exit(0);
index 2849225..d4bd0b3 100644 (file)
@@ -11,8 +11,9 @@
 #include <linux/kd.h>
 #include <sys/ioctl.h>
 #include "nls.h"
+#include "version.h"
 
-void
+static void
 usage(void)
 {
     fprintf(stderr, _(
@@ -26,9 +27,8 @@ usage(void)
     exit(1);
 }
 
-void
-report(meta) int meta;
-{
+static void
+report(int meta) {
     char *s;
 
     switch(meta) {
@@ -59,15 +59,19 @@ struct meta {
 #define SIZE(a) (sizeof(a)/sizeof(a[0]))
 
 int
-main(argc,argv) int argc; char **argv;
-{
+main(int argc, char **argv) {
     char ometa, nmeta;
     struct meta *mp;
 
+    set_progname(argv[0]);
+
     setlocale(LC_ALL, "");
     bindtextdomain(PACKAGE, LOCALEDIR);
     textdomain(PACKAGE);
 
+    if (argc == 2 && !strcmp(argv[1], "-V"))
+       print_version_and_exit();
+
     if (ioctl(0, KDGKBMETA, &ometa)) {
        perror("KDGKBMETA");
        fprintf(stderr,
index 09c03b3..f3802e3 100644 (file)
@@ -4,11 +4,11 @@
  * usage: setvesablank ON|on|off
  */
 #include <stdio.h>
-#include <linux/termios.h>
+#include <sys/ioctl.h>
+#include "getfd.h"
 #include "nls.h"
 
-extern int getfd();
-
+int
 main(int argc, char *argv[]) {
     int fd;
     struct { char ten, onoff; } arg;
@@ -32,5 +32,5 @@ main(int argc, char *argv[]) {
        perror("setvesablank: TIOCLINUX");
        exit(1);
     }
-    exit(0);
+    return 0;
 }
index dc8c764..00dadd6 100644 (file)
@@ -4,14 +4,15 @@
 #include <stdio.h>
 #include <sys/ioctl.h>
 #include "nls.h"
+#include "version.h"
 
 #define CSI            155
 #define CSI_ERSATZ     126
 
 char obuf[E_TABSZ], nbuf[E_TABSZ];
 
-void
-leave(n) int n; {
+static void
+leave(int n) {
   printf("\0338");             /* restore attributes */
   if (ioctl(0,PIO_SCRNMAP,obuf)) {
       perror("PIO_SCRNMAP");
@@ -22,13 +23,18 @@ leave(n) int n; {
 }
 
 int
-main (argc,argv) int argc; char **argv; {
+main (int argc, char **argv) {
   unsigned char i, j, k;
 
+  set_progname(argv[0]);
+
   setlocale(LC_ALL, "");
   bindtextdomain(PACKAGE, LOCALEDIR);
   textdomain(PACKAGE);
 
+  if (argc == 2 && !strcmp(argv[1], "-V"))
+    print_version_and_exit();
+
   if (argc != 1) {
       fprintf(stderr,
              _("usage: showfont\n"
index 8411eba..010c0f6 100644 (file)
@@ -7,13 +7,12 @@
 #include <linux/kd.h>
 #include <linux/keyboard.h>
 #include <sys/ioctl.h>
+#include "getfd.h"
 #include "nls.h"
-
-#define VERSION "0.98"
+#include "version.h"
 
 int tmp;       /* for debugging */
 
-extern int getfd();
 int fd;
 int oldkbmode;
 struct termios old;
@@ -22,7 +21,8 @@ struct termios old;
  * version 0.81 of showkey would restore kbmode unconditially to XLATE,
  * thus making the console unusable when it was called under X.
  */
-void get_mode(void) {
+static void
+get_mode(void) {
         char *m;
 
        if (ioctl(fd, KDGKBMODE, &oldkbmode)) {
@@ -49,7 +49,8 @@ void get_mode(void) {
        printf("\n");
 }
 
-void clean_up(void) {
+static void
+clean_up(void) {
        if (ioctl(fd, KDSKBMODE, oldkbmode)) {
                perror("KDSKBMODE");
                exit(1);
@@ -59,18 +60,21 @@ void clean_up(void) {
        close(fd);
 }
 
-void die(int x) {
+static void
+die(int x) {
        printf(_("caught signal %d, cleaning up...\n"), x);
        clean_up();
        exit(1);
 }
 
-void watch_dog(int x) {
+static void
+watch_dog(int x) {
        clean_up();
        exit(0);
 }
 
-void usage(void) {
+static void
+usage(void) {
        fprintf(stderr, _(
 "showkey version %s\n\n"
 "usage: showkey [options...]\n"
@@ -87,12 +91,13 @@ void usage(void) {
 
 int
 main (int argc, char *argv[]) {
-       const char *short_opts = "hask";
+       const char *short_opts = "haskV";
        const struct option long_opts[] = {
                { "help",       no_argument, NULL, 'h' },
                { "ascii",      no_argument, NULL, 'a' },
                { "scancodes",  no_argument, NULL, 's' },
                { "keycodes",   no_argument, NULL, 'k' },
+               { "version",    no_argument, NULL, 'V' },
                { NULL, 0, NULL, 0 }
        };
        int c;
@@ -103,6 +108,8 @@ main (int argc, char *argv[]) {
        unsigned char buf[16];
        int i, n;
 
+       set_progname(argv[0]);
+
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE, LOCALEDIR);
        textdomain(PACKAGE);
@@ -119,6 +126,8 @@ main (int argc, char *argv[]) {
                        case 'a':
                                print_ascii = 1;
                                break;
+                       case 'V':
+                               print_version_and_exit();
                        case 'h':
                        case '?':
                                usage();
index 77229bf..fba7c96 100644 (file)
 
 void
 sighup(){
-    system("open -s -l bash");
+    system("openvt -s -l bash");
     signal(SIGHUP, sighup);
 }
 
 main(){
     int fd;
 
-    fd = open("/dev/console", 0);
+    fd = open("/dev/tty0", 0);
     if (fd < 0)
       fd = 0;
     signal(SIGHUP, sighup);
index d12caac..8a87c3c 100644 (file)
@@ -9,14 +9,14 @@
 
 void
 sighup(){
-    system("open -s -l -- login -h spawn");
+    system("openvt -s -l -- login -h spawn");
     signal(SIGHUP, sighup);
 }
 
 main(){
     int fd;
 
-    fd = open("/dev/console", 0);
+    fd = open("/dev/tty0", 0);
     if (fd < 0)
       fd = 0;
     signal(SIGHUP, sighup);
diff --git a/src/version.h b/src/version.h
new file mode 100644 (file)
index 0000000..ad20316
--- /dev/null
@@ -0,0 +1,19 @@
+#include <string.h>
+
+#define VERSION "1.00"
+
+char *progname;
+
+static inline void
+set_progname(char *name) {
+       char *p;
+
+       p = rindex(name, '/');
+       progname = (p ? p+1 : name);
+}
+
+static inline void
+print_version_and_exit(void) {
+       printf(_("%s from %s\n"), progname, "kbd-" VERSION);
+       exit(0);
+}
index b74423f..30a2268 100644 (file)
@@ -51,7 +51,7 @@ enum
 #endif /* PLAN9 */
 };
 
-int
+static int
 our_wctomb(char *s, unsigned long wc)
 {
        if(s == 0)
diff --git a/src/xmalloc.c b/src/xmalloc.c
new file mode 100644 (file)
index 0000000..4ab5b11
--- /dev/null
@@ -0,0 +1,40 @@
+/* Error-free versions of some libc routines */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sysexits.h>
+#include "nls.h"
+#include "xmalloc.h"
+
+extern char *progname;
+
+static void
+nomem(void) {
+       fprintf(stderr, _("%s: out of memory\n"), progname);
+       exit(EX_OSERR);
+}
+
+void *
+xmalloc(size_t sz) {
+       void *p = malloc(sz);
+       if (p == NULL)
+               nomem();
+       return p;
+}
+
+void *
+xrealloc(void *pp, size_t sz) {
+       void *p = realloc(pp, sz);
+       if (p == NULL)
+               nomem();
+       return p;
+}
+
+char *
+xstrdup(char *p) {
+       char *q = strdup(p);
+       if (q == NULL)
+               nomem();
+       return q;
+}
diff --git a/src/xmalloc.h b/src/xmalloc.h
new file mode 100644 (file)
index 0000000..5ea1fa1
--- /dev/null
@@ -0,0 +1,4 @@
+/* Error-free versions of some libc routines */
+extern void *xmalloc(size_t sz);
+extern void *xrealloc(void *p, size_t sz);
+extern char *xstrdup(char *p);