1.08
authorAlexey Gladkov <legion@altlinux.org>
Mon, 15 Jan 2007 11:27:40 +0000 (14:27 +0300)
committerAlexey Gladkov <legion@altlinux.org>
Mon, 15 Jan 2007 11:27:40 +0000 (14:27 +0300)
115 files changed:
CHANGES
COPYING
Makefile.in
README
configure
contrib/showconsolefont [moved from contrib/showfont with 81% similarity]
data/consolefonts/cyr-sun16.psfu [new file with mode: 0644]
data/consoletrans/cp1251_to_uni.trans [new file with mode: 0644]
data/consoletrans/koi8-r_to_uni.trans [new file with mode: 0644]
data/consoletrans/koi8-u_to_uni.trans [new file with mode: 0644]
data/keymaps/i386/azerty/fr-latin9.map [moved from data/keymaps/i386/azerty/fr-latin0.map with 88% similarity]
data/keymaps/i386/azerty/wangbe2.map
data/keymaps/i386/fgGIod/tr_f-latin5.map
data/keymaps/i386/include/linux-keys-bare.inc
data/keymaps/i386/qwerty/bg-cp1251.map [new file with mode: 0644]
data/keymaps/i386/qwerty/bg.map
data/keymaps/i386/qwerty/br-abnt.map
data/keymaps/i386/qwerty/br-latin1-abnt2.map
data/keymaps/i386/qwerty/by.map
data/keymaps/i386/qwerty/cz-cp1250.map
data/keymaps/i386/qwerty/cz-lat2-prog.map
data/keymaps/i386/qwerty/cz-lat2.map
data/keymaps/i386/qwerty/defkeymap.map
data/keymaps/i386/qwerty/defkeymap_V1.0.map
data/keymaps/i386/qwerty/fi-latin1.map
data/keymaps/i386/qwerty/fi-latin9.map [new file with mode: 0644]
data/keymaps/i386/qwerty/il-heb.map [new file with mode: 0644]
data/keymaps/i386/qwerty/il.map
data/keymaps/i386/qwerty/lt.baltic.map
data/keymaps/i386/qwerty/lt.l4.map
data/keymaps/i386/qwerty/lt.map
data/keymaps/i386/qwerty/mk-cp1251.map
data/keymaps/i386/qwerty/mk-utf.map
data/keymaps/i386/qwerty/mk.map
data/keymaps/i386/qwerty/nl.map
data/keymaps/i386/qwerty/nl3.map [deleted file]
data/keymaps/i386/qwerty/pl2.map
data/keymaps/i386/qwerty/pt-latin9.map [new file with mode: 0644]
data/keymaps/i386/qwerty/ru-cp1251.map
data/keymaps/i386/qwerty/ru-ms.map
data/keymaps/i386/qwerty/ru-yawerty.map
data/keymaps/i386/qwerty/ru.map
data/keymaps/i386/qwerty/ru1.map
data/keymaps/i386/qwerty/ru2.map
data/keymaps/i386/qwerty/ru3.map
data/keymaps/i386/qwerty/ru4.map
data/keymaps/i386/qwerty/ru_win.map
data/keymaps/i386/qwerty/se-fi-ir209.map [new file with mode: 0644]
data/keymaps/i386/qwerty/se-fi-lat6.map [new file with mode: 0644]
data/keymaps/i386/qwerty/se-ir209.map [new file with mode: 0644]
data/keymaps/i386/qwerty/se-lat6.map [new file with mode: 0644]
data/keymaps/i386/qwerty/sk-prog-qwerty.map
data/keymaps/i386/qwerty/sk-qwerty.map
data/keymaps/i386/qwerty/sr-cy.map [new file with mode: 0644]
data/keymaps/i386/qwerty/sv-latin1.map [moved from data/keymaps/i386/qwerty/se-latin1.map with 100% similarity]
data/keymaps/i386/qwerty/ua-utf-ws.map
data/keymaps/i386/qwerty/ua-utf.map
data/keymaps/i386/qwerty/ua-ws.map
data/keymaps/i386/qwerty/ua.map
data/keymaps/i386/qwerty/us-acentos.map
data/keymaps/i386/qwertz/cz-us-qwertz.map
data/keymaps/i386/qwertz/sg-latin1-lk450.map
data/keymaps/i386/qwertz/sg-latin1.map
data/keymaps/i386/qwertz/sg.map
data/keymaps/i386/qwertz/sk-prog-qwertz.map
data/keymaps/i386/qwertz/sk-qwertz.map
doc/A20/A20.html
doc/TODO
doc/kbd.FAQ-1.html
doc/kbd.FAQ-14.html
doc/kbd.FAQ-5.html
doc/kbd.FAQ-8.html
doc/kbd.FAQ.html
doc/kbd.FAQ.sgml
man/Makefile
man/man1/fgconsole.1 [new file with mode: 0644]
man/man1misc/codepage.1 [new file with mode: 0644]
man/man1misc/screendump.1 [new file with mode: 0644]
man/man5/keymaps.5
man/man8/setfont.8.in
man/man8/showconsolefont.8 [new file with mode: 0644]
man/man8misc/clrunimap.8 [new file with mode: 0644]
man/man8misc/getunimap.8 [new file with mode: 0644]
man/man8misc/mk_modmap.8 [new file with mode: 0644]
man/man8misc/setvesablank.8 [new file with mode: 0644]
openvt/openvt.c
openvt/openvt.h
po/Makefile
po/POTFILES.in
po/cat-id-tbl.c
po/es.po [new file with mode: 0644]
po/kbd.sv [new file with mode: 0644]
po/nl.po
po/ru.po
src/CHANGELOG [deleted file]
src/Makefile.in
src/README [deleted file]
src/deallocvt.c
src/fgconsole.c
src/findfile.c
src/getfd.c
src/kbdrate.c
src/ksyms.c
src/loadkeys.y
src/mapscrn.c
src/resizecons.c
src/sami.syms.h [new file with mode: 0644]
src/screendump.c
src/setleds.c
src/setpalette.c [new file with mode: 0644]
src/setvesablank.c
src/showconsolefont.c [moved from src/showfont.c with 96% similarity]
src/spawn_console.c
src/spawn_login.c
src/version.h

diff --git a/CHANGES b/CHANGES
index 190924f..019f6ea 100644 (file)
--- a/CHANGES
+++ b/CHANGES
-Changes from the prerelease to version 0.8:
-
-o Enhanced the shorthand notation `keycode xx = a', where `a' is an
-  ASCII letter and changed `dumpkeys' and `loadkeys' accordingly.
-  Now this entry defines useful values in shift+control, meta+shift,
-  meta+control and meta+control+shift keytables, too. AltGr entries
-  also default now to the value of non-AltGr entries.
-o Added the possibility to split long lines into multiple shorter ones
-  by appending a backslash at the end of each partial line.
-o Added a version number and a short usage message to `dumpkeys'
-o Added the options --short-info, --long-info (replaces the symbol
-  dump, -s), --numeric, --full-table, --funcs-only, --keys-only to
-  `dumpkeys'. See manpage for more info.
-o Added a version number, a short usage message and the ability to load
-  multiple map files at a time to `loadkeys'.
-o Added the utility `mktable' to generate the kernel default binding
-  table automatically from the currently loaded keytable.
-o Added the utility `showkey' for interactively inspecting the
-  scancodes and keycode values sent by key presses and releases.
-o Fixed the value of Uncaps_Shift, eliminated obsolete Map_xx symbols
-o Added Meta_Control_xxx symbols.
-o Added symbols for locking modifiers (kernel 0.99pl12 doesn't support this)
-
-Changes from version 0.8 to version 0.81:
-
-o Updated and fixed the keytable files
-o Minor additions to the loadkeys man page
-o Added support for ISO 8859-{2,3,4} character symbols, updated
-  dumpkeys man page accordingly
-
-Changes from version 0.81 to version 0.82 (aeb@cwi.nl):
-
-o Made mktable an option of loadkeys, so that the file defkeymap.c
-  produced is independent of the current kernel, and independent of
-  the current keyboard settings. (The old mktable program is now
-  obsolete.)
-o After  dumpkeys > x; loadkeys x; dumpkeys > y  the files x and y
-  should be identical. They were not. I hope they are now.
-o Showkey now restores the original keyboard mode.
-o Loadkeys now accepts quotes and backslashes in strings.
-o Added compose key support.
-
-Changes for 0.83 (aeb):
-
-o Added KT_LETTER, so that CapsLock can work correctly.
-  For the time being, this is denoted by a leading + in the keymap.
-o Added setfont, showfont, mapscrn.
-o Added setleds, setmetamode.
-o Put data by default in three subdirectories of /usr/lib/kbd.
-
-Changes for 0.84 (aeb):
-
-o Added more compose key support to loadkeys.
-o Setfont, loadkeys and mapscrn look by default in /usr/lib/kbd/*.
-o Setfont can read codepage font files (and select a font from them).
-o Many minor changes.
-
-Changes for 0.85-0.86 (aeb):
-
-o Minor things only. Added contributed keymaps and fonts.
-
-Changes for 0.87 (aeb):
-
-o Added iso-8859-8 support. Added "charset" directive.
-o Corrected a typo in "trivial".
-o Added kbd_mode.
-o Extended kbd.FAQ. Added contributed keymaps and fonts.
-
-Changes for 0.88 (aeb):
-
-o Added dynamic keymap support. Added "keymaps" directive.
-o Added dynamic console allocation. Added disalloc.
-o Added resize.
-o Changed LED handling.
-o Added the contributed codepage.c (to extract codepages from a
-  DOS .cpi file).
-o Many minor changes.
-
-Changes for 0.89 (aeb):
-
-o Some minor things.
-
-Changes for 0.90 (aeb):
-
-o Changed setfont to subsume mapscrn and escape sequence.
-o Added hpa's psftable stuff.
-o Added Unicode stuff (requires kernel 1.1.92 or later).
+Changes for 1.08
 
-Changes for 0.91 (aeb):
-
-o Added hpa's setfont patch.
-
-Changes for 0.94 (aeb):
-
-o Added keyword alt_is_meta.
-
-Changes for 0.96 (aeb):
-
-o Added keywords like strings_as_usual. Added keymap include files.
-o Reorganized keymap directory.
-o Added loading of compressed fonts.
-o Added iso-8859-9 handling.
-o Added -a option to showkey.
+o Programs:
+  - loadkeys.y: fix for bison 1.50 (Per Lidén)
+  - loadkeys.y: fix in addfunc()
+  - Makefile etc: minor cleanup (Daniel R. Grayson)
+  - Makefile etc: --prefix support (Michael Covi)
+o Keymaps:
+  - passim: don't map PrtSc to Ctrl-\ so that poor innocents do not
+    kill applications when they only want to print the screen;
+    only map Ctrl-PrtSc to Ctrl-\ (Kurt Garloff)
+  - modified fi-latin1.map, new fi-latin9.map (Marko Myllynen)
+  - bg-cp1251.map (Dimitar Zhekov)
+  - il-heb.map (Oded S. Resnik)
+  - sr-cy.map (Milos Rancic)
+  - fr-latin9.map (Guylhem Aznar), removed older fr-latin0.map.
 
-Changes for 0.98 (aeb):
+Changes for 1.07
 
-o Added internationalization and Dutch texts (nl.po)
+o Programs:
+  - showfont renamed to showconsolefont to avoid clash with X
+  - loadkeys.y: fix in addfunc() (Shigeharu Hirayma)
+  - loadkeys.y: handle relative symlinks (Matthias Benkmann)
+  - sami.syms.h: symbol definitions for Northern Sámi (Regnor Jernsletten)
+  - findfile.c: search entire dir before looking at subdirs (Matthias Benkmann)
+  - getfd.c, etc.: also try devfs names (Alastair McKinstry)
+  - kbdrate.c: do not use <linux/kd.h>: the struct elements changed name
+  - setleds: typo fixed
+o Man pages:
+  - New: fgconsole.1 (Alastair McKinstry)
+  - Added a few man[18]misc pages, for non-installed stuff (Alastair McKinstry)
+o Fonts:
+  - Added cyr-sun16.psfu (Bero)
+o Unimaps:
+  - Added cp1251_to_uni.trans, koi8-r_to_uni.trans, koi8-u_to_uni.trans (Bero)
+o Keymaps:
+  - Renamed the Swedish se-latin1.map to sv-latin1.map
+  - Added se-fi-ir209.map, se-fi-lat6.map, se-ir209.map, se-lat6.map
+    for Northern Sámi (Regnor Jernsletten)
+  - Added pt-latin9.map (Carlos Monteiro)
+  - The old nl.map was really bad. Renamed nl3.map to nl.map.
+  - fi-latin1.map small changes
+o Docs:
+  - kbd.FAQ: small additions
 
-Changes for 1.00 (aeb):
+Changes for 1.06 (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.
+o Programs:
+  - Some Makefile changes (Peter Breitenlohner)
+  - Added fgconsole to the installed programs
+  - resizecons.c: removed .psf extension from default fonts (bero)
+  - psffontop.c: correction to handling of unicode sequences (Kurt Garloff)
+  - loadkeys: work better in the presence of symlinks
+o Documentation:
+  - Removed scancode docs (these will be distributed separately, had grown to
+    over 1 MB; see also http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html)
+o Fonts:
+  - Added iso02-12x22.psfu (Jacek Lipkowski)
+  - Renamed sun-12x22.psfu to iso01-12x22.psfu since Kurt Garloff
+    explained that it was not the kernel font but a modified version.
+    Added the original sun-12x22.psfu.
+  - Renamed lat7-16.psfu to iso07u-16.psfu. (lat7 is iso13, not iso07)
+  - Added lat7a-14.psfu (earlier: lt-brim*) and lat7a-16.psf (bad fonts)
+  - Added lat7-14.psfu (ugly, but with the right characters)
+o Unimaps:
+  - Renamed lat7u.uni to iso07u.uni since it is not a Latin-7 map.
+  - Added lat7.uni
+o Keymaps (mostly Kurt Garloff, SuSE):
+  - Corrected br-latin1-abnt2.map (Frédéric Meunier), mac-de_CH.map,
+    sunt5-uk.map
+  - Added missing Latin-1 symbols to fi-latin1.map (Marko Myllynen)
+  - Added sundvorak.map, sunt4-no-latin1.map, sunt5-cz-us.map,
+    sunt5-us-cz.map, mac-dvorak.map, mac-qwertz-layout.inc
 
-Changes for 1.03 (aeb):
+Changes for 1.05 (aeb)
 
-o Added doc/scancodes/* with information on the scancodes produced
-  by PC keyboards.
-o Added by.map.
-o Added Unicode maps to Greek fonts.
+o Programs:
+  - kdmapop.c, kdmapop.h, utf8.c, utf8.h: new
+  - loadunimap.c: also allow a range mapped to a single Unicode symbol
+  - mapscrn.c: also allow a character given as utf8 string
+  - mapscrn.c: handle PIO_SCRNMAP and PIO_UNISCRNMAP with same -m/-om options
+  - showfont.c: also show fonts larger than 256 glyphs
+  - unicode_start: updated; added text from Bruno Haible
+o Documentation:
+  - font-formats, unicode_start.1, unicode_stop.1: new
+  - loadunimap.8, mapscrn.8, setfont.8: updated
+o Fonts:
+  - Added drdos8xN.psfu
+o Unimaps:
+  - Added cybercafe.uni
+o Console translations:
+  - Added 8859-N_to_uni.trans, cpNNNN_to_uni.trans
+o Data:
+  - Corrected corrupted 737.cp, lat5-N.psfu, baltic.trans
 
 Changes for 1.04 (aeb, Olaf Hering, Kurt Garloff):
 
@@ -165,53 +130,133 @@ o Fonts:
   - Added cybercafe.fnt, sun12x22.psfu, cp1250.psfu,
     cp857.08, cp857.14, cp857.16.
 
-Changes for 1.05 (aeb)
+Changes for 1.03 (aeb):
 
-o Programs:
-  - kdmapop.c, kdmapop.h, utf8.c, utf8.h: new
-  - loadunimap.c: also allow a range mapped to a single Unicode symbol
-  - mapscrn.c: also allow a character given as utf8 string
-  - mapscrn.c: handle PIO_SCRNMAP and PIO_UNISCRNMAP with same -m/-om options
-  - showfont.c: also show fonts larger than 256 glyphs
-  - unicode_start: updated; added text from Bruno Haible
-o Documentation:
-  - font-formats, unicode_start.1, unicode_stop.1: new
-  - loadunimap.8, mapscrn.8, setfont.8: updated
-o Fonts:
-  - Added drdos8xN.psfu
-o Unimaps:
-  - Added cybercafe.uni
-o Console translations:
-  - Added 8859-N_to_uni.trans, cpNNNN_to_uni.trans
-o Data:
-  - Corrected corrupted 737.cp, lat5-N.psfu, baltic.trans
+o Added doc/scancodes/* with information on the scancodes produced
+  by PC keyboards.
+o Added by.map.
+o Added Unicode maps to Greek fonts.
 
-Changes for 1.06 (aeb)
+Changes for 1.00 (aeb):
 
-o Programs:
-  - Some Makefile changes (Peter Breitenlohner)
-  - Added fgconsole to the installed programs
-  - resizecons.c: removed .psf extension from default fonts (bero)
-  - psffontop.c: correction to handling of unicode sequences (Kurt Garloff)
-  - loadkeys: work better in the presence of symlinks
-o Documentation:
-  - Removed scancode docs (these will be distributed separately, had grown to
-    over 1 MB; see also http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html)
-o Fonts:
-  - Added iso02-12x22.psfu (Jacek Lipkowski)
-  - Renamed sun-12x22.psfu to iso01-12x22.psfu since Kurt Garloff
-    explained that it was not the kernel font but a modified version.
-    Added the original sun-12x22.psfu.
-  - Renamed lat7-16.psfu to iso07u-16.psfu. (lat7 is iso13, not iso07)
-  - Added lat7a-14.psfu (earlier: lt-brim*) and lat7a-16.psf (bad fonts)
-  - Added lat7-14.psfu (ugly, but with the right characters)
-o Unimaps:
-  - Renamed lat7u.uni to iso07u.uni since it is not a Latin-7 map.
-  - Added lat7.uni
-o Keymaps (mostly Kurt Garloff, SuSE):
-  - Corrected br-latin1-abnt2.map (Frédéric Meunier), mac-de_CH.map,
-    sunt5-uk.map
-  - Added missing Latin-1 symbols to fi-latin1.map (Marko Myllynen)
-  - Added sundvorak.map, sunt4-no-latin1.map, sunt5-cz-us.map,
-    sunt5-us-cz.map, mac-dvorak.map, mac-qwertz-layout.inc
+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.
+
+Changes for 0.98 (aeb):
+
+o Added internationalization and Dutch texts (nl.po)
+
+Changes for 0.96 (aeb):
+
+o Added keywords like strings_as_usual. Added keymap include files.
+o Reorganized keymap directory.
+o Added loading of compressed fonts.
+o Added iso-8859-9 handling.
+o Added -a option to showkey.
+
+Changes for 0.94 (aeb):
+
+o Added keyword alt_is_meta.
+
+Changes for 0.91 (aeb):
+
+o Added hpa's setfont patch.
+
+Changes for 0.90 (aeb):
+
+o Changed setfont to subsume mapscrn and escape sequence.
+o Added hpa's psftable stuff.
+o Added Unicode stuff (requires kernel 1.1.92 or later).
+
+Changes for 0.89 (aeb):
+
+o Some minor things.
+
+Changes for 0.88 (aeb):
+
+o Added dynamic keymap support. Added "keymaps" directive.
+o Added dynamic console allocation. Added disalloc.
+o Added resize.
+o Changed LED handling.
+o Added the contributed codepage.c (to extract codepages from a
+  DOS .cpi file).
+o Many minor changes.
+
+Changes for 0.87 (aeb):
+
+o Added iso-8859-8 support. Added "charset" directive.
+o Corrected a typo in "trivial".
+o Added kbd_mode.
+o Extended kbd.FAQ. Added contributed keymaps and fonts.
+
+Changes for 0.85-0.86 (aeb):
+
+o Minor things only. Added contributed keymaps and fonts.
+
+Changes for 0.84 (aeb):
+
+o Added more compose key support to loadkeys.
+o Setfont, loadkeys and mapscrn look by default in /usr/lib/kbd/*.
+o Setfont can read codepage font files (and select a font from them).
+o Many minor changes.
+
+Changes for 0.83 (aeb):
+
+o Added KT_LETTER, so that CapsLock can work correctly.
+  For the time being, this is denoted by a leading + in the keymap.
+o Added setfont, showfont, mapscrn.
+o Added setleds, setmetamode.
+o Put data by default in three subdirectories of /usr/lib/kbd.
+
+Changes from version 0.81 to version 0.82 (aeb@cwi.nl):
+
+o Made mktable an option of loadkeys, so that the file defkeymap.c
+  produced is independent of the current kernel, and independent of
+  the current keyboard settings. (The old mktable program is now
+  obsolete.)
+o After  dumpkeys > x; loadkeys x; dumpkeys > y  the files x and y
+  should be identical. They were not. I hope they are now.
+o Showkey now restores the original keyboard mode.
+o Loadkeys now accepts quotes and backslashes in strings.
+o Added compose key support.
+
+Changes from version 0.8 to version 0.81:
+
+o Updated and fixed the keytable files
+o Minor additions to the loadkeys man page
+o Added support for ISO 8859-{2,3,4} character symbols, updated
+  dumpkeys man page accordingly
+
+Changes from the prerelease to version 0.8:
+
+o Enhanced the shorthand notation `keycode xx = a', where `a' is an
+  ASCII letter and changed `dumpkeys' and `loadkeys' accordingly.
+  Now this entry defines useful values in shift+control, meta+shift,
+  meta+control and meta+control+shift keytables, too. AltGr entries
+  also default now to the value of non-AltGr entries.
+o Added the possibility to split long lines into multiple shorter ones
+  by appending a backslash at the end of each partial line.
+o Added a version number and a short usage message to `dumpkeys'
+o Added the options --short-info, --long-info (replaces the symbol
+  dump, -s), --numeric, --full-table, --funcs-only, --keys-only to
+  `dumpkeys'. See manpage for more info.
+o Added a version number, a short usage message and the ability to load
+  multiple map files at a time to `loadkeys'.
+o Added the utility `mktable' to generate the kernel default binding
+  table automatically from the currently loaded keytable.
+o Added the utility `showkey' for interactively inspecting the
+  scancodes and keycode values sent by key presses and releases.
+o Fixed the value of Uncaps_Shift, eliminated obsolete Map_xx symbols
+o Added Meta_Control_xxx symbols.
+o Added symbols for locking modifiers (kernel 0.99pl12 doesn't support this)
 
diff --git a/COPYING b/COPYING
index ad1325d..46f4eba 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -20,8 +20,8 @@ The files
        chvt.c clrunimap.c deallocvt.c fgconsole.c findfile.c
        getfd.c getkeycodes.c getunimap.c kbd_mode.c loadunimap.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
+       setleds.c setmetamode.c setvesablank.c showconsolefont.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.*
index 733a704..b9dcbfb 100644 (file)
@@ -1,9 +1,10 @@
 # Note: BINDIR, DATA_DIR, and DESTDIR also occur in src/Makefile.
+DESTDIR = @prefix@
 DATA_DIR = @datadir@
 MAN_DIR = @mandir@
-BINDIR  = $(DESTDIR)/usr/bin
-MANDIR  = $(DESTDIR)$(MAN_DIR)
-DATADIR = $(DESTDIR)$(DATA_DIR)
+BINDIR  = $(DESTDIR)/bin
+MANDIR  = $(MAN_DIR)
+DATADIR = $(DATA_DIR)
 # If you change the names of any of the following subdirs,
 # also change paths.h.
 OLDKEYMAPDIR = keytables
@@ -17,20 +18,18 @@ KEYMAPSUBDIRS = include sun amiga atari i386/azerty i386/dvorak i386/fgGIod i386
 # Do not use GZIP - it is interpreted by gzip
 MYGZIP = gzip -f -9
 
-DIR    = kbd-1.06
-
 SUBDIRS = src openvt po
 
 .EXPORT_ALL_VARIABLES:
 
 all:
-       for i in $(SUBDIRS) data; do (cd $$i && $(MAKE) all); done
+       for i in $(SUBDIRS) data; do $(MAKE) -C $$i all || exit 1; done
        @echo "Done. You can now do  make install"
 
 install:       install-progs install-data install-man
 
 install-progs:
-       for i in $(SUBDIRS); do (cd $$i && $(MAKE) install); done
+       for i in $(SUBDIRS); do $(MAKE) -C $$i install || exit 1; done
 
 install-man:
        cd man && $(MAKE) install
@@ -38,16 +37,13 @@ install-man:
 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
+       for i in $(SUBDIRS); do $(MAKE) -C $$i clean || exit 1; done
        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
+       for i in $(SUBDIRS); do $(MAKE) -C $$i distclean || exit 1; done
        rm -f Makefile src/Makefile make_include defines.h
 
diff --git a/README b/README
index 44a7107..d5c53a5 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is kbd-1.06.tar.gz
+This is kbd-1.08.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.
@@ -19,7 +19,9 @@ This directory can now be removed. (Just to be sure, preserve a copy
 of your favourite keymap, for example in /usr/lib/kbd/keymaps/mykeymap.
 Note that it may be used from a script in /etc/rc.d/rc.local or so.)
 
+The home site of this package is
+       ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/
 Report problems with this package to Andries Brouwer <aeb@cwi.nl>.
 
-May 2001
+Oct 2002
 
index 19b943b..a6d84f1 100755 (executable)
--- a/configure
+++ b/configure
@@ -8,6 +8,7 @@
 #  New default: /usr/share/kbd
 #
 
+prefix=
 datadir=
 mandir=
 nls=1
@@ -22,63 +23,84 @@ for arg in $*; do
                --da*)
                        datadir=$optarg
                        ;;
+               --di*)
+                       nls=0
+                       ;;
                --ma*)
                        mandir=$optarg
                        ;;
-               --di*)
-                       nls=0
+               --pr*)
+                       prefix=$optarg
                        ;;
                *)
-                       echo "usage: configure [--datadir=DATADIR] [--mandir=MANDIR]"
+                       echo "usage: configure [--prefix=PREFIXDIR] [--datadir=DATADIR] [--mandir=MANDIR]"
                        exit 1
                        ;;
        esac
 done
 
+if [ x$prefix = x ]; then
+       # the default case - don't bother the user with messages
+       prefix=/usr
+else
+    case "$prefix" in
+       /*)
+           echo "Configuring for PREFIX=$prefix"
+           ;;
+       *)
+           echo "PREFIX must have a leading slash"
+           exit 1
+           ;;
+    esac
+fi
+
 if [ x$datadir = x ]; then
-       if [ -d /usr/lib/kbd ]; then
-               datadir=/usr/lib/kbd
-       elif [ -d /usr/share/consolefonts ]; then
-               datadir=/usr/share
-       elif [ -d /usr/share ]; then
-               datadir=/usr/share/kbd
+       if [ -d $prefix/lib/kbd ]; then
+               datadir=$prefix/lib/kbd
+       elif [ -d $prefix/share/consolefonts ]; then
+               datadir=$prefix/share
+       elif [ -d $prefix/share ]; then
+               datadir=$prefix/share/kbd
        else
-               datadir=/usr/lib/kbd
+               datadir=$prefix/lib/kbd
        fi
-fi
-
-case "$datadir" in
+else
+    case "$datadir" in
        /*)
+               datadir="$prefix$datadir"
                echo "Configuring for DATADIR=$datadir"
                ;;
        *)
                echo "DATADIR must have a leading slash"
                exit 1
                ;;
-esac
+    esac
+fi
 
 if [ x$mandir = x ]; then
-       if [ -d /usr/share/man ]; then
-               mandir=/usr/share/man
+       if [ -d $prefix/share/man ]; then
+               mandir=$prefix/share/man
        else
-               mandir=/usr/man
+               mandir=$prefix/man
        fi
-fi
-
-case "$mandir" in
+else
+    case "$mandir" in
        /*)
+               mandir="$prefix$mandir"
                echo "Configuring for MANDIR=$mandir"
                ;;
        *)
                echo "MANDIR must have a leading slash"
                exit 1
                ;;
-esac
+    esac
+fi
 
 for i in Makefile src/Makefile man/man1/dumpkeys.1 man/man1/loadkeys.1 man/man8/setfont.8 man/man8/loadunimap.8 man/man8/mapscrn.8; do
        sed -e "
 s,@datadir@,$datadir,
 s,@mandir@,$mandir,
+s,@prefix@,$prefix,
 " $i.in > $i
 done
 
similarity index 81%
rename from contrib/showfont
rename to contrib/showconsolefont
index 7b60dc5..7767255 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # From klaus.stehle@uni-tuebingen.de Tue Jan 25 07:24:02 2000
 #
-# A small shell script version of the `showfont' program
+# A small shell script version of the `showconsolefont' C program
 #
 
 echo -e "\033%G"
diff --git a/data/consolefonts/cyr-sun16.psfu b/data/consolefonts/cyr-sun16.psfu
new file mode 100644 (file)
index 0000000..a5f0923
Binary files /dev/null and b/data/consolefonts/cyr-sun16.psfu differ
diff --git a/data/consoletrans/cp1251_to_uni.trans b/data/consoletrans/cp1251_to_uni.trans
new file mode 100644 (file)
index 0000000..c6cb135
--- /dev/null
@@ -0,0 +1,255 @@
+0x00 U+0000  #  NULL (NUL)
+0x01 U+0001  #  START OF HEADING (SOH)
+0x02 U+0002  #  START OF TEXT (STX)
+0x03 U+0003  #  END OF TEXT (ETX)
+0x04 U+0004  #  END OF TRANSMISSION (EOT)
+0x05 U+0005  #  ENQUIRY (ENQ)
+0x06 U+0006  #  ACKNOWLEDGE (ACK)
+0x07 U+0007  #  BELL (BEL)
+0x08 U+0008  #  BACKSPACE (BS)
+0x09 U+0009  #  CHARACTER TABULATION (HT)
+0x0a U+000A  #  LINE FEED (LF)
+0x0b U+000B  #  LINE TABULATION (VT)
+0x0c U+000C  #  FORM FEED (FF)
+0x0d U+000D  #  CARRIAGE RETURN (CR)
+0x0e U+000E  #  SHIFT OUT (SO)
+0x0f U+000F  #  SHIFT IN (SI)
+0x10 U+0010  #  DATALINK ESCAPE (DLE)
+0x11 U+0011  #  DEVICE CONTROL ONE (DC1)
+0x12 U+0012  #  DEVICE CONTROL TWO (DC2)
+0x13 U+0013  #  DEVICE CONTROL THREE (DC3)
+0x14 U+0014  #  DEVICE CONTROL FOUR (DC4)
+0x15 U+0015  #  NEGATIVE ACKNOWLEDGE (NAK)
+0x16 U+0016  #  SYNCHRONOUS IDLE (SYN)
+0x17 U+0017  #  END OF TRANSMISSION BLOCK (ETB)
+0x18 U+0018  #  CANCEL (CAN)
+0x19 U+0019  #  END OF MEDIUM (EM)
+0x1a U+001A  #  SUBSTITUTE (SUB)
+0x1b U+001B  #  ESCAPE (ESC)
+0x1c U+001C  #  FILE SEPARATOR (IS4)
+0x1d U+001D  #  GROUP SEPARATOR (IS3)
+0x1e U+001E  #  RECORD SEPARATOR (IS2)
+0x1f U+001F  #  UNIT SEPARATOR (IS1)
+0x20 U+0020  #  SPACE
+0x21 U+0021  #  EXCLAMATION MARK
+0x22 U+0022  #  QUOTATION MARK
+0x23 U+0023  #  NUMBER SIGN
+0x24 U+0024  #  DOLLAR SIGN
+0x25 U+0025  #  PERCENT SIGN
+0x26 U+0026  #  AMPERSAND
+0x27 U+0027  #  APOSTROPHE
+0x28 U+0028  #  LEFT PARENTHESIS
+0x29 U+0029  #  RIGHT PARENTHESIS
+0x2a U+002A  #  ASTERISK
+0x2b U+002B  #  PLUS SIGN
+0x2c U+002C  #  COMMA
+0x2d U+002D  #  HYPHEN-MINUS
+0x2e U+002E  #  FULL STOP
+0x2f U+002F  #  SOLIDUS
+0x30 U+0030  #  DIGIT ZERO
+0x31 U+0031  #  DIGIT ONE
+0x32 U+0032  #  DIGIT TWO
+0x33 U+0033  #  DIGIT THREE
+0x34 U+0034  #  DIGIT FOUR
+0x35 U+0035  #  DIGIT FIVE
+0x36 U+0036  #  DIGIT SIX
+0x37 U+0037  #  DIGIT SEVEN
+0x38 U+0038  #  DIGIT EIGHT
+0x39 U+0039  #  DIGIT NINE
+0x3a U+003A  #  COLON
+0x3b U+003B  #  SEMICOLON
+0x3c U+003C  #  LESS-THAN SIGN
+0x3d U+003D  #  EQUALS SIGN
+0x3e U+003E  #  GREATER-THAN SIGN
+0x3f U+003F  #  QUESTION MARK
+0x40 U+0040  #  COMMERCIAL AT
+0x41 U+0041  #  LATIN CAPITAL LETTER A
+0x42 U+0042  #  LATIN CAPITAL LETTER B
+0x43 U+0043  #  LATIN CAPITAL LETTER C
+0x44 U+0044  #  LATIN CAPITAL LETTER D
+0x45 U+0045  #  LATIN CAPITAL LETTER E
+0x46 U+0046  #  LATIN CAPITAL LETTER F
+0x47 U+0047  #  LATIN CAPITAL LETTER G
+0x48 U+0048  #  LATIN CAPITAL LETTER H
+0x49 U+0049  #  LATIN CAPITAL LETTER I
+0x4a U+004A  #  LATIN CAPITAL LETTER J
+0x4b U+004B  #  LATIN CAPITAL LETTER K
+0x4c U+004C  #  LATIN CAPITAL LETTER L
+0x4d U+004D  #  LATIN CAPITAL LETTER M
+0x4e U+004E  #  LATIN CAPITAL LETTER N
+0x4f U+004F  #  LATIN CAPITAL LETTER O
+0x50 U+0050  #  LATIN CAPITAL LETTER P
+0x51 U+0051  #  LATIN CAPITAL LETTER Q
+0x52 U+0052  #  LATIN CAPITAL LETTER R
+0x53 U+0053  #  LATIN CAPITAL LETTER S
+0x54 U+0054  #  LATIN CAPITAL LETTER T
+0x55 U+0055  #  LATIN CAPITAL LETTER U
+0x56 U+0056  #  LATIN CAPITAL LETTER V
+0x57 U+0057  #  LATIN CAPITAL LETTER W
+0x58 U+0058  #  LATIN CAPITAL LETTER X
+0x59 U+0059  #  LATIN CAPITAL LETTER Y
+0x5a U+005A  #  LATIN CAPITAL LETTER Z
+0x5b U+005B  #  LEFT SQUARE BRACKET
+0x5c U+005C  #  REVERSE SOLIDUS
+0x5d U+005D  #  RIGHT SQUARE BRACKET
+0x5e U+005E  #  CIRCUMFLEX ACCENT
+0x5f U+005F  #  LOW LINE
+0x60 U+0060  #  GRAVE ACCENT
+0x61 U+0061  #  LATIN SMALL LETTER A
+0x62 U+0062  #  LATIN SMALL LETTER B
+0x63 U+0063  #  LATIN SMALL LETTER C
+0x64 U+0064  #  LATIN SMALL LETTER D
+0x65 U+0065  #  LATIN SMALL LETTER E
+0x66 U+0066  #  LATIN SMALL LETTER F
+0x67 U+0067  #  LATIN SMALL LETTER G
+0x68 U+0068  #  LATIN SMALL LETTER H
+0x69 U+0069  #  LATIN SMALL LETTER I
+0x6a U+006A  #  LATIN SMALL LETTER J
+0x6b U+006B  #  LATIN SMALL LETTER K
+0x6c U+006C  #  LATIN SMALL LETTER L
+0x6d U+006D  #  LATIN SMALL LETTER M
+0x6e U+006E  #  LATIN SMALL LETTER N
+0x6f U+006F  #  LATIN SMALL LETTER O
+0x70 U+0070  #  LATIN SMALL LETTER P
+0x71 U+0071  #  LATIN SMALL LETTER Q
+0x72 U+0072  #  LATIN SMALL LETTER R
+0x73 U+0073  #  LATIN SMALL LETTER S
+0x74 U+0074  #  LATIN SMALL LETTER T
+0x75 U+0075  #  LATIN SMALL LETTER U
+0x76 U+0076  #  LATIN SMALL LETTER V
+0x77 U+0077  #  LATIN SMALL LETTER W
+0x78 U+0078  #  LATIN SMALL LETTER X
+0x79 U+0079  #  LATIN SMALL LETTER Y
+0x7a U+007A  #  LATIN SMALL LETTER Z
+0x7b U+007B  #  LEFT CURLY BRACKET
+0x7c U+007C  #  VERTICAL LINE
+0x7d U+007D  #  RIGHT CURLY BRACKET
+0x7e U+007E  #  TILDE
+0x7f U+007F  #  DELETE (DEL)
+0x80 U+0402  #  CYRILLIC CAPITAL LETTER DJE (Serbocroatian)
+0x81 U+0403  #  CYRILLIC CAPITAL LETTER GJE
+0x82 U+201A  #  SINGLE LOW-9 QUOTATION MARK
+0x83 U+0453  #  CYRILLIC SMALL LETTER GJE
+0x84 U+201E  #  DOUBLE LOW-9 QUOTATION MARK
+0x85 U+2026  #  HORIZONTAL ELLIPSIS
+0x86 U+2020  #  DAGGER
+0x87 U+2021  #  DOUBLE DAGGER
+0x88 U+20AC  #  EURO SIGN
+0x89 U+2030  #  PER MILLE SIGN
+0x8a U+0409  #  CYRILLIC CAPITAL LETTER LJE
+0x8b U+2039  #  SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+0x8c U+040A  #  CYRILLIC CAPITAL LETTER NJE
+0x8d U+040C  #  CYRILLIC CAPITAL LETTER KJE
+0x8e U+040B  #  CYRILLIC CAPITAL LETTER TSHE (Serbocroatian)
+0x8f U+040F  #  CYRILLIC CAPITAL LETTER DZHE
+0x90 U+0452  #  CYRILLIC SMALL LETTER DJE (Serbocroatian)
+0x91 U+2018  #  LEFT SINGLE QUOTATION MARK
+0x92 U+2019  #  RIGHT SINGLE QUOTATION MARK
+0x93 U+201C  #  LEFT DOUBLE QUOTATION MARK
+0x94 U+201D  #  RIGHT DOUBLE QUOTATION MARK
+0x95 U+2022  #  BULLET
+0x96 U+2013  #  EN DASH
+0x97 U+2014  #  EM DASH
+0x99 U+2122  #  TRADE MARK SIGN
+0x9a U+0459  #  CYRILLIC SMALL LETTER LJE
+0x9b U+203A  #  SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+0x9c U+045A  #  CYRILLIC SMALL LETTER NJE
+0x9d U+045C  #  CYRILLIC SMALL LETTER KJE
+0x9e U+045B  #  CYRILLIC SMALL LETTER TSHE (Serbocroatian)
+0x9f U+045F  #  CYRILLIC SMALL LETTER DZHE
+0xa0 U+00A0  #  NO-BREAK SPACE
+0xa1 U+040E  #  CYRILLIC CAPITAL LETTER SHORT U (Byelorussian)
+0xa2 U+045E  #  CYRILLIC SMALL LETTER SHORT U (Byelorussian)
+0xa3 U+0408  #  CYRILLIC CAPITAL LETTER JE
+0xa4 U+00A4  #  CURRENCY SIGN
+0xa5 U+0490  #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0xa6 U+00A6  #  BROKEN BAR
+0xa7 U+00A7  #  SECTION SIGN
+0xa8 U+0401  #  CYRILLIC CAPITAL LETTER IO
+0xa9 U+00A9  #  COPYRIGHT SIGN
+0xaa U+0404  #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xab U+00AB  #  LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xac U+00AC  #  NOT SIGN
+0xad U+00AD  #  SOFT HYPHEN
+0xae U+00AE  #  REGISTERED SIGN
+0xaf U+0407  #  CYRILLIC CAPITAL LETTER YI (Ukrainian)
+0xb0 U+00B0  #  DEGREE SIGN
+0xb1 U+00B1  #  PLUS-MINUS SIGN
+0xb2 U+0406  #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0xb3 U+0456  #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0xb4 U+0491  #  CYRILLIC SMALL LETTER GHE WITH UPTURN
+0xb5 U+00B5  #  MICRO SIGN
+0xb6 U+00B6  #  PILCROW SIGN
+0xb7 U+00B7  #  MIDDLE DOT
+0xb8 U+0451  #  CYRILLIC SMALL LETTER IO
+0xb9 U+2116  #  NUMERO SIGN
+0xba U+0454  #  CYRILLIC SMALL LETTER UKRAINIAN IE
+0xbb U+00BB  #  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0xbc U+0458  #  CYRILLIC SMALL LETTER JE
+0xbd U+0405  #  CYRILLIC CAPITAL LETTER DZE
+0xbe U+0455  #  CYRILLIC SMALL LETTER DZE
+0xbf U+0457  #  CYRILLIC SMALL LETTER YI (Ukrainian)
+0xc0 U+0410  #  CYRILLIC CAPITAL LETTER A
+0xc1 U+0411  #  CYRILLIC CAPITAL LETTER BE
+0xc2 U+0412  #  CYRILLIC CAPITAL LETTER VE
+0xc3 U+0413  #  CYRILLIC CAPITAL LETTER GHE
+0xc4 U+0414  #  CYRILLIC CAPITAL LETTER DE
+0xc5 U+0415  #  CYRILLIC CAPITAL LETTER IE
+0xc6 U+0416  #  CYRILLIC CAPITAL LETTER ZHE
+0xc7 U+0417  #  CYRILLIC CAPITAL LETTER ZE
+0xc8 U+0418  #  CYRILLIC CAPITAL LETTER I
+0xc9 U+0419  #  CYRILLIC CAPITAL LETTER SHORT I
+0xca U+041A  #  CYRILLIC CAPITAL LETTER KA
+0xcb U+041B  #  CYRILLIC CAPITAL LETTER EL
+0xcc U+041C  #  CYRILLIC CAPITAL LETTER EM
+0xcd U+041D  #  CYRILLIC CAPITAL LETTER EN
+0xce U+041E  #  CYRILLIC CAPITAL LETTER O
+0xcf U+041F  #  CYRILLIC CAPITAL LETTER PE
+0xd0 U+0420  #  CYRILLIC CAPITAL LETTER ER
+0xd1 U+0421  #  CYRILLIC CAPITAL LETTER ES
+0xd2 U+0422  #  CYRILLIC CAPITAL LETTER TE
+0xd3 U+0423  #  CYRILLIC CAPITAL LETTER U
+0xd4 U+0424  #  CYRILLIC CAPITAL LETTER EF
+0xd5 U+0425  #  CYRILLIC CAPITAL LETTER HA
+0xd6 U+0426  #  CYRILLIC CAPITAL LETTER TSE
+0xd7 U+0427  #  CYRILLIC CAPITAL LETTER CHE
+0xd8 U+0428  #  CYRILLIC CAPITAL LETTER SHA
+0xd9 U+0429  #  CYRILLIC CAPITAL LETTER SHCHA
+0xda U+042A  #  CYRILLIC CAPITAL LETTER HARD SIGN
+0xdb U+042B  #  CYRILLIC CAPITAL LETTER YERU
+0xdc U+042C  #  CYRILLIC CAPITAL LETTER SOFT SIGN
+0xdd U+042D  #  CYRILLIC CAPITAL LETTER E
+0xde U+042E  #  CYRILLIC CAPITAL LETTER YU
+0xdf U+042F  #  CYRILLIC CAPITAL LETTER YA
+0xe0 U+0430  #  CYRILLIC SMALL LETTER A
+0xe1 U+0431  #  CYRILLIC SMALL LETTER BE
+0xe2 U+0432  #  CYRILLIC SMALL LETTER VE
+0xe3 U+0433  #  CYRILLIC SMALL LETTER GHE
+0xe4 U+0434  #  CYRILLIC SMALL LETTER DE
+0xe5 U+0435  #  CYRILLIC SMALL LETTER IE
+0xe6 U+0436  #  CYRILLIC SMALL LETTER ZHE
+0xe7 U+0437  #  CYRILLIC SMALL LETTER ZE
+0xe8 U+0438  #  CYRILLIC SMALL LETTER I
+0xe9 U+0439  #  CYRILLIC SMALL LETTER SHORT I
+0xea U+043A  #  CYRILLIC SMALL LETTER KA
+0xeb U+043B  #  CYRILLIC SMALL LETTER EL
+0xec U+043C  #  CYRILLIC SMALL LETTER EM
+0xed U+043D  #  CYRILLIC SMALL LETTER EN
+0xee U+043E  #  CYRILLIC SMALL LETTER O
+0xef U+043F  #  CYRILLIC SMALL LETTER PE
+0xf0 U+0440  #  CYRILLIC SMALL LETTER ER
+0xf1 U+0441  #  CYRILLIC SMALL LETTER ES
+0xf2 U+0442  #  CYRILLIC SMALL LETTER TE
+0xf3 U+0443  #  CYRILLIC SMALL LETTER U
+0xf4 U+0444  #  CYRILLIC SMALL LETTER EF
+0xf5 U+0445  #  CYRILLIC SMALL LETTER HA
+0xf6 U+0446  #  CYRILLIC SMALL LETTER TSE
+0xf7 U+0447  #  CYRILLIC SMALL LETTER CHE
+0xf8 U+0448  #  CYRILLIC SMALL LETTER SHA
+0xf9 U+0449  #  CYRILLIC SMALL LETTER SHCHA
+0xfa U+044A  #  CYRILLIC SMALL LETTER HARD SIGN
+0xfb U+044B  #  CYRILLIC SMALL LETTER YERU
+0xfc U+044C  #  CYRILLIC SMALL LETTER SOFT SIGN
+0xfd U+044D  #  CYRILLIC SMALL LETTER E
+0xfe U+044E  #  CYRILLIC SMALL LETTER YU
+0xff U+044F  #  CYRILLIC SMALL LETTER YA
diff --git a/data/consoletrans/koi8-r_to_uni.trans b/data/consoletrans/koi8-r_to_uni.trans
new file mode 100644 (file)
index 0000000..6c6bd01
--- /dev/null
@@ -0,0 +1,256 @@
+0x00 U+0000  #  NULL (NUL)
+0x01 U+0001  #  START OF HEADING (SOH)
+0x02 U+0002  #  START OF TEXT (STX)
+0x03 U+0003  #  END OF TEXT (ETX)
+0x04 U+0004  #  END OF TRANSMISSION (EOT)
+0x05 U+0005  #  ENQUIRY (ENQ)
+0x06 U+0006  #  ACKNOWLEDGE (ACK)
+0x07 U+0007  #  BELL (BEL)
+0x08 U+0008  #  BACKSPACE (BS)
+0x09 U+0009  #  CHARACTER TABULATION (HT)
+0x0a U+000A  #  LINE FEED (LF)
+0x0b U+000B  #  LINE TABULATION (VT)
+0x0c U+000C  #  FORM FEED (FF)
+0x0d U+000D  #  CARRIAGE RETURN (CR)
+0x0e U+000E  #  SHIFT OUT (SO)
+0x0f U+000F  #  SHIFT IN (SI)
+0x10 U+0010  #  DATALINK ESCAPE (DLE)
+0x11 U+0011  #  DEVICE CONTROL ONE (DC1)
+0x12 U+0012  #  DEVICE CONTROL TWO (DC2)
+0x13 U+0013  #  DEVICE CONTROL THREE (DC3)
+0x14 U+0014  #  DEVICE CONTROL FOUR (DC4)
+0x15 U+0015  #  NEGATIVE ACKNOWLEDGE (NAK)
+0x16 U+0016  #  SYNCHRONOUS IDLE (SYN)
+0x17 U+0017  #  END OF TRANSMISSION BLOCK (ETB)
+0x18 U+0018  #  CANCEL (CAN)
+0x19 U+0019  #  END OF MEDIUM (EM)
+0x1a U+001A  #  SUBSTITUTE (SUB)
+0x1b U+001B  #  ESCAPE (ESC)
+0x1c U+001C  #  FILE SEPARATOR (IS4)
+0x1d U+001D  #  GROUP SEPARATOR (IS3)
+0x1e U+001E  #  RECORD SEPARATOR (IS2)
+0x1f U+001F  #  UNIT SEPARATOR (IS1)
+0x20 U+0020  #  SPACE
+0x21 U+0021  #  EXCLAMATION MARK
+0x22 U+0022  #  QUOTATION MARK
+0x23 U+0023  #  NUMBER SIGN
+0x24 U+0024  #  DOLLAR SIGN
+0x25 U+0025  #  PERCENT SIGN
+0x26 U+0026  #  AMPERSAND
+0x27 U+0027  #  APOSTROPHE
+0x28 U+0028  #  LEFT PARENTHESIS
+0x29 U+0029  #  RIGHT PARENTHESIS
+0x2a U+002A  #  ASTERISK
+0x2b U+002B  #  PLUS SIGN
+0x2c U+002C  #  COMMA
+0x2d U+002D  #  HYPHEN-MINUS
+0x2e U+002E  #  FULL STOP
+0x2f U+002F  #  SOLIDUS
+0x30 U+0030  #  DIGIT ZERO
+0x31 U+0031  #  DIGIT ONE
+0x32 U+0032  #  DIGIT TWO
+0x33 U+0033  #  DIGIT THREE
+0x34 U+0034  #  DIGIT FOUR
+0x35 U+0035  #  DIGIT FIVE
+0x36 U+0036  #  DIGIT SIX
+0x37 U+0037  #  DIGIT SEVEN
+0x38 U+0038  #  DIGIT EIGHT
+0x39 U+0039  #  DIGIT NINE
+0x3a U+003A  #  COLON
+0x3b U+003B  #  SEMICOLON
+0x3c U+003C  #  LESS-THAN SIGN
+0x3d U+003D  #  EQUALS SIGN
+0x3e U+003E  #  GREATER-THAN SIGN
+0x3f U+003F  #  QUESTION MARK
+0x40 U+0040  #  COMMERCIAL AT
+0x41 U+0041  #  LATIN CAPITAL LETTER A
+0x42 U+0042  #  LATIN CAPITAL LETTER B
+0x43 U+0043  #  LATIN CAPITAL LETTER C
+0x44 U+0044  #  LATIN CAPITAL LETTER D
+0x45 U+0045  #  LATIN CAPITAL LETTER E
+0x46 U+0046  #  LATIN CAPITAL LETTER F
+0x47 U+0047  #  LATIN CAPITAL LETTER G
+0x48 U+0048  #  LATIN CAPITAL LETTER H
+0x49 U+0049  #  LATIN CAPITAL LETTER I
+0x4a U+004A  #  LATIN CAPITAL LETTER J
+0x4b U+004B  #  LATIN CAPITAL LETTER K
+0x4c U+004C  #  LATIN CAPITAL LETTER L
+0x4d U+004D  #  LATIN CAPITAL LETTER M
+0x4e U+004E  #  LATIN CAPITAL LETTER N
+0x4f U+004F  #  LATIN CAPITAL LETTER O
+0x50 U+0050  #  LATIN CAPITAL LETTER P
+0x51 U+0051  #  LATIN CAPITAL LETTER Q
+0x52 U+0052  #  LATIN CAPITAL LETTER R
+0x53 U+0053  #  LATIN CAPITAL LETTER S
+0x54 U+0054  #  LATIN CAPITAL LETTER T
+0x55 U+0055  #  LATIN CAPITAL LETTER U
+0x56 U+0056  #  LATIN CAPITAL LETTER V
+0x57 U+0057  #  LATIN CAPITAL LETTER W
+0x58 U+0058  #  LATIN CAPITAL LETTER X
+0x59 U+0059  #  LATIN CAPITAL LETTER Y
+0x5a U+005A  #  LATIN CAPITAL LETTER Z
+0x5b U+005B  #  LEFT SQUARE BRACKET
+0x5c U+005C  #  REVERSE SOLIDUS
+0x5d U+005D  #  RIGHT SQUARE BRACKET
+0x5e U+005E  #  CIRCUMFLEX ACCENT
+0x5f U+005F  #  LOW LINE
+0x60 U+0060  #  GRAVE ACCENT
+0x61 U+0061  #  LATIN SMALL LETTER A
+0x62 U+0062  #  LATIN SMALL LETTER B
+0x63 U+0063  #  LATIN SMALL LETTER C
+0x64 U+0064  #  LATIN SMALL LETTER D
+0x65 U+0065  #  LATIN SMALL LETTER E
+0x66 U+0066  #  LATIN SMALL LETTER F
+0x67 U+0067  #  LATIN SMALL LETTER G
+0x68 U+0068  #  LATIN SMALL LETTER H
+0x69 U+0069  #  LATIN SMALL LETTER I
+0x6a U+006A  #  LATIN SMALL LETTER J
+0x6b U+006B  #  LATIN SMALL LETTER K
+0x6c U+006C  #  LATIN SMALL LETTER L
+0x6d U+006D  #  LATIN SMALL LETTER M
+0x6e U+006E  #  LATIN SMALL LETTER N
+0x6f U+006F  #  LATIN SMALL LETTER O
+0x70 U+0070  #  LATIN SMALL LETTER P
+0x71 U+0071  #  LATIN SMALL LETTER Q
+0x72 U+0072  #  LATIN SMALL LETTER R
+0x73 U+0073  #  LATIN SMALL LETTER S
+0x74 U+0074  #  LATIN SMALL LETTER T
+0x75 U+0075  #  LATIN SMALL LETTER U
+0x76 U+0076  #  LATIN SMALL LETTER V
+0x77 U+0077  #  LATIN SMALL LETTER W
+0x78 U+0078  #  LATIN SMALL LETTER X
+0x79 U+0079  #  LATIN SMALL LETTER Y
+0x7a U+007A  #  LATIN SMALL LETTER Z
+0x7b U+007B  #  LEFT CURLY BRACKET
+0x7c U+007C  #  VERTICAL LINE
+0x7d U+007D  #  RIGHT CURLY BRACKET
+0x7e U+007E  #  TILDE
+0x7f U+007F  #  DELETE (DEL)
+0x80 U+2500  #  BOX DRAWINGS LIGHT HORIZONTAL
+0x81 U+2502  #  BOX DRAWINGS LIGHT VERTICAL
+0x82 U+250C  #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+0x83 U+2510  #  BOX DRAWINGS LIGHT DOWN AND LEFT
+0x84 U+2514  #  BOX DRAWINGS LIGHT UP AND RIGHT
+0x85 U+2518  #  BOX DRAWINGS LIGHT UP AND LEFT
+0x86 U+251C  #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0x87 U+2524  #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0x88 U+252C  #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0x89 U+2534  #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0x8a U+253C  #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0x8b U+2580  #  UPPER HALF BLOCK
+0x8c U+2584  #  LOWER HALF BLOCK
+0x8d U+2588  #  FULL BLOCK
+0x8e U+258C  #  LEFT HALF BLOCK
+0x8f U+2590  #  RIGHT HALF BLOCK
+0x90 U+2591  #  LIGHT SHADE
+0x91 U+2592  #  MEDIUM SHADE
+0x92 U+2593  #  DARK SHADE
+0x93 U+2320  #  TOP HALF INTEGRAL
+0x94 U+25A0  #  BLACK SQUARE
+0x95 U+2219  #  BULLET OPERATOR
+0x96 U+221A  #  SQUARE ROOT
+0x97 U+2248  #  ALMOST EQUAL TO
+0x98 U+2264  #  LESS-THAN OR EQUAL TO
+0x99 U+2265  #  GREATER-THAN OR EQUAL TO
+0x9a U+00A0  #  NO-BREAK SPACE
+0x9b U+2321  #  BOTTOM HALF INTEGRAL
+0x9c U+00B0  #  DEGREE SIGN
+0x9d U+00B2  #  SUPERSCRIPT TWO
+0x9e U+00B7  #  MIDDLE DOT
+0x9f U+00F7  #  DIVISION SIGN
+0xa0 U+2550  #  BOX DRAWINGS DOUBLE HORIZONTAL
+0xa1 U+2551  #  BOX DRAWINGS DOUBLE VERTICAL
+0xa2 U+2552  #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xa3 U+0451  #  CYRILLIC SMALL LETTER IO
+0xa4 U+2553  #  BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
+0xa5 U+2554  #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xa6 U+2555  #  BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
+0xa7 U+2556  #  BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
+0xa8 U+2557  #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xa9 U+2558  #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xaa U+2559  #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xab U+255A  #  BOX DRAWINGS DOUBLE UP AND RIGHT
+0xac U+255B  #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xad U+255C  #  BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
+0xae U+255D  #  BOX DRAWINGS DOUBLE UP AND LEFT
+0xaf U+255E  #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xb0 U+255F  #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xb1 U+2560  #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xb2 U+2561  #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb3 U+0401  #  CYRILLIC CAPITAL LETTER IO
+0xb4 U+2562  #  BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
+0xb5 U+2563  #  BOX DRAWINGS DOUBLE VERTICAL AND LEFT
+0xb6 U+2564  #  BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
+0xb7 U+2565  #  BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
+0xb8 U+2566  #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xb9 U+2567  #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xba U+2568  #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xbb U+2569  #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xbc U+256A  #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xbd U+256B  #  BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
+0xbe U+256C  #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xbf U+00A9  #  COPYRIGHT SIGN
+0xc0 U+044E  #  CYRILLIC SMALL LETTER YU
+0xc1 U+0430  #  CYRILLIC SMALL LETTER A
+0xc2 U+0431  #  CYRILLIC SMALL LETTER BE
+0xc3 U+0446  #  CYRILLIC SMALL LETTER TSE
+0xc4 U+0434  #  CYRILLIC SMALL LETTER DE
+0xc5 U+0435  #  CYRILLIC SMALL LETTER IE
+0xc6 U+0444  #  CYRILLIC SMALL LETTER EF
+0xc7 U+0433  #  CYRILLIC SMALL LETTER GHE
+0xc8 U+0445  #  CYRILLIC SMALL LETTER HA
+0xc9 U+0438  #  CYRILLIC SMALL LETTER I
+0xca U+0439  #  CYRILLIC SMALL LETTER SHORT I
+0xcb U+043A  #  CYRILLIC SMALL LETTER KA
+0xcc U+043B  #  CYRILLIC SMALL LETTER EL
+0xcd U+043C  #  CYRILLIC SMALL LETTER EM
+0xce U+043D  #  CYRILLIC SMALL LETTER EN
+0xcf U+043E  #  CYRILLIC SMALL LETTER O
+0xd0 U+043F  #  CYRILLIC SMALL LETTER PE
+0xd1 U+044F  #  CYRILLIC SMALL LETTER YA
+0xd2 U+0440  #  CYRILLIC SMALL LETTER ER
+0xd3 U+0441  #  CYRILLIC SMALL LETTER ES
+0xd4 U+0442  #  CYRILLIC SMALL LETTER TE
+0xd5 U+0443  #  CYRILLIC SMALL LETTER U
+0xd6 U+0436  #  CYRILLIC SMALL LETTER ZHE
+0xd7 U+0432  #  CYRILLIC SMALL LETTER VE
+0xd8 U+044C  #  CYRILLIC SMALL LETTER SOFT SIGN
+0xd9 U+044B  #  CYRILLIC SMALL LETTER YERU
+0xda U+0437  #  CYRILLIC SMALL LETTER ZE
+0xdb U+0448  #  CYRILLIC SMALL LETTER SHA
+0xdc U+044D  #  CYRILLIC SMALL LETTER E
+0xdd U+0449  #  CYRILLIC SMALL LETTER SHCHA
+0xde U+0447  #  CYRILLIC SMALL LETTER CHE
+0xdf U+044A  #  CYRILLIC SMALL LETTER HARD SIGN
+0xe0 U+042E  #  CYRILLIC CAPITAL LETTER YU
+0xe1 U+0410  #  CYRILLIC CAPITAL LETTER A
+0xe2 U+0411  #  CYRILLIC CAPITAL LETTER BE
+0xe3 U+0426  #  CYRILLIC CAPITAL LETTER TSE
+0xe4 U+0414  #  CYRILLIC CAPITAL LETTER DE
+0xe5 U+0415  #  CYRILLIC CAPITAL LETTER IE
+0xe6 U+0424  #  CYRILLIC CAPITAL LETTER EF
+0xe7 U+0413  #  CYRILLIC CAPITAL LETTER GHE
+0xe8 U+0425  #  CYRILLIC CAPITAL LETTER HA
+0xe9 U+0418  #  CYRILLIC CAPITAL LETTER I
+0xea U+0419  #  CYRILLIC CAPITAL LETTER SHORT I
+0xeb U+041A  #  CYRILLIC CAPITAL LETTER KA
+0xec U+041B  #  CYRILLIC CAPITAL LETTER EL
+0xed U+041C  #  CYRILLIC CAPITAL LETTER EM
+0xee U+041D  #  CYRILLIC CAPITAL LETTER EN
+0xef U+041E  #  CYRILLIC CAPITAL LETTER O
+0xf0 U+041F  #  CYRILLIC CAPITAL LETTER PE
+0xf1 U+042F  #  CYRILLIC CAPITAL LETTER YA
+0xf2 U+0420  #  CYRILLIC CAPITAL LETTER ER
+0xf3 U+0421  #  CYRILLIC CAPITAL LETTER ES
+0xf4 U+0422  #  CYRILLIC CAPITAL LETTER TE
+0xf5 U+0423  #  CYRILLIC CAPITAL LETTER U
+0xf6 U+0416  #  CYRILLIC CAPITAL LETTER ZHE
+0xf7 U+0412  #  CYRILLIC CAPITAL LETTER VE
+0xf8 U+042C  #  CYRILLIC CAPITAL LETTER SOFT SIGN
+0xf9 U+042B  #  CYRILLIC CAPITAL LETTER YERU
+0xfa U+0417  #  CYRILLIC CAPITAL LETTER ZE
+0xfb U+0428  #  CYRILLIC CAPITAL LETTER SHA
+0xfc U+042D  #  CYRILLIC CAPITAL LETTER E
+0xfd U+0429  #  CYRILLIC CAPITAL LETTER SHCHA
+0xfe U+0427  #  CYRILLIC CAPITAL LETTER CHE
+0xff U+042A  #  CYRILLIC CAPITAL LETTER HARD SIGN
diff --git a/data/consoletrans/koi8-u_to_uni.trans b/data/consoletrans/koi8-u_to_uni.trans
new file mode 100644 (file)
index 0000000..e482911
--- /dev/null
@@ -0,0 +1,256 @@
+0x00 U+0000  #  NULL (NUL)
+0x01 U+0001  #  START OF HEADING (SOH)
+0x02 U+0002  #  START OF TEXT (STX)
+0x03 U+0003  #  END OF TEXT (ETX)
+0x04 U+0004  #  END OF TRANSMISSION (EOT)
+0x05 U+0005  #  ENQUIRY (ENQ)
+0x06 U+0006  #  ACKNOWLEDGE (ACK)
+0x07 U+0007  #  BELL (BEL)
+0x08 U+0008  #  BACKSPACE (BS)
+0x09 U+0009  #  CHARACTER TABULATION (HT)
+0x0a U+000A  #  LINE FEED (LF)
+0x0b U+000B  #  LINE TABULATION (VT)
+0x0c U+000C  #  FORM FEED (FF)
+0x0d U+000D  #  CARRIAGE RETURN (CR)
+0x0e U+000E  #  SHIFT OUT (SO)
+0x0f U+000F  #  SHIFT IN (SI)
+0x10 U+0010  #  DATALINK ESCAPE (DLE)
+0x11 U+0011  #  DEVICE CONTROL ONE (DC1)
+0x12 U+0012  #  DEVICE CONTROL TWO (DC2)
+0x13 U+0013  #  DEVICE CONTROL THREE (DC3)
+0x14 U+0014  #  DEVICE CONTROL FOUR (DC4)
+0x15 U+0015  #  NEGATIVE ACKNOWLEDGE (NAK)
+0x16 U+0016  #  SYNCHRONOUS IDLE (SYN)
+0x17 U+0017  #  END OF TRANSMISSION BLOCK (ETB)
+0x18 U+0018  #  CANCEL (CAN)
+0x19 U+0019  #  END OF MEDIUM (EM)
+0x1a U+001A  #  SUBSTITUTE (SUB)
+0x1b U+001B  #  ESCAPE (ESC)
+0x1c U+001C  #  FILE SEPARATOR (IS4)
+0x1d U+001D  #  GROUP SEPARATOR (IS3)
+0x1e U+001E  #  RECORD SEPARATOR (IS2)
+0x1f U+001F  #  UNIT SEPARATOR (IS1)
+0x20 U+0020  #  SPACE
+0x21 U+0021  #  EXCLAMATION MARK
+0x22 U+0022  #  QUOTATION MARK
+0x23 U+0023  #  NUMBER SIGN
+0x24 U+0024  #  DOLLAR SIGN
+0x25 U+0025  #  PERCENT SIGN
+0x26 U+0026  #  AMPERSAND
+0x27 U+0027  #  APOSTROPHE
+0x28 U+0028  #  LEFT PARENTHESIS
+0x29 U+0029  #  RIGHT PARENTHESIS
+0x2a U+002A  #  ASTERISK
+0x2b U+002B  #  PLUS SIGN
+0x2c U+002C  #  COMMA
+0x2d U+002D  #  HYPHEN-MINUS
+0x2e U+002E  #  FULL STOP
+0x2f U+002F  #  SOLIDUS
+0x30 U+0030  #  DIGIT ZERO
+0x31 U+0031  #  DIGIT ONE
+0x32 U+0032  #  DIGIT TWO
+0x33 U+0033  #  DIGIT THREE
+0x34 U+0034  #  DIGIT FOUR
+0x35 U+0035  #  DIGIT FIVE
+0x36 U+0036  #  DIGIT SIX
+0x37 U+0037  #  DIGIT SEVEN
+0x38 U+0038  #  DIGIT EIGHT
+0x39 U+0039  #  DIGIT NINE
+0x3a U+003A  #  COLON
+0x3b U+003B  #  SEMICOLON
+0x3c U+003C  #  LESS-THAN SIGN
+0x3d U+003D  #  EQUALS SIGN
+0x3e U+003E  #  GREATER-THAN SIGN
+0x3f U+003F  #  QUESTION MARK
+0x40 U+0040  #  COMMERCIAL AT
+0x41 U+0041  #  LATIN CAPITAL LETTER A
+0x42 U+0042  #  LATIN CAPITAL LETTER B
+0x43 U+0043  #  LATIN CAPITAL LETTER C
+0x44 U+0044  #  LATIN CAPITAL LETTER D
+0x45 U+0045  #  LATIN CAPITAL LETTER E
+0x46 U+0046  #  LATIN CAPITAL LETTER F
+0x47 U+0047  #  LATIN CAPITAL LETTER G
+0x48 U+0048  #  LATIN CAPITAL LETTER H
+0x49 U+0049  #  LATIN CAPITAL LETTER I
+0x4a U+004A  #  LATIN CAPITAL LETTER J
+0x4b U+004B  #  LATIN CAPITAL LETTER K
+0x4c U+004C  #  LATIN CAPITAL LETTER L
+0x4d U+004D  #  LATIN CAPITAL LETTER M
+0x4e U+004E  #  LATIN CAPITAL LETTER N
+0x4f U+004F  #  LATIN CAPITAL LETTER O
+0x50 U+0050  #  LATIN CAPITAL LETTER P
+0x51 U+0051  #  LATIN CAPITAL LETTER Q
+0x52 U+0052  #  LATIN CAPITAL LETTER R
+0x53 U+0053  #  LATIN CAPITAL LETTER S
+0x54 U+0054  #  LATIN CAPITAL LETTER T
+0x55 U+0055  #  LATIN CAPITAL LETTER U
+0x56 U+0056  #  LATIN CAPITAL LETTER V
+0x57 U+0057  #  LATIN CAPITAL LETTER W
+0x58 U+0058  #  LATIN CAPITAL LETTER X
+0x59 U+0059  #  LATIN CAPITAL LETTER Y
+0x5a U+005A  #  LATIN CAPITAL LETTER Z
+0x5b U+005B  #  LEFT SQUARE BRACKET
+0x5c U+005C  #  REVERSE SOLIDUS
+0x5d U+005D  #  RIGHT SQUARE BRACKET
+0x5e U+005E  #  CIRCUMFLEX ACCENT
+0x5f U+005F  #  LOW LINE
+0x60 U+0060  #  GRAVE ACCENT
+0x61 U+0061  #  LATIN SMALL LETTER A
+0x62 U+0062  #  LATIN SMALL LETTER B
+0x63 U+0063  #  LATIN SMALL LETTER C
+0x64 U+0064  #  LATIN SMALL LETTER D
+0x65 U+0065  #  LATIN SMALL LETTER E
+0x66 U+0066  #  LATIN SMALL LETTER F
+0x67 U+0067  #  LATIN SMALL LETTER G
+0x68 U+0068  #  LATIN SMALL LETTER H
+0x69 U+0069  #  LATIN SMALL LETTER I
+0x6a U+006A  #  LATIN SMALL LETTER J
+0x6b U+006B  #  LATIN SMALL LETTER K
+0x6c U+006C  #  LATIN SMALL LETTER L
+0x6d U+006D  #  LATIN SMALL LETTER M
+0x6e U+006E  #  LATIN SMALL LETTER N
+0x6f U+006F  #  LATIN SMALL LETTER O
+0x70 U+0070  #  LATIN SMALL LETTER P
+0x71 U+0071  #  LATIN SMALL LETTER Q
+0x72 U+0072  #  LATIN SMALL LETTER R
+0x73 U+0073  #  LATIN SMALL LETTER S
+0x74 U+0074  #  LATIN SMALL LETTER T
+0x75 U+0075  #  LATIN SMALL LETTER U
+0x76 U+0076  #  LATIN SMALL LETTER V
+0x77 U+0077  #  LATIN SMALL LETTER W
+0x78 U+0078  #  LATIN SMALL LETTER X
+0x79 U+0079  #  LATIN SMALL LETTER Y
+0x7a U+007A  #  LATIN SMALL LETTER Z
+0x7b U+007B  #  LEFT CURLY BRACKET
+0x7c U+007C  #  VERTICAL LINE
+0x7d U+007D  #  RIGHT CURLY BRACKET
+0x7e U+007E  #  TILDE
+0x7f U+007F  #  DELETE (DEL)
+0x80 U+2500  #  BOX DRAWINGS LIGHT HORIZONTAL
+0x81 U+2502  #  BOX DRAWINGS LIGHT VERTICAL
+0x82 U+250C  #  BOX DRAWINGS LIGHT DOWN AND RIGHT
+0x83 U+2510  #  BOX DRAWINGS LIGHT DOWN AND LEFT
+0x84 U+2514  #  BOX DRAWINGS LIGHT UP AND RIGHT
+0x85 U+2518  #  BOX DRAWINGS LIGHT UP AND LEFT
+0x86 U+251C  #  BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0x87 U+2524  #  BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0x88 U+252C  #  BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0x89 U+2534  #  BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0x8a U+253C  #  BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0x8b U+2580  #  UPPER HALF BLOCK
+0x8c U+2584  #  LOWER HALF BLOCK
+0x8d U+2588  #  FULL BLOCK
+0x8e U+258C  #  LEFT HALF BLOCK
+0x8f U+2590  #  RIGHT HALF BLOCK
+0x90 U+2591  #  LIGHT SHADE
+0x91 U+2592  #  MEDIUM SHADE
+0x92 U+2593  #  DARK SHADE
+0x93 U+2320  #  TOP HALF INTEGRAL
+0x94 U+25A0  #  BLACK SQUARE
+0x95 U+2219  #  BULLET OPERATOR
+0x96 U+221A  #  SQUARE ROOT
+0x97 U+2248  #  ALMOST EQUAL TO
+0x98 U+2264  #  LESS THAN OR EQUAL TO
+0x99 U+2265  #  GREATER THAN OR EQUAL TO
+0x9a U+00A0  #  NO-BREAK SPACE
+0x9b U+2321  #  BOTTOM HALF INTEGRAL
+0x9c U+00B0  #  DEGREE SIGN
+0x9d U+00B2  #  SUPERSCRIPT DIGIT TWO
+0x9e U+00B7  #  MIDDLE DOT
+0x9f U+00F7  #  DIVISION SIGN
+0xa0 U+2550  #  BOX DRAWINGS DOUBLE HORIZONTAL
+0xa1 U+2551  #  BOX DRAWINGS DOUBLE VERTICAL
+0xa2 U+2552  #  BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
+0xa3 U+0451  #  CYRILLIC SMALL LETTER IO
+0xa4 U+0454  #  CYRILLIC SMALL LETTER UKRAINIAN IE
+0xa5 U+2554  #  BOX DRAWINGS DOUBLE DOWN AND RIGHT
+0xa6 U+0456  #  CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+0xa7 U+0457  #  CYRILLIC SMALL LETTER YI (Ukrainian)
+0xa8 U+2557  #  BOX DRAWINGS DOUBLE DOWN AND LEFT
+0xa9 U+2558  #  BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
+0xaa U+2559  #  BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
+0xab U+255A  #  BOX DRAWINGS DOUBLE UP AND RIGHT
+0xac U+255B  #  BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
+0xad U+0491  #  CYRILLIC SMALL LETTER GHE WITH UPTURN
+0xae U+255D  #  BOX DRAWINGS DOUBLE UP AND LEFT
+0xaf U+255E  #  BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xb0 U+255F  #  BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
+0xb1 U+2560  #  BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
+0xb2 U+2561  #  BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xb3 U+0401  #  CYRILLIC CAPITAL LETTER IO
+0xb4 U+0404  #  CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0xb5 U+2563  #  DOUBLE VERTICAL AND LEFT
+0xb6 U+0406  #  CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0xb7 U+0407  #  CYRILLIC CAPITAL LETTER YI (Ukrainian)
+0xb8 U+2566  #  BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
+0xb9 U+2567  #  BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
+0xba U+2568  #  BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
+0xbb U+2569  #  BOX DRAWINGS DOUBLE UP AND HORIZONTAL
+0xbc U+256A  #  BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xbd U+0490  #  CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0xbe U+256C  #  BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
+0xbf U+00A9  #  COPYRIGHT SIGN
+0xc0 U+044E  #  CYRILLIC SMALL LETTER YU
+0xc1 U+0430  #  CYRILLIC SMALL LETTER A
+0xc2 U+0431  #  CYRILLIC SMALL LETTER BE
+0xc3 U+0446  #  CYRILLIC SMALL LETTER TSE
+0xc4 U+0434  #  CYRILLIC SMALL LETTER DE
+0xc5 U+0435  #  CYRILLIC SMALL LETTER IE
+0xc6 U+0444  #  CYRILLIC SMALL LETTER EF
+0xc7 U+0433  #  CYRILLIC SMALL LETTER GHE
+0xc8 U+0445  #  CYRILLIC SMALL LETTER HA
+0xc9 U+0438  #  CYRILLIC SMALL LETTER I
+0xca U+0439  #  CYRILLIC SMALL LETTER SHORT I
+0xcb U+043A  #  CYRILLIC SMALL LETTER KA
+0xcc U+043B  #  CYRILLIC SMALL LETTER EL
+0xcd U+043C  #  CYRILLIC SMALL LETTER EM
+0xce U+043D  #  CYRILLIC SMALL LETTER EN
+0xcf U+043E  #  CYRILLIC SMALL LETTER O
+0xd0 U+043F  #  CYRILLIC SMALL LETTER PE
+0xd1 U+044F  #  CYRILLIC SMALL LETTER YA
+0xd2 U+0440  #  CYRILLIC SMALL LETTER ER
+0xd3 U+0441  #  CYRILLIC SMALL LETTER ES
+0xd4 U+0442  #  CYRILLIC SMALL LETTER TE
+0xd5 U+0443  #  CYRILLIC SMALL LETTER U
+0xd6 U+0436  #  CYRILLIC SMALL LETTER ZHE
+0xd7 U+0432  #  CYRILLIC SMALL LETTER VE
+0xd8 U+044C  #  CYRILLIC SMALL LETTER SOFT SIGN
+0xd9 U+044B  #  CYRILLIC SMALL LETTER YERU
+0xda U+0437  #  CYRILLIC SMALL LETTER ZE
+0xdb U+0448  #  CYRILLIC SMALL LETTER SHA
+0xdc U+044D  #  CYRILLIC SMALL LETTER E
+0xdd U+0449  #  CYRILLIC SMALL LETTER SHCHA
+0xde U+0447  #  CYRILLIC SMALL LETTER CHE
+0xdf U+044A  #  CYRILLIC SMALL LETTER HARD SIGN
+0xe0 U+042E  #  CYRILLIC CAPITAL LETTER YU
+0xe1 U+0410  #  CYRILLIC CAPITAL LETTER A
+0xe2 U+0411  #  CYRILLIC CAPITAL LETTER BE
+0xe3 U+0426  #  CYRILLIC CAPITAL LETTER TSE
+0xe4 U+0414  #  CYRILLIC CAPITAL LETTER DE
+0xe5 U+0415  #  CYRILLIC CAPITAL LETTER IE
+0xe6 U+0424  #  CYRILLIC CAPITAL LETTER EF
+0xe7 U+0413  #  CYRILLIC CAPITAL LETTER GHE
+0xe8 U+0425  #  CYRILLIC CAPITAL LETTER HA
+0xe9 U+0418  #  CYRILLIC CAPITAL LETTER I
+0xea U+0419  #  CYRILLIC CAPITAL LETTER SHORT I
+0xeb U+041A  #  CYRILLIC CAPITAL LETTER KA
+0xec U+041B  #  CYRILLIC CAPITAL LETTER EL
+0xed U+041C  #  CYRILLIC CAPITAL LETTER EM
+0xee U+041D  #  CYRILLIC CAPITAL LETTER EN
+0xef U+041E  #  CYRILLIC CAPITAL LETTER O
+0xf0 U+041F  #  CYRILLIC CAPITAL LETTER PE
+0xf1 U+042F  #  CYRILLIC CAPITAL LETTER YA
+0xf2 U+0420  #  CYRILLIC CAPITAL LETTER ER
+0xf3 U+0421  #  CYRILLIC CAPITAL LETTER ES
+0xf4 U+0422  #  CYRILLIC CAPITAL LETTER TE
+0xf5 U+0423  #  CYRILLIC CAPITAL LETTER U
+0xf6 U+0416  #  CYRILLIC CAPITAL LETTER ZHE
+0xf7 U+0412  #  CYRILLIC CAPITAL LETTER VE
+0xf8 U+042C  #  CYRILLIC CAPITAL LETTER SOFT SIGN
+0xf9 U+042B  #  CYRILLIC CAPITAL LETTER YERU
+0xfa U+0417  #  CYRILLIC CAPITAL LETTER ZE
+0xfb U+0428  #  CYRILLIC CAPITAL LETTER SHA
+0xfc U+042D  #  CYRILLIC CAPITAL LETTER E
+0xfd U+0429  #  CYRILLIC CAPITAL LETTER SHCHA
+0xfe U+0427  #  CYRILLIC CAPITAL LETTER CHE
+0xff U+042A  #  CYRILLIC CAPITAL LETTER HARD SIGN
similarity index 88%
rename from data/keymaps/i386/azerty/fr-latin0.map
rename to data/keymaps/i386/azerty/fr-latin9.map
index 90a09f9..07aa5f3 100644 (file)
@@ -12,8 +12,8 @@
 # | ½ «| 1 ·| 2 É| 3 ¸| 4 ´| 5 ¨| 6 ¦| 7 È| 8 ¯| 9 Ç| 0 À| ° ÿ| + ¾| <--   |
 # | ¼ »| & '| é ~| " #| ' {| ( [| - || è `| _ \| ç ^| à @| ) ]| = }|       |
 #  ========================================================================
-# | |<-  | A ä| Z Å| E ë| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| $ ê|   , |
-# |  ->| | a â| z å| e ¤| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| £ ¢| <-' |
+# | |<-  | A ä| Z Å| E ë| R Ç| T Þ| Y Ý| U ü| I ï| O ö| P '| " `| £ ê|   , |
+# |  ->| | a â| z å| e ¤| r ç| t þ| y ý| u û| i î| o ô| p ¶| ^ ~| $ ¢| <-' |
 #  ===================================================================¬    |
 # |       | Q Ä| S Ø| D Ë| F ª| G Æ| H Ð| J Ü| K Ï| L Ö| M º| % Ù| µ ¥|    |
 # | MAJ   | q Â| s ø| d Ê| f ±| g æ| h ð| j Û| k Î| l Ô| m ¹| ù ²| * ³|    |
@@ -53,7 +53,7 @@
 #              Control Alt Delete/Backspace : redémarrer
 #              AltGr + Impr. Écran : arrêter
 #
-# Ajouter pour ces deux fonction les lignes suivantes à /etc/inittab :
+# Ajouter pour ces deux fonctions les lignes suivantes à /etc/inittab :
 #
 #              ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now
 #              kb:12345:kbrequest:/sbin/halt
@@ -77,7 +77,7 @@
 #
 # Seule exception : AltGr (e) donnant l'euro ¤, AltGr + Shift ($) donne ê 
 #
-#      * Si les dead_keys fonctionnent, utiliser les accent dits
+#      * Si les dead_keys fonctionnent, utiliser les accents dits
 #      «morts», i.e. fonctionnant comme l'accent circonflexe & le
 #      tréma des machines à écrire ; sont disponibles :
 #
 #
 # 6. Mode majuscule (CapsLock)
 #
-# Celui-ci à été refait pour correspondre à celui par défaut des veilles
-# machines à écrite ou PC sous d'autres systèmes d'exploitation :
+# Celui-ci à été refait pour correspondre à celui par défaut des vieilles
+# machines à écrire ou PC sous d'autres systèmes d'exploitation :
 #              CapsLock : passe toutes les touches en mode majuscule
 #              CapsLock à nouveau : repasse toutes les touches en minuscules
 #              Shift + touche : touche temporairement en majuscule
 #              Shift après CapsLock : repasse toues les touches en minuscules
+charset "iso-8859-15"
 
 keycode   0 =
 
@@ -199,7 +200,7 @@ keycode  27 = +dollar               +sterling       cent            ecircumflex
 
 keycode  28 = Return
         alt     keycode  28 = 0x080d
-        altgr   keycode  26 = Linefeed
+        altgr   keycode  28 = Linefeed
 
 keycode  29 = Control
 
@@ -263,7 +264,7 @@ keycode  53 = +exclam           +section    exclamdown
 
 keycode  54 = CapsShift
 
-keycode  55 = KP_Multiply      Hex_A           Hex_D
+keycode  55 = asterisk          Hex_A          Hex_D
 
 keycode  56 = Alt
 
@@ -326,48 +327,48 @@ keycode  69 = Num_Lock           Bare_Num_Lock
 keycode  70 = Scroll_Lock      Show_Memory      Show_Registers
        control keycode  70 = Show_State
 
-keycode  71 = KP_7             Hex_7
+keycode  71 = seven            Hex_7
        alt     keycode  71 = Ascii_7
 
-keycode  72 = KP_8             Hex_8
+keycode  72 = eight            Hex_8
        alt     keycode  72 = Ascii_8
 
-keycode  73 = KP_9             Hex_9
+keycode  73 = nine             Hex_9
        alt     keycode  73 = Ascii_9
 
-keycode  74 = KP_Subtract      Hex_B           Hex_E
+keycode  74 = minus            Hex_B           Hex_E
        alt     keycode  74 = minus
 
-keycode  75 = KP_4             Hex_4
+keycode  75 = four             Hex_4
        alt     keycode  75 = Ascii_4
 
-keycode  76 = KP_5             Hex_5
+keycode  76 = five             Hex_5
        alt     keycode  76 = Ascii_5
 
-keycode  77 = KP_6             Hex_6
+keycode  77 = six              Hex_6
        alt     keycode  77 = Ascii_6
 
-keycode  78 = KP_Add           Hex_C           Hex_F
+keycode  78 = plus             Hex_C           Hex_F
        alt     keycode  78 = plus
 
-keycode  79 = KP_1             Hex_1
+keycode  79 = one              Hex_1
        alt     keycode  79 = Ascii_1
 
-keycode  80 = KP_2             Hex_2
+keycode  80 = two              Hex_2
        alt     keycode  80 = Ascii_2
 
-keycode  81 = KP_3             Hex_3
+keycode  81 = three            Hex_3
        alt     keycode  81 = Ascii_3
 
-keycode  82 = KP_0             Hex_0
+keycode  82 = zero             Hex_0
        alt     keycode  82 = Ascii_0
 
-keycode  83 = KP_Period        KP_Comma
+keycode  83 = period           comma
         altgr   control keycode  83 = KeyboardSignal
         control alt     keycode  83 = Boot
 
 #
-# La touche AltGr+«Impr. Écran» = «SysReq» a un code pour elle même
+# La touche AltGr+«Impr. Écran» = «SysReq» a un code pour elle-même
 #
 keycode  84 = SAK
 
@@ -398,14 +399,14 @@ keycode  94 =
 
 keycode  95 =
 
-keycode  96 = KP_Enter
+keycode  96 = Return
 
 keycode  97 = Control
 
-keycode  98 = KP_Divide
+keycode  98 = slash
 
 #
-# La touche «Impr. Écran» ne sert à rien sous linux, alors mettons-y «Compose»
+# La touche «Impr. Écran» ne sert à rien sous Linux, alors mettons-y «Compose»
 #
 keycode  99 = Compose
 
@@ -413,7 +414,7 @@ keycode 100 = AltGr
         alt     keycode 100 = Compose
 
 #
-# La touche Ctrl+Pause = Attn = 101 a un code pour elle même
+# La touche Ctrl+Pause = Attn = 101 a un code pour elle-même
 #
 keycode 101 = Break
 
@@ -459,7 +460,7 @@ keycode 116 = Do
 
 keycode 117 = F17
 
-keycode 118 = KP_MinPlus
+keycode 118 = plusminus
 
 keycode 119 = Pause
 
@@ -472,8 +473,9 @@ keycode 122 =
 keycode 123 =
 
 keycode 124 =
+
 #
-# Touches supplémentaires des clavier 105 touches
+# Touches supplémentaires des claviers 105 touches
 #
 
 #
@@ -533,6 +535,7 @@ string F33 = "\033[47~"
 string F34 = "\033[48~"
 string F35 = "\033[49~"
 
+# Latin1 compatible
 compose '`' 'A' to 'À'
 compose '`' 'a' to 'à'
 compose '\'' 'A' to 'Á'
@@ -546,6 +549,8 @@ compose '"' 'a' to '
 compose '-' 'a' to 'ª'
 compose '-' 'A' to 'ª'
 compose 'O' 'A' to 'Å'
+compose 'o' 'A' to 'Å'
+compose 'O' 'a' to 'å'
 compose 'o' 'a' to 'å'
 compose '0' 'A' to 'Å'
 compose '0' 'a' to 'å'
@@ -554,9 +559,12 @@ compose '
 compose 'A' 'A' to 'Å'
 compose 'a' 'a' to 'å'
 compose 'A' 'E' to 'Æ'
+compose 'A' 'e' to 'Æ'
 compose 'a' 'e' to 'æ'
 compose ',' 'C' to 'Ç'
 compose ',' 'c' to 'ç'
+compose '^' 'C' to 'Ç'
+compose '^' 'c' to 'ç'
 compose '`' 'E' to 'È'
 compose '`' 'e' to 'è'
 compose '\'' 'E' to 'É'
@@ -575,8 +583,20 @@ compose '"' 'I' to '
 compose '"' 'i' to 'ï'
 compose '-' 'D' to 'Ð'
 compose '-' 'd' to 'ð'
+compose '^' 'D' to 'Ð'
+compose '^' 'd' to 'ð'
 compose '~' 'N' to 'Ñ'
 compose '~' 'n' to 'ñ'
+compose '^' 'N' to 'Ñ'
+compose '^' 'n' to 'ñ'
+compose 'n' 'n' to 'ñ'
+compose 'n' 'h' to 'ñ'
+compose 'N' 'Y' to 'Ñ'
+compose 'N' 'N' to 'Ñ'
+compose 'N' 'H' to 'Ñ'
+compose 'N' 'y' to 'Ñ'
+compose 'N' 'n' to 'Ñ'
+compose 'N' 'h' to 'Ñ'
 compose '`' 'O' to 'Ò'
 compose '`' 'o' to 'ò'
 compose '\'' 'O' to 'Ó'
@@ -605,31 +625,31 @@ compose 'T' 'H' to '
 compose 't' 'h' to 'þ'
 compose 's' 's' to 'ß'
 compose 'S' 'S' to '§'
-compose '"' 'y' to 'ÿ'
-compose '"' 'Y' to '¾'
-compose 's' 'z' to 'ß'
-compose 'i' 'j' to 'ÿ'
-compose 'I' 'J' to '¾'
-compose '^' 'S' to '¦'
-compose '^' 's' to '¨'
-compose '^' 'Z' to '´'
-compose '^' 'z' to '¸'
-compose '^' '1' to '¹'
-compose '^' '2' to '²'
-compose '^' '3' to '³'
 compose '+' '-' to '±'
 compose '|' '-' to '¬'
 compose '-' '|' to '¬'
 compose '|' '_' to '¬'
 compose '_' '|' to '¬'
+compose 's' 'z' to 'ß'
+compose 's' 's' to 'ß'
+compose '^' '1' to '¹'
+compose '^' '2' to '²'
+compose '^' '3' to '³'
+compose '<' '<' to '«'
+compose '>' '>' to '»'
+compose '?' '?' to '¿'
+compose '^' '?' to '¿'
+compose '!' '!' to '¡'
+compose '^' '!' to '¡'
 compose '-' 'y' to '¥'
 compose '-' 'Y' to '¥'
 compose '-' 'c' to '¢'
 compose '-' 'C' to '¢'
 compose '-' 'l' to '£'
 compose '-' 'L' to '£'
-compose '-' 'e' to '¤'
-compose '-' 'E' to '¤'
+compose '(' 'c' to '©'
+compose '(' 'r' to '®'
+compose 'm' 'u' to 'µ'
 compose '^' '!' to '¡'
 compose '^' '?' to '¿'
 compose '^' '-' to '¯'
@@ -638,11 +658,38 @@ compose '^' '.' to '
 compose '^' 'x' to '×'
 compose '^' 'X' to '×'
 compose '^' '*' to '×'
+compose '^' 'x' to '×'
+compose '^' 'X' to '×'
+compose '^' '*' to '×'
 compose '^' '/' to '÷'
 compose '<' '<' to '«'
 compose '>' '>' to '»'
 compose '"' 'c' to '©'
 compose '"' 'r' to '®'
-compose 'o' 'e' to '½'
+compose '"' 'y' to 'ÿ'
+compose 'i' 'j' to 'ÿ'
+# Latin0 specific
+compose '"' 'Y' to '¾'
+compose 'I' 'J' to '¾'
+compose '-' 'e' to '¤'
+compose '-' 'E' to '¤'
+compose '=' 'e' to '¤'
+compose '=' 'c' to '¤'
+compose '=' 'E' to '¤'
+compose '=' 'C' to '¤'
+compose 'e' '=' to '¤'
+compose 'c' '=' to '¤'
+compose 'E' '=' to '¤'
+compose 'C' '=' to '¤'
+compose '^' 'S' to '¦'
+compose '^' 's' to '¨'
+compose '^' 'Z' to '´'
+compose '^' 'z' to '¸'
+compose 'v' 'S' to '¦'
+compose 'v' 's' to '¨'
+compose 'v' 'Z' to '´'
+compose 'v' 'z' to '¸'
 compose 'O' 'E' to '¼'
-
+compose 'O' 'e' to '¼'
+compose 'o' 'e' to '½'
+compose '"' 'Y' to '¾'
index a7563a4..203f020 100644 (file)
@@ -127,7 +127,7 @@ keycode  86 = less                  greater         backslash    \
                Meta_less       Meta_greater    Meta_backslash
        alt Control keycode 86 = Meta_bar
 keycode  97 = Control         
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 118 = KP_MinPlus      
index 8d21c81..6cbd4bf 100644 (file)
@@ -212,11 +212,11 @@ keycode  95 =
 keycode  96 = KP_Enter        
 keycode  97 = AltGr_Lock      
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = AltGr           
-keycode 101 = Break           
+keycode 101 = Break
 keycode 102 = Find            
 keycode 103 = Up              
 keycode 104 = Prior           
index d070303..7a3cb82 100644 (file)
@@ -148,7 +148,9 @@ control     alt keycode 111 = Boot
 # The three system keys
 #
 keycode  84 = Last_Console             # Alt+SysRq/PrintScrn
-keycode  99 = Control_backslash                # SysRq/PrintScrn
+keycode  99 = VoidSymbol               # SysRq/PrintScrn
+alt    keycode 99 = Control_backslash
+control        keycode 99 = Control_backslash
 
 plain   keycode 70 = Scroll_Lock
 shift  keycode 70 = Show_Memory
diff --git a/data/keymaps/i386/qwerty/bg-cp1251.map b/data/keymaps/i386/qwerty/bg-cp1251.map
new file mode 100644 (file)
index 0000000..9fc4019
--- /dev/null
@@ -0,0 +1,293 @@
+# Bulgarian Phonetic Cyrillic code page 1251 keyboard map.
+# Cyrillic mode is toggled by Right_Ctrl key and shifted by AltGr key.
+# Based on the default linux kernel keyboard map.   -- Dimitar Zhekov
+
+keymaps 0-5,8,12
+
+# Change the above line into:
+#      keymaps 0-6,8,12
+# in case you want the entries:
+#      altgr   control keycode  83 = Boot            
+#      altgr   control keycode 111 = Boot            
+# below.
+
+strings as usual
+
+keycode   1 = Escape
+       alt     keycode   1 = Meta_Escape     
+keycode   2 = one              exclam          
+       alt     keycode   2 = Meta_one        
+keycode   3 = two              at               at              
+       control keycode   3 = nul             
+       shift   control keycode   3 = nul             
+       alt     keycode   3 = Meta_two        
+keycode   4 = three            numbersign      
+       control keycode   4 = Escape          
+       alt     keycode   4 = Meta_three      
+keycode   5 = four             dollar           dollar          
+       control keycode   5 = Control_backslash
+       alt     keycode   5 = Meta_four       
+keycode   6 = five             percent         
+       control keycode   6 = Control_bracketright
+       alt     keycode   6 = Meta_five       
+keycode   7 = six              asciicircum     
+       control keycode   7 = Control_asciicircum
+       alt     keycode   7 = Meta_six        
+keycode   8 = seven            ampersand        braceleft       
+       control keycode   8 = Control_underscore
+       alt     keycode   8 = Meta_seven      
+keycode   9 = eight            asterisk         bracketleft     
+       control keycode   9 = 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 keycode  12 = Control_underscore
+       shift   control keycode  12 = 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
+       alt     keycode  15 = Meta_Tab        
+keycode  16 = q                        Q               +255    +223    Control_q
+       alt     keycode  16 = Meta_q
+       control alt     keycode 16 = Meta_Control_q
+keycode  17 = w                        W               +226    +194    Control_w
+       alt     keycode  17 = Meta_w
+       control alt     keycode  17 = Meta_Control_w
+keycode  18 = e                        E               +229    +197    Control_e
+       alt     keycode  18 = Meta_e
+       control alt     keycode  18 = Meta_Control_e
+keycode  19 = r                        R               +240    +208    Control_r
+       alt     keycode  19 = Meta_r
+       control alt     keycode  19 = Meta_Control_r
+keycode  20 = t                        T               +242    +210    Control_t
+       alt     keycode  20 = Meta_t
+       control alt     keycode  20 = Meta_Control_t
+keycode  21 = y                        Y               +250    +218    Control_y
+       alt     keycode  21 = Meta_y
+       control alt     keycode  21 = Meta_Control_y
+keycode  22 = u                        U               +243    +211    Control_u
+       alt     keycode  22 = Meta_u
+       control alt     keycode  22 = Meta_Control_u
+keycode  23 = i                        I               +232    +200    Tab
+       alt     keycode  23 = Meta_i
+       control alt     keycode  23 = Meta_Tab
+keycode  24 = o                        O               +238    +206    Control_o
+       alt     keycode  24 = Meta_o
+       control alt     keycode  24 = Meta_Control_o
+keycode  25 = p                        P               +239    +207    Control_p
+       alt     keycode  25 = Meta_p
+       control alt     keycode  25 = Meta_Control_p
+keycode  26 = bracketleft      braceleft       +248    +216    Escape
+       alt     keycode  26 = Meta_bracketleft
+       control alt     keycode  26 = Meta_Escape
+keycode  27 = bracketright     braceright      +249    +217    Control_bracketright
+       alt     keycode  27 = Meta_bracketright
+       control alt     keycode 27 = Meta_Control_bracketright
+keycode  28 = Return          
+       alt     keycode  28 = Meta_Control_m  
+keycode  29 = Control         
+keycode  30 = a                        A               +224    +192    Control_a
+       alt     keycode  30 = Meta_a
+       control alt     keycode  30 = Meta_Control_a
+keycode  31 = s                        S               +241    +209    Control_s
+       alt     keycode  31 = Meta_s
+       control alt     keycode  31 = Meta_Control_s
+keycode  32 = d                        D               +228    +196    Control_d
+       alt     keycode  32 = Meta_d
+       control alt     keycode  32 = Meta_Control_d
+keycode  33 = f                        F               +244    +212    Control_f
+       alt     keycode  33 = Meta_f
+       control alt     keycode  33 = Meta_Control_f
+keycode  34 = g                        G               +227    +195    Control_g
+       alt     keycode  34 = Meta_g
+       control alt     keycode  34 = Meta_Control_g
+keycode  35 = h                        H               +245    +213    Control_h
+       alt     keycode  35 = Meta_h
+       control alt     keycode  35 = Meta_Control_h
+keycode  36 = j                        J               +233    +201    Control_j
+       alt     keycode  35 = Meta_j
+       control alt     keycode  35 = Meta_Control_j
+keycode  37 = k                        K               +234    +202    Control_k
+       alt     keycode  37 = Meta_k
+       control alt     keycode  37 = Meta_Control_k
+keycode  38 = l                        L               +235    +203    Control_l
+       alt     keycode  38 = Meta_l
+       control alt     keycode  38 = Meta_Control_l
+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      +247    +215    nul
+       alt     keycode  41 = Meta_grave      
+keycode  42 = Shift           
+keycode  43 = backslash                bar             +254    +222    Control_backslash
+       alt     keycode  43 = Meta_backslash
+       control alt     keycode  43 = Meta_Control_backslash
+keycode  44 = z                        Z               +231    +199    Control_z
+       alt     keycode  44 = Meta_z
+       control alt     keycode  44 = Meta_Control_z
+keycode  45 = x                        X               +252    +220    Control_x
+       alt     keycode  45 = Meta_x
+       control alt     keycode  45 = Meta_Control_x
+keycode  46 = c                        C               +246    +214    Control_c
+       alt     keycode  46 = Meta_c
+       control alt     keycode  46 = Meta_Control_c
+keycode  47 = v                        V               +230    +198    Control_v
+       alt     keycode  47 = Meta_v
+       control alt     keycode  47 = Meta_Control_v
+keycode  48 = b                        B               +225    +193    Control_b
+       alt     keycode  48 = Meta_b
+       control alt     keycode  48 = Meta_Control_b
+keycode  49 = n                        N               +237    +205    Control_n
+       alt     keycode  49 = Meta_n
+       control alt     keycode  49 = Meta_Control_n
+keycode  50 = m                        M               +236    +204    Control_m
+       alt     keycode  50 = Meta_m
+       control alt     keycode  50 = Meta_Control_m
+keycode  51 = comma            less            
+       alt     keycode  51 = Meta_comma      
+keycode  52 = period           greater         
+       control keycode  52 = Compose         
+       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
+       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
+       shift   keycode  69 = Bare_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         
+       altgr   keycode  71 = Hex_7         
+keycode  72 = KP_8            
+       alt     keycode  72 = Ascii_8         
+       altgr   keycode  72 = Hex_8         
+keycode  73 = KP_9            
+       alt     keycode  73 = Ascii_9         
+       altgr   keycode  73 = Hex_9         
+keycode  74 = KP_Subtract     
+keycode  75 = KP_4            
+       alt     keycode  75 = Ascii_4         
+       altgr   keycode  75 = Hex_4         
+keycode  76 = KP_5            
+       alt     keycode  76 = Ascii_5         
+       altgr   keycode  76 = Hex_5         
+keycode  77 = KP_6            
+       alt     keycode  77 = Ascii_6         
+       altgr   keycode  77 = Hex_6         
+keycode  78 = KP_Add          
+keycode  79 = KP_1            
+       alt     keycode  79 = Ascii_1         
+       altgr   keycode  79 = Hex_1         
+keycode  80 = KP_2            
+       alt     keycode  80 = Ascii_2         
+       altgr   keycode  80 = Hex_2         
+keycode  81 = KP_3            
+       alt     keycode  81 = Ascii_3         
+       altgr   keycode  81 = Hex_3         
+keycode  82 = KP_0            
+       alt     keycode  82 = Ascii_0         
+       altgr   keycode  82 = Hex_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  96 = KP_Enter        
+keycode  97 = AltGr_Lock
+keycode  98 = KP_Divide       
+keycode  99 = VoidSymbol
+       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           
+keycode 113 = F13             
+keycode 114 = F14             
+keycode 115 = Help            
+keycode 116 = Do              
+keycode 117 = F17             
+keycode 118 = KP_MinPlus      
+keycode 119 = Pause           
index abd200d..759d5cc 100644 (file)
@@ -252,7 +252,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   AltGr   
index 7acfdc0..602bfdd 100644 (file)
@@ -192,7 +192,7 @@ keycode  95 =
 keycode  96 = KP_Enter        
 keycode  97 = Control         
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = AltGr           
index 2f5c59b..43535f9 100644 (file)
@@ -55,8 +55,8 @@ keycode  43 = bracketright    braceright      masculine
         control        keycode  43 = Control_bracketright
 keycode  51 = comma            less            
 keycode  52 = period           greater         
-keycode  53 = semicolon        colon
        control keycode  52 = nul
+keycode  53 = semicolon        colon
 keycode  54 = Shift           
 keycode  56 = Alt             
 keycode  57 = space
index 4205e41..f417022 100644 (file)
@@ -521,7 +521,7 @@ keycode  98 =       KP_Divide       KP_Divide       Hex_B           \
                KP_Divide       KP_Divide       KP_Divide       \
                KP_Divide       KP_Divide       Hex_B           \
                KP_Divide       KP_Divide       KP_Divide
-keycode  99 =  Control_backslash       Control_backslash       Control_backslash       \
+keycode  99 =  VoidSymbol              Control_backslash       Control_backslash       \
                Meta_Control_backslash  Meta_Control_backslash  Meta_Control_backslash  \
                Control_backslash       Control_backslash       Control_backslash       \
                Meta_Control_backslash  Meta_Control_backslash  Meta_Control_backslash  \
index b29066c..fdfc195 100644 (file)
@@ -133,15 +133,15 @@ 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 99 = VoidSymbol
+       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
+       shift keycode 104 = Scroll_Backward
 keycode 105 = Left
        alt keycode 105 = Decr_Console
        alt altgr keycode 105 = Decr_Console
@@ -151,10 +151,10 @@ keycode 106 = Right
 keycode 107 = Select
 keycode 108 = Down
 keycode 109 = Next
-shift keycode 109 = Scroll_Forward
+       shift keycode 109 = Scroll_Forward
 keycode 110 = Insert
 keycode 111 = Remove
-control alt keycode 111 = Boot
+       control alt keycode 111 = Boot
 keycode 112 = Macro
 keycode 113 = F13
 keycode 114 = F14
index 32bfa08..0a31924 100644 (file)
@@ -136,9 +136,9 @@ 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 99 = VoidSymbol
+       control keycode 99 = Control_backslash
+       alt keycode 99 = Control_backslash
 keycode 100 = AltGr
 keycode 101 = Break
 keycode 102 = Find
index 5accade..fc3b963 100644 (file)
@@ -133,9 +133,9 @@ 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 99 = VoidSymbol
+       control keycode 99 = Control_backslash
+       alt keycode 99 = Control_backslash
 keycode 100 = AltGr
 keycode 101 = Break
 keycode 102 = Find
index 36bfcf9..520dd22 100644 (file)
@@ -217,7 +217,7 @@ keycode  95 =
 keycode  96 = KP_Enter
 keycode  97 = Control
 keycode  98 = KP_Divide
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = AltGr
index 6c2b500..3e7c1c8 100644 (file)
@@ -180,7 +180,7 @@ keycode  95 =
 keycode  96 = KP_Enter
 keycode  97 = Control
 keycode  98 = KP_Divide
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = AltGr
index 5556e9e..47e2c51 100644 (file)
@@ -1,27 +1,25 @@
-# fi-latin1.map: Finnish keymap
+# fi-latin1.map: Finnish keymap with ISO-8859-1 symbols
 # Changes by Johan Myréen <jem@iki.fi> 1997-08-19
-# Changes by Marko Myllynen <myllynen@lut.fi> 2001-04-05
+# Changes by Marko Myllynen <myllynen@lut.fi> 2001-04-05, 2002-01-16
 
 charset "iso-8859-1"
-keymaps 0-2,4-6,8-10,12-14
+keymaps 0-6,8-10,12-14
 alt_is_meta
 include "qwerty-layout"
-       altgr keycode 18 = Hex_E
+       altgr keycode 18 = currency
        altgr keycode 19 = registered
        altgr keycode 20 = +thorn
-       control shift keycode 20 = +THORN
+       altgr shift keycode 20 = +THORN
        altgr keycode 25 = paragraph
-       altgr keycode 30 = Hex_A
-       altgr keycode 31 = ssharp
-       altgr keycode 32 = Hex_D
+       altgr control keycode 31 = ssharp
        altgr keycode 32 = +eth
-       control shift keycode 32 = +ETH
-       altgr keycode 33 = Hex_F
-       altgr keycode 46 = Hex_C
-       control shift keycode 46 = copyright
-       altgr keycode 48 = Hex_B
+       altgr shift keycode 32 = +ETH
+       altgr keycode 45 = multiply
+       shift altgr keycode 45 = division
+       altgr keycode 46 = copyright
+       altgr shift keycode 46 = cent
        altgr keycode 49 = +ntilde
-       control shift keycode 49 = +Ntilde
+       altgr shift keycode 49 = +Ntilde
        altgr keycode 50 = mu
 include "linux-with-alt-and-altgr"
        plain keycode  83 = KP_Comma
@@ -29,40 +27,39 @@ strings as usual
 
 keycode   1 = Escape
 keycode   2 = one              exclam           exclamdown
-       control shift keycode 2 = onesuperior
+       altgr shift keycode 2 = onesuperior
 keycode   3 = two              quotedbl         at
-       control shift keycode 3 = twosuperior
        control keycode   3 = nul
        control altgr keycode 3 = nul
+       altgr shift keycode 3 = twosuperior
 keycode   4 = three            numbersign       sterling
-       control shift keycode 4 = threesuperior
        control keycode   4 = Escape
-# old:  keycode   5 = four     dollar           dollar
+       altgr shift keycode 4 = threesuperior
 keycode   5 = four             currency         dollar
-       control shift keycode 5 = cent
        control keycode   5 = Control_backslash
+       altgr shift keycode 5 = cent
 keycode   6 = five             percent          currency
-       control shift keycode 6 = masculine
        control keycode   6 = Control_bracketright
+       altgr shift keycode 6 = masculine
 keycode   7 = six              ampersand        yen
-       control shift keycode 7 = ordfeminine
        control keycode   7 = Control_asciicircum
+       altgr shift keycode 7 = ordfeminine
 keycode   8 = seven            slash            braceleft
-       control shift keycode 8 = plusminus
        control keycode   8 = Control_underscore
+       altgr shift keycode 8 = plusminus
 keycode   9 = eight            parenleft        bracketleft
-       control shift keycode 9 = guillemotleft
        control keycode   9 = Delete
        control altgr keycode 9 = Escape
+       altgr shift keycode 9 = guillemotleft
 keycode  10 = nine             parenright       bracketright
-       control shift keycode 10 = guillemotright
        control altgr keycode 10 = Control_bracketright
+       altgr shift keycode 10 = guillemotright
 keycode  11 = zero             equal            braceright
-       control shift keycode 11 = degree
+       altgr shift keycode 11 = degree
 keycode  12 = plus             question         backslash
-       control shift keycode 12 = questiondown
        control keycode  12 = Control_underscore
        control altgr keycode 12 = Control_backslash
+       altgr shift keycode 12 = questiondown
 keycode  13 = dead_acute       dead_grave
        alt     keycode  13 = Meta_equal
        alt shift keycode 13 = Meta_grave
@@ -80,35 +77,34 @@ keycode  27 = dead_diaeresis   dead_circumflex  dead_tilde
 keycode  28 = Return
        alt     keycode  28 = Meta_Control_m
 keycode  29 = Control
-keycode  39 = +odiaeresis      +Odiaeresis     +oslash
-       control shift keycode 39 = +Oslash
+keycode  39 = +odiaeresis      +Odiaeresis      +oslash
        alt     keycode  39 = Meta_semicolon
-keycode  40 = +adiaeresis      +Adiaeresis     +ae
-       control shift keycode 40 = +AE
+       altgr shift keycode 39 = +Oslash
+keycode  40 = +adiaeresis      +Adiaeresis      +ae
        alt     keycode  40 = Meta_apostrophe
-keycode  41 = section          onehalf         onequarter
-       control shift keycode 41 = threequarters
+       altgr shift keycode 40 = +AE
+keycode  41 = section          onehalf          onequarter
        control keycode  41 = nul
        alt     keycode  41 = Meta_grave
+       altgr shift keycode 41 = threequarters
 keycode  42 = Shift
-# 43: Add caron and dead_caron here when supported properly
 keycode  43 = apostrophe       asterisk
        control keycode  43 = Control_backslash
-keycode  51 = comma              semicolon     cedilla
-       control shift keycode 51 = ccedilla
-       control shift keycode 51 = dead_cedilla
-keycode  52 = period             colon              periodcentered
-       control shift keycode 52 = notsign
-keycode  53 = minus               underscore       hyphen
+keycode  51 = comma            semicolon        dead_cedilla
+keycode  52 = period           colon            periodcentered
+       altgr shift keycode 52 = notsign
+keycode  53 = minus            underscore       hyphen
        control keycode  53 = Control_underscore
-       control shift keycode 53 = macron
+       control shift keycode 53 = Control_underscore
        control alt shift keycode 53 = Meta_Control_underscore
+       altgr shift keycode 53 = macron
 keycode  54 = Shift
 keycode  56 = Alt
 keycode  57 = space
        control keycode  57 = nul
+       altgr shift keycode 57 = nobreakspace
 keycode  58 = Caps_Lock
 keycode  86 = less             greater          bar
-       control shift keycode 86 = brokenbar
        alt altgr keycode 86 = Meta_bar
+       altgr shift keycode 86 = brokenbar
 keycode  97 = Control
diff --git a/data/keymaps/i386/qwerty/fi-latin9.map b/data/keymaps/i386/qwerty/fi-latin9.map
new file mode 100644 (file)
index 0000000..69bcfd1
--- /dev/null
@@ -0,0 +1,114 @@
+# fi-latin9.map: Finnish keymap with ISO-8859-15 symbols
+# Marko Myllynen <myllynen@lut.fi> 2002-01-16
+# Based on fi-latin1.map by Johan Myréen
+
+charset "iso-8859-15"
+keymaps 0-6,8-10,12-14
+alt_is_meta
+include "qwerty-layout"
+       altgr keycode 18 = euro
+       altgr keycode 19 = registered
+       altgr keycode 20 = +thorn
+       altgr shift keycode 20 = +THORN
+       altgr keycode 25 = paragraph
+       altgr keycode 31 = +scaron
+       altgr shift keycode 31 = +Scaron
+       altgr control keycode 31 = ssharp
+       altgr keycode 32 = +eth
+       altgr shift keycode 32 = +ETH
+       altgr keycode 44 = +zcaron
+       altgr shift keycode 44 = +Zcaron
+       altgr keycode 45 = multiply
+       shift altgr keycode 45 = division
+       altgr keycode 46 = copyright
+       altgr shift keycode 46 = cent
+       altgr keycode 49 = +ntilde
+       altgr shift keycode 49 = +Ntilde
+       altgr keycode 50 = mu
+include "linux-with-alt-and-altgr"
+       plain keycode  83 = KP_Comma
+strings as usual
+
+keycode   1 = Escape
+keycode   2 = one              exclam           exclamdown
+       altgr shift keycode 2 = onesuperior
+keycode   3 = two              quotedbl         at
+       control keycode   3 = nul
+       control altgr keycode 3 = nul
+       altgr shift keycode 3 = twosuperior
+keycode   4 = three            numbersign       sterling
+       control keycode   4 = Escape
+       altgr shift keycode 4 = threesuperior
+keycode   5 = four             VoidSymbol       dollar
+       control keycode   5 = Control_backslash
+       altgr shift keycode 5 = cent
+keycode   6 = five             percent          euro
+       control keycode   6 = Control_bracketright
+       altgr shift keycode 6 = masculine
+keycode   7 = six              ampersand        yen
+       control keycode   7 = Control_asciicircum
+       altgr shift keycode 7 = ordfeminine
+keycode   8 = seven            slash            braceleft
+       control keycode   8 = Control_underscore
+       altgr shift keycode 8 = plusminus
+keycode   9 = eight            parenleft        bracketleft
+       control keycode   9 = Delete
+       control altgr keycode 9 = Escape
+       altgr shift keycode 9 = guillemotleft
+keycode  10 = nine             parenright       bracketright
+       control altgr keycode 10 = Control_bracketright
+       altgr shift keycode 10 = guillemotright
+keycode  11 = zero             equal            braceright
+       altgr shift keycode 11 = degree
+keycode  12 = plus             question         backslash
+       control keycode  12 = Control_underscore
+       control altgr keycode 12 = Control_backslash
+       altgr shift keycode 12 = questiondown
+keycode  13 = dead_acute       dead_grave
+       alt     keycode  13 = Meta_equal
+       alt shift keycode 13 = Meta_grave
+keycode  14 = Delete
+keycode  15 = Tab
+keycode  26 = +aring           +Aring           +oe
+       control keycode  26 = Escape
+       alt     keycode  26 = Meta_bracketleft
+       altgr shift keycode  26 = +OE
+keycode  27 = dead_diaeresis   dead_circumflex  dead_tilde
+       control keycode  27 = Control_bracketright
+       control shift keycode 27 = Control_asciicircum
+       alt keycode  27 = Meta_bracketright
+       alt shift keycode 27 = Meta_asciicircum
+       alt altgr keycode 27 = Meta_asciitilde
+       altgr shift keycode 27 = dead_caron
+keycode  28 = Return
+       alt     keycode  28 = Meta_Control_m
+keycode  29 = Control
+keycode  39 = +odiaeresis      +Odiaeresis      +oslash
+       alt     keycode  39 = Meta_semicolon
+       altgr shift keycode 39 = +Oslash
+keycode  40 = +adiaeresis      +Adiaeresis      +ae
+       alt     keycode  40 = Meta_apostrophe
+       altgr shift keycode 40 = +AE
+keycode  41 = section
+       control keycode  41 = nul
+       alt     keycode  41 = Meta_grave
+keycode  42 = Shift
+keycode  43 = apostrophe       asterisk
+       control keycode  43 = Control_backslash
+keycode  51 = comma            semicolon        dead_cedilla
+keycode  52 = period           colon            periodcentered
+       altgr shift keycode 52 = notsign
+keycode  53 = minus            underscore       hyphen
+       control keycode  53 = Control_underscore
+       control shift keycode 53 = Control_underscore
+       control alt shift keycode 53 = Meta_Control_underscore
+       altgr shift keycode 53 = macron
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space
+       control keycode  57 = nul
+       altgr shift keycode 57 = nobreakspace
+keycode  58 = Caps_Lock
+keycode  86 = less             greater          bar
+       alt altgr keycode 86 = Meta_bar
+keycode  97 = Control
diff --git a/data/keymaps/i386/qwerty/il-heb.map b/data/keymaps/i386/qwerty/il-heb.map
new file mode 100644 (file)
index 0000000..3494e87
--- /dev/null
@@ -0,0 +1,102 @@
+# From Oded S. Resnik
+charset "iso-8859-8"
+keymaps 0-6,8,12
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode   1 = Escape           Escape           Escape          Escape
+       alt     keycode   1 = Meta_Escape
+keycode   2 = one              exclam           one    exclam 
+       alt     keycode   2 = Meta_one
+keycode   3 = two              at               two    at                             nul              nul
+       alt     keycode   3 = Meta_two
+keycode   4 = three            numbersign       three   numbersign
+       control keycode   4 = Escape
+       alt     keycode   4 = Meta_three
+keycode   5 = four             dollar           four    dollar
+       control keycode   5 = Control_backslash
+       alt     keycode   5 = Meta_four
+keycode   6 = five             percent          five    percent
+       control keycode   6 = Control_bracketright
+       alt     keycode   6 = Meta_five
+keycode   7 = six              asciicircum      six     asciicircum
+       control keycode   7 = Control_asciicircum
+       alt     keycode   7 = Meta_six
+keycode   8 = seven            ampersand        seven    ampersand
+       control keycode   8 = Control_underscore
+       alt     keycode   8 = Meta_seven
+keycode   9 = eight            asterisk         eight     asterisk                      Delete
+       alt     keycode   9 = Meta_eight
+keycode  10 = nine             parenleft        nine   parenright
+       alt     keycode  10 = Meta_nine
+keycode  11 = zero             parenright       zero   parenleft
+       alt     keycode  11 = Meta_zero
+keycode  12 = minus            underscore       minus  underscore                       Control_underscore Control_underscore
+       alt     keycode  12 = Meta_minus
+keycode  13 = equal            plus             equal   plus
+       alt     keycode  13 = Meta_equal
+keycode  14 = Delete           Delete   Delete   Delete
+       alt     keycode  14 = Meta_Delete
+keycode  15 = Tab              Tab      Tab  Tab
+       alt     keycode  15 = Meta_Tab
+keycode  16 = +q                +Q                slash         slash              Control_q Control_q  Control_q Control_q
+keycode  17 = +w                +W                apostrophe  apostrophe             Control_w Control_w  Control_w Control_w
+keycode  18 = +e                +E                qof             qof             Control_e Control_e Control_e Control_e
+keycode  19 = +r                +R                resh            resh             Control_r Control_r Control_r Control_r
+keycode  20 = +t                +T                alef            alef              Control_t Control_t Control_t Control_t
+keycode  21 = +y                +Y                tet             tet             Control_y Control_y Control_y Control_y
+keycode  22 = +u                +U                vav             vav              Control_u Control_u Control_u Control_u
+keycode  23 = +i                +I                finalnun        finalnun              Tab Tab Tab Tab
+keycode  24 = +o                +O                finalmem        finalmem           Control_o Control_o Control_o Control_o
+keycode  25 = +p                +P                pe              pe                 Control_p Control_p Control_p Control_p
+keycode  26 = bracketleft      braceleft     bracketright     braceright
+       control keycode  26 = Escape
+       alt     keycode  26 = Meta_bracketleft
+keycode  27 = bracketright     braceright    bracketleft      braceleft 
+       control keycode  27 = Control_bracketright
+       alt     keycode  27 = Meta_bracketright
+keycode  28 = Return
+       alt     keycode  28 = Meta_Control_m
+keycode  29 = Control
+keycode  30 = +a                +A                shin             shin             Control_a Control_a Control_a Control_a
+keycode  31 = +s                +S                dalet            dalet             Control_s Control_s Control_s Control_s
+keycode  32 = +d                +D                gimel            gimel            Control_d Control_d Control_d Control_d
+keycode  33 = +f                +F                kaf               kaf          Control_f Control_f Control_f Control_f
+keycode  34 = +g                +G                ayin              ayin         Control_g Control_g Control_g Control_g
+keycode  35 = +h                +H                yod               yod          BackSpace BackSpace BackSpace BackSpace
+keycode  36 = +j                +J                het              yod              Linefeed Linefeed Linefeed Linefeed
+keycode  37 = +k                +K                lamed              finalkaf         Control_k Control_k Control_k Control_k
+keycode  38 = +l                +L                finalkaf          finalkaf            Control_l Control_l Control_l Control_l
+keycode  39 = semicolon        colon              finalpe    colon 
+       alt     keycode  39 = Meta_semicolon
+keycode  40 = apostrophe       quotedbl           comma      quotedbl
+       control keycode  40 = Control_g
+       alt     keycode  40 = Meta_apostrophe
+keycode  41 = grave            asciitilde       semicolon        semicolon       nul
+       alt     keycode  41 = Meta_grave
+keycode  42 = Shift
+keycode  43 = backslash        bar  backslash 
+       control keycode  43 = Control_backslash
+       alt     keycode  43 = Meta_backslash
+keycode  44 = +z                +Z                zayin            zayin            Control_z Control_z Control_z Control_z
+keycode  45 = +x                +X                samekh           samekh              Control_x Control_x Control_x Control_x
+keycode  46 = +c                +C                bet              bet                 Control_c Control_c Control_c Control_c
+keycode  47 = +v                +V                he               he             Control_v Control_v Control_v Control_v
+keycode  48 = +b                +B                nun              nun              Control_b Control_b Control_b Control_b
+keycode  49 = +n                +N                mem              mem              Control_n Control_n Control_n Control_n
+keycode  50 = +m                +M                tsadi            tsadi            Control_m Control_m Control_m Control_m
+keycode  51 = comma            less               tav             greater 
+       alt     keycode  51 = Meta_comma
+keycode  52 = period           greater          finaltsadi       less            Compose
+       alt     keycode  52 = Meta_period
+keycode  53 = slash            question         period         question                 Delete 
+       alt     keycode  53 = Meta_slash
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space            space            space            space            nul
+       alt     keycode  57 = Meta_space
+keycode  58 = Caps_Lock
+keycode  86 = less             greater          bar
+       alt     keycode  86 = Meta_less
+keycode  97 = AltGr_Lock
+
index 51779f2..97f5c37 100644 (file)
@@ -255,7 +255,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   Alt     
index 5d8ddbd..0ac2272 100644 (file)
@@ -166,8 +166,9 @@ keycode  95 =
 keycode  96 = KP_Enter        
 keycode  97 = Control         
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
 keycode 100 = AltGr           
 keycode 101 = Break           
 keycode 102 = Find            
index 1fdb1e9..e9fc8d3 100644 (file)
@@ -458,7 +458,9 @@ keycode      98 = KP_Divide        KP_Divide        KP_Divide        KP_Divide \
              KP_Divide        Hex_B            KP_Divide        Hex_B       \
              KP_Divide        KP_Divide        KP_Divide        KP_Divide
 
-keycode         99 = Control_backslash  # 99=Print-Screen
+keycode         99 = VoidSymbol         # 99=Print-Screen
+       control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
 keycode 100 = AltGr
 keycode 101 = Break #  101=Control-Pause
 string F102 = "\033[7$"
index 2cbb4fc..abb2b29 100644 (file)
@@ -457,7 +457,9 @@ keycode      98 = KP_Divide        KP_Divide        KP_Divide        KP_Divide \
              KP_Divide        Hex_B            KP_Divide        Hex_B       \
              KP_Divide        KP_Divide        KP_Divide        KP_Divide
 
-keycode         99 = Control_backslash  # 99=Print-Screen
+keycode         99 = VoidSymbol         # 99=Print-Screen
+       control keycode  99 = Control_backslash
+       alt     keycode  99 = Control_backslash
 keycode 100 = AltGr
 keycode 101 = Break #  101=Control-Pause
 string F102 = "\033[7$"
index ea3fcf8..d9319df 100644 (file)
@@ -227,7 +227,9 @@ Console_12 Console_24 Console_12 Console_24 Console_12 Console_24 Console_12 Con
                keycode 96 = KP_Enter        
                keycode 97 = Control         
                keycode 98 = KP_Divide       
-               keycode 99 = Control_backslash
+               keycode 99 = VoidSymbol
+       control keycode 99 = Control_backslash
+       alt     keycode 99 = Control_backslash
                keycode 100 = AltGr
                keycode 101 = Break           
                keycode 102 = Find            
index 059b2bd..ac29901 100644 (file)
@@ -227,7 +227,9 @@ Console_12 Console_24 Console_12 Console_24 Console_12 Console_24 Console_12 Con
                keycode 96 = KP_Enter        
                keycode 97 = Control         
                keycode 98 = KP_Divide       
-               keycode 99 = Control_backslash
+               keycode 99 = VoidSymbol
+       alt     keycode 99 = Control_backslash
+       control keycode 99 = Control_backslash
                keycode 100 = AltGr
                keycode 101 = Break           
                keycode 102 = Find            
index 451fffc..1b349fe 100644 (file)
@@ -228,7 +228,9 @@ Console_12 Console_24 Console_12 Console_24 Console_12 Console_24 Console_12 Con
                keycode 96 = KP_Enter        
                keycode 97 = Control         
                keycode 98 = KP_Divide       
-               keycode 99 = Control_backslash
+               keycode 99 = VoidSymbol
+       alt     keycode 99 = Control_backslash
+       control keycode 99 = Control_backslash
                keycode 100 = AltGr
                keycode 101 = Break           
                keycode 102 = Find            
index 24af7e4..a072887 100644 (file)
@@ -1,69 +1,77 @@
-# NL Keyboard Mapping  version 0.0.0.1
+# From eha@dasc.nl Wed Mar 31 13:55:06 1999
+# From: Eric Hameleers <eha@dasc.nl>
 #
-# From: wwessels@explore.demon.nl
-# Date: 22/12/98 
-# For an IBM 85 key international keyboard as found on a Thinkpad 765L.
-# 
-# This keyboard mapping is far from complete, I only have fixed the
-# most irritating not working keys on the NL/IBM keyboard.
-# I will try to fix all the keys if I have the knowledge and the time.
-# 
-# Best regards, Wouter.
+# 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
 #
-# [slightly adapted - aeb]
-# [corrections welcome - it seems unlikely that both Shift-9 and Shift-0
-#  are parenright]
 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
+# extension
+  altgr keycode 24 = +oslash
+  altgr shift keycode 24 = +Oslash
 include "linux-with-alt-and-altgr"
 strings as usual
 compose as usual for "iso-8859-1"
 
 keycode   1 = Escape
-keycode   2 = one              exclam          
-keycode   3 = two              quotedbl               at               nul              nul             
-keycode   4 = three            numbersign      
-       control       keycode   4 = Escape          
-keycode   5 = four             dollar           dollar           Control_backslash
-keycode   6 = five             percent         
-       control       keycode   6 = Control_bracketright
-keycode   7 = six              ampersand     
-       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       keycode  12 = Control_underscore
-       shift control keycode  12 = Control_underscore
-keycode  13 = equal            asciitilde            
+keycode   2 = one              exclam          onesuperior
+keycode   3 = two              quotedbl        twosuperior
+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
+  control shift 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
+# some use dead_tilde instead of asciitilde
+keycode  13 = degree           asciitilde      dead_cedilla
 keycode  14 = Delete
+  control       keycode  14 = BackSpace
 keycode  15 = Tab
-keycode  26 = bracketleft      asciicircum       
-       control keycode  26 = Escape          
-keycode  27 = asterisk     bar asciitilde       Control_bracketright
-keycode  28 = Return          
-       alt     keycode  28 = Meta_Control_m  
-keycode  29 = Control         
-keycode  39 = plus        colon           
-keycode  40 = apostrophe      grave 
-       control keycode  40 = Control_g       
-keycode  41 = at            asciitilde      
-       control keycode  41 = nul             
-keycode  42 = Shift           
-keycode  43 = less        greater             
-       control keycode  43 = Control_backslash
-keycode  51 = comma           semicolon 
-keycode  52 = period          colon 
-keycode  53 = minus          equal 
-       control keycode  53 = Delete          
-keycode  54 = Shift           
-keycode  56 = Alt             
+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
+  control keycode  41 = nul
+  control shift keycode 41 = nul
+  control alt keycode 41 = Meta_nul
+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             greater          bar             
-keycode  97 = Control         
+  control      keycode  57 = nul
+keycode  58 = Caps_Lock
+keycode  86 = bracketright     bracketleft     brokenbar
+keycode  97 = Control
diff --git a/data/keymaps/i386/qwerty/nl3.map b/data/keymaps/i386/qwerty/nl3.map
deleted file mode 100644 (file)
index 6c82d36..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-# 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
index ba898ad..65d2518 100644 (file)
@@ -236,7 +236,7 @@ keycode  95 =
 keycode  96 = KP_Enter        
 keycode  97 = Control         
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control         keycode 99 = Control_backslash
        alt             keycode 99 = Control_backslash
 keycode 100 = AltGr           
diff --git a/data/keymaps/i386/qwerty/pt-latin9.map b/data/keymaps/i386/qwerty/pt-latin9.map
new file mode 100644 (file)
index 0000000..d78a8d6
--- /dev/null
@@ -0,0 +1,76 @@
+# Derived from pt-latin1.map by aeb@cwi.nl.
+#
+# With fixes for keycode 18 and 29 from jcm@netcabo.pt, 20010715.
+#
+charset "iso-8859-15"
+keymaps 0-2,4,6,8,12
+alt_is_meta
+include "qwerty-layout"
+include "linux-with-alt-and-altgr"
+strings as usual
+
+keycode   1 = Escape
+keycode   2 = one              exclam
+keycode   3 = two              quotedbl         at
+       control keycode   3 = nul
+keycode   4 = three            numbersign       sterling
+       control keycode   4 = Escape
+keycode   5 = four             dollar           section
+       control keycode   5 = Control_backslash
+keycode   6 = five             percent
+       control keycode   6 = Control_bracketright
+keycode   7 = six              ampersand
+       control keycode   7 = Control_asciicircum
+keycode   8 = seven            slash            braceleft
+       control keycode   8 = Control_underscore
+keycode   9 = eight            parenleft        bracketleft
+       control keycode   9 = Delete
+keycode  10 = nine             parenright       bracketright
+keycode  11 = zero             equal            braceright
+keycode  12 = apostrophe       question         backslash
+       control keycode  12 = Control_underscore
+       alt     keycode  12 = Meta_minus
+keycode  13 = guillemotleft    guillemotright
+       alt     keycode  13 = Meta_equal
+keycode  14 = Delete
+keycode  15 = Tab
+keycode  18 = e                       E                euro            cent
+keycode  26 = plus             asterisk         dead_diaeresis
+       control keycode  26 = Escape
+       alt     keycode  26 = Meta_bracketleft
+keycode  27 = dead_acute       dead_grave       apostrophe       grave
+       control keycode  27 = Control_bracketright
+       alt     keycode  27 = Meta_bracketright
+keycode  28 = Return
+       alt     keycode  28 = Meta_Control_m
+keycode  29 = Control
+        shift   keycode  29 = Compose
+keycode  39 = +ccedilla         Ccedilla
+       alt     keycode  39 = Meta_semicolon
+keycode  40 = masculine        ordfeminine
+       control keycode  40 = Control_g
+       alt     keycode  40 = Meta_apostrophe
+keycode  41 = backslash        bar
+       control keycode  41 = nul
+       alt     keycode  41 = Meta_grave
+keycode  42 = Shift
+keycode  43 = dead_tilde       dead_circumflex   asciitilde  asciicircum
+       control keycode  43 = Control_backslash
+       alt     keycode  43 = Meta_backslash
+keycode  51 = comma            semicolon
+keycode  52 = period           colon
+keycode  53 = minus            underscore
+       control keycode  53 = Delete
+       alt     keycode  53 = Meta_slash
+keycode  54 = Shift
+keycode  56 = Alt
+keycode  57 = space
+       control keycode  57 = nul
+keycode  58 = Caps_Lock
+keycode  86 = less             greater          bar
+keycode  97 = Control
+compose 'e' '=' to '¤'
+compose '-' 'e' to '¤'
+compose '-' 'E' to '¤'
+compose '=' 'E' to '¤'
+
index cbbc8de..e84622f 100644 (file)
@@ -250,7 +250,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   AltGr   
index 17bdb6d..b6088c5 100644 (file)
@@ -391,7 +391,7 @@ altgr       control alt     keycode  88 = Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
 altgr  control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
index f40ec4e..0e6186e 100644 (file)
@@ -386,7 +386,7 @@ altgr   control alt     keycode  88 = Console_12
                 keycode 96 =    KP_Enter        
 keycode  97 = Control
                 keycode 98 =    KP_Divide
-                keycode 99 =    Control_backslash
+                keycode 99 =    VoidSymbol
         control keycode 99 =    Control_backslash
 altgr   control keycode 99 =    Control_backslash
         alt     keycode 99 =    Control_backslash
index 80e4290..de791d9 100644 (file)
@@ -248,7 +248,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   AltGr   
index 4aa69fe..d9a37c6 100644 (file)
@@ -402,7 +402,7 @@ altgr       control alt     keycode  88 = Console_12
                keycode 96 =    KP_Enter        
 keycode  97 = Control
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
 altgr  control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
index 45b04f2..90ccc2d 100644 (file)
@@ -257,7 +257,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    Control
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   AltGr_Lock      
index 263936b..1667fe1 100644 (file)
@@ -396,7 +396,7 @@ altgr       control alt     keycode  88 = Console_12
                keycode 96 =    KP_Enter        
 keycode  97 = Control
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
 altgr  control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
index 948c3cf..e75a690 100644 (file)
@@ -394,7 +394,7 @@ altgr       control alt     keycode  88 = Console_12
                keycode 96 =    KP_Enter        
 keycode  97 = Control
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
 altgr  control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
index d4122ce..dca345d 100644 (file)
@@ -253,7 +253,7 @@ altgr       alt     keycode 88 =    Console_12
                keycode 96 =    KP_Enter        
                keycode 97 =    AltGr_Lock
                keycode 98 =    KP_Divide
-               keycode 99 =    Control_backslash
+               keycode 99 =    VoidSymbol
        control keycode 99 =    Control_backslash
        alt     keycode 99 =    Control_backslash
                keycode 100 =   AltGr   
diff --git a/data/keymaps/i386/qwerty/se-fi-ir209.map b/data/keymaps/i386/qwerty/se-fi-ir209.map
new file mode 100644 (file)
index 0000000..2f7a5a0
--- /dev/null
@@ -0,0 +1,9 @@
+# se-fi-ir209.map
+# Also used for ir197.
+# by <Regnor.Jernsletten@sami.uit.no>
+#
+# Depends on/Alters se-ir209.map:
+       keycode  39 = +odiaeresis       +Odiaeresis     +oslash +Ooblique
+       keycode  40 = +adiaeresis       +Adiaeresis     +ae     +AE
+
+# End.
diff --git a/data/keymaps/i386/qwerty/se-fi-lat6.map b/data/keymaps/i386/qwerty/se-fi-lat6.map
new file mode 100644 (file)
index 0000000..abe1540
--- /dev/null
@@ -0,0 +1,7 @@
+# se-fi-lat6.map 
+# Covers ISO 8859-10, 1993
+# Modifies se-lat6.map for use in Finland and Sweden
+# by <Regnor.Jernsletten@sami.uit.no>
+
+keycode  39 = +odiaeresis      +Odiaeresis     +oslash +Ooblique
+keycode  40 = +adiaeresis      +Adiaeresis     +ae     +AE 
diff --git a/data/keymaps/i386/qwerty/se-ir209.map b/data/keymaps/i386/qwerty/se-ir209.map
new file mode 100644 (file)
index 0000000..0c41acc
--- /dev/null
@@ -0,0 +1,351 @@
+# This is se-ir209.map.
+# It also serves as a keymap for the character set ir197
+# se-fi-ir209.map alters this keymap for use in Finland and Sweden.
+#
+# by <Regnor.Jernsletten@sami.uit.no>
+#
+keymaps 0-4,6,8,12
+strings as usual
+
+       keycode   1 = Escape
+    alt        keycode   1 = Meta_Escape
+
+       keycode   2 = one       exclam          copyright
+    alt        keycode   2 = Meta_one
+
+       keycode   3 = two       quotedbl        at
+control        keycode   3 = nul
+    alt        keycode   3 = Meta_two
+
+       keycode   4 = three     numbersign      VoidSymbol      degree
+control        keycode   4 = Escape
+    alt        keycode   4 = Meta_three
+
+       keycode   5 = four      dollar
+control        keycode   5 = Control_backslash
+    alt        keycode   5 = Meta_four
+
+       keycode   6 = five      percent
+control        keycode   6 = Control_bracketright
+    alt        keycode   6 = Meta_five
+
+       keycode   7 = six       ampersand
+control        keycode   7 = Control_asciicircum
+    alt        keycode   7 = Meta_six
+
+       keycode   8 = seven     slash           braceleft       division
+control        keycode   8 = Control_underscore
+    alt        keycode   8 = Meta_seven
+
+       keycode   9 = eight     parenleft       bracketleft
+control        keycode   9 = Delete
+    alt        keycode   9 = Meta_eight
+
+       keycode  10 = nine      parenright      bracketright
+    alt        keycode  10 = Meta_nine
+
+       keycode  11 = zero      equal   braceright      braceright
+    alt        keycode  11 = Meta_zero
+
+       keycode  12 = plus      question        VoidSymbol      VoidSymbol
+    alt        keycode  12 = Meta_plus
+
+       keycode  13 = backslash grave           dead_acute      dead_grave
+control        keycode  13 = Control_backslash
+    alt        keycode  13 = Meta_backslash
+
+       keycode  14 = Delete    Delete
+control        keycode  14 = Control_underscore        # For Emacs' UNDO :-)
+    alt        keycode  14 = Meta_Delete
+
+       keycode  15 = Tab       Tab
+    alt        keycode  15 = Meta_Tab
+
+       keycode  16 = +q        +Q              +agrave         +Agrave
+       keycode  17 = +w
+
+       keycode  18 = +e        +E              +eacute         +Eacute
+control        keycode  18 = Control_e
+    alt        keycode  18 = Meta_e
+
+       keycode  19 = +r        +R      +egrave         +Egrave
+control        keycode  19 = Control_r
+    alt        keycode  19 = Meta_r
+
+       keycode  20 = +t        +T              +cedilla        +mu
+control        keycode  20 = Control_t
+    alt        keycode  20 = Meta_t
+
+       keycode  21 = +y        +Y              ydiaeresis      VoidSymbol
+control        keycode  21 = Control_y
+    alt        keycode  21 = Meta_y
+
+       keycode  22 = +u        +U              +udiaeresis     +Udiaeresis
+control        keycode  22 = Control_u
+    alt        keycode  22 = Meta_u
+
+       keycode  23 = +i        +I              +oacute         +Oacute
+control        keycode  23 = Tab
+    alt        keycode  23 = Meta_i
+
+       keycode  24 = +o        +O              +ocircumflex    +Ocircumflex
+control        keycode  24 = Control_o
+    alt        keycode  24 = Meta_o
+
+       keycode  25 = +p        +P              +ograve         +Ograve
+control        keycode  25 = Control_p
+    alt        keycode  25 = Meta_p
+
+       keycode  26 = +aring    +Aring          +acircumflex    +Acircumflex
+control        keycode  26 = Control_bracketright
+    alt        keycode  26 = Meta_bracketright
+
+       keycode  27 = asciitilde asciicircum    dead_diaeresis  dead_tilde
+control        keycode  27 = Control_asciicircum
+    alt        keycode  27 = Meta_asciicircum
+
+       keycode  28 = Return
+    alt        keycode  28 = 0x080d
+
+       keycode  29 = Control
+
+       keycode  30 = +a        +A              +aacute         +Aacute
+control        keycode  30 = Control_a
+    alt        keycode  30 = Meta_a
+
+       keycode  31 = +s        +S              +threesuperior  +twosuperior
+control        keycode  31 = Control_s
+
+# d, small and capital letter d with stroke
+# Check!
+       keycode  32 = +d        +D              +0x0a4          +0xa3
+control        keycode  32 = Control_d
+    alt        keycode  32 = Meta_d
+
+       keycode  33 = +f        +F              +eth            +ETH
+control        keycode  33 = Control_f
+    alt        keycode  33 = Meta_f
+
+# g, small and capital letter g with stroke
+       keycode  34 = +g        +G      +0xa6   +0xa5
+
+# Alternatives:  ISO-IR-197 ISO-IR-209
+## Either:
+# ISO-IR-209:  h, small and capital letter h with caron
+## Or:
+# ISO-IR-197:  h, small and guillemot right and left
+##
+       keycode  35 = +h        +H      +0xab   +0xbb
+       keycode  36 = +j
+# k, small and capital letter k with caron
+       keycode  37 = +k        +K      +0xae   +0xac
+       keycode  38 = +l
+
+       keycode  39 = +oslash   +Ooblique       +odiaeresis     +Odiaeresis
+control        keycode  39 = Control_backslash
+    alt        keycode  39 = Meta_backslash
+
+       keycode  40 = +ae       +AE             +adiaeresis     +Adiaeresis
+control        keycode  40 = Escape
+    alt        keycode  40 = Meta_bracketleft
+
+# Chcck!
+       keycode  41 = bar       section         brokenbar       paragraph
+control        keycode  41 = Control_backslash
+    alt        keycode  41 = Meta_bar
+
+       keycode  42 = Shift
+
+       keycode  43 = apostrophe asterisk       dead_circumflex multiply
+    alt        keycode  43 = Meta_apostrophe
+
+       keycode  44 = +z        +Z              +masculine      +onesuperior
+
+       keycode  45 = +x        +X              +ccedilla       +Ccedilla
+control        keycode  45 = Control_x
+    alt        keycode  45 = Meta_x
+
+       keycode  46 = +c        +C              cent    exclamdown
+control        keycode  46 = Control_c
+    alt        keycode  46 = Meta_c
+
+       keycode  47 = +v
+       keycode  48 = +b        +B              +ntilde         +Ntilde
+
+# Check!
+# m, eng
+       keycode  49 = +n        +N              +0x0b1          +0xaf
+control        keycode  49 = Control_n
+    alt        keycode  49 = Meta_n
+
+       keycode  50 = +m
+control        keycode  50 = Control_m
+    alt        keycode  50 = Meta_m
+
+       keycode  51 = comma     semicolon       cedilla         guillemotleft
+    alt        keycode  51 = Meta_comma
+
+       keycode  52 = period    colon           periodcentered  guillemotright
+    alt        keycode  52 = Meta_period
+
+       keycode  53 = minus     underscore      hyphen
+control        keycode  53 = Control_underscore
+    alt        keycode  53 = Meta_minus
+
+       keycode  54 = Shift
+       keycode  55 = KP_Multiply
+       keycode  56 = Alt
+
+       keycode  57 = space     space           nobreakspace    nobreakspace
+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_Comma
+control altgr  keycode  83 = Boot
+control alt    keycode  83 = Boot
+
+       keycode  84 = Last_Console
+       keycode  85 =
+
+# Alternatives:  ISO-IR-197 ISO-IR-209
+
+## Either ISO-IR-197:
+#      keycode  86 = less      greater         guillemotleft   guillemotright
+## Or ISO-IR-209:  less, greater, h caron, H caron 
+       keycode  86 = less      greater         +0xab   +0xbb
+    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  96 = KP_Enter
+       keycode  97 = Control
+       keycode  98 = KP_Divide
+
+       keycode  99 = VoidSymbol
+control        keycode  99 = Control_backslash
+    alt        keycode  99 = Control_backslash
+
+       keycode 100 = AltGr
+       keycode 101 = Break
+       keycode 102 = Find
+
+       keycode 103 = Up
+control keycode 103 = Scroll_Backward
+
+       keycode 104 = Prior     Scroll_Backward
+       keycode 105 = Left
+alt     keycode 105 = Decr_Console
+       keycode 106 = Right
+alt     keycode 106 = Incr_Console
+       keycode 107 = Select
+
+       keycode 108 = Down
+control keycode 108 = Scroll_Forward
+
+       keycode 109 = Next      Scroll_Forward
+       keycode 110 = Insert
+
+       keycode 111 = Delete            # "Remove" originally, weird...
+control alt    keycode 111 = Boot
+control altgr  keycode 111 = Boot
+
diff --git a/data/keymaps/i386/qwerty/se-lat6.map b/data/keymaps/i386/qwerty/se-lat6.map
new file mode 100644 (file)
index 0000000..94e3d00
--- /dev/null
@@ -0,0 +1,379 @@
+# se-lat6.map
+# Covers ISO 8859-10, 1993
+# se-fi-lat6.map modifies this keymap for use in Finland and Sweden.
+# by <Regnor.Jernsletten@sami.uit.no>
+# Documented.  Accents in <> are dead keys.
+# Order:  key, Shift+key, AltGr-key, AltGr+Shift+key
+#
+keymaps 0-4,6,8,12
+strings as usual
+
+       keycode   1 = Escape
+    alt        keycode   1 = Meta_Escape
+
+# 1 !
+       keycode   2 = one       exclam  one     exclam
+    alt        keycode   2 = Meta_one
+
+# 2 " @ "
+       keycode   3 = two       quotedbl        at      quotedbl
+control        keycode   3 = nul
+    alt        keycode   3 = Meta_two
+
+# 3 #
+       keycode   4 = three     numbersign      three   numbersign
+control        keycode   4 = Escape
+    alt        keycode   4 = Meta_three
+
+# 4 $ < >
+       keycode   5 = four      dollar  less    greater
+control        keycode   5 = Control_backslash
+    alt        keycode   5 = Meta_four
+
+# 5 % 
+       keycode   6 = five      percent five    five    percent
+control        keycode   6 = Control_bracketright
+    alt        keycode   6 = Meta_five
+
+# 6 &
+       keycode   7 = six       ampersand       six     ampersand
+control        keycode   7 = Control_asciicircum
+    alt        keycode   7 = Meta_six
+
+# 7 / { |
+       keycode   8 = seven     slash           braceleft       0x7c
+control        keycode   8 = Control_underscore
+    alt        keycode   8 = Meta_seven
+
+# 8 ( [ {
+       keycode   9 = eight     parenleft       bracketleft     braceleft
+control        keycode   9 = Delete
+    alt        keycode   9 = Meta_eight
+
+# 9 ) ] }
+       keycode  10 = nine      parenright      bracketright    braceright
+    alt        keycode  10 = Meta_nine
+
+# 0 = } =
+       keycode  11 = zero      equal   braceright      equal
+    alt        keycode  11 = Meta_zero
+
+# + ? + ?
+       keycode  12 = plus      question        plus    question
+    alt        keycode  12 = Meta_plus
+
+# \ ` <'> <`>
+       keycode  13 = backslash grave           dead_acute      dead_grave
+control        keycode  13 = Control_backslash
+    alt        keycode  13 = Meta_backslash
+
+       keycode  14 = Delete    Delete
+control        keycode  14 = Control_underscore        # For Emacs' UNDO :-)
+    alt        keycode  14 = Meta_Delete
+
+       keycode  15 = Tab       Tab
+    alt        keycode  15 = Meta_Tab
+
+# q Q ä Ä
+       keycode  16 = +q        +Q              +adiaeresis     +Adiaeresis
+       keycode  17 = +w
+
+# e E é É
+       keycode  18 = +e        +E              +eacute         +Eacute
+control        keycode  18 = Control_e
+    alt        keycode  18 = Meta_e
+
+# r R 
+       keycode  19 = +r        +R
+control        keycode  19 = Control_r
+    alt        keycode  19 = Meta_r
+
+# t stroke on AltGr!
+# t T » «
+       keycode  20 = +t        +T              +0xbb   +0xab
+control        keycode  20 = Control_t
+    alt        keycode  20 = Meta_t
+
+
+# y Y ý Ý
+       keycode  21 = +y        +Y      +yacute +Yacute
+control        keycode  21 = Control_y
+    alt        keycode  21 = Meta_y
+
+# u U ü Ü
+       keycode  22 = +u        +U      +udiaeresis     +Udiaeresis
+control        keycode  22 = Control_u
+    alt        keycode  22 = Meta_u
+
+# i I ï Ï
+       keycode  23 = +i        +I      +idiaeresis     +Idiaeresis
+control        keycode  23 = Tab
+    alt        keycode  23 = Meta_i
+
+# o O ö Ö
+       keycode  24 = +o        +O              +odiaeresis     +Odiaeresis
+control        keycode  24 = Control_o
+    alt        keycode  24 = Meta_o
+
+# p P þ þ
+       keycode  25 = +p        +P      0xfe    0xde
+control        keycode  25 = Control_p
+    alt        keycode  25 = Meta_p
+
+# å Å â Â
+       keycode  26 = +aring    +Aring          +acircumflex    +Acircumflex
+control        keycode  26 = Control_bracketright
+    alt        keycode  26 = Meta_bracketright
+
+# <"> <~> ~ ^ 
+       keycode  27 = dead_diaeresis    dead_tilde      asciitilde asciicircum
+control        keycode  27 = Control_asciicircum
+    alt        keycode  27 = Meta_asciicircum
+
+       keycode  28 = Return
+    alt        keycode  28 = 0x080d
+
+       keycode  29 = Control
+
+# a A á Á
+       keycode  30 = +a        +A      +aacute         +Aacute
+control        keycode  30 = Control_a
+    alt        keycode  30 = Meta_a
+
+# s S º ª
+       keycode  31 = +s        +S      +0xba   +0xaa
+control        keycode  31 = Control_s
+
+# d D ð Ð
+       keycode  32 = +d        +D              +eth            +ETH
+control        keycode  32 = Control_d
+    alt        keycode  32 = Meta_d
+
+# f F f F
+       keycode  33 = +f
+control        keycode  33 = Control_f
+    alt        keycode  33 = Meta_f
+
+       keycode  34 = +g
+       keycode  35 = +h
+       keycode  36 = +j
+       keycode  37 = +k
+       keycode  38 = +l
+
+# ø Ø ö Ö
+       keycode  39 = +oslash   +Ooblique       +odiaeresis     +Odiaeresis
+control        keycode  39 = Control_backslash
+    alt        keycode  39 = Meta_backslash
+
+# æ Æ ä Ä
+       keycode  40 = +ae       +AE     +adiaeresis     +Adiaeresis
+control        keycode  40 = Escape
+    alt        keycode  40 = Meta_bracketleft
+
+# | § | §
+       keycode  41 = bar       0xa7    bar     0xa7
+control        keycode  41 = Control_backslash
+    alt        keycode  41 = Meta_bar
+
+       keycode  42 = Shift
+
+# ' * <^> ×
+       keycode  43 = apostrophe asterisk       dead_circumflex multiply
+    alt        keycode  43 = Meta_apostrophe
+
+# z Z ¼ ¬
+       keycode  44 = +z        +Z      +0xbc   +0xac
+
+# x X
+       keycode  45 = +x
+control        keycode  45 = Control_x
+    alt        keycode  45 = Meta_x
+
+# c C è È
+       keycode  46 = +c        +C      +0xe8   +0xc8
+control        keycode  46 = Control_c
+    alt        keycode  46 = Meta_c
+
+       keycode  47 = +v
+       keycode  48 = +b
+
+# n N ¿ ¯
+       keycode  49 = +n        +N      +0xbf   +0xaf
+control        keycode  49 = Control_n
+    alt        keycode  49 = Meta_n
+
+       keycode  50 = +m
+control        keycode  50 = Control_m
+    alt        keycode  50 = Meta_m
+
+# , ;
+       keycode  51 = comma     semicolon       comma   semicolon
+    alt        keycode  51 = Meta_comma
+
+# . :
+       keycode  52 = period    colon   period  colon
+    alt        keycode  52 = Meta_period
+
+# - _ ­ 
+       keycode  53 = minus     underscore      hyphen
+control        keycode  53 = Control_underscore
+    alt        keycode  53 = Meta_minus
+
+       keycode  54 = Shift
+       keycode  55 = KP_Multiply
+       keycode  56 = Alt
+
+       keycode  57 = space     space           nobreakspace    nobreakspace
+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_Comma
+control altgr  keycode  83 = Boot
+control alt    keycode  83 = Boot
+
+       keycode  84 = Last_Console
+       keycode  85 =
+
+       keycode  86 = less      greater         guillemotleft   guillemotright
+    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 = VoidSymbol
+control        keycode  99 = Control_backslash
+    alt        keycode  99 = Control_backslash
+
+       keycode 100 = AltGr
+       keycode 101 = Break
+       keycode 102 = Find
+
+       keycode 103 = Up
+control keycode 103 = Scroll_Backward
+
+       keycode 104 = Prior     Scroll_Backward
+       keycode 105 = Left
+alt     keycode 105 = Decr_Console
+       keycode 106 = Right
+alt     keycode 106 = Incr_Console
+       keycode 107 = Select
+
+       keycode 108 = Down
+control keycode 108 = Scroll_Forward
+
+       keycode 109 = Next      Scroll_Forward
+       keycode 110 = Insert
+
+       keycode 111 = Delete            # "Remove" originally, weird...
+control alt    keycode 111 = Boot
+control altgr  keycode 111 = Boot
index 95c13f5..6bb8c54 100644 (file)
@@ -117,15 +117,15 @@ 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 99 = VoidSymbol
+       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
+       shift keycode 104 = Scroll_Backward
 keycode 105 = Left
        alt keycode 105 = Decr_Console
        alt altgr keycode 105 = Decr_Console
@@ -135,10 +135,10 @@ keycode 106 = Right
 keycode 107 = Select
 keycode 108 = Down
 keycode 109 = Next
-shift keycode 109 = Scroll_Forward
+       shift keycode 109 = Scroll_Forward
 keycode 110 = Insert
 keycode 111 = Remove
-control alt keycode 111 = Boot
+       control alt keycode 111 = Boot
 keycode 112 = Macro
 keycode 113 = F13
 keycode 114 = F14
index 1711ab1..c0c66eb 100644 (file)
@@ -70,9 +70,9 @@ 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 99 = VoidSymbol
+       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
diff --git a/data/keymaps/i386/qwerty/sr-cy.map b/data/keymaps/i386/qwerty/sr-cy.map
new file mode 100644 (file)
index 0000000..0d5f65d
--- /dev/null
@@ -0,0 +1,321 @@
+! Serbian Cyrillic keyboard.map. You have to use some of ISO-8859-05 console
+! fonts (type 'setfont iso05.f16'...). I used ru.map to make this one. Read
+! the comment for the Russian Cyrillic keyboard.map. Serbian Latin
+! keyboard.map is named sr.map (I think it should be named sr-la.map.).
+! 
+! In Serbian: Ovo je zahvalna tastatura, a moracu da napravim slicnu za
+! ISO-8859-2 (nasu latinicu). Pomocu desnog kontrol tastera menjate ASCII,
+! odnosno ISO-8859-5 cirilicu. Naravno, morate koristiti odgovarajuci font
+! (kao sto sam naveo gore na engleskom -- kucajte: 'setfont iso05.f16' za
+! dobijanje fonta). Uostalom, sveo sto pocinje sa 'iso05' odgovara. Vodite
+! racuna o sledecem: (1) Ne moze se koristiti nasa cirilica i nasa latinica
+! zajedno. Zato moze engleski alfabet i nasa cirilica, kao i sve ostale
+! slovenske cirilice. (2) Ima malih izmena u odnosu na Mikrosoftovu
+! cirilicnu tastaturu na koju ste navikli: a) taster za 'zh/zx' i taster za
+! minus i donju crtu su zamenjeni; na ANSI tastaturama to znaci da na mestu
+! gde su znakovi '/' i '?' se nalazi 'zh/zx', a na mestu gde je '\' i '|'
+! stoji '-' i '_'; b) po preporuci Mitra Pesikana i Miljka Kovacevica (vidi
+! knjigu Mitra Pesikana Nasa azbuka i njene norme) taster za 'dj/dy' se
+! nalazi na mestu gde se obicno nalazi makedonsko 'dz', odnosno na ANSI
+! tastaturi pise 'z'; to mi je omogucilo da taster koji obicno sluzi za
+! 'dj/dy' iskoristim za otvorenu i zatvorenu srednju zagradu. Nisam
+! iskoristio dodatni taster koji ide uz nase tastature, ali ima vremena...
+! Ako bas ne znate engleski, da navedem jos da funkciju 'siftovanja', tj.
+! trenutnog prebacivanja (znaci, ono sto radi taster 'shift' kad su u
+! pitanju mala i velika slova) sa jednog pisma na drugo radi AltGr taster,
+! tj. desni Alt taster. Napomena: Moguce je da ova tastatura ima nekih
+! gresaka, posto sam je 'na slepo' pravio.
+! 
+! 27. 1. 2000.
+! 
+! Milos Rancic (millosh@isgf.grf.bg.ac.yu).
+! 
+! > Russian Cyrillic keyboard.map. "Cyrillic" mode is toggled by
+! > Right_Ctrl key and shifted by AltGr key.
+! 
+
+keymaps 0-4,6,8,10,12
+strings as usual
+
+               keycode 1 =     Escape  Escape          Escape  Escape
+       alt     keycode 1 =     Meta_Escape
+               keycode 2 =     one     exclam          one     exclam
+       alt     keycode 2 =     Meta_one        
+               keycode 3 =     two     at              two     quotedbl
+       control keycode 3 =     nul     
+       alt     keycode 3 =     Meta_two        
+               keycode 4 =     three   numbersign      three   numbersign
+       control keycode 4 =     Escape
+       alt     keycode 4 =     Meta_three
+               keycode 5 =     four    dollar          four    dollar  
+       control keycode 5 =     Control_backslash
+       alt     keycode 5 =     Meta_four
+               keycode 6 =     five    percent         five    percent
+       control keycode 6 =     Control_bracketright
+       alt     keycode 6 =     Meta_five
+               keycode 7 =     six     asciicircum     six     ampersand
+       control keycode 7 =     Control_asciicircum
+       alt     keycode 7 =     Meta_six        
+               keycode 8 =     seven   ampersand       seven   slash
+       control keycode 8 =     Control_underscore
+       alt     keycode 8 =     Meta_seven
+               keycode 9 =     eight   asterisk        eight   parenleft
+       control keycode 9 =     Delete  
+       alt     keycode 9 =     Meta_eight
+               keycode 10 =    nine    parenleft       nine    parenright
+       alt     keycode 10 =    Meta_nine
+               keycode 11 =    zero    parenright      zero    equal
+       alt     keycode 11 =    Meta_zero
+               keycode 12 =    minus   underscore      apostrophe question
+       control keycode 12 =    Control_underscore
+       alt     keycode 12 =    Meta_minus
+               keycode 13 =    equal   plus            plus    asterisk
+       alt     keycode 13 =    Meta_equal
+               keycode 14 =    BackSpace BackSpace     BackSpace BackSpace
+       alt     keycode 14 =    Meta_Delete
+               keycode 15 =    Tab     Tab             Tab     Tab     
+       alt     keycode 15 =    Meta_Tab        
+               keycode 16 =    +q      +Q              +249    +169
+       control keycode 16 =    Control_q
+altgr  control keycode 16 =    Control_q
+               keycode 17 =    +w      +W              +250    +170
+       control keycode 17 =    Control_w
+altgr  control keycode 17 =    Control_w
+               keycode 18 =    +e      +E              +213    +181
+       control keycode 18 =    Control_e
+altgr  control keycode 18 =    Control_e
+               keycode 19 =    +r      +R              +224    +192
+       control keycode 19 =    Control_r
+altgr  control keycode 19 =    Control_r
+               keycode 20 =    +t      +T              +226    +194
+       control keycode 20 =    Control_t
+altgr  control keycode 20 =    Control_t
+               keycode 21 =    +y      +Y              +215    +183
+       control keycode 21 =    Control_y
+altgr  control keycode 21 =    Control_y
+               keycode 22 =    +u      +U              +227    +195
+       control keycode 22 =    Control_u
+altgr  control keycode 22 =    Control_u
+               keycode 23 =    +i      +I              +216    +184
+       control keycode 23 =    Tab
+altgr  control keycode 23 =    Tab
+               keycode 24 =    +o      +O              +222    +190
+       control keycode 24 =    Control_o
+altgr  control keycode 24 =    Control_o
+               keycode 25 =    +p      +P              +223    +191
+       control keycode 25 =    Control_p
+altgr  control keycode 25 =    Control_p
+               keycode 26 =    bracketleft braceleft   +232    +200
+       control keycode 26 =    Escape  
+altgr  control keycode 26 =    Escape  
+       alt     keycode 26 =    Meta_bracketleft
+               keycode 27 =    bracketright braceright bracketleft bracketright
+       control keycode 27 =    Control_bracketright
+altgr  control keycode 27 =    Control_bracketright
+       alt     keycode 27 =    Meta_bracketright
+               keycode 28 =    Return  
+       alt     keycode 28 =    Meta_Control_m  
+               keycode 29 =    Control 
+               keycode 30 =    +a      +A              +208    +176
+       control keycode 30 =    Control_a
+altgr  control keycode 30 =    Control_a
+               keycode 31 =    +s      +S              +225    +193
+       control keycode 31 =    Control_s
+altgr  control keycode 31 =    Control_s
+               keycode 32 =    +d      +D              +212    +180
+       control keycode 32 =    Control_d
+altgr  control keycode 32 =    Control_d
+               keycode 33 =    +f      +F              +228    +196
+       control keycode 33 =    Control_f
+altgr  control keycode 33 =    Control_f
+               keycode 34 =    +g      +G              +211    +179
+       control keycode 34 =    Control_g
+altgr  control keycode 34 =    Control_g
+               keycode 35 =    +h      +H              +229    +197
+       control keycode 35 =    BackSpace
+altgr  control keycode 35 =    BackSpace
+               keycode 36 =    +j      +J              +248    +168
+       control keycode 36 =    Linefeed
+altgr  control keycode 36 =    Linefeed
+               keycode 37 =    +k      +K              +218    +186
+       control keycode 37 =    Control_k
+altgr  control keycode 37 =    Control_k
+               keycode 38 =    +l      +L              +219    +187
+       control keycode 38 =    Control_l
+altgr  control keycode 38 =    Control_l
+               keycode 39 =    semicolon colon         +231    +199
+       alt     keycode 39 =    Meta_semicolon
+               keycode 40 =    apostrophe quotedbl     +251    +171
+       control keycode 40 =    Control_g
+altgr  control keycode 40 =    Control_g
+       alt     keycode 40 =    Meta_apostrophe
+               keycode 41 =    grave   asciitilde      grave   asciitilde
+       control keycode 41 =    nul     
+       alt     keycode 41 =    Meta_grave
+               keycode 42 =    Shift   
+               keycode 43 =    backslash bar           minus   underscore
+       control keycode 43 =    Control_backslash
+       alt     keycode 43 =    Meta_backslash
+               keycode 44 =    +z      +Z              +242    +162
+       control keycode 44 =    Control_z
+altgr  control keycode 44 =    Control_z
+               keycode 45 =    +x      +X              +255    +175
+       control keycode 45 =    Control_x
+altgr  control keycode 45 =    Control_x
+               keycode 46 =    +c      +C              +230    +198
+       control keycode 46 =    Control_c
+altgr  control keycode 46 =    Control_c
+               keycode 47 =    +v      +V              +210    +178
+       control keycode 47 =    Control_v
+altgr  control keycode 47 =    Control_v
+               keycode 48 =    +b      +B              +209    +177
+       control keycode 48 =    Control_b
+altgr  control keycode 48 =    Control_b
+               keycode 49 =    +n      +N              +221    +189
+       control keycode 49 =    Control_n
+altgr  control keycode 49 =    Control_n
+               keycode 50 =    +m      +M              +220    +188
+       control keycode 50 =    Control_m
+altgr  control keycode 50 =    Control_m
+               keycode 51 =    comma   less            comma   semicolon
+       alt     keycode 51 =    Meta_comma
+               keycode 52 =    period  greater         period  colon
+       alt     keycode 52 =    Meta_period
+               keycode 53 =    slash   question        +214    +182
+       control keycode 53 =    Delete  
+       alt     keycode 53 =    Meta_slash
+               keycode 54 =    Shift
+               keycode 55 =    KP_Multiply
+               keycode 56 =    Alt     
+               keycode 57 =    space   space           space   space   
+       control keycode 57 =    nul     
+       alt     keycode 57 =    Meta_space
+               keycode 58 =    Caps_Lock
+               keycode 59 =    F1      F11     F1      F11
+       control keycode 59 =    F1      
+       alt     keycode 59 =    Console_1
+altgr  alt     keycode 59 =    Console_1
+               keycode 60 =    F2      F12     F2      F12
+       control keycode 60 =    F2      
+       alt     keycode 60 =    Console_2
+altgr  alt     keycode 60 =    Console_2
+               keycode 61 =    F3      F13     F3      F13
+       control keycode 61 =    F3      
+       alt     keycode 61 =    Console_3
+altgr  alt     keycode 61 =    Console_3
+               keycode 62 =    F4      F14     F4      F14
+       control keycode 62 =    F4      
+       alt     keycode 62 =    Console_4
+altgr  alt     keycode 62 =    Console_4
+               keycode 63 =    F5      F15     F5      F15
+       control keycode 63 =    F5      
+       alt     keycode 63 =    Console_5
+altgr  alt     keycode 63 =    Console_5
+               keycode 64 =    F6      F16     F6      F16
+       control keycode 64 =    F6      
+       alt     keycode 64 =    Console_6
+altgr  alt     keycode 64 =    Console_6
+               keycode 65 =    F7      F17     F7      F17
+       control keycode 65 =    F7      
+       alt     keycode 65 =    Console_7
+altgr  alt     keycode 65 =    Console_7
+               keycode 66 =    F8      F18     F8      F18
+       control keycode 66 =    F8      
+       alt     keycode 66 =    Console_8
+altgr  alt     keycode 66 =    Console_8
+               keycode 67 =    F9      F19     F9      F19
+       control keycode 67 =    F9      
+       alt     keycode 67 =    Console_9
+altgr  alt     keycode 67 =    Console_9
+               keycode 68 =    F10     F20     F10     F20
+       control keycode 68 =    F10     
+       alt     keycode 68 =    Console_10
+altgr  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     F11     F11
+       control keycode 87 =    F11     
+       alt     keycode 87 =    Console_11
+altgr  alt     keycode 87 =    Console_11
+               keycode 88 =    F12     F12     F12     F12
+       control keycode 88 =    F12     
+       alt     keycode 88 =    Console_12
+altgr  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 =    AltGr_Lock
+               keycode 98 =    KP_Divide
+               keycode 99 =    VoidSymbol
+       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 =
+               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 =
index d7d1d38..83227a8 100644 (file)
@@ -1518,7 +1518,7 @@ ctrlr keycode 97 = CtrlL_Lock
 ctrll keycode 97 = CtrlL_Lock
 ctrll ctrlr keycode 97 = CtrlL_Lock
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = Alt
index bf80ac0..6d4ac82 100644 (file)
@@ -1508,7 +1508,7 @@ ctrlr keycode 97 = CtrlL_Lock
 ctrll keycode 97 = CtrlL_Lock
 ctrll ctrlr keycode 97 = CtrlL_Lock
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = CtrlR_Lock
index 4cd8092..e273afa 100644 (file)
@@ -1516,7 +1516,7 @@ keycode  95 =
 keycode  96 = AltGr        
 keycode 97 = Control
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = Alt
index 52fcdfb..1d93ed9 100644 (file)
@@ -1507,7 +1507,7 @@ ctrlr keycode 97 = CtrlL_Lock
 ctrll keycode 97 = CtrlL_Lock
 ctrll ctrlr keycode 97 = CtrlL_Lock
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = CtrlR_Lock
index 4adb484..03ed812 100644 (file)
@@ -188,7 +188,7 @@ keycode  95 =
 keycode  96 = KP_Enter        
 keycode  97 = Control         
 keycode  98 = KP_Divide       
-keycode  99 = Control_backslash
+keycode  99 = VoidSymbol
        control keycode  99 = Control_backslash
        alt     keycode  99 = Control_backslash
 keycode 100 = AltGr           
index c86e1a5..3ef6b44 100644 (file)
@@ -130,7 +130,7 @@ keycode 95 =
 keycode 96  = KP_Enter
 keycode 97  = Control
 keycode 98  = KP_Divide
-keycode 99  = Control_backslash
+keycode 99  = VoidSymbol
 control keycode 99  = Control_backslash
 alt keycode 99  = Control_backslash
 keycode 100  = AltGr
index 9b77665..3d53816 100644 (file)
@@ -77,4 +77,10 @@ keycode  57 = space            space
        control keycode  57 = nul
        alt     keycode  57 = Meta_space
 keycode  58 = Caps_Lock
+# Otto Wyss reports that his USB keyboard has keycode 84 where
+# a serial keyboard has keycode 43:
+#
+# keycode  84 = dollar           sterling
+#      control keycode  84 = Control_backslash
+#      alt     keycode  84 = Meta_backslash
 keycode  97 = Control
index db9930e..c42d4f9 100644 (file)
@@ -76,6 +76,12 @@ keycode  57 = space            space
        control keycode  57 = nul
        alt     keycode  57 = Meta_space
 keycode  58 = Caps_Lock
+# Otto Wyss reports that his USB keyboard has keycode 84 where
+# a serial keyboard has keycode 43:
+#
+# keycode  84 = dollar           sterling         braceright
+#      control keycode  84 = Control_backslash
+#      alt     keycode  84 = Meta_backslash
 keycode  86 = less             greater          backslash
        alt     keycode  86 = Meta_less
 keycode  97 = Control
index c4f108f..374c1cb 100644 (file)
@@ -82,6 +82,13 @@ keycode  57 = space            space
        control keycode  57 = nul
        alt     keycode  57 = Meta_space
 keycode  58 = Caps_Lock
+# Otto Wyss reports that his USB keyboard has keycode 84 where
+# a serial keyboard has keycode 43:
+#
+# keycode  84 = dollar
+#      altgr   keycode  84 = braceright
+#      control keycode  84 = Control_backslash
+#      alt     keycode  84 = Meta_backslash
 keycode  86 = less             greater          backslash
        alt     keycode  86 = Meta_less
 keycode  97 = Control
index 5fd79a2..38f6ecb 100644 (file)
@@ -117,9 +117,9 @@ 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 99 = VoidSymbol
+       control keycode 99 = Control_backslash
+       alt keycode 99 = Control_backslash
 keycode 100 = AltGr
 keycode 101 = Break
 keycode 102 = Find
index b22e4a7..b49c440 100644 (file)
@@ -118,7 +118,7 @@ keycode 95 =
 keycode 96 = KP_Enter
 keycode 97 = Control
 keycode 98 = KP_Divide
-keycode 99 = Control_backslash
+keycode 99 = VoidSymbol
 control keycode 99 = Control_backslash
 alt keycode 99 = Control_backslash
 keycode 100 = AltGr
index ca4d09e..cff11b7 100644 (file)
@@ -114,17 +114,18 @@ Bits 2,4,5 are unused or have varying meanings.
 (On MCA bit 4 (r): 1: watchdog timeout occurred.)
 <p>
 <h3>Using 0x92 may be necessary</h3>
-Sometimes (especially on embedded systems) no keyboard controller
-is present, and it may be necessary to use 0x92.
+Sometimes (especially on embedded systems, maybe also on some
+"legacy-free" systems) no keyboard controller is present,
+and it may be necessary to use 0x92.
 Often however, the chip will catch accesses to ports 0x64 and 0x60
 and simulate the expected behaviour, also when no keyboard controller
 is present. Sometimes, this snooping behaviour must be enabled first.
 
 <h3>Using 0x92 may be dangerous</h3>
 Gianluca Anzolin <g.anzolin@inwind.it> reports:
-I have a TRIDENT 9660 video card integrated on the mainboard.
-Linux boots well, but after LILO has loaded the kernel, the screen
-becomes black and remains black ever after. Removing
+I have an Olivetti M4 (P166) with TRIDENT 9660 video card integrated
+on the mainboard. Linux boots well, but after LILO has loaded the kernel,
+the screen becomes black and remains black ever after. Removing
 <pre>
         inb     $0x92, %al                      #
         orb     $02, %al                        # "fast A20" version
@@ -132,7 +133,22 @@ becomes black and remains black ever after. Removing
 </pre>
 from <tt>setup.S</tt> solved this. Apparently on his machine
 writing to some of these bits is dangerous and does something
-to the on-board video card (disable it?).
+to the on-board video card (disable it? lspci shows it only when
+0x92 is not touched).
+Similar things are reported by others:
+<blockquote>
+<i>I am trying to install Linux on an old Olivetti pc M4 Modulo P75 but
+I am quickly stopped. I always got the same display problem very soon
+during the installation.The display is not updated anymore.
+The embedded display adapter is a "Trident 9xxx PCI".</i>
+</blockquote>
+and
+<blockquote>
+<i>I have a strange problem with an old Olivetti M4 (pentium 75)
+machine. I buy for a very cheap price 5 of these, but when I
+boot the machine the screen goes blank. The (embedded on MoBo)
+video chip is a Trident TGUI9780.</i>
+</blockquote>
 <p>
 Petr Vandrovec <vandrove@vc.cvut.cz> suggests to do the write
 only when it is really necessary:
@@ -151,6 +167,34 @@ causes a reset, it must be a good idea to add the line
 </pre>
 before the <tt>outb</tt>.
 
+<h3>Using only 0x92 may be dangerous</h3>
+Kai Germaschewski reports that he gets a spontaneous kernel reboot
+(on a Sony PCG-Z600NE) after suspend/resume when A20 was enabled
+using 0x92 but not via the keyboard controller. Apparently state
+set via keyboard controller is correctly saved and restored, but
+state set via 0x92 is not.
+
+<h3>Port 0x92 may have to be enabled</h3>
+Various SMSC super I/O chips will emulate the keyboard controller,
+but emulate port 0x92 only when that has been enabled.
+
+<h3>CMOS indicating the presence of a Fast A20 Gate</h3>
+Depending on the BIOS, the possibility of using a fast A20 switch
+may be visible in the CMOS. For example, some AMI BIOSes have
+in CMOS location 0x2d a byte with contents
+<pre>
+     System Operational Flags
+     Bit 7 = 1: Weitek math coprocessor present
+     Bit 6 = 1: Floppy drive seek at boot disabled
+     Bit 5 = 1: System boot sequence A:,C: (otherwise C:,A:)
+     Bit 4 = 1: System boot CPU speed high
+     Bit 3 = 1: External cache enabled
+     Bit 2 = 1: Internal cache enabled
+     Bit 1 = 1: Fast gate A20 operation enabled
+     Bit 0 = 1: Turbo switch function enabled
+</pre>
+Of course, this does not help at all.
+
 <h3>FreeBSD</h3>
 FreeBSD does
 <pre>
@@ -160,6 +204,10 @@ FreeBSD does
 void
 gateA20(void)
 {
+#ifdef PC98
+        outb(0xf2, 0x00);
+        outb(0xf6, 0x02);
+#else
 #ifdef  IBM_L40
         outb(0x92, 0x2);
 #else   IBM_L40
@@ -172,9 +220,13 @@ gateA20(void)
         outb(K_RDWR, KB_A20);
         while (inb(K_STATUS) & K_IBUF_FUL);
 #endif  IBM_L40
+#endif
 }
 </pre>
 that is, uses 0x92 only for a IBM_L40 (whatever that may be).
+The FreeBSD handbook describes PC98 as
+"an alternative development branch of PC hardware, popular in Japan"
+and "the NEC PC98 platform".
 <p>
 
 <h3>Minix and HIMEM.ASM</h3>
@@ -206,8 +258,8 @@ FAST A20 GATE          EEh          N/A         82360SL         8
 <p>
 The AMD Elan SC400 docs
 (<a href="http://www.amd.com/products/epd/processors/4.32bitcont/13.lan4xxfam/22.lansc400/a21032/21032.pdf">21032.pdf</a>) say:
-<i>
-Register EEh can be used to cause the same type of masking of the CPU
+<blockquote>
+<i>Register EEh can be used to cause the same type of masking of the CPU
 A20 signal that was historically performed by an external SCP (System
 Control Processor) in a PC/AT Compatible system, but much faster. This
 control defaults to not forcing the propagation of A20:
@@ -219,7 +271,7 @@ of GateA20 control. These controls are effectively ORed together with
 the output of the OR gate driving the Enhanced Am486 microprocessor
 A20M pin. Therefore, A20 will propagate if ANY of the independent sources
 are forcing A20 to propagate.</i>
-<p>
+</blockquote>
 
 <h2>Other ports</h2>
 It is rumoured that systems exist that use bit 2 of ioport 0x65
@@ -247,8 +299,8 @@ old value and doesn't know about A20.
 <p>
 <a href="http://qdn.qnx.com/support/docs/neutrino_qrp/building/startup.html">
 Neutrino</a> describes the following function <tt>x86_enable_a20()</tt>:
-<i>
-Enable address line A20, which is often disabled on many PCs on reset.
+<blockquote>
+<i>Enable address line A20, which is often disabled on many PCs on reset.
 It first checks if address line A20 is enabled and if so returns 0.
 Otherwise, it sets bit 0x02 in port 0x92, which is used by many systems
 as a fast A20 enable. It again checks to see if A20 is enabled and if so
@@ -260,13 +312,63 @@ to invalidate the cache when doing a read/write test of memory to see
 if A20 is enabled.
 In the rare case where setting bit 0x02 in port 0x92 may affect
 other hardware, you can skip this by setting <tt>only_keyboard</tt> to 1.
-In this case, it will attempt to use only the keyboard microcontroller. 
-</i>
-<p>
-hpa comments: <i>As far as I know the only machines which have the cache
+In this case, it will attempt to use only the keyboard microcontroller.</i>
+</blockquote>
+hpa comments:
+<blockquote>
+<i>As far as I know the only machines which have the cache
 problem are i386 boxen, but the i386 doesn't have WBINVD.  The i486
 has a pin on the CPU for A20, which takes effect inside the L1 cache,
 and so it shouldn't have any A20 cache issues.</i>
+</blockquote>
+<p>
+Jens Maurer
+<a href="http://www.cck.uni-kl.de/misc/tecra710/linux-problem">reported</a>
+in 1996 on boot problems with a bzImage kernel:
+<blockquote>
+<i>On the Toshiba laptop, the first two bytes at 0x100000 are incorrect and
+identical to those from address 0x000000 (which was an alias for
+0x100000 before the A20 gate enable). At a second read from 0x100000
+immediately afterwards, the correct memory content is returned.
+Asus P55TP5XE boards (Triton I chipset) show quite the same
+problem, but there, only the first byte is incorrect and booting
+bzImage kernels works fine.
+To me, this looks like some buffer or cache coherency problem
+although I think that caches are organized in at least 16 byte cache lines.
+...
+This exact same problem reportedly also exists on Fujitsu 555T
+(report from Andrea Caltroni) laptop and Compudyne Pentium 60
+(report from David Kerr) desktop computers.</i>
+</blockquote>
+He gives a patch, and adds
+"<i>Unfortunately, Philip Hands reports that the above patch makes some people
+with other non-laptop computers unable to boot.</i>"
+<p>
+Using zImage instead of bzImage avoids the problem (since zImage
+is not loaded high).
+Debian has distributed special Tecra boot floppies for a while.
+Later it was found out that these laptops just have an incredibly
+slow keyboard controller and that all is fine with a larger timeout.
+
+<h2>BIOS</h2>
+If it is difficult, maybe impossible, to write a routine that
+will enable A20 on all PCs, one might ask the BIOS to do so.
+Many recent BIOS versions implement INT15 AX=240x functions,
+as follows:
+<pre>
+INT 15 AX=2400 disable A20
+INT 15 AX=2401 enable A20
+INT 15 AX=2402 query status A20
+INT 15 AX=2403 query A20 support (kbd or port 92)
+
+Return:
+  If successful: CF clear, AH = 00h
+  On error: CF set, AH = status
+  Status: 01h keyboard controller is in secure mode
+          86h function not supported
+  For AX=2402 the status (0: disabled, 1: enabled) is returned in AL
+  For AX=2403 the status (bit 0: kbd, bit 1: port 92) is returned in BX
+</pre>
 
 </body>
 </html>
index ae5ad41..b7c847f 100644 (file)
--- a/doc/TODO
+++ b/doc/TODO
@@ -5,6 +5,6 @@
 - strings produced by a function key cannot contain \000;
   many other places this char is excluded
 - current status (translation table, Unicode output) can be set,
-  but not read out from the kernel; thus, showfont changes the
+  but not read out from the kernel; thus, showconsolefont changes the
   status, but cannot restore it
 
index 96744ff..244a13d 100644 (file)
@@ -31,17 +31,17 @@ keyboard!programs related to
 console!programs related to
 -->
 <P>The following packages contain keyboard or console related programs.
-<P><CODE>kbd-1.04.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>kbdrate</CODE>, <CODE>loadunimap</CODE>, <CODE>chvt</CODE>, <CODE>resizecons</CODE>,
-<CODE>deallocvt</CODE>, <CODE>getkeycodes</CODE>, <CODE>setkeycodes</CODE>.
+<P><CODE>kbd-1.06.tar.gz</CODE> contains <CODE>loadkeys</CODE>, <CODE>dumpkeys</CODE>, <CODE>showkey</CODE>,
+<CODE>setmetamode</CODE>, <CODE>setleds</CODE>, <CODE>setfont</CODE>, <CODE>showconsolefont</CODE>,
+<CODE>mapscrn</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>There exists a clone of the kbd package, namely <CODE>console-tools</CODE>,
 that contains more or less the same stuff. The latest version,
 <CODE>console-tools-0.3.3</CODE> is roughly up-to-date with <CODE>kbd-0.99</CODE>.
 <P><CODE>SVGATextMode-1.10</CODE> contains <CODE>SVGATextMode</CODE>, a program that
 obsoletes <CODE>resizecons</CODE>.
-<P><CODE>util-linux-2.10</CODE> contains <CODE>setterm</CODE>, <CODE>kbdrate</CODE>.
+<P><CODE>util-linux-2.11</CODE> contains <CODE>setterm</CODE>.
 <P><CODE>sh-utils-1.12</CODE> contains <CODE>stty</CODE>.
 <P>See also <CODE>dynamic-vc-1.2.tar.gz</CODE> and <CODE>consd-1.3.tgz</CODE> for
 programs that exploit the `Keyboard Signal' key. Very primitive
@@ -80,8 +80,9 @@ 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).
 <P>The Linux console sequences are documented in console_codes(4).
-<P>
-<P>
+<P>The package <CODE>funkey</CODE> by Rick van Rein provides support
+for all these new keys modern keyboards have. See
+<A HREF="http://rick.vanrein.org/linux/funkey">rick.vanrein.org/linux/funkey</A>.
 <P>
 <HR>
 <A HREF="kbd.FAQ-2.html">Next</A>
index c121f83..a396965 100644 (file)
@@ -67,6 +67,22 @@ would make these Windows keys go to the previous or next virtual console,
 and let the Menu key create a fresh virtual console (in case you have
 something like <CODE>spawn_console</CODE> running).
 <P>
+<H2><A NAME="ss14.1">14.1 Funkeys</A>
+</H2>
+
+<P>Many modern keyboards have buttons or keys with labels like
+"Vol Up", "Eject" etc. that suggest actions rather than strings.
+Of course one can bind shell commands to them, but then they'll
+work only when you are at a shell prompt.
+Rick van Rein wrote a package funkey consisting of a kernel patch
+and a daemon. The kernel patch creates a new character device,
+and adds a new key type to indicate which keystrokes should be
+sent to this new character device. A daemon can now listen to
+the character device, somewhat like <CODE>gpm</CODE> listens to the
+mouse device, and perform the actions indicated in its config file.
+See 
+<A HREF="http://rick.vanrein.org/linux/funkey">rick.vanrein.org/linux/funkey</A>.
+<P>
 <HR>
 <A HREF="kbd.FAQ-15.html">Next</A>
 <A HREF="kbd.FAQ-13.html">Previous</A>
index 6f3ca8a..386bdc1 100644 (file)
@@ -84,7 +84,8 @@ you can get <CODE>bash</CODE> on the console to recognize the Delete key by putt
 
 into <CODE>~/.inputrc</CODE>.
 <P>
-<H3>`Getty used to do the right thing with DEL and BS but is broken now?'</H3>
+<H2><A NAME="ss5.1.1">5.1.1 `Getty used to do the right thing with DEL and BS but is broken now?'</A>
+</H2>
 
 <P>
 <!--
@@ -97,7 +98,8 @@ Nowadays, DEL's are ignored (as they should be,
 since the driver emulates a vt100). Get a better getty, i.e.,
 one that does not output DEL.
 <P>
-<H3>`Login behaves differently at the first and second login attempts?'</H3>
+<H2><A NAME="ss5.1.2">5.1.2 `Login behaves differently at the first and second login attempts?'</A>
+</H2>
 
 <P>
 <!--
@@ -174,7 +176,8 @@ 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>
+<H2><A NAME="ss5.2.1">5.2.1 `How do I get a dvorak keyboard?'</A>
+</H2>
 
 <P>
 <!--
@@ -199,7 +202,8 @@ Under <CODE>X</CODE>, put
 
 in <CODE>XF86Config</CODE>.
 <P>
-<H3>`Why doesn't the Backspace key generate BackSpace by default?'</H3>
+<H2><A NAME="ss5.2.2">5.2.2 `Why doesn't the Backspace key generate BackSpace by default?'</A>
+</H2>
 
 <P>
 <!--
@@ -554,7 +558,7 @@ xrdb -merge .Xresources
 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>.
+<A HREF="http://www.ibb.net/~anne/keyboard.html">Anne Baretta's page</A>.
 <P>
 <HR>
 <A HREF="kbd.FAQ-6.html">Next</A>
index 5296d27..4f0ee92 100644 (file)
@@ -220,6 +220,24 @@ instead of K - bye bye to your system.)
 
 will disable it (if the kernel was compiled with CONFIG_MAGIC_SYSRQ).
 <P>
+<H2><A NAME="ss8.7">8.7 Problems</A>
+</H2>
+
+<P>A good keyboard accurately reports multiple key presses.
+Especially for people using a keyboard as Braille input device,
+where they have to be able to press up to six keys simultaneously,
+this is important. Many modern keyboards fail here due to sloppy
+design and testing - they misreport or fail in other ways when
+four or more keys are pressed simultaneously, sometimes already
+when two non-modifier keys are pressed simultaneously.
+This affects Linux users a bit: the SysRq key is not a modifier key,
+and people report problems using Alt-SysRq-<I>X</I> for various
+letters or digits <I>X</I>.
+<P>Long ago a similar problem (`ghosting') was caused by the design
+of the scan matrix: when three keys were pressed a fourth was
+also seen. That problem was solved by the use of diodes.
+Today it is the interface logic that is deficient.
+<P>
 <HR>
 <A HREF="kbd.FAQ-9.html">Next</A>
 <A HREF="kbd.FAQ-7.html">Previous</A>
index c8a1342..1b66a3e 100644 (file)
@@ -14,7 +14,7 @@ Contents
 <HR>
 <H1>The Linux keyboard and console HOWTO</H1>
 
-<H2>Andries Brouwer, <CODE>aeb@cwi.nl</CODE></H2>v2.11, 2001-02-02
+<H2>Andries Brouwer, <CODE>aeb@cwi.nl</CODE></H2>v2.13, 2002-10-12
 <P><HR>
 <EM>This note contains some information about the Linux keyboard
 and console, and the use of non-ASCII characters.
@@ -48,7 +48,17 @@ HOWTOs!console and keyboard
 
 <UL>
 <LI><A HREF="kbd.FAQ-5.html#ss5.1">5.1 How to tell Unix what character you want to use to delete the last typed character</A>
+<UL>
+<LI><A HREF="kbd.FAQ-5.html#ss5.1.1">5.1.1 `Getty used to do the right thing with DEL and BS but is broken now?'</A>
+<LI><A HREF="kbd.FAQ-5.html#ss5.1.2">5.1.2 `Login behaves differently at the first and second login attempts?'</A>
+</UL>
+<P>
 <LI><A HREF="kbd.FAQ-5.html#ss5.2">5.2 How to tell Linux what code to generate when a key is pressed</A>
+<UL>
+<LI><A HREF="kbd.FAQ-5.html#ss5.2.1">5.2.1 `How do I get a dvorak keyboard?'</A>
+<LI><A HREF="kbd.FAQ-5.html#ss5.2.2">5.2.2 `Why doesn't the Backspace key generate BackSpace by default?'</A>
+</UL>
+<P>
 <LI><A HREF="kbd.FAQ-5.html#ss5.3">5.3 How to tell X to interchange Delete and Backspace</A>
 <LI><A HREF="kbd.FAQ-5.html#ss5.4">5.4 How to tell emacs what to do when it receives a Delete or Backspace</A>
 <LI><A HREF="kbd.FAQ-5.html#ss5.5">5.5 How to tell emacs to interchange Delete and Backspace</A>
@@ -80,6 +90,7 @@ HOWTOs!console and keyboard
 <LI><A HREF="kbd.FAQ-8.html#ss8.4">8.4 Dosemu Combinations</A>
 <LI><A HREF="kbd.FAQ-8.html#ss8.5">8.5 Composing symbols</A>
 <LI><A HREF="kbd.FAQ-8.html#ss8.6">8.6 The SysRq key</A>
+<LI><A HREF="kbd.FAQ-8.html#ss8.7">8.7 Problems</A>
 </UL>
 <P>
 <H2><A NAME="toc9">9.</A> <A HREF="kbd.FAQ-9.html">How to get out of raw mode</A></H2>
@@ -105,6 +116,9 @@ HOWTOs!console and keyboard
 <P>
 <H2><A NAME="toc14">14.</A> <A HREF="kbd.FAQ-14.html">Unusual keys and keyboards</A></H2>
 
+<UL>
+<LI><A HREF="kbd.FAQ-14.html#ss14.1">14.1 Funkeys</A>
+</UL>
 <P>
 <H2><A NAME="toc15">15.</A> <A HREF="kbd.FAQ-15.html">Examples of use of loadkeys and xmodmap</A></H2>
 
index 4ffa370..68d02ec 100644 (file)
@@ -4,7 +4,7 @@
 
 <title>The Linux keyboard and console HOWTO
 <author>Andries Brouwer, <tt/aeb@cwi.nl/
-<date>v2.11, 2001-02-02
+<date>v2.13, 2002-10-12
 
 <abstract>This note contains some information about the Linux keyboard
 and console, and the use of non-ASCII characters.
@@ -23,10 +23,10 @@ It describes Linux 2.0.
 
 The following packages contain keyboard or console related programs.
 <p>
-<tt/kbd-1.04.tar.gz/ contains <tt/loadkeys/, <tt/dumpkeys/, <tt/showkey/,
-<tt/setmetamode/, <tt/setleds/, <tt/setfont/, <tt/showfont/, <tt/mapscrn/,
-<tt/kbd_mode/, <tt/kbdrate/, <tt/loadunimap/, <tt/chvt/, <tt/resizecons/,
-<tt/deallocvt/, <tt/getkeycodes/, <tt/setkeycodes/.
+<tt/kbd-1.06.tar.gz/ contains <tt/loadkeys/, <tt/dumpkeys/, <tt/showkey/,
+<tt/setmetamode/, <tt/setleds/, <tt/setfont/, <tt/showconsolefont/,
+<tt/mapscrn/, <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>
 There exists a clone of the kbd package, namely <tt/console-tools/,
@@ -36,7 +36,7 @@ that contains more or less the same stuff. The latest version,
 <tt/SVGATextMode-1.10/ contains <tt/SVGATextMode/, a program that
 obsoletes <tt/resizecons/.
 <p>
-<tt/util-linux-2.10/ contains <tt/setterm/, <tt/kbdrate/.
+<tt/util-linux-2.11/ contains <tt/setterm/.
 <p>
 <tt/sh-utils-1.12/ contains <tt/stty/.
 <p>
@@ -86,7 +86,10 @@ see infocmp(1).
 
 The Linux console sequences are documented in console_codes(4).
 
-
+The package <tt>funkey</tt> by Rick van Rein provides support
+for all these new keys modern keyboards have. See
+<htmlurl url="http://rick.vanrein.org/linux/funkey"
+name="rick.vanrein.org/linux/funkey">.
 
 <sect>Keyboard generalities<p>
 <nidx>keyboard!theory of operation</nidx>
@@ -717,7 +720,7 @@ 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"
+<htmlurl url="http://www.ibb.net/~anne/keyboard.html"
 name="Anne Baretta's page">.
 
 <sect>The console character sets<p>
@@ -1038,6 +1041,23 @@ In Linux 2.3.13 the possibility to enable/disable SysRq was added.
 </verb></tscreen>
 will disable it (if the kernel was compiled with CONFIG_MAGIC_SYSRQ).
 
+<sect1>Problems<p>
+A good keyboard accurately reports multiple key presses.
+Especially for people using a keyboard as Braille input device,
+where they have to be able to press up to six keys simultaneously,
+this is important. Many modern keyboards fail here due to sloppy
+design and testing - they misreport or fail in other ways when
+four or more keys are pressed simultaneously, sometimes already
+when two non-modifier keys are pressed simultaneously.
+This affects Linux users a bit: the SysRq key is not a modifier key,
+and people report problems using Alt-SysRq-<it>X</it> for various
+letters or digits <it>X</it>.
+<p>
+Long ago a similar problem (`ghosting') was caused by the design
+of the scan matrix: when three keys were pressed a fourth was
+also seen. That problem was solved by the use of diodes.
+Today it is the interface logic that is deficient.
+
 <sect>How to get out of raw mode<p>
 <nidx>raw mode, exiting</nidx>
 
@@ -1440,6 +1460,20 @@ would make these Windows keys go to the previous or next virtual console,
 and let the Menu key create a fresh virtual console (in case you have
 something like <tt/spawn_console/ running).
 
+<sect1>Funkeys<p>
+Many modern keyboards have buttons or keys with labels like
+"Vol Up", "Eject" etc. that suggest actions rather than strings.
+Of course one can bind shell commands to them, but then they'll
+work only when you are at a shell prompt.
+Rick van Rein wrote a package funkey consisting of a kernel patch
+and a daemon. The kernel patch creates a new character device,
+and adds a new key type to indicate which keystrokes should be
+sent to this new character device. A daemon can now listen to
+the character device, somewhat like <tt>gpm</tt> listens to the
+mouse device, and perform the actions indicated in its config file.
+See <htmlurl url="http://rick.vanrein.org/linux/funkey"
+name="rick.vanrein.org/linux/funkey">.
+
 <sect>Examples of use of loadkeys and xmodmap<p>
 <nidx>loadkeys!example using</nidx>
 <nidx>xmodmap!example using</nidx>
index cc2fbae..9af9ba9 100644 (file)
@@ -11,3 +11,8 @@ install:
 
 clean:
        rm -f $(GEN1) $(GEN8)
+
+# Note: man?misc contains the man pages for non-installed
+# programs from ../src. Most of these are tiny test programs,
+# not very useful for anybody.
+# But if you decide to install some of those, then here are the man pages.
diff --git a/man/man1/fgconsole.1 b/man/man1/fgconsole.1
new file mode 100644 (file)
index 0000000..e743c48
--- /dev/null
@@ -0,0 +1,28 @@
+.TH FGCONSOLE 1 "14 Feburary 2002" "" "Linux User's Manual"
+
+.SH NAME
+fgconsole \- print the number of the active VT.
+
+.SH SYNOPSIS
+.B fgconsole
+
+.SH DESCRIPTION
+If the active Virtual Terminal is
+.IR /dev/ttyN ,
+then prints
+.I N
+on standard output.
+.SH NOTES
+Under 
+.IR devfs ,
+the consoles are in 
+.IR /dev/vc/N .
+.IR devfsd
+may maintain symlinks for compatibility.
+.SH "SEE ALSO"
+.BR chvt (1).
+.\" .SH "AUTHORS"
+.\" Andries Brouwer
+.\" .br
+.\" Manpage by Alastair McKinstry <mckinstry@computer.org>
+
diff --git a/man/man1misc/codepage.1 b/man/man1misc/codepage.1
new file mode 100644 (file)
index 0000000..cb6436e
--- /dev/null
@@ -0,0 +1,63 @@
+.TH CODEPAGE 1 "2002-02-19" "Console Tools" "Debian Linux"
+
+.SH NAME
+codepage \- extract a codepage from an MSDOS codepage file
+
+.SH SYNOPSIS
+.B codepage 
+[ 
+.I \-c 
+] | [ 
+.I \-l
+] | 
+.I \-L 
+] | [
+.I \-a 
+| 
+.I nnn
+] 
+.I <file.cpi>
+
+.SH DESCRIPTION
+The
+.B codepage
+command extracts codepages from an MSDOS codepage file.
+
+.SH OPTIONS
+.TP
+.I \-c 
+Input file is a single codepage
+
+.TP
+.I \-L 
+Print header info (you don't want to see this).
+
+.TP
+.I \-l 
+List all codepages contained in the file.
+
+.TP
+.I \-a
+Extract all codepages from the file
+
+.TP
+.I nnn
+(3 digits): extract codepage
+.I nnn
+from the file.
+
+.SH EXAMPLE
+To create a file 850.cp, with codepage 850 from a file
+ega.cpi, execute:
+.LP
+.RS
+       codepage ega.cpi 850
+.RE
+
+.\" .SH AUTHORS
+.\" Ahmed M. Naas <ahmed@oea.xs4all.nl>
+.\" .br
+.\" Andries Brouwer <aeb@cwi.nl>
+.\" .br
+.\" Manpage by Alastair McKinstry <mckinstry@computer.org>
+
diff --git a/man/man1misc/screendump.1 b/man/man1misc/screendump.1
new file mode 100644 (file)
index 0000000..c2b2016
--- /dev/null
@@ -0,0 +1,56 @@
+.TH SCREENDUMP 1 "2002-02-24" "" "Linux Console"
+
+.SH NAME
+screendump \- dump the contents of a virtual console to stdout
+
+.SH SYNOPSIS
+.B screendump 
+[
+.I N
+]
+
+.SH DESCRIPTION
+The
+.B screendump
+command dumps the contents of virtual console 
+.B N
+, (or the current console if N is omitted)
+to standard out.
+
+Just saying
+.RS
+cat /dev/vcsN
+.RE
+has a similar effect.
+
+.SH NOTES
+For security reasons,
+.B screendump
+uses linux devices "virtual console screen" and 
+"virtual console screen with attributes" to give access for screendump.
+.P
+Ensure these files exist, using
+.LP
+.RS
+cd /dev
+for i in 0 1 2 3 ...; do
+.br
+       mknod vcs$i c 7 $i
+.br
+       mknod vcsa$i c 7 `expr 128 + $i`
+.br
+done
+.RE
+
+(filling in the ellipses) and give the device files appropriate
+permissions, or run 
+.B screendump
+as root.
+
+.SH SEE ALSO
+setterm(1)
+
+.\" .SH AUTHORS
+.\" Andries Brouwer <aeb@cwi.nl>
+.\" .br
+.\" Manpage by Alastair McKinstry <mckinstry@computer.org>
index 7b43afa..29aadfe 100644 (file)
@@ -75,7 +75,7 @@ Octal is denoted by a leading zero and hexadecimal by the prefix
 Each of the
 .I keysyms
 represent keyboard actions, of which up to 256 can be bound to a single
-key. The actions available include outputting Latin1 character codes or
+key. The actions available include outputting character codes or
 character sequences, switching consoles or keymaps, booting the machine
 etc. (The complete list can be obtained from dumpkeys(1) by saying
 .BI " dumpkeys -l"
@@ -167,9 +167,10 @@ you should always define all the columns to have the same modifier
 symbol. There is a handy short-hand notation for this, see below.
 .LP
 .I keysyms
-can be given in decimal, octal, hexadecimal or symbolic notation.
+can be given in decimal, octal, hexadecimal, unicode or symbolic notation.
 The numeric notations use the same format as with
 .IR keynumber .
+Unicode notation is "U+" followed by four hexadecimal digits.
 The symbolic notation resembles that used by
 .BR xmodmap (1).
 Notable differences are the number symbols. The numeric
index a7b77de..2d4b70d 100644 (file)
@@ -89,7 +89,7 @@ option.
 .SH "CONSOLE MAPS"
 Several mappings are involved in the path from user program
 output to console display. If the console is in utf8 mode (see
-.BR start_unicode (1))
+.BR unicode_start (1))
 then the kernel expects that user program output is coded as UTF-8 (see
 .BR utf-8 (7)),
 and converts that to Unicode (ucs2).
@@ -223,7 +223,7 @@ if the \-N option was given for some number N)
 perhaps with suitable extension (like .psf).
 .SH "SEE ALSO"
 .BR psfaddtable (1),
-.BR start_unicode (1),
+.BR unicode_start (1),
 .BR loadunimap (8),
 .BR utf-8 (7),
 .BR mapscrn (8)
diff --git a/man/man8/showconsolefont.8 b/man/man8/showconsolefont.8
new file mode 100644 (file)
index 0000000..c86a788
--- /dev/null
@@ -0,0 +1,27 @@
+.TH  SHOWFONT 1 "2002-02-22" "" "Linux Console"
+
+.SH NAME
+showconsolefont \- Show the current EGA/VGA console screen font
+
+.SH SYNOPSIS
+.B showconsolefont
+.RI "[-V]"
+.RI "[-v]"
+
+.SH DESCRIPTION
+The
+.B showconsolefont
+command outputs the current console font to stdout.
+The option
+.RI \-v 
+prints additional information, while the option
+.RI \-V
+prints the program version number.
+
+.SH "SEE ALSO"
+.BR setfont (8).
+
+.\" .SH AUTHORS
+.\" Andries Brouwer
+.\" .br
+.\" Manpage by Alastair McKinstry <mckinstry@computer.org>
diff --git a/man/man8misc/clrunimap.8 b/man/man8misc/clrunimap.8
new file mode 100644 (file)
index 0000000..ca18f0a
--- /dev/null
@@ -0,0 +1,24 @@
+.TH CLRUNIMAP 8 "2002-10-12" "kbd" "Linux"
+
+.SH NAME
+clrunimap \- Clear the current console unicode map
+
+.SH SYNOPSIS
+.B clrunimap
+
+.SH DESCRIPTION
+
+The command
+.B clrunimap
+clears the unicode map (also called "Screen Font Map") for the current console.
+
+.SH NOTES
+If you are not the maintainer of the kbd package, it is very unlikely
+that you want to use this command. On many kernels the result will be
+that your screen is black. On some kernels a reboot will be necessary.
+.br
+Use 
+.B "setfont -u"
+to load a Unicode map for a console.
+.SH SEE ALSO
+.BR setfont (8).
diff --git a/man/man8misc/getunimap.8 b/man/man8misc/getunimap.8
new file mode 100644 (file)
index 0000000..54262fa
--- /dev/null
@@ -0,0 +1,57 @@
+.TH GETUNIMAP 8 "2002-02-20" "Console Tools" "Linux"
+
+.SH NAME
+getunimap \- dump the unicode map for the current console to stdout
+
+.SH SYNOPSIS
+.B getunimap [
+.I \-s 
+]
+
+.SH DESCRIPTION
+The
+.B getunimap
+program is old and obsolete. It is now part of
+.B setfont (1).
+.LP
+The 
+.B getunimap
+program outputs the unicode map (also called a "Screen Font Map") 
+for the current console to standard out.
+The output will be of the form
+.LP
+.RS
+       0xAA U+1234 # comment
+.RE
+.LP
+where 0xAA is the font character code and U+1234 is a unicode character,
+that if displayed, will be displayed using glyph 0xAA in the font.
+Many unicode characters may be mapped to the same glyph.
+.br
+the Hash symbol
+.B #
+is used as a comment delimiter; characters after a hash sign (to the end of 
+the line) are comments.
+.P
+The 
+.B \-s
+option will sort and merge elements, sorting on font character.
+Hence, it will produce output of the form:
+.LP
+.RS
+       0x22 U+1234 U+5678 U+3456
+.br
+       0x23 U+0023
+.RE
+.LP    
+       etc., listing the multiple unicode characters that map to a font glyph.
+.P
+The output of
+.B getunimap
+is of the form accepted by 
+.B setfont
+and
+.B psfaddtable
+.SH SEE ALSO
+.BR psfaddtable (1),
+.BR setfont (1).
diff --git a/man/man8misc/mk_modmap.8 b/man/man8misc/mk_modmap.8
new file mode 100644 (file)
index 0000000..9db007f
--- /dev/null
@@ -0,0 +1,42 @@
+.\" @(#)mk_modmap.8 2002-02-22 mckinstry@computer.org
+.TH MK_MODMAP 8 "2002-02-22"
+
+.SH NAME
+mk_modmap \- translate a Linux keytable file into an xmodmap file
+
+.SH SYNOPSIS
+.B mk_modmap
+[ 
+.B -v
+]
+keymap_file
+
+.SH DESCRIPTION
+The
+.B mk_modmap
+command tries to translate a Linux console keytable file into
+a file that can be parsed by xmodmap, and used within X.
+It outputs the results to standard out.
+.P
+If the 
+.B -v
+flag is used, verbose output is given.
+.P
+It requires the X header files to be installed.
+(In Debian, these are in the "xlibs-dev" package).
+.SH NOTES
+Since XFree version 2.1, X initialises its keymap using the Linux
+keymap, so xmodmap will often be superflous.
+
+.SH SEE ALSO
+.BR dumpkeys (1),
+.BR keymaps (5),
+.BR xmodmap(1)
+
+
+.\" .SH AUTHORS
+.\" Kjetil T. Homme <kjetilho@ifi.uio.no>
+.\" .br
+.\" Pablo Saratxaga <pablo@mandrakesoft.com>
+.\" .br
+.\" Manpage by Alastair McKinstry, <mckinstry@computer.org>
\ No newline at end of file
diff --git a/man/man8misc/setvesablank.8 b/man/man8misc/setvesablank.8
new file mode 100644 (file)
index 0000000..8a48867
--- /dev/null
@@ -0,0 +1,27 @@
+.\" @(#)setvesablank.8
+.TH SETVESABLANK 8 "14 Feb 2002"
+.SH NAME
+setvesablank \- Turn VESA screen blanking on or off
+.SH SYNOPSIS
+.I setvesablank
+[ [
+.I -b --blanking 
+] 
+.I on | ON | off | OFF 
+] [
+.I -h --help
+] 
+[
+.I -v --verbose
+]
+.LP
+.SH DESCRIPTION
+.IX "setvesablank command" "" "\fLsetvesablank\fR command"
+.LP
+The program
+.B setvesablank
+sets VESA screen blanking on or off.
+.\" .SH AUTHOR
+.\" Andries Brouwer <aeb@cwi.nl>.
+.\" .br
+.\" Man page by Alastair McKinstry <mckinstry@computer.org>
index 0525500..d94462d 100644 (file)
@@ -338,10 +338,18 @@ authenticate_user(int curvt) {
        }
        
        /* get the current tty */
-       sprintf(filename,"/dev/tty%d", curvt);
+       /* try /dev/ttyN, then /dev/vc/N */
+       sprintf(filename, VTNAME, curvt);
        if (stat(filename,&buf)) {
-               perror(filename);
-               exit(1);
+               int errsv = errno;
+               sprintf(filename, VTNAME2, curvt);
+               if (stat(filename,&buf)) {
+                       /* give error message for first attempt */
+                       sprintf(filename, VTNAME, curvt);
+                       errno = errsv;
+                       perror(filename);
+                       exit(1);
+               }
        }
        console_dev=buf.st_dev;
        console_ino=buf.st_ino;
index 69eda57..54baeb5 100644 (file)
@@ -34,6 +34,7 @@ int getfd(void);
  */
 #ifdef __linux__
 #define VTNAME "/dev/tty%d"
+#define VTNAME2 "/dev/vc/%d"
 #endif
 
 #ifdef ESIX_5_3_2_D
index 2430a67..3fa1950 100644 (file)
@@ -14,8 +14,7 @@ INTL = /usr/share/gettext/intl
 FOREIGN=
 SHELL = /bin/sh
 
-prefix = $(DESTDIR)/usr
-exec_prefix = ${prefix}
+prefix = ${DESTDIR}
 datadir = $(prefix)/share
 localedir = $(datadir)/locale
 gnulocaledir = $(prefix)/share/locale
@@ -37,9 +36,9 @@ INCLUDES = -I.. -I$(INTL)
 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 
 # Enter here all .po files
-POFILES =  nl.po ru.po
+POFILES =  es.po nl.po ru.po
 # the same but with .gmo
-GMOFILES = nl.gmo ru.gmo
+GMOFILES = es.gmo nl.gmo ru.gmo
 
 CATALOGS = $(GMOFILES)
 CATOBJEXT = .gmo
index 7775d48..6cd5cf7 100644 (file)
@@ -30,7 +30,7 @@ src/setkeycodes.c
 src/setleds.c
 src/setmetamode.c
 src/setvesablank.c
-src/showfont.c
+src/showconsolefont.c
 src/showkey.c
 src/spawn_console.c
 src/spawn_login.c
index 7b2a0b0..4a90ff3 100644 (file)
@@ -115,8 +115,8 @@ Usage:\n\
   {"%s: Bad end of range (0x%x)\n", 74},
   {"%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n", 75},
   {"\
-%s: Unicode range U+%x-U+%x not of the same length as font position range \
-0x%x-0x%x\n", 76},
+%s: Unicode range U+%x-U+%x not of the same length as font position range 0x%\
+x-0x%x\n", 76},
   {"%s: trailing junk (%s) ignored\n", 77},
   {"Loading unicode map from file %s\n", 78},
   {"%s: %s: Warning: line too long\n", 79},
@@ -273,53 +273,55 @@ Normally, setleds influences the vt flag settings\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", 173},
-  {"Error reading current led setting. Maybe stdin is not a VT?\n", 174},
+  {"on ", 174},
+  {"off", 175},
+  {"Error reading current led setting. Maybe stdin is not a VT?\n", 176},
   {"\
-Error reading current flags setting. Maybe you are not on the console?\n", 175},
-  {"Error reading current led setting from /dev/kbd.\n", 176},
-  {"KIOCGLED unavailable?\n", 177},
-  {"KIOCSLED unavailable?\n", 178},
-  {"Error opening /dev/kbd.\n", 179},
-  {"Error resetting ledmode\n", 180},
-  {"Current default flags:  ", 181},
-  {"Current flags:          ", 182},
-  {"Current leds:           ", 183},
+Error reading current flags setting. Maybe you are not on the console?\n", 177},
+  {"Error reading current led setting from /dev/kbd.\n", 178},
+  {"KIOCGLED unavailable?\n", 179},
+  {"KIOCSLED unavailable?\n", 180},
+  {"Error opening /dev/kbd.\n", 181},
+  {"Error resetting ledmode\n", 182},
+  {"Current default flags:  ", 183},
+  {"Current flags:          ", 184},
+  {"Current leds:           ", 185},
   {"\
 unrecognized argument: _%s_\n\
-\n", 184},
-  {"Old default flags:    ", 185},
-  {"New default flags:    ", 186},
-  {"Old flags:            ", 187},
-  {"New flags:            ", 188},
-  {"Old leds:             ", 189},
-  {"New leds:             ", 190},
+\n", 186},
+  {"Old default flags:    ", 187},
+  {"New default flags:    ", 188},
+  {"Old flags:            ", 189},
+  {"New flags:            ", 190},
+  {"Old leds:             ", 191},
+  {"New leds:             ", 192},
   {"\
 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", 191},
-  {"Meta key sets high order bit\n", 192},
-  {"Meta key gives Esc prefix\n", 193},
-  {"Strange mode for Meta key?\n", 194},
-  {"Error reading current setting. Maybe stdin is not a VT?\n", 195},
-  {"old state:    ", 196},
-  {"new state:    ", 197},
-  {"usage: %s\n", 198},
-  {"failed to restore original translation table\n", 199},
-  {"failed to restore original unimap\n", 200},
-  {"cannot change translation table\n", 201},
-  {"%s: out of memory?\n", 202},
+The setting before and after the change are reported.\n", 193},
+  {"Meta key sets high order bit\n", 194},
+  {"Meta key gives Esc prefix\n", 195},
+  {"Strange mode for Meta key?\n", 196},
+  {"Error reading current setting. Maybe stdin is not a VT?\n", 197},
+  {"old state:    ", 198},
+  {"new state:    ", 199},
+  {"usage: %s\n", 200},
+  {"failed to restore original translation table\n", 201},
+  {"failed to restore original unimap\n", 202},
+  {"cannot change translation table\n", 203},
+  {"%s: out of memory?\n", 204},
   {"\
-usage: showfont [-v|-V]\n\
-(probably after loading a font with `setfont font')\n", 203},
-  {"?UNKNOWN?", 204},
-  {"kb mode was %s\n", 205},
+usage: showconsolefont [-v|-V]\n\
+(probably after loading a font with `setfont font')\n", 205},
+  {"?UNKNOWN?", 206},
+  {"kb mode was %s\n", 207},
   {"\
 [ if you are trying this under X, it might not work\n\
-since the X server is also reading /dev/console ]\n", 206},
-  {"caught signal %d, cleaning up...\n", 207},
+since the X server is also reading /dev/console ]\n", 208},
+  {"caught signal %d, cleaning up...\n", 209},
   {"\
 showkey version %s\n\
 \n\
@@ -330,16 +332,16 @@ 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", 208},
+\t-k --keycodes\tdisplay only the interpreted keycodes (default)\n", 210},
   {"\
 \n\
 Press any keys - Ctrl-D will terminate this program\n\
-\n", 209},
-  {"press any key (program terminates 10s after last keypress)...\n", 210},
-  {"keycode %3d %s\n", 211},
-  {"release", 212},
-  {"press", 213},
-  {"%s from %s\n", 214},
+\n", 211},
+  {"press any key (program terminates 10s after last keypress)...\n", 212},
+  {"keycode %3d %s\n", 213},
+  {"release", 214},
+  {"press", 215},
+  {"%s from %s\n", 216},
 };
 
-int _msg_tbl_length = 214;
+int _msg_tbl_length = 216;
diff --git a/po/es.po b/po/es.po
new file mode 100644 (file)
index 0000000..a3fca86
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,1128 @@
+# kbd-es.po, mensajes en español para kbd.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Juan Rafael Fernández García <jrfern@bigfoot.com>, 2002.
+#
+# Permission is granted to freely copy and distribute
+msgid ""
+msgstr ""
+"Project-Id-Version: kbd 1.06\n"
+"POT-Creation-Date: 2001-06-19 08:44+0200\n"
+"PO-Revision-Date: 2002-01-29 20:32GMT+2\n"
+"Last-Translator: Juan Rafael Fernández García <jrfern@bigfoot.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#: openvt/openvt.c:67
+#, c-format
+msgid "openvt: %s: illegal vt number\n"
+msgstr "openvt: %s: número de term.virt. ilegal\n"
+
+#: openvt/openvt.c:91
+msgid "openvt: only root can use the -u flag.\n"
+msgstr "openvt: sólo root puede usar la bandera -u.\n"
+
+#: openvt/openvt.c:105 src/getfd.c:63
+msgid "Couldnt get a file descriptor referring to the console\n"
+msgstr "No se pudo conseguir un descriptor de fichero que refiera a la consola\n"
+
+#: openvt/openvt.c:117
+msgid "openvt: cannot find a free vt\n"
+msgstr "openvt: no se encuentra un term.virt. libre\n"
+
+#: openvt/openvt.c:122
+#, c-format
+msgid "openvt: cannot check whether vt %d is free\n"
+msgstr "openvt: no se puede comprobar si el term.virt. %d está disponible\n"
+
+#: openvt/openvt.c:123 openvt/openvt.c:128
+msgid "        use `openvt -f' to force.\n"
+msgstr "         use `openvt -f' para forzar la opción.\n"
+
+#: openvt/openvt.c:127
+#, c-format
+msgid "openvt: vt %d is in use; command aborted\n"
+msgstr "openvt: la tv %d está siendo utilizada; orden abortada\n"
+
+#: openvt/openvt.c:155
+#, c-format
+msgid "openvt: Unable to open %s: %s\n"
+msgstr "openvt: No se pudo abrir %s: %s\n"
+
+#: openvt/openvt.c:167
+#, c-format
+msgid "openvt: Cannot open %s read/write (%s)\n"
+msgstr "openvt: No se puede abrir %s para lectura/escritura (%s)\n"
+
+#: openvt/openvt.c:205
+#, c-format
+msgid "openvt: using VT %s\n"
+msgstr "openvt: usando TV %s\n"
+
+#: openvt/openvt.c:217
+#, c-format
+msgid "openvt: Unable to set new session (%s)\n"
+msgstr "openvt: No se puede establecer nueva sesión (%s)\n"
+
+#: openvt/openvt.c:225
+#, c-format
+msgid "\nopenvt: could not open %s R/W (%s)\n"
+msgstr "\nopenvt: no se pudo abrir %s para lectura/escritura (%s)\n"
+
+#: openvt/openvt.c:281
+#, c-format
+msgid "openvt: could not deallocate console %d\n"
+msgstr "openvt: no se pudo liberar la consola %d\n"
+
+#: src/chvt.c:28
+msgid "usage: chvt N\n"
+msgstr "uso: chvt N\n"
+
+#: src/deallocvt.c:33
+#, c-format
+msgid "%s: unknown option\n"
+msgstr "%s: opción desconocida\n"
+
+#: src/deallocvt.c:45
+#, c-format
+msgid "%s: deallocating all unused consoles failed\n"
+msgstr "%s: fallo en el proceso de liberación de todas las consolas no usadas\n"
+
+#: src/deallocvt.c:53
+#, c-format
+msgid "%s: 0: illegal VT number\n"
+msgstr "%s: 0: número ilegal de TV\n"
+
+#: src/deallocvt.c:56
+#, c-format
+msgid "%s: VT 1 is the console and cannot be deallocated\n"
+msgstr "%s: TV 1 es la consola y no puede liberarse\n"
+
+#: src/deallocvt.c:61
+#, c-format
+msgid "%s: could not deallocate console %d\n"
+msgstr "%s: no se pudo liberar la consola %d\n"
+
+#: src/dumpkeys.c:63
+#, c-format
+msgid "KDGKBENT error at index 0 in table %d: "
+msgstr "error KDGKBENT en el índice 0 en la tabla %d:"
+
+#: src/dumpkeys.c:76
+#, c-format
+msgid "%s: cannot find any keymaps?\n"
+msgstr "%s: ¿no se encuentran mapas de teclado?\n"
+
+#: src/dumpkeys.c:81
+#, c-format
+msgid "%s: plain map not allocated? very strange ...\n"
+msgstr "%s: ¿no se ha asignado el mapa básico? qué extraño ...\n"
+
+#: src/dumpkeys.c:113
+#, c-format
+msgid "KDGKBENT error at index %d in table %d: "
+msgstr "error KDGKBENT en el índice %d en la tabla %d:"
+
+#: src/dumpkeys.c:241
+#, c-format
+msgid "keycode range supported by kernel:           1 - %d\n"
+msgstr "el núcleo acepta el rango de códigos de teclado:          1 - %d\n"
+
+#: src/dumpkeys.c:243
+#, c-format
+msgid "max number of actions bindable to a key:         %d\n"
+msgstr "máximo número de acciones asociables a una tecla:         %d\n"
+
+#: src/dumpkeys.c:246
+#, c-format
+msgid "number of keymaps in actual use:                 %d\n"
+msgstr "número de mapas de teclado realmente en uso:                 %d\n"
+
+#: src/dumpkeys.c:249
+#, c-format
+msgid "of which %d dynamically allocated\n"
+msgstr "de los cuales %d han sido asignados dinámicamente\n"
+
+#: src/dumpkeys.c:250
+msgid "ranges of action codes supported by kernel:\n"
+msgstr "rangos de códigos de acción admitidos por el núcleo:\n"
+
+#: src/dumpkeys.c:255
+#, c-format
+msgid "number of function keys supported by kernel: %d\n"
+msgstr "número de teclas de función admitidas por el núcleo: %d\n"
+
+#: src/dumpkeys.c:258
+#, c-format
+msgid "max nr of compose definitions: %d\n"
+msgstr "nº máximo de definiciones de composición: %d\n"
+
+#: src/dumpkeys.c:260
+#, c-format
+msgid "nr of compose definitions in actual use: %d\n"
+msgstr "nº de definiciones de composición en uso real: %d\n"
+
+#: src/dumpkeys.c:284
+#, c-format
+msgid ""
+"Symbols recognized by %s:\n"
+"(numeric value, symbol)\n"
+"\n"
+msgstr ""
+"Símbolos reconocidos por %s:\n"
+"(valor numérico, símbolo)\n"
+"\n"
+
+#: src/dumpkeys.c:297
+msgid "\nThe following synonyms are recognized:\n\n"
+msgstr "\nSe reconocen los siguientes sinónimos:\n\n"
+
+#: src/dumpkeys.c:299
+#, c-format
+msgid "%-15s for %s\n"
+msgstr "%-15s para %s\n"
+
+#: src/dumpkeys.c:301
+msgid "\nRecognized modifier names and their column numbers:\n"
+msgstr "\nNombres de modificador reconocidos y sus números de columna:\n"
+
+#: src/dumpkeys.c:364
+#, c-format
+msgid "# not alt_is_meta: on keymap %d key %d is bound to"
+msgstr "# no alt_is_meta: en el mapa de teclado %d la tecla %d está ligada a"
+
+#: src/dumpkeys.c:439
+msgid "impossible: not meta?\n"
+msgstr "imposible: ¿no meta?\n"
+
+#: src/dumpkeys.c:496
+#, c-format
+msgid "KDGKBSENT failed at index %d: "
+msgstr "falló KDGKBSENT en el índice %d:"
+
+#: src/dumpkeys.c:516
+#, c-format
+msgid "dumpkeys version %s"
+msgstr "versión %s de dumpkeys"
+
+#: src/dumpkeys.c:517
+msgid ""
+"\n"
+"usage: dumpkeys [options...]\n"
+"\n"
+"valid options are:\n"
+"\n"
+"\t-h --help\t    display this help text\n"
+"\t-i --short-info\t    display information about keyboard driver\n"
+"\t-l --long-info\t    display above and symbols known to loadkeys\n"
+"\t-n --numeric\t    display keytable in hexadecimal notation\n"
+"\t-f --full-table\t    don't use short-hand notations, one row per keycode\n"
+"\t-1 --separate-lines one line per (modifier,keycode) pair\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="
+msgstr ""
+"\n"
+"uso: dumpkeys [opciones...]\n"
+"\n"
+"las opciones válidas son:\n"
+"\n"
+"\t-h --help\t    mostrar este texto de ayuda\n"
+"\t-i --short-info\t    mostrar información sobre el controlador de teclado\n"
+"\t-l --long-info\t    mostrar la información anterior y los símbolos que loadkeys conoce\n"
+"\t-n --numeric\t    mostrar la tabla de teclas en notación hexadecimal\n"
+"\t-f --full-table\t    no usar notaciones abreviadas, una fila por código de tecla\n"
+"\t-1 --separate-lines una línea por par (modificador, código de tecla)\n"
+"\t   --funcs-only\t    mostrar sólo la cadenas de las teclas de función\n"
+"\t   --keys-only\t    mostrar sólo las asociaciones de teclas\n"
+"\t   --compose-only   mostrar sólo las combinaciones con la tecla Componer\n"
+"\t-c --charset="
+
+#: src/dumpkeys.c:534
+msgid ""
+"\t\t\t    interpret character action codes to be from the\n"
+"\t\t\t    specified character set\n"
+msgstr ""
+"\t\t\t    interpretar que los códigos de acción de carácter\n"
+"\t\t\t    proceden del conjunto de caracteres especificado\n"
+
+#: src/findfile.c:43
+#, c-format
+msgid "error executing  %s\n"
+msgstr "error al ejecutar  %s\n"
+
+#: src/getkeycodes.c:18
+msgid "usage: getkeycodes\n"
+msgstr "uso: getkeycodes\n"
+
+#: src/getkeycodes.c:39
+msgid "Plain scancodes xx (hex) versus keycodes (dec)\n"
+msgstr "Códigos de rastreo simples xx (hex) frente a códigos de tecla (dec)\n"
+
+#: src/getkeycodes.c:40
+msgid "0 is an error; for 1-88 (0x01-0x58) scancode equals keycode\n"
+msgstr "0 es un error; para 1-88 (0x01-0x58) los códigos de rastreo son iguales que los de tecla\n"
+
+#: src/getkeycodes.c:44
+msgid "\n\nEscaped scancodes e0 xx (hex)\n"
+msgstr "\n\nCódigos de rastreo con escape e0 xx (hex)\n"
+
+#: src/getkeycodes.c:64
+#, c-format
+msgid "failed to get keycode for scancode 0x%x\n"
+msgstr "fallo al averiguar el código de tecla para el código de rastreo 0x%x\n"
+
+#: src/getunimap.c:49
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s [-s]\n"
+msgstr ""
+"Uso:\n"
+"\t%s [-s]\n"
+
+#: src/kbd_mode.c:18
+msgid "usage: kbd_mode [-a|-u|-k|-s]\n"
+msgstr "uso: kbd_mode [-a|-u|-k|-s]\n"
+
+#: src/kbd_mode.c:41
+msgid "kbd_mode: error reading keyboard mode\n"
+msgstr "kbd_mode: error leyendo el modo del teclado\n"
+
+#: src/kbd_mode.c:46
+msgid "The keyboard is in raw (scancode) mode\n"
+msgstr "El teclado está en modo crudo (de código de rastreo)\n"
+
+#: src/kbd_mode.c:49
+msgid "The keyboard is in mediumraw (keycode) mode\n"
+msgstr "El teclado está en modo medio crudo (de código de tecla)\n"
+
+#: src/kbd_mode.c:52
+msgid "The keyboard is in the default (ASCII) mode\n"
+msgstr "El teclado está en el modo por defecto (ASCII)\n"
+
+#: src/kbd_mode.c:55
+msgid "The keyboard is in Unicode (UTF-8) mode\n"
+msgstr "El teclado está en modo Unicode (UTF-8)\n"
+
+#: src/kbd_mode.c:58
+msgid "The keyboard is in some unknown mode\n"
+msgstr "El teclado está en algún modo desconocido\n"
+
+#: src/kbd_mode.c:76
+#, c-format
+msgid "%s: error setting keyboard mode\n"
+msgstr "%s: error al establecer el modo de teclado\n"
+
+#: src/kbdrate.c:139 src/kbdrate.c:278
+#, c-format
+msgid "Typematic Rate set to %.1f cps (delay = %d ms)\n"
+msgstr "Cadencia de repetición automática de tecla fijada a %.1f cps (retraso = %d ms)\n"
+
+#: src/kbdrate.c:223
+msgid "Usage: kbdrate [-V] [-s] [-r rate] [-d delay]\n"
+msgstr "Uso: kbdrate [-V] [-s] [-r rate] [-d delay]\n"
+
+#: src/kbdrate.c:253
+msgid "Cannot open /dev/port"
+msgstr "No se puede abrir /dev/port"
+
+#: src/kdfontop.c:193
+msgid "bug: getfont called with count<256\n"
+msgstr "bicho: se ha llamado a getfont con contador<256\n"
+
+#: src/kdfontop.c:252 src/xmalloc.c:14
+#, c-format
+msgid "%s: out of memory\n"
+msgstr "%s: memoria agotada\n"
+
+#: src/ksyms.c:1670
+#, c-format
+msgid "unknown charset %s - ignoring charset request\n"
+msgstr "conjunto de caracteres %s desconocido - no se atiende a la petición\n"
+
+#: src/ksyms.c:1742
+#, c-format
+msgid "assuming iso-8859-1 %s\n"
+msgstr "conjeturando iso-8859-1 %s\n"
+
+#: src/ksyms.c:1749
+#, c-format
+msgid "assuming iso-8859-15 %s\n"
+msgstr "conjeturando iso-8859-15 %s\n"
+
+#: src/ksyms.c:1756
+#, c-format
+msgid "assuming iso-8859-2 %s\n"
+msgstr "conjeturando iso-8859-2 %s\n"
+
+#: src/ksyms.c:1763
+#, c-format
+msgid "assuming iso-8859-3 %s\n"
+msgstr "conjeturando iso-8859-3 %s\n"
+
+#: src/ksyms.c:1770
+#, c-format
+msgid "assuming iso-8859-4 %s\n"
+msgstr "conjeturando iso-8859-4 %s\n"
+
+#: src/ksyms.c:1775
+#, c-format
+msgid "unknown keysym '%s'\n"
+msgstr "keysym '%s' desconocida\n"
+
+#: src/ksyms.c:1810
+#, c-format
+msgid "plus before %s ignored\n"
+msgstr "signo más antes de %s no se tiene en cuenta\n"
+
+#: src/loadunimap.c:62
+#, c-format
+msgid "usage: %s [-o map.orig] [map-file]\n"
+msgstr "uso: %s [-o mapa.original] [fichero-mapa]\n"
+
+#: src/loadunimap.c:152 src/loadunimap.c:163
+#, c-format
+msgid "Bad input line: %s\n"
+msgstr "Línea de entrada incorrecta: %s\n"
+
+#: src/loadunimap.c:172
+#, c-format
+msgid "%s: Glyph number (0x%x) larger than font length\n"
+msgstr "%s: el número de glifo (0x%x) es mayor que la longitud de la fuente\n"
+
+#: src/loadunimap.c:178
+#, c-format
+msgid "%s: Bad end of range (0x%x)\n"
+msgstr "%s: fin de rango (0x%x) incorrecto\n"
+
+#: src/loadunimap.c:208 src/psfxtable.c:175
+#, c-format
+msgid "%s: Bad Unicode range corresponding to font position range 0x%x-0x%x\n"
+msgstr "%s: rango Unicode correspondiente al rango de posición de fuente 0x%x-0x%x incorrecto\n"
+
+#: src/loadunimap.c:215 src/psfxtable.c:182
+#, c-format
+msgid "%s: Unicode range U+%x-U+%x not of the same length as font position range 0x%x-0x%x\n"
+msgstr "%s: el rango Unicode U+%x-U+%x no es de la misma longitud que el rango de posición en las fuentes 0x%x-0x%x\n"
+
+#: src/loadunimap.c:234 src/psfxtable.c:203
+#, c-format
+msgid "%s: trailing junk (%s) ignored\n"
+msgstr "%s: se descarta la basura del final (%s)\n"
+
+#: src/loadunimap.c:251
+#, c-format
+msgid "Loading unicode map from file %s\n"
+msgstr "Cargando el mapa unicode del archivo %s\n"
+
+#: src/loadunimap.c:257
+#, c-format
+msgid "%s: %s: Warning: line too long\n"
+msgstr "%s: %s: Adventencia: la línea es demasiado larga\n"
+
+#: src/loadunimap.c:267
+#, c-format
+msgid ""
+"%s: not loading empty unimap\n"
+"(if you insist: use option -f to override)\n"
+msgstr ""
+"%s: no se carga mapa unicode vacío\n"
+"(para forzar a cargarlo, use la opción -f)\n"
+
+#: src/loadunimap.c:288
+msgid "entry"
+msgstr "entrada"
+
+#: src/loadunimap.c:288
+msgid "entries"
+msgstr "entradas"
+
+#: src/loadunimap.c:314
+#, c-format
+msgid "Saved unicode map on `%s'\n"
+msgstr "Se ha salvado el mapa unicode en `%s'\n"
+
+#: src/loadunimap.c:334
+msgid "Appended Unicode map\n"
+msgstr "Se ha añadido un mapa Unicode\n"
+
+#: src/mapscrn.c:65
+#, c-format
+msgid "usage: %s [-v] [-o map.orig] map-file\n"
+msgstr "uso: %s [-v] [-o map.orig] fichero-mapa\n"
+
+#: src/mapscrn.c:130
+#, c-format
+msgid "mapscrn: cannot open map file _%s_\n"
+msgstr "mapscrn: no puede abrir el fichero-mapa _%s_\n"
+
+#: src/mapscrn.c:136
+msgid "Cannot stat map file"
+msgstr "No se puede hacer stat() sobre el fichero-mapa"
+
+#: src/mapscrn.c:141
+#, c-format
+msgid "Loading binary direct-to-font screen map from file %s\n"
+msgstr "Cargando mapa de pantalla binario directo-a-fuente desde el fichero %s\n"
+
+#: src/mapscrn.c:146 src/mapscrn.c:157
+#, c-format
+msgid "Error reading map from file `%s'\n"
+msgstr "Error de lectura del mapa contenido en el fichero `%s'\n"
+
+#: src/mapscrn.c:152
+#, c-format
+msgid "Loading binary unicode screen map from file %s\n"
+msgstr "Cargando el mapa de pantalla binario unicode desde el fichero %s\n"
+
+#: src/mapscrn.c:164
+#, c-format
+msgid "Loading symbolic screen map from file %s\n"
+msgstr "Cargando el mapa de pantalla simbólico desde el fichero %s\n"
+
+#: src/mapscrn.c:168
+#, c-format
+msgid "Error parsing symbolic map from `%s', line %d\n"
+msgstr "Error al analizar el mapa simbólico contenido en `%s', línea %d\n"
+
+#: src/mapscrn.c:272 src/mapscrn.c:277
+msgid "Error writing map to file\n"
+msgstr "Error al escribir el mapa en el fichero\n"
+
+#: src/mapscrn.c:281
+msgid "Cannot read console map\n"
+msgstr "No se puede leer el mapa de consola\n"
+
+#: src/mapscrn.c:287
+#, c-format
+msgid "Saved screen map in `%s'\n"
+msgstr "Salvado el mapa de pantalla en `%s'\n"
+
+#: src/psffontop.c:66
+#, c-format
+msgid "%s: short ucs2 unicode table\n"
+msgstr "%s: tabla ucs2 unicode abreviada\n"
+
+#: src/psffontop.c:87
+#, c-format
+msgid "%s: short utf8 unicode table\n"
+msgstr "%s: tabla utf8 unicode abreviada\n"
+
+#: src/psffontop.c:90
+#, c-format
+msgid "%s: bad utf8\n"
+msgstr "%s: utf8 incorrecto\n"
+
+#: src/psffontop.c:93
+#, c-format
+msgid "%s: unknown utf8 error\n"
+msgstr "%s: error utf8 desconocido\n"
+
+#: src/psffontop.c:124
+#, c-format
+msgid "%s: short unicode table\n"
+msgstr "%s: tabla unicode abreviada\n"
+
+#: src/psffontop.c:204
+#, c-format
+msgid "%s: Error reading input font"
+msgstr "%s: Error de lectura de la fuente de entrada"
+
+#: src/psffontop.c:218
+#, c-format
+msgid "%s: Bad call of readpsffont\n"
+msgstr "%s: Llamada a readpsffont incorrecta\n"
+
+#: src/psffontop.c:233
+#, c-format
+msgid "%s: Unsupported psf file mode (%d)\n"
+msgstr "%s: modalidad (%d) de fichero psf no admitida\n"
+
+#: src/psffontop.c:251
+#, c-format
+msgid "%s: Unsupported psf version (%d)\n"
+msgstr "%s: Versión (%d) de psf no admitida\n"
+
+#: src/psffontop.c:267
+#, c-format
+msgid "%s: zero input font length?\n"
+msgstr "%s: ¿la longitud de la fuente de entrada es cero?\n"
+
+#: src/psffontop.c:272
+#, c-format
+msgid "%s: zero input character size?\n"
+msgstr "%s: ¿el tamaño del carácter de entrada es cero?\n"
+
+#: src/psffontop.c:278
+#, c-format
+msgid "%s: Input file: bad input length (%d)\n"
+msgstr "%s: Fichero de entrada: longitud de entrada (%d) incorrecta\n"
+
+#: src/psffontop.c:310
+#, c-format
+msgid "%s: Input file: trailing garbage\n"
+msgstr "%s: Fichero de entrada: basura al final\n"
+
+#: src/psffontop.c:348
+#, c-format
+msgid "appendunicode: illegal unicode %u\n"
+msgstr "appendunicode: unicode %u es ilegal\n"
+
+#: src/psffontop.c:434
+msgid "Cannot write font file header"
+msgstr "No se puede escribir la cabecera del fichero de fuentes"
+
+#: src/psfxtable.c:109
+#, c-format
+msgid "%s: Warning: line too long\n"
+msgstr "%s: Advertencia: línea demasiado larga\n"
+
+#: src/psfxtable.c:123 src/psfxtable.c:133
+#, c-format
+msgid "%s: Bad input line: %s\n"
+msgstr "%s: Línea de entrada incorrecta: %s\n"
+
+#: src/psfxtable.c:142
+#, c-format
+msgid "%s: Glyph number (0x%lx) past end of font\n"
+msgstr "%s: El número de glifo (0x%lx) es mayor que el final de la fuente\n"
+
+#: src/psfxtable.c:147
+#, c-format
+msgid "%s: Bad end of range (0x%lx)\n"
+msgstr "%s: Fin de rango (0x%lx) incorrecto)\n"
+
+#: src/psfxtable.c:166
+#, c-format
+msgid "%s: Corresponding to a range of font positions, there should be a Unicode range\n"
+msgstr ""
+
+#: src/psfxtable.c:255
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont intable outfont\n"
+msgstr ""
+
+#: src/psfxtable.c:264
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont [outtable]\n"
+msgstr ""
+
+#: src/psfxtable.c:273
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s infont outfont\n"
+msgstr ""
+
+#: src/psfxtable.c:298
+#, c-format
+msgid ""
+"Usage:\n"
+"\t%s [-i infont] [-o outfont] [-it intable] [-ot outtable] [-nt]\n"
+msgstr ""
+
+#: src/psfxtable.c:358
+#, c-format
+msgid "%s: Bad magic number on %s\n"
+msgstr ""
+
+#: src/psfxtable.c:377
+#, c-format
+msgid "%s: psf file with unknown magic\n"
+msgstr ""
+
+#: src/psfxtable.c:393
+#, c-format
+msgid "%s: input font does not have an index\n"
+msgstr ""
+
+#: src/resizecons.c:153
+#, c-format
+msgid "resizecons: cannot find videomode file %s\n"
+msgstr ""
+
+#: src/resizecons.c:172
+msgid "Invalid number of lines\n"
+msgstr ""
+
+#: src/resizecons.c:238
+#, c-format
+msgid "Old mode: %dx%d  New mode: %dx%d\n"
+msgstr ""
+
+#: src/resizecons.c:240
+#, c-format
+msgid "Old #scanlines: %d  New #scanlines: %d  Character height: %d\n"
+msgstr ""
+
+#: src/resizecons.c:251
+#, c-format
+msgid "resizecons: the command `%s' failed\n"
+msgstr ""
+
+#: src/resizecons.c:319
+#, c-format
+msgid "resizecons: don't forget to change TERM (maybe to con%dx%d or linux-%dx%d)\n"
+msgstr ""
+
+#: src/resizecons.c:332
+msgid ""
+"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"
+msgstr ""
+
+#: src/resizecons.c:370
+msgid "resizecons: cannot get I/O permissions.\n"
+msgstr ""
+
+#: src/screendump.c:48
+msgid "usage: screendump [n]\n"
+msgstr ""
+
+#: src/screendump.c:68
+#, c-format
+msgid "Error reading %s\n"
+msgstr ""
+
+#: src/screendump.c:109
+#, c-format
+msgid "couldn't read %s, and cannot ioctl dump\n"
+msgstr ""
+
+#. 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:115
+#, c-format
+msgid "couldn't read %s\n"
+msgstr ""
+
+#: src/screendump.c:124
+#, c-format
+msgid "Strange ... screen is both %dx%d and %dx%d ??\n"
+msgstr ""
+
+#: src/screendump.c:142
+msgid "Error writing screendump\n"
+msgstr ""
+
+#: src/setfont.c:73
+msgid ""
+"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"
+"    -O  <filename>\tWrite current font and unicode map to <filename>\n"
+"    -om <filename>\tWrite current consolemap to <filename>\n"
+"    -ou <filename>\tWrite current unicodemap to <filename>\n"
+"If no newfont and no -[o|O|om|ou|m|u] option is given,\n"
+"a default font is loaded:\n"
+"    setfont             Load font \"default[.gz]\"\n"
+"    setfont -<N>        Load font \"default8x<N>[.gz]\"\n"
+"The -<N> option selects a font from a codepage that contains three fonts:\n"
+"    setfont -{8|14|16} codepage.cp[.gz]   Load 8x<N> font from codepage.cp\n"
+"Explicitly (with -m or -u) or implicitly (in the fontfile) given mappings\n"
+"will be loaded and, in the case of consolemaps, activated.\n"
+"    -h<N>      (no space) Override font height.\n"
+"    -m <fn>    Load console screen map.\n"
+"    -u <fn>    Load font unicode map.\n"
+"    -m none\tSuppress loading and activation of a screen map.\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"
+msgstr ""
+
+#: 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"
+msgstr ""
+
+#: src/setfont.c:236
+#, c-format
+msgid "Bad character height %d\n"
+msgstr ""
+
+#: src/setfont.c:240
+#, c-format
+msgid "Bad character width %d\n"
+msgstr ""
+
+#: src/setfont.c:265
+#, c-format
+msgid "%s: font position 32 is nonblank\n"
+msgstr ""
+
+#: src/setfont.c:273
+#, c-format
+msgid "%s: wiped it\n"
+msgstr ""
+
+#: src/setfont.c:277
+#, c-format
+msgid "%s: background will look funny\n"
+msgstr ""
+
+#: src/setfont.c:287
+#, c-format
+msgid "Loading %d-char %dx%d font from file %s\n"
+msgstr ""
+
+#: src/setfont.c:290
+#, c-format
+msgid "Loading %d-char %dx%d font\n"
+msgstr ""
+
+#: src/setfont.c:293
+#, c-format
+msgid "Loading %d-char %dx%d (%d) font from file %s\n"
+msgstr ""
+
+#: src/setfont.c:296
+#, c-format
+msgid "Loading %d-char %dx%d (%d) font\n"
+msgstr ""
+
+#: src/setfont.c:336
+#, c-format
+msgid "%s: bug in do_loadtable\n"
+msgstr ""
+
+#: src/setfont.c:342
+msgid "Loading Unicode mapping table...\n"
+msgstr ""
+
+#: src/setfont.c:378 src/setfont.c:462
+#, c-format
+msgid "Cannot open font file %s\n"
+msgstr ""
+
+#: src/setfont.c:389
+#, c-format
+msgid "When loading several fonts, all must be psf fonts - %s isn't\n"
+msgstr ""
+
+#: src/setfont.c:397
+#, c-format
+msgid "Read %d-char %dx%d font from file %s\n"
+msgstr ""
+
+#: src/setfont.c:403
+msgid "When loading several fonts, all must have the same height\n"
+msgstr ""
+
+#: src/setfont.c:410
+msgid "When loading several fonts, all must have the same width\n"
+msgstr ""
+
+#: src/setfont.c:449
+msgid "Cannot find default font\n"
+msgstr ""
+
+#: src/setfont.c:456
+#, c-format
+msgid "Cannot find %s font\n"
+msgstr ""
+
+#: src/setfont.c:468
+#, c-format
+msgid "Reading font file %s\n"
+msgstr ""
+
+#: src/setfont.c:506
+msgid "No final newline in combine file\n"
+msgstr ""
+
+#: src/setfont.c:512
+msgid "Too many files to combine\n"
+msgstr ""
+
+#. 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:536
+msgid "Hmm - a font from restorefont? Using the first half.\n"
+msgstr ""
+
+#: src/setfont.c:553
+msgid "Bad input file size\n"
+msgstr ""
+
+#: src/setfont.c:574
+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"
+msgstr ""
+
+#: src/setfont.c:588
+#, c-format
+msgid "You asked for font size %d, but only 8, 14, 16 are possible here.\n"
+msgstr ""
+
+#: src/setfont.c:633
+msgid "Found nothing to save\n"
+msgstr ""
+
+#: src/setfont.c:637
+msgid "Cannot write font file"
+msgstr ""
+
+#: src/setfont.c:642
+#, c-format
+msgid "Saved %d-char %dx%d font file on %s\n"
+msgstr ""
+
+#: src/setkeycodes.c:21
+msgid ""
+"usage: setkeycode scancode keycode ...\n"
+" (where scancode is either xx or e0xx, given in hexadecimal,\n"
+"  and keycode is given in decimal)\n"
+msgstr ""
+
+#: src/setkeycodes.c:43
+msgid "even number of arguments expected"
+msgstr ""
+
+#: src/setkeycodes.c:50
+msgid "error reading scancode"
+msgstr ""
+
+#: src/setkeycodes.c:56
+msgid "code outside bounds"
+msgstr ""
+
+#: src/setkeycodes.c:59
+#, c-format
+msgid "failed to set scancode %x to keycode %d\n"
+msgstr ""
+
+#: src/setleds.c:25
+#, c-format
+msgid ""
+"Usage:\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"
+"The settings before and after the change (if any) are reported\n"
+"when the -v option is given or when no change is requested.\n"
+"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"
+msgstr ""
+
+#: src/setleds.c:47
+msgid "on "
+msgstr ""
+
+#: src/setleds.c:47
+msgid "off"
+msgstr ""
+
+#: src/setleds.c:90
+msgid "Error reading current led setting. Maybe stdin is not a VT?\n"
+msgstr ""
+
+#: src/setleds.c:109
+msgid "Error reading current flags setting. Maybe you are not on the console?\n"
+msgstr ""
+
+#: src/setleds.c:123 src/setleds.c:138
+msgid "Error reading current led setting from /dev/kbd.\n"
+msgstr ""
+
+#: src/setleds.c:127
+msgid "KIOCGLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:142
+msgid "KIOCSLED unavailable?\n"
+msgstr ""
+
+#: src/setleds.c:169
+msgid "Error opening /dev/kbd.\n"
+msgstr ""
+
+#: src/setleds.c:201
+msgid "Error resetting ledmode\n"
+msgstr ""
+
+#: src/setleds.c:210
+msgid "Current default flags:  "
+msgstr ""
+
+#: src/setleds.c:214
+msgid "Current flags:          "
+msgstr ""
+
+#: src/setleds.c:218
+msgid "Current leds:           "
+msgstr ""
+
+#: src/setleds.c:254 src/setmetamode.c:94
+#, c-format
+msgid "unrecognized argument: _%s_\n\n"
+msgstr ""
+
+#: src/setleds.c:263
+msgid "Old default flags:    "
+msgstr ""
+
+#: src/setleds.c:265
+msgid "New default flags:    "
+msgstr ""
+
+#: src/setleds.c:272
+msgid "Old flags:            "
+msgstr ""
+
+#: src/setleds.c:274
+msgid "New flags:            "
+msgstr ""
+
+#: src/setleds.c:288 src/setleds.c:297
+msgid "Old leds:             "
+msgstr ""
+
+#: src/setleds.c:290 src/setleds.c:299
+msgid "New leds:             "
+msgstr ""
+
+#: src/setmetamode.c:20
+msgid ""
+"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"
+msgstr ""
+
+#: src/setmetamode.c:36
+msgid "Meta key sets high order bit\n"
+msgstr ""
+
+#: src/setmetamode.c:39
+msgid "Meta key gives Esc prefix\n"
+msgstr ""
+
+#: src/setmetamode.c:42
+msgid "Strange mode for Meta key?\n"
+msgstr ""
+
+#: src/setmetamode.c:78
+msgid "Error reading current setting. Maybe stdin is not a VT?\n"
+msgstr ""
+
+#: src/setmetamode.c:98
+msgid "old state:    "
+msgstr ""
+
+#: src/setmetamode.c:104
+msgid "new state:    "
+msgstr ""
+
+#: src/setvesablank.c:21
+#, c-format
+msgid "usage: %s\n"
+msgstr ""
+
+#: src/showconsolefont.c:30
+msgid "failed to restore original translation table\n"
+msgstr ""
+
+#: src/showconsolefont.c:35
+msgid "failed to restore original unimap\n"
+msgstr ""
+
+#: src/showconsolefont.c:53
+msgid "cannot change translation table\n"
+msgstr ""
+
+#: src/showconsolefont.c:60
+#, c-format
+msgid "%s: out of memory?\n"
+msgstr ""
+
+#: src/showconsolefont.c:101
+msgid ""
+"usage: showconsolefont [-v|-V]\n"
+"(probably after loading a font with `setfont font')\n"
+msgstr ""
+
+#: src/showkey.c:42
+msgid "?UNKNOWN?"
+msgstr ""
+
+#: src/showkey.c:44
+#, c-format
+msgid "kb mode was %s\n"
+msgstr ""
+
+#: src/showkey.c:46
+msgid ""
+"[ if you are trying this under X, it might not work\n"
+"since the X server is also reading /dev/console ]\n"
+msgstr ""
+
+#: src/showkey.c:65
+#, c-format
+msgid "caught signal %d, cleaning up...\n"
+msgstr ""
+
+#: src/showkey.c:79
+#, c-format
+msgid ""
+"showkey version %s\n"
+"\n"
+"usage: showkey [options...]\n"
+"\n"
+"valid options are:\n"
+"\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"
+msgstr ""
+
+#: src/showkey.c:157
+msgid "\nPress any keys - Ctrl-D will terminate this program\n\n"
+msgstr ""
+
+#: src/showkey.c:226
+msgid "press any key (program terminates 10s after last keypress)...\n"
+msgstr ""
+
+#: src/showkey.c:234
+#, c-format
+msgid "keycode %3d %s\n"
+msgstr ""
+
+#: src/showkey.c:236
+msgid "release"
+msgstr ""
+
+#: src/showkey.c:237
+msgid "press"
+msgstr ""
+
+#: src/version.h:17
+#, c-format
+msgid "%s from %s\n"
+msgstr ""
diff --git a/po/kbd.sv b/po/kbd.sv
new file mode 100644 (file)
index 0000000..38dc6b5
--- /dev/null
+++ b/po/kbd.sv
@@ -0,0 +1,644 @@
+From pinard@IRO.UMontreal.CA Tue Nov  6 11:43:10 2001
+Received: from mercure.IRO.UMontreal.CA (mercure.IRO.UMontreal.CA [132.204.24.67]) by hera.cwi.nl with ESMTP
+       id LAA17460 for <Andries.Brouwer@cwi.nl>; Tue, 6 Nov 2001 11:43:09 +0100 (MET)
+Received: from trex.iro.umontreal.ca (trex.iro.umontreal.ca [132.204.26.206])
+       by mercure.IRO.UMontreal.CA (8.11.4/8.11.1) with ESMTP id fA6Ah7F13588
+       for <Andries.Brouwer@cwi.nl>; Tue, 6 Nov 2001 05:43:07 -0500
+Received: (from pinard@localhost)
+       by trex.iro.umontreal.ca (8.11.4/8.11.1) id fA6Ah7w21029;
+       Tue, 6 Nov 2001 05:43:07 -0500
+Date: Tue, 6 Nov 2001 05:43:07 -0500
+Message-Id: <200111061043.fA6Ah7w21029@trex.iro.umontreal.ca>
+From: Translation Project Robot <translation@IRO.UMontreal.CA>
+To: Andries.Brouwer@cwi.nl
+Subject: Contents of file `kbd-1.06.sv.po'
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="=-=-="
+Status: R
+
+--=-=-=
+Content-Type: application/octet-stream
+Content-Disposition: attachment; filename=kbd-1.06.sv.po
+Content-Transfer-Encoding: base64
+
+IyBTd2VkaXNoIG1lc3NhZ2UgZmlsZSBmb3Iga2JkCiMgQ29weXJpZ2h0IChDKSAyMDAxIEZyZWUg
+U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgojIE1hcnRpbiBTavZncmVuIDxtZDltc0BtZHN0dWQu
+Y2hhbG1lcnMuc2U+LCAyMDAxLgojCiMgJElkOiBzdi5wbyx2IDEuMTUgMjAwMS8xMS8wNiAxMDoz
+NDozMyBtYXJ0aW4gRXhwICQKIwptc2dpZCAiIgptc2dzdHIgIiIKIlByb2plY3QtSWQtVmVyc2lv
+bjoga2JkIDEuMDZcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDAxLTA5LTMwIDExOjI5KzAyMDBc
+biIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDEtMTEtMDYgMTE6MzMrMDEwMFxuIgoiTGFzdC1UcmFu
+c2xhdG9yOiBNYXJ0aW4gU2r2Z3JlbiA8bWQ5bXNAbWRzdHVkLmNoYWxtZXJzLnNlPlxuIgoiTGFu
+Z3VhZ2UtVGVhbTogU3dlZGlzaCA8c3ZAbGkub3JnPlxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIK
+IkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xXG4iCiJDb250ZW50
+LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCgojOiBvcGVudnQvb3BlbnZ0LmM6NjcKIywgYy1m
+b3JtYXQKbXNnaWQgIm9wZW52dDogJXM6IGlsbGVnYWwgdnQgbnVtYmVyXG4iCm1zZ3N0ciAib3Bl
+bnZ0OiAlczogb2dpbHRpZ3QgdnQtbnVtbWVyXG4iCgojOiBvcGVudnQvb3BlbnZ0LmM6OTEKbXNn
+aWQgIm9wZW52dDogb25seSByb290IGNhbiB1c2UgdGhlIC11IGZsYWcuXG4iCm1zZ3N0ciAib3Bl
+bnZ0OiBlbmRhc3Qgcm9vdCBrYW4gYW525G5kYSBmbGFnZ2FuIC11LlxuIgoKIzogb3BlbnZ0L29w
+ZW52dC5jOjEwNSBzcmMvZ2V0ZmQuYzo2Mwptc2dpZCAiQ291bGRudCBnZXQgYSBmaWxlIGRlc2Ny
+aXB0b3IgcmVmZXJyaW5nIHRvIHRoZSBjb25zb2xlXG4iCm1zZ3N0ciAiS3VuZGUgaW50ZSBm5SBl
+biBmaWxpZGVudGlmaWVyYXJlIGb2ciBrb25zb2xsZW5cbiIKCiM6IG9wZW52dC9vcGVudnQuYzox
+MTcKbXNnaWQgIm9wZW52dDogY2Fubm90IGZpbmQgYSBmcmVlIHZ0XG4iCm1zZ3N0ciAib3BlbnZ0
+OiBrYW4gaW50ZSBoaXR0YSBlbiBsZWRpZyB2dFxuIgoKIzogb3BlbnZ0L29wZW52dC5jOjEyMgoj
+LCBjLWZvcm1hdAptc2dpZCAib3BlbnZ0OiBjYW5ub3QgY2hlY2sgd2hldGhlciB2dCAlZCBpcyBm
+cmVlXG4iCm1zZ3N0ciAib3BlbnZ0OiBrYW4gaW50ZSB1bmRlcnP2a2EgaHVydXZpZGEgdnQgJWQg
+5HIgbGVkaWdcbiIKCiM6IG9wZW52dC9vcGVudnQuYzoxMjMgb3BlbnZ0L29wZW52dC5jOjEyOApt
+c2dpZCAiICAgICAgICB1c2UgYG9wZW52dCAtZicgdG8gZm9yY2UuXG4iCm1zZ3N0ciAiICAgICAg
+ICBhbnbkbmQgXCJvcGVudnQgLWZcIiBm9nIgYXR0IHR2aW5nYS5cbiIKCiM6IG9wZW52dC9vcGVu
+dnQuYzoxMjcKIywgYy1mb3JtYXQKbXNnaWQgIm9wZW52dDogdnQgJWQgaXMgaW4gdXNlOyBjb21t
+YW5kIGFib3J0ZWRcbiIKbXNnc3RyICJvcGVudnQ6IHZ0ICVkIGFuduRuZHMsIGtvbW1hbmRvdCBh
+dmJydXRldFxuIgoKIzogb3BlbnZ0L29wZW52dC5jOjE1NQojLCBjLWZvcm1hdAptc2dpZCAib3Bl
+bnZ0OiBVbmFibGUgdG8gb3BlbiAlczogJXNcbiIKbXNnc3RyICJvcGVudnQ6IEthbiBpbnRlIPZw
+cG5hICVzOiAlc1xuIgoKIzogb3BlbnZ0L29wZW52dC5jOjE2NwojLCBjLWZvcm1hdAptc2dpZCAi
+b3BlbnZ0OiBDYW5ub3Qgb3BlbiAlcyByZWFkL3dyaXRlICglcylcbiIKbXNnc3RyICJvcGVudnQ6
+IEthbiBpbnRlIPZwcG5hICVzIGb2ciBs5HNuaW5nL3Nrcml2bmluZyAoJXMpXG4iCgojOiBvcGVu
+dnQvb3BlbnZ0LmM6MjA1CiMsIGMtZm9ybWF0Cm1zZ2lkICJvcGVudnQ6IHVzaW5nIFZUICVzXG4i
+Cm1zZ3N0ciAib3BlbnZ0OiBhbnbkbmRlciBWVCAlc1xuIgoKIzogb3BlbnZ0L29wZW52dC5jOjIx
+NwojLCBjLWZvcm1hdAptc2dpZCAib3BlbnZ0OiBVbmFibGUgdG8gc2V0IG5ldyBzZXNzaW9uICgl
+cylcbiIKbXNnc3RyICJvcGVudnQ6IEthbiBpbnRlIHPkdHRhIG55IHNlc3Npb24gKCVzKVxuIgoK
+Izogb3BlbnZ0L29wZW52dC5jOjIyNQojLCBjLWZvcm1hdAptc2dpZCAiXG5vcGVudnQ6IGNvdWxk
+IG5vdCBvcGVuICVzIFIvVyAoJXMpXG4iCm1zZ3N0ciAiXG5vcGVudnQ6IGt1bmRlIGludGUg9nBw
+bmEgJXMgZvZyIGzkc25pbmcvc2tyaXZuaW5nICglcylcbiIKCiM6IG9wZW52dC9vcGVudnQuYzoy
+ODEKIywgYy1mb3JtYXQKbXNnaWQgIm9wZW52dDogY291bGQgbm90IGRlYWxsb2NhdGUgY29uc29s
+ZSAlZFxuIgptc2dzdHIgIm9wZW52dDoga3VuZGUgaW50ZSBkZWFsbG9rZXJhIGtvbnNvbGwgJWRc
+biIKCiM6IHNyYy9jaHZ0LmM6MjgKbXNnaWQgInVzYWdlOiBjaHZ0IE5cbiIKbXNnc3RyICJhbnbk
+bmRuaW5nOiBjaHZ0IE5cbiIKCiM6IHNyYy9kZWFsbG9jdnQuYzozMwojLCBjLWZvcm1hdAptc2dp
+ZCAiJXM6IHVua25vd24gb3B0aW9uXG4iCm1zZ3N0ciAiJXM6IG9r5G5kIGZsYWdnYVxuIgoKIzog
+c3JjL2RlYWxsb2N2dC5jOjQ1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZGVhbGxvY2F0aW5nIGFs
+bCB1bnVzZWQgY29uc29sZXMgZmFpbGVkXG4iCm1zZ3N0ciAiJXM6IGRlYWxsb2tlcmluZyBhdiBh
+bGxhIG9hbnbkbmRhIGtvbnNvbGxlciBtaXNzbHlja2FkZXNcbiIKCiM6IHNyYy9kZWFsbG9jdnQu
+Yzo1MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IDA6IGlsbGVnYWwgVlQgbnVtYmVyXG4iCm1zZ3N0
+ciAiJXM6IDA6IG9naWx0aWd0IFZULW51bW1lclxuIgoKIzogc3JjL2RlYWxsb2N2dC5jOjU2CiMs
+IGMtZm9ybWF0Cm1zZ2lkICIlczogVlQgMSBpcyB0aGUgY29uc29sZSBhbmQgY2Fubm90IGJlIGRl
+YWxsb2NhdGVkXG4iCm1zZ3N0ciAiJXM6IFZUIDEg5HIga29uc29sbGVuIG9jaCBrYW4gaW50ZSBk
+ZWFsbG9rZXJhc1xuIgoKIzogc3JjL2RlYWxsb2N2dC5jOjYxCiMsIGMtZm9ybWF0Cm1zZ2lkICIl
+czogY291bGQgbm90IGRlYWxsb2NhdGUgY29uc29sZSAlZFxuIgptc2dzdHIgIiVzOiBrdW5kZSBp
+bnRlIGRlYWxsb2tlcmEga29uc29sbCAlZFxuIgoKIzogc3JjL2R1bXBrZXlzLmM6NjMKIywgYy1m
+b3JtYXQKbXNnaWQgIktER0tCRU5UIGVycm9yIGF0IGluZGV4IDAgaW4gdGFibGUgJWQ6ICIKbXNn
+c3RyICJLREdLQkVOVC1mZWwgdmlkIGluZGV4IDAgaSB0YWJlbGwgJWQ6ICIKCiM6IHNyYy9kdW1w
+a2V5cy5jOjc2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2Fubm90IGZpbmQgYW55IGtleW1hcHM/
+XG4iCm1zZ3N0ciAiJXM6IGthbiBpbnRlIGhpdHRhIG7lZ3JhIHRhbmdlbnR0YWJlbGxlcj9cbiIK
+CiM6IHNyYy9kdW1wa2V5cy5jOjgxCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcGxhaW4gbWFwIG5v
+dCBhbGxvY2F0ZWQ/IHZlcnkgc3RyYW5nZSAuLi5cbiIKbXNnc3RyICIlczogZW5rZWwgdGFiZWxs
+IGludGUgYWxsb2tlcmFkPyBteWNrZXQgbXlzdGlza3QgLi4uXG4iCgojOiBzcmMvZHVtcGtleXMu
+YzoxMTMKIywgYy1mb3JtYXQKbXNnaWQgIktER0tCRU5UIGVycm9yIGF0IGluZGV4ICVkIGluIHRh
+YmxlICVkOiAiCm1zZ3N0ciAiS0RHS0JFTlQtZmVsIHZpZCBpbmRleCAlZCBpIHRhYmVsbCAlZDog
+IgoKIzogc3JjL2R1bXBrZXlzLmM6MjQxCiMsIGMtZm9ybWF0Cm1zZ2lkICJrZXljb2RlIHJhbmdl
+IHN1cHBvcnRlZCBieSBrZXJuZWw6ICAgICAgICAgICAxIC0gJWRcbiIKbXNnc3RyICJ0YW5nZW50
+a29kc2ludGVydmFsbCBzb20gc3T2ZHMgYXYga+RybmFuOiAgICAgICAgMSAtICVkXG4iCgojOiBz
+cmMvZHVtcGtleXMuYzoyNDMKIywgYy1mb3JtYXQKbXNnaWQgIm1heCBudW1iZXIgb2YgYWN0aW9u
+cyBiaW5kYWJsZSB0byBhIGtleTogICAgICAgICAlZFxuIgptc2dzdHIgInN09nJzdGEgYW50YWwg
+aGFuZGxpbmdhciBiaW5kYmFyYSB0aWxsIGVuIHRhbmdlbnQ6ICAgJWRcbiIKCiM6IHNyYy9kdW1w
+a2V5cy5jOjI0NgojLCBjLWZvcm1hdAptc2dpZCAibnVtYmVyIG9mIGtleW1hcHMgaW4gYWN0dWFs
+IHVzZTogICAgICAgICAgICAgICAgICVkXG4iCm1zZ3N0ciAiYW50YWwgdGFuZ2VudHRhYmVsbGVy
+IHNvbSBmYWt0aXNrdCBhbnbkbmRzOiAgICAgICAgICAlZFxuIgoKIzogc3JjL2R1bXBrZXlzLmM6
+MjQ5CiMsIGMtZm9ybWF0Cm1zZ2lkICJvZiB3aGljaCAlZCBkeW5hbWljYWxseSBhbGxvY2F0ZWRc
+biIKbXNnc3RyICJ2YXJhdiAlZCDkciBkeW5hbWlza3QgYWxsb2tlcmFkZVxuIgoKIzogc3JjL2R1
+bXBrZXlzLmM6MjUwCm1zZ2lkICJyYW5nZXMgb2YgYWN0aW9uIGNvZGVzIHN1cHBvcnRlZCBieSBr
+ZXJuZWw6XG4iCm1zZ3N0ciAiaW50ZXJ2YWxsIGF2IGhhbmRsaW5nc2tvZGVyIHNvbSBzdPZkcyBh
+diBr5HJuYW46XG4iCgojOiBzcmMvZHVtcGtleXMuYzoyNTUKIywgYy1mb3JtYXQKbXNnaWQgIm51
+bWJlciBvZiBmdW5jdGlvbiBrZXlzIHN1cHBvcnRlZCBieSBrZXJuZWw6ICVkXG4iCm1zZ3N0ciAi
+YW50YWwgZnVua3Rpb25zdGFuZ2VudGVyIHNvbSBzdPZkcyBhdiBr5HJuYW46ICVkXG4iCgojOiBz
+cmMvZHVtcGtleXMuYzoyNTgKIywgYy1mb3JtYXQKbXNnaWQgIm1heCBuciBvZiBjb21wb3NlIGRl
+ZmluaXRpb25zOiAlZFxuIgptc2dzdHIgInN09nJzdGEgYW50YWwga29tcG9zaXRpb25zZGVmaW5p
+dGlvbmVyOiAlZFxuIgoKIzogc3JjL2R1bXBrZXlzLmM6MjYwCiMsIGMtZm9ybWF0Cm1zZ2lkICJu
+ciBvZiBjb21wb3NlIGRlZmluaXRpb25zIGluIGFjdHVhbCB1c2U6ICVkXG4iCm1zZ3N0ciAiYW50
+YWwga29tcG9zaXRpb25zZGVmaW5pdGlvbmVyIHNvbSBmYWt0aXNrdCBhbnbkbmRzOiAlZFxuIgoK
+Izogc3JjL2R1bXBrZXlzLmM6Mjg0CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJTeW1ib2xzIHJlY29n
+bml6ZWQgYnkgJXM6XG4iCiIobnVtZXJpYyB2YWx1ZSwgc3ltYm9sKVxuIgoiXG4iCm1zZ3N0ciAi
+IgoiU3ltYm9sZXIgc29tIGvkbm5zIGlnZW4gYXYgJXM6XG4iCiIobnVtZXJpc2t0IHbkcmRlLCBz
+eW1ib2wpXG4iCiJcbiIKCiM6IHNyYy9kdW1wa2V5cy5jOjI5Nwptc2dpZCAiXG5UaGUgZm9sbG93
+aW5nIHN5bm9ueW1zIGFyZSByZWNvZ25pemVkOlxuXG4iCm1zZ3N0ciAiXG5G9mxqYW5kZSBzeW5v
+bnltZXIga+RubnMgaWdlbjpcblxuIgoKIzogc3JjL2R1bXBrZXlzLmM6Mjk5CiMsIGMtZm9ybWF0
+Cm1zZ2lkICIlLTE1cyBmb3IgJXNcbiIKbXNnc3RyICIlLTE1cyBm9nIgJXNcbiIKCiM6IHNyYy9k
+dW1wa2V5cy5jOjMwMQptc2dpZCAiXG5SZWNvZ25pemVkIG1vZGlmaWVyIG5hbWVzIGFuZCB0aGVp
+ciBjb2x1bW4gbnVtYmVyczpcbiIKbXNnc3RyICJcbklnZW5r5G5kYSBtb2RpZmllcmFybmFtbiBv
+Y2ggZGVyYXMga29sdW1ubnVtbWVyOlxuIgoKIzogc3JjL2R1bXBrZXlzLmM6MzY0CiMsIGMtZm9y
+bWF0Cm1zZ2lkICIjIG5vdCBhbHRfaXNfbWV0YTogb24ga2V5bWFwICVkIGtleSAlZCBpcyBib3Vu
+ZCB0byIKbXNnc3RyICIjIGludGUgYWx0X2lzX21ldGE6IGkgdGFuZ2VudHRhYmVsbCAlZCDkciB0
+YW5nZW50ICVkIGJ1bmRlbiB0aWxsIgoKIzogc3JjL2R1bXBrZXlzLmM6NDM5Cm1zZ2lkICJpbXBv
+c3NpYmxlOiBub3QgbWV0YT9cbiIKbXNnc3RyICJvbfZqbGlndDogaW50ZSBtZXRhP1xuIgoKIzog
+c3JjL2R1bXBrZXlzLmM6NDk2CiMsIGMtZm9ybWF0Cm1zZ2lkICJLREdLQlNFTlQgZmFpbGVkIGF0
+IGluZGV4ICVkOiAiCm1zZ3N0ciAiS0RHS0JTRU5UIG1pc3NseWNrYWRlcyB2aWQgaW5kZXggJWQ6
+ICIKCiM6IHNyYy9kdW1wa2V5cy5jOjUxNgojLCBjLWZvcm1hdAptc2dpZCAiZHVtcGtleXMgdmVy
+c2lvbiAlcyIKbXNnc3RyICJkdW1wa2V5cyB2ZXJzaW9uICVzIgoKIzogc3JjL2R1bXBrZXlzLmM6
+NTE3Cm1zZ2lkICIiCiJcbiIKInVzYWdlOiBkdW1wa2V5cyBbb3B0aW9ucy4uLl1cbiIKIlxuIgoi
+dmFsaWQgb3B0aW9ucyBhcmU6XG4iCiJcbiIKIlx0LWggLS1oZWxwXHQgICAgZGlzcGxheSB0aGlz
+IGhlbHAgdGV4dFxuIgoiXHQtaSAtLXNob3J0LWluZm9cdCAgICBkaXNwbGF5IGluZm9ybWF0aW9u
+IGFib3V0IGtleWJvYXJkIGRyaXZlclxuIgoiXHQtbCAtLWxvbmctaW5mb1x0ICAgIGRpc3BsYXkg
+YWJvdmUgYW5kIHN5bWJvbHMga25vd24gdG8gbG9hZGtleXNcbiIKIlx0LW4gLS1udW1lcmljXHQg
+ICAgZGlzcGxheSBrZXl0YWJsZSBpbiBoZXhhZGVjaW1hbCBub3RhdGlvblxuIgoiXHQtZiAtLWZ1
+bGwtdGFibGVcdCAgICBkb24ndCB1c2Ugc2hvcnQtaGFuZCBub3RhdGlvbnMsIG9uZSByb3cgcGVy
+IGtleWNvZGVcbiIKIlx0LTEgLS1zZXBhcmF0ZS1saW5lcyBvbmUgbGluZSBwZXIgKG1vZGlmaWVy
+LGtleWNvZGUpIHBhaXJcbiIKIlx0ICAgLS1mdW5jcy1vbmx5XHQgICAgZGlzcGxheSBvbmx5IHRo
+ZSBmdW5jdGlvbiBrZXkgc3RyaW5nc1xuIgoiXHQgICAtLWtleXMtb25seVx0ICAgIGRpc3BsYXkg
+b25seSBrZXkgYmluZGluZ3NcbiIKIlx0ICAgLS1jb21wb3NlLW9ubHkgICBkaXNwbGF5IG9ubHkg
+Y29tcG9zZSBrZXkgY29tYmluYXRpb25zXG4iCiJcdC1jIC0tY2hhcnNldD0iCm1zZ3N0ciAiIgoi
+XG4iCiJhbnbkbmRuaW5nOiBkdW1wa2V5cyBbZmxhZ2dvci4uLl1cbiIKIlxuIgoiZ2lsdGlnYSBm
+bGFnZ29yIORyOlxuIgoiXG4iCiJcdC1oIC0taGVscFx0ICAgIHZpc2EgZGVuIGjkciBoauRscHRl
+eHRlblxuIgoiXHQtaSAtLXNob3J0LWluZm9cdCAgICB2aXNhIGluZm9ybWF0aW9uIG9tIHRhbmdl
+bnRib3Jkc2RyaXZ1dGluXG4iCiJcdC1sIC0tbG9uZy1pbmZvXHQgICAgdmlzYSBvdmFuc3TlZW5k
+ZSBvY2ggc3ltYm9sZXIga+RuZGEgZvZyIGxvYWRrZXlzXG4iCiJcdC1uIC0tbnVtZXJpY1x0ICAg
+IHZpc2EgdGFuZ2VudHRhYmVsbCBpIGhleGFkZWNpbWFsIG5vdGF0aW9uXG4iCiJcdC1mIC0tZnVs
+bC10YWJsZVx0ICAgIGFuduRuZCBpbnRlIGtvcnQgbm90YXRpb24sIGVuIHJhZCBwZXIgdGFuZ2Vu
+dGtvZFxuIgoiXHQtMSAtLXNlcGFyYXRlLWxpbmVzIGVuIHJhZCBwZXIgKG1vZGlmaWVyYXJlLHRh
+bmdlbnRrb2QpLXBhclxuIgoiXHQgICAtLWZ1bmNzLW9ubHlcdCAgICB2aXNhIGJhcmEgc3Ry5G5n
+YXIgZvZyIGZ1bmt0aW9uc3RhbmdlbnRlclxuIgoiXHQgICAtLWtleXMtb25seVx0ICAgIHZpc2Eg
+YmFyYSB0YW5nZW50YmluZG5pbmdhclxuIgoiXHQgICAtLWNvbXBvc2Wtb25seSAgIHZpc2EgYmFy
+YSBcImNvbXBvc2VcIi10YW5nZW50a29tYmluYXRpb25lclxuIgoiXHQtYyAtLWNoYXJzZXQ9IgoK
+Izogc3JjL2R1bXBrZXlzLmM6NTM0Cm1zZ2lkICIiCiJcdFx0XHQgICAgaW50ZXJwcmV0IGNoYXJh
+Y3RlciBhY3Rpb24gY29kZXMgdG8gYmUgZnJvbSB0aGVcbiIKIlx0XHRcdCAgICBzcGVjaWZpZWQg
+Y2hhcmFjdGVyIHNldFxuIgptc2dzdHIgIiIKIlx0XHRcdCAgICB0b2xrYSB0ZWNrZW5oYW5kbGlu
+Z3Nrb2RlciBzb20gb20gZGUg5HIgZnLlbiBkZW5cbiIKIlx0XHRcdCAgICBhbmdpdm5hIHRlY2tl
+bnVwcHPkdHRuaW5nZW5cbiIKCiM6IHNyYy9maW5kZmlsZS5jOjQzCiMsIGMtZm9ybWF0Cm1zZ2lk
+ICJlcnJvciBleGVjdXRpbmcgICVzXG4iCm1zZ3N0ciAiZmVsIHZpZCBleGVrdmVyaW5nIGF2ICVz
+XG4iCgojOiBzcmMvZ2V0a2V5Y29kZXMuYzoxOAptc2dpZCAidXNhZ2U6IGdldGtleWNvZGVzXG4i
+Cm1zZ3N0ciAiYW525G5kbmluZzogZ2V0a2V5Y29kZXNcbiIKCiM6IHNyYy9nZXRrZXljb2Rlcy5j
+OjM5Cm1zZ2lkICJQbGFpbiBzY2FuY29kZXMgeHggKGhleCkgdmVyc3VzIGtleWNvZGVzIChkZWMp
+XG4iCm1zZ3N0ciAiRW5rbGEgYXZs5HNuaW5nc2tvZGVyIHh4IChoZXgpIG1vdCB0YW5nZW50a29k
+ZXIgKGRlYylcbiIKCiM6IHNyYy9nZXRrZXljb2Rlcy5jOjQwCm1zZ2lkICIwIGlzIGFuIGVycm9y
+OyBmb3IgMS04OCAoMHgwMS0weDU4KSBzY2FuY29kZSBlcXVhbHMga2V5Y29kZVxuIgptc2dzdHIg
+IjAg5HIgZXR0IGZlbCwgZvZyIDEtODggKDB4MDEtMHg1OCkg5HIgYXZs5HNuaW5nc2tvZGVuIGxp
+a2EgbWVkIHRhbmdlbnRrb2RlblxuIgoKIzogc3JjL2dldGtleWNvZGVzLmM6NDQKbXNnaWQgIlxu
+XG5Fc2NhcGVkIHNjYW5jb2RlcyBlMCB4eCAoaGV4KVxuIgptc2dzdHIgIlxuXG5VdHZpZGdhZGUg
+YXZs5HNuaW5nc2tvZGVyIGUwIHh4IChoZXgpXG4iCgojOiBzcmMvZ2V0a2V5Y29kZXMuYzo2NAoj
+LCBjLWZvcm1hdAptc2dpZCAiZmFpbGVkIHRvIGdldCBrZXljb2RlIGZvciBzY2FuY29kZSAweCV4
+XG4iCm1zZ3N0ciAibWlzc2x5Y2thZGVzIG1lZCBhdHQgaORtdGEgdGFuZ2VudGtvZGVuIGb2ciBh
+dmzkc25pbmdza29kIDB4JXhcbiIKCiM6IHNyYy9nZXR1bmltYXAuYzo0OQojLCBjLWZvcm1hdApt
+c2dpZCAiIgoiVXNhZ2U6XG4iCiJcdCVzIFstc11cbiIKbXNnc3RyICIiCiJBbnbkbmRuaW5nOlxu
+IgoiXHQlcyBbLXNdXG4iCgojOiBzcmMva2JkX21vZGUuYzoxOAptc2dpZCAidXNhZ2U6IGtiZF9t
+b2RlIFstYXwtdXwta3wtc11cbiIKbXNnc3RyICJhbnbkbmRuaW5nOiBrYmRfbW9kZSBbLWF8LXV8
+LWt8LXNdXG4iCgojOiBzcmMva2JkX21vZGUuYzo0MQptc2dpZCAia2JkX21vZGU6IGVycm9yIHJl
+YWRpbmcga2V5Ym9hcmQgbW9kZVxuIgptc2dzdHIgImtiZF9tb2RlOiBmZWwgdmlkIGzkc25pbmcg
+YXYgdGFuZ2VudGJvcmRzbORnZVxuIgoKIzogc3JjL2tiZF9tb2RlLmM6NDYKbXNnaWQgIlRoZSBr
+ZXlib2FyZCBpcyBpbiByYXcgKHNjYW5jb2RlKSBtb2RlXG4iCm1zZ3N0ciAiVGFuZ2VudGJvcmRl
+dCDkciBpIHLldHQgKGF2bORzbmluZ3Nrb2RzLSls5GdlXG4iCgojOiBzcmMva2JkX21vZGUuYzo0
+OQptc2dpZCAiVGhlIGtleWJvYXJkIGlzIGluIG1lZGl1bXJhdyAoa2V5Y29kZSkgbW9kZVxuIgpt
+c2dzdHIgIlRhbmdlbnRib3JkZXQg5HIgaSBoYWx2cuV0dCAodGFuZ2VudGtvZHMtKWzkZ2VcbiIK
+CiM6IHNyYy9rYmRfbW9kZS5jOjUyCm1zZ2lkICJUaGUga2V5Ym9hcmQgaXMgaW4gdGhlIGRlZmF1
+bHQgKEFTQ0lJKSBtb2RlXG4iCm1zZ3N0ciAiVGFuZ2VudGJvcmRldCDkciBpIHN0YW5kYXJkbORn
+ZSAoQVNDSUkpXG4iCgojOiBzcmMva2JkX21vZGUuYzo1NQptc2dpZCAiVGhlIGtleWJvYXJkIGlz
+IGluIFVuaWNvZGUgKFVURi04KSBtb2RlXG4iCm1zZ3N0ciAiVGFuZ2VudGJvcmRldCDkciBpIFVu
+aWNvZGVs5GdlIChVVEYtOClcbiIKCiM6IHNyYy9rYmRfbW9kZS5jOjU4Cm1zZ2lkICJUaGUga2V5
+Ym9hcmQgaXMgaW4gc29tZSB1bmtub3duIG1vZGVcbiIKbXNnc3RyICJUYW5nZW50Ym9yZGV0IORy
+IGkgbuVnb3Qgb2vkbnQgbORnZVxuIgoKIzogc3JjL2tiZF9tb2RlLmM6NzYKIywgYy1mb3JtYXQK
+bXNnaWQgIiVzOiBlcnJvciBzZXR0aW5nIGtleWJvYXJkIG1vZGVcbiIKbXNnc3RyICIlczogZmVs
+IG7kciB0YW5nZW50Ym9yZHNs5GdlIHNhdHRlc1xuIgoKIzogc3JjL2tiZHJhdGUuYzoxMzkgc3Jj
+L2tiZHJhdGUuYzoyNzgKIywgYy1mb3JtYXQKbXNnaWQgIlR5cGVtYXRpYyBSYXRlIHNldCB0byAl
+LjFmIGNwcyAoZGVsYXkgPSAlZCBtcylcbiIKbXNnc3RyICJVcHByZXBuaW5nc2hhc3RpZ2hldCBz
+YXR0IHRpbGwgJS4xZiB0L3MgKGb2cmRy9mpuaW5nID0gJWQgbXMpXG4iCgojOiBzcmMva2JkcmF0
+ZS5jOjIyMwptc2dpZCAiVXNhZ2U6IGtiZHJhdGUgWy1WXSBbLXNdIFstciByYXRlXSBbLWQgZGVs
+YXldXG4iCm1zZ3N0ciAiQW525G5kbmluZzoga2JkcmF0ZSBbLVZdIFstc10gWy1yIGZyZWt2ZW5z
+XSBbLWQgZvZyZHL2am5pbmddXG4iCgojOiBzcmMva2JkcmF0ZS5jOjI1Mwptc2dpZCAiQ2Fubm90
+IG9wZW4gL2Rldi9wb3J0Igptc2dzdHIgIkthbiBpbnRlIPZwcG5hIC9kZXYvcG9ydCIKCiM6IHNy
+Yy9rZGZvbnRvcC5jOjE5Mwptc2dpZCAiYnVnOiBnZXRmb250IGNhbGxlZCB3aXRoIGNvdW50PDI1
+NlxuIgptc2dzdHIgImZlbDogZ2V0Zm9udCBhbnJvcGFkIG1lZCBjb3VudDwyNTZcbiIKCiM6IHNy
+Yy9rZGZvbnRvcC5jOjI1MiBzcmMveG1hbGxvYy5jOjE0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczog
+b3V0IG9mIG1lbW9yeVxuIgptc2dzdHIgIiVzOiBtaW5uZXQgc2x1dFxuIgoKIzogc3JjL2tzeW1z
+LmM6MTY3MAojLCBjLWZvcm1hdAptc2dpZCAidW5rbm93biBjaGFyc2V0ICVzIC0gaWdub3Jpbmcg
+Y2hhcnNldCByZXF1ZXN0XG4iCm1zZ3N0ciAib2vkbmQgdGVja2VudXBwc+R0dG5pbmcgJXMgLSBp
+Z25vcmVyYXIgYmVn5HJhbiBvbSB0ZWNrZW51cHBz5HR0bmluZ1xuIgoKIzogc3JjL2tzeW1zLmM6
+MTc0MgojLCBjLWZvcm1hdAptc2dpZCAiYXNzdW1pbmcgaXNvLTg4NTktMSAlc1xuIgptc2dzdHIg
+ImFudGFyIGlzby04ODU5LTEgJXNcbiIKCiM6IHNyYy9rc3ltcy5jOjE3NDkKIywgYy1mb3JtYXQK
+bXNnaWQgImFzc3VtaW5nIGlzby04ODU5LTE1ICVzXG4iCm1zZ3N0ciAiYW50YXIgaXNvLTg4NTkt
+MTUgJXNcbiIKCiM6IHNyYy9rc3ltcy5jOjE3NTYKIywgYy1mb3JtYXQKbXNnaWQgImFzc3VtaW5n
+IGlzby04ODU5LTIgJXNcbiIKbXNnc3RyICJhbnRhciBpc28tODg1OS0yICVzXG4iCgojOiBzcmMv
+a3N5bXMuYzoxNzYzCiMsIGMtZm9ybWF0Cm1zZ2lkICJhc3N1bWluZyBpc28tODg1OS0zICVzXG4i
+Cm1zZ3N0ciAiYW50YXIgaXNvLTg4NTktMyAlc1xuIgoKIzogc3JjL2tzeW1zLmM6MTc3MAojLCBj
+LWZvcm1hdAptc2dpZCAiYXNzdW1pbmcgaXNvLTg4NTktNCAlc1xuIgptc2dzdHIgImFudGFyIGlz
+by04ODU5LTQgJXNcbiIKCiM6IHNyYy9rc3ltcy5jOjE3NzUKIywgYy1mb3JtYXQKbXNnaWQgInVu
+a25vd24ga2V5c3ltICclcydcbiIKbXNnc3RyICJva+RuZCB0ZWNrZW5zeW1ib2wgXCIlc1wiXG4i
+CgojOiBzcmMva3N5bXMuYzoxODEwCiMsIGMtZm9ybWF0Cm1zZ2lkICJwbHVzIGJlZm9yZSAlcyBp
+Z25vcmVkXG4iCm1zZ3N0ciAicGx1cyBm9nJlICVzIGlnbm9yZXJhdFxuIgoKIzogc3JjL2xvYWR1
+bmltYXAuYzo2MgojLCBjLWZvcm1hdAptc2dpZCAidXNhZ2U6ICVzIFstbyBtYXAub3JpZ10gW21h
+cC1maWxlXVxuIgptc2dzdHIgImFuduRuZG5pbmc6ICVzIFstbyBvcmlnaW5hbHRhYmVsbF0gW3Rh
+YmVsbGZpbF1cbiIKCiM6IHNyYy9sb2FkdW5pbWFwLmM6MTUyIHNyYy9sb2FkdW5pbWFwLmM6MTYz
+CiMsIGMtZm9ybWF0Cm1zZ2lkICJCYWQgaW5wdXQgbGluZTogJXNcbiIKbXNnc3RyICJGZWxha3Rp
+ZyBpbmRhdGFyYWQ6ICVzXG4iCgojOiBzcmMvbG9hZHVuaW1hcC5jOjE3MgojLCBjLWZvcm1hdApt
+c2dpZCAiJXM6IEdseXBoIG51bWJlciAoMHgleCkgbGFyZ2VyIHRoYW4gZm9udCBsZW5ndGhcbiIK
+bXNnc3RyICIlczogVGVja2VubnVtbWVyICgweCV4KSBzdPZycmUg5G4gdHlwc25pdHRzbORuZ2Rc
+biIKCiM6IHNyYy9sb2FkdW5pbWFwLmM6MTc4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogQmFkIGVu
+ZCBvZiByYW5nZSAoMHgleClcbiIKbXNnc3RyICIlczogRmVsYWt0aWd0IHNsdXQgcOUgaW50ZXJ2
+YWxsICgweCV4KVxuIgoKIzogc3JjL2xvYWR1bmltYXAuYzoyMDggc3JjL3BzZnh0YWJsZS5jOjE3
+NQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IEJhZCBVbmljb2RlIHJhbmdlIGNvcnJlc3BvbmRpbmcg
+dG8gZm9udCBwb3NpdGlvbiByYW5nZSAweCV4LTB4JXhcbiIKbXNnc3RyICIlczogRmVsYWt0aWd0
+IFVuaWNvZGVpbnRlcnZhbGwgc29tIG1vdHN2YXJhciB0eXBzbml0dHNwb3NpdGlvbnNpbnRlcnZh
+bGwgMHgleC0weCV4XG4iCgojOiBzcmMvbG9hZHVuaW1hcC5jOjIxNSBzcmMvcHNmeHRhYmxlLmM6
+MTgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogVW5pY29kZSByYW5nZSBVKyV4LVUrJXggbm90IG9m
+IHRoZSBzYW1lIGxlbmd0aCBhcyBmb250IHBvc2l0aW9uIHJhbmdlIDB4JXgtMHgleFxuIgptc2dz
+dHIgIiVzOiBVbmljb2RlaW50ZXJ2YWxsIFUrJXgtVSsleCDkciBpbnRlIGF2IHNhbW1hIGzkbmdk
+IHNvbSB0eXBzbml0dHNwb3NpdGlvbnNpbnRlcnZhbGwgMHgleC0weCV4XG4iCgojOiBzcmMvbG9h
+ZHVuaW1hcC5jOjIzNCBzcmMvcHNmeHRhYmxlLmM6MjAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczog
+dHJhaWxpbmcganVuayAoJXMpIGlnbm9yZWRcbiIKbXNnc3RyICIlczogZWZ0ZXJm9mxqYW5kZSBz
+a3LkcCAoJXMpIGlnbm9yZXJhdFxuIgoKIzogc3JjL2xvYWR1bmltYXAuYzoyNTEKIywgYy1mb3Jt
+YXQKbXNnaWQgIkxvYWRpbmcgdW5pY29kZSBtYXAgZnJvbSBmaWxlICVzXG4iCm1zZ3N0ciAiTORz
+ZXIgaW4gdW5pY29kZXRhYmVsbCBmcuVuIGZpbCAlc1xuIgoKIzogc3JjL2xvYWR1bmltYXAuYzoy
+NTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogV2FybmluZzogbGluZSB0b28gbG9uZ1xuIgpt
+c2dzdHIgIiVzOiAlczogVmFybmluZzogcmFkZW4g5HIgZvZyIGzlbmdcbiIKCiM6IHNyYy9sb2Fk
+dW5pbWFwLmM6MjY3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlczogbm90IGxvYWRpbmcgZW1wdHkg
+dW5pbWFwXG4iCiIoaWYgeW91IGluc2lzdDogdXNlIG9wdGlvbiAtZiB0byBvdmVycmlkZSlcbiIK
+bXNnc3RyICIiCiIlczogbORzZXIgaW50ZSBpbiB0b20gdW5pdGFiZWxsXG4iCiIob20gZHUgaW5z
+aXN0ZXJhcjogYW525G5kIGZsYWdnYW4gLWYgZvZyIGF0dCDlc2lkb3PkdHRhKVxuIgoKIzogc3Jj
+L2xvYWR1bmltYXAuYzoyODgKbXNnaWQgImVudHJ5Igptc2dzdHIgInBvc3QiCgojOiBzcmMvbG9h
+ZHVuaW1hcC5jOjI4OAptc2dpZCAiZW50cmllcyIKbXNnc3RyICJwb3N0ZXIiCgojOiBzcmMvbG9h
+ZHVuaW1hcC5jOjMxNAojLCBjLWZvcm1hdAptc2dpZCAiU2F2ZWQgdW5pY29kZSBtYXAgb24gYCVz
+J1xuIgptc2dzdHIgIlNwYXJhZGUgdW5pY29kZXRhYmVsbCB0aWxsIFwiJXNcIlxuIgoKIzogc3Jj
+L2xvYWR1bmltYXAuYzozMzQKbXNnaWQgIkFwcGVuZGVkIFVuaWNvZGUgbWFwXG4iCm1zZ3N0ciAi
+TGFkZSB0aWxsIFVuaWNvZGV0YWJlbGxcbiIKCiM6IHNyYy9tYXBzY3JuLmM6NjUKIywgYy1mb3Jt
+YXQKbXNnaWQgInVzYWdlOiAlcyBbLXZdIFstbyBtYXAub3JpZ10gbWFwLWZpbGVcbiIKbXNnc3Ry
+ICJhbnbkbmRuaW5nOiAlcyBbLXZdIFstbyBvcmlnaW5hbHRhYmVsbF0gdGFiZWxsZmlsXG4iCgoj
+OiBzcmMvbWFwc2Nybi5jOjEzMAojLCBjLWZvcm1hdAptc2dpZCAibWFwc2NybjogY2Fubm90IG9w
+ZW4gbWFwIGZpbGUgXyVzX1xuIgptc2dzdHIgIm1hcHNjcm46IGthbiBpbnRlIPZwcG5hIHRhYmVs
+bGZpbCBfJXNfXG4iCgojOiBzcmMvbWFwc2Nybi5jOjEzNgptc2dpZCAiQ2Fubm90IHN0YXQgbWFw
+IGZpbGUiCm1zZ3N0ciAiS2FuIGludGUgdGEgc3RhdHVzIHDlIHRhYmVsbGZpbCIKCiM6IHNyYy9t
+YXBzY3JuLmM6MTQxCiMsIGMtZm9ybWF0Cm1zZ2lkICJMb2FkaW5nIGJpbmFyeSBkaXJlY3QtdG8t
+Zm9udCBzY3JlZW4gbWFwIGZyb20gZmlsZSAlc1xuIgptc2dzdHIgIkzkc2VyIGluIGJpbuRyIGRp
+cmVrdC10aWxsLXR5cHNuaXR0LXNr5HJtdGFiZWxsIGZy5W4gZmlsICVzXG4iCgojOiBzcmMvbWFw
+c2Nybi5jOjE0NiBzcmMvbWFwc2Nybi5jOjE1NwojLCBjLWZvcm1hdAptc2dpZCAiRXJyb3IgcmVh
+ZGluZyBtYXAgZnJvbSBmaWxlIGAlcydcbiIKbXNnc3RyICJGZWwgdmlkIGzkc25pbmcgYXYgdGFi
+ZWxsIGZy5W4gZmlsIFwiJXNcIlxuIgoKIzogc3JjL21hcHNjcm4uYzoxNTIKIywgYy1mb3JtYXQK
+bXNnaWQgIkxvYWRpbmcgYmluYXJ5IHVuaWNvZGUgc2NyZWVuIG1hcCBmcm9tIGZpbGUgJXNcbiIK
+bXNnc3RyICJM5HNlciBpbiBiaW7kciB1bmljb2RlLXNr5HJtZmlsIGZy5W4gZmlsICVzXG4iCgoj
+OiBzcmMvbWFwc2Nybi5jOjE2NAojLCBjLWZvcm1hdAptc2dpZCAiTG9hZGluZyBzeW1ib2xpYyBz
+Y3JlZW4gbWFwIGZyb20gZmlsZSAlc1xuIgptc2dzdHIgIkzkc2VyIGluIHN5bWJvbGlzayBza+Ry
+bXRhYmVsbCBmcuVuIGZpbCAlc1xuIgoKIzogc3JjL21hcHNjcm4uYzoxNjgKIywgYy1mb3JtYXQK
+bXNnaWQgIkVycm9yIHBhcnNpbmcgc3ltYm9saWMgbWFwIGZyb20gYCVzJywgbGluZSAlZFxuIgpt
+c2dzdHIgIkZlbCB2aWQgdG9sa25pbmcgYXYgc3ltYm9saXNrIHRhYmVsbCBmcuVuIFwiJXNcIiwg
+cmFkICVkXG4iCgojOiBzcmMvbWFwc2Nybi5jOjI3MiBzcmMvbWFwc2Nybi5jOjI3Nwptc2dpZCAi
+RXJyb3Igd3JpdGluZyBtYXAgdG8gZmlsZVxuIgptc2dzdHIgIkZlbCB2aWQgc2tyaXZuaW5nIGF2
+IHRhYmVsbCB0aWxsIGZpbFxuIgoKIzogc3JjL21hcHNjcm4uYzoyODEKbXNnaWQgIkNhbm5vdCBy
+ZWFkIGNvbnNvbGUgbWFwXG4iCm1zZ3N0ciAiS2FuIGludGUgbORzYSBrb25zb2xsdGFiZWxsXG4i
+CgojOiBzcmMvbWFwc2Nybi5jOjI4NwojLCBjLWZvcm1hdAptc2dpZCAiU2F2ZWQgc2NyZWVuIG1h
+cCBpbiBgJXMnXG4iCm1zZ3N0ciAiU3BhcmFkZSBza+RybXRhYmVsbCBpIFwiJXNcIlxuIgoKIzog
+c3JjL3BzZmZvbnRvcC5jOjY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogc2hvcnQgdWNzMiB1bmlj
+b2RlIHRhYmxlXG4iCm1zZ3N0ciAiJXM6IGtvcnQgdWNzMi11bmljb2RldGFiZWxsXG4iCgojOiBz
+cmMvcHNmZm9udG9wLmM6ODcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzaG9ydCB1dGY4IHVuaWNv
+ZGUgdGFibGVcbiIKbXNnc3RyICIlczoga29ydCB1dGY4LXVuaWNvZGV0YWJlbGxcbiIKCiM6IHNy
+Yy9wc2Zmb250b3AuYzo5MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGJhZCB1dGY4XG4iCm1zZ3N0
+ciAiJXM6IGZlbGFrdGlnIHV0ZjhcbiIKCiM6IHNyYy9wc2Zmb250b3AuYzo5MwojLCBjLWZvcm1h
+dAptc2dpZCAiJXM6IHVua25vd24gdXRmOCBlcnJvclxuIgptc2dzdHIgIiVzOiBva+RudCB1dGY4
+LWZlbFxuIgoKIzogc3JjL3BzZmZvbnRvcC5jOjEyNAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHNo
+b3J0IHVuaWNvZGUgdGFibGVcbiIKbXNnc3RyICIlczoga29ydCB1bmljb2RldGFiZWxsXG4iCgoj
+OiBzcmMvcHNmZm9udG9wLmM6MjA0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogRXJyb3IgcmVhZGlu
+ZyBpbnB1dCBmb250Igptc2dzdHIgIiVzOiBGZWwgdmlkIGzkc25pbmcgYXYgaW5kYXRhdHlwc25p
+dHQiCgojOiBzcmMvcHNmZm9udG9wLmM6MjE4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogQmFkIGNh
+bGwgb2YgcmVhZHBzZmZvbnRcbiIKbXNnc3RyICIlczogRmVsYWt0aWd0IGFucm9wIGF2IHJlYWRw
+c2Zmb250XG4iCgojOiBzcmMvcHNmZm9udG9wLmM6MjMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczog
+VW5zdXBwb3J0ZWQgcHNmIGZpbGUgbW9kZSAoJWQpXG4iCm1zZ3N0ciAiJXM6IHBzZi1maWxs5Gdl
+ICglZCkgc3T2ZHMgaW50ZVxuIgoKIzogc3JjL3BzZmZvbnRvcC5jOjI1MQojLCBjLWZvcm1hdApt
+c2dpZCAiJXM6IFVuc3VwcG9ydGVkIHBzZiB2ZXJzaW9uICglZClcbiIKbXNnc3RyICIlczogcHNm
+LXZlcnNpb24gKCVkKSBzdPZkcyBpbnRlXG4iCgojOiBzcmMvcHNmZm9udG9wLmM6MjY3CiMsIGMt
+Zm9ybWF0Cm1zZ2lkICIlczogemVybyBpbnB1dCBmb250IGxlbmd0aD9cbiIKbXNnc3RyICIlczog
+bORuZ2QgYXYgaW5kYXRhdHlwc25pdHQg5HIgbm9sbD9cbiIKCiM6IHNyYy9wc2Zmb250b3AuYzoy
+NzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiB6ZXJvIGlucHV0IGNoYXJhY3RlciBzaXplP1xuIgpt
+c2dzdHIgIiVzOiBzdG9ybGVrIGF2IGluZGF0YXRlY2tlbiDkciBub2xsP1xuIgoKIzogc3JjL3Bz
+ZmZvbnRvcC5jOjI3OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IElucHV0IGZpbGU6IGJhZCBpbnB1
+dCBsZW5ndGggKCVkKVxuIgptc2dzdHIgIiVzOiBJbmRhdGFmaWw6IG9naWx0aWcgaW5kYXRhbORu
+Z2QgKCVkKVxuIgoKIzogc3JjL3BzZmZvbnRvcC5jOjMxMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6
+IElucHV0IGZpbGU6IHRyYWlsaW5nIGdhcmJhZ2VcbiIKbXNnc3RyICIlczogSW5kYXRhZmlsOiBl
+ZnRlcmb2bGphbmRlIHNrcuRwXG4iCgojOiBzcmMvcHNmZm9udG9wLmM6MzQ4CiMsIGMtZm9ybWF0
+Cm1zZ2lkICJhcHBlbmR1bmljb2RlOiBpbGxlZ2FsIHVuaWNvZGUgJXVcbiIKbXNnc3RyICJhcHBl
+bmR1bmljb2RlOiBvZ2lsdGlnIHVuaWNvZGUgJXVcbiIKCiM6IHNyYy9wc2Zmb250b3AuYzo0MzQK
+bXNnaWQgIkNhbm5vdCB3cml0ZSBmb250IGZpbGUgaGVhZGVyIgptc2dzdHIgIkthbiBpbnRlIHNr
+cml2YSB0eXBzbml0dHNmaWxzaHV2dWQiCgojOiBzcmMvcHNmeHRhYmxlLmM6MTA5CiMsIGMtZm9y
+bWF0Cm1zZ2lkICIlczogV2FybmluZzogbGluZSB0b28gbG9uZ1xuIgptc2dzdHIgIiVzOiBWYXJu
+aW5nOiByYWRlbiDkciBm9nIgbOVuZ1xuIgoKIzogc3JjL3BzZnh0YWJsZS5jOjEyMyBzcmMvcHNm
+eHRhYmxlLmM6MTMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogQmFkIGlucHV0IGxpbmU6ICVzXG4i
+Cm1zZ3N0ciAiJXM6IEZlbGFrdGlnIGluZGF0YXJhZDogJXNcbiIKCiM6IHNyYy9wc2Z4dGFibGUu
+YzoxNDIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBHbHlwaCBudW1iZXIgKDB4JWx4KSBwYXN0IGVu
+ZCBvZiBmb250XG4iCm1zZ3N0ciAiJXM6IEdseWZudW1tZXIgKDB4JWx4KSBib3J0b20gc2x1dGV0
+IGF2IHR5cHNuaXR0ZXRcbiIKCiM6IHNyYy9wc2Z4dGFibGUuYzoxNDcKIywgYy1mb3JtYXQKbXNn
+aWQgIiVzOiBCYWQgZW5kIG9mIHJhbmdlICgweCVseClcbiIKbXNnc3RyICIlczogRmVsYWt0aWd0
+IHNsdXQgYXYgaW50ZXJ2YWxsICgweCVseClcbiIKCiM6IHNyYy9wc2Z4dGFibGUuYzoxNjYKIywg
+Yy1mb3JtYXQKbXNnaWQgIiVzOiBDb3JyZXNwb25kaW5nIHRvIGEgcmFuZ2Ugb2YgZm9udCBwb3Np
+dGlvbnMsIHRoZXJlIHNob3VsZCBiZSBhIFVuaWNvZGUgcmFuZ2VcbiIKbXNnc3RyICIlczogVGls
+bCBldHQgbW90c3ZhcmFuZGUgaW50ZXJ2YWxsIGF2IHR5cHNuaXR0c3Bvc2l0aW9uZXIgYm9yZGUg
+ZGV0IGZpbm5hcyBldHQgVW5pY29kZWludGVydmFsbFxuIgoKIzogc3JjL3BzZnh0YWJsZS5jOjI1
+NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6XG4iCiJcdCVzIGluZm9udCBpbnRhYmxlIG91
+dGZvbnRcbiIKbXNnc3RyICIiCiJBbnbkbmRuaW5nOlxuIgoiXHQlcyBpbnR5cHNuaXR0IGludGFi
+ZWxsIHV0dHlwc25pdHRcbiIKCiM6IHNyYy9wc2Z4dGFibGUuYzoyNjQKIywgYy1mb3JtYXQKbXNn
+aWQgIiIKIlVzYWdlOlxuIgoiXHQlcyBpbmZvbnQgW291dHRhYmxlXVxuIgptc2dzdHIgIiIKIkFu
+duRuZG5pbmc6XG4iCiJcdCVzIGludHlwc25pdHQgW3V0dGFiZWxsXVxuIgoKIzogc3JjL3BzZnh0
+YWJsZS5jOjI3MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6XG4iCiJcdCVzIGluZm9udCBv
+dXRmb250XG4iCm1zZ3N0ciAiIgoiQW525G5kbmluZzpcbiIKIlx0JXMgaW50eXBzbml0dCB1dHR5
+cHNuaXR0XG4iCgojOiBzcmMvcHNmeHRhYmxlLmM6Mjk4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJV
+c2FnZTpcbiIKIlx0JXMgWy1pIGluZm9udF0gWy1vIG91dGZvbnRdIFstaXQgaW50YWJsZV0gWy1v
+dCBvdXR0YWJsZV0gWy1udF1cbiIKbXNnc3RyICIiCiJBbnbkbmRuaW5nOlxuIgoiXHQlcyBbLWkg
+aW50eXBzbml0dF0gWy1vIHV0dHlwc25pdHRdIFstaXQgaW50YWJlbGxdIFstb3QgdXR0YWJlbGxd
+IFstbnRdXG4iCgojOiBzcmMvcHNmeHRhYmxlLmM6MzU4CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczog
+QmFkIG1hZ2ljIG51bWJlciBvbiAlc1xuIgptc2dzdHIgIiVzOiBGZWxha3RpZ3QgbWFnaXNrdCBu
+dW1tZXIgcOUgJXNcbiIKCiM6IHNyYy9wc2Z4dGFibGUuYzozNzcKIywgYy1mb3JtYXQKbXNnaWQg
+IiVzOiBwc2YgZmlsZSB3aXRoIHVua25vd24gbWFnaWNcbiIKbXNnc3RyICIlczogcHNmLWZpbCBt
+ZWQgb2vkbmQgbWFnaVxuIgoKIzogc3JjL3BzZnh0YWJsZS5jOjM5MwojLCBjLWZvcm1hdAptc2dp
+ZCAiJXM6IGlucHV0IGZvbnQgZG9lcyBub3QgaGF2ZSBhbiBpbmRleFxuIgptc2dzdHIgIiVzOiBp
+bmRhdGF0eXBzbml0dGV0IGhhciBpbnRlIG7lZ290IGluZGV4XG4iCgojOiBzcmMvcmVzaXplY29u
+cy5jOjE1MwojLCBjLWZvcm1hdAptc2dpZCAicmVzaXplY29uczogY2Fubm90IGZpbmQgdmlkZW9t
+b2RlIGZpbGUgJXNcbiIKbXNnc3RyICJyZXNpemVjb25zOiBrYW4gaW50ZSBoaXR0YSB2aWRlb2zk
+Z2VzZmlsICVzXG4iCgojOiBzcmMvcmVzaXplY29ucy5jOjE3Mgptc2dpZCAiSW52YWxpZCBudW1i
+ZXIgb2YgbGluZXNcbiIKbXNnc3RyICJPZ2lsdGlndCBhbnRhbCByYWRlclxuIgoKIzogc3JjL3Jl
+c2l6ZWNvbnMuYzoyMzgKIywgYy1mb3JtYXQKbXNnaWQgIk9sZCBtb2RlOiAlZHglZCAgTmV3IG1v
+ZGU6ICVkeCVkXG4iCm1zZ3N0ciAiR2FtbWFsdCBs5GdlOiAlZNclZCAgTnl0dCBs5GdlOiAlZNcl
+ZFxuIgoKIzogc3JjL3Jlc2l6ZWNvbnMuYzoyNDAKIywgYy1mb3JtYXQKbXNnaWQgIk9sZCAjc2Nh
+bmxpbmVzOiAlZCAgTmV3ICNzY2FubGluZXM6ICVkICBDaGFyYWN0ZXIgaGVpZ2h0OiAlZFxuIgpt
+c2dzdHIgIkdhbW1hbHQgYW50YWwgc2thbm5saW5qZXI6ICVkICBOeXR0IGFudGFsIHNrYW5ubGlu
+amVyOiAlZCAgVGVja2VuaPZqZDogJWRcbiIKCiM6IHNyYy9yZXNpemVjb25zLmM6MjUxCiMsIGMt
+Zm9ybWF0Cm1zZ2lkICJyZXNpemVjb25zOiB0aGUgY29tbWFuZCBgJXMnIGZhaWxlZFxuIgptc2dz
+dHIgInJlc2l6ZWNvbnM6IGtvbW1hbmRvdCBcIiVzXCIgbWlzc2x5Y2thZGVzXG4iCgojOiBzcmMv
+cmVzaXplY29ucy5jOjMxOQojLCBjLWZvcm1hdAptc2dpZCAicmVzaXplY29uczogZG9uJ3QgZm9y
+Z2V0IHRvIGNoYW5nZSBURVJNIChtYXliZSB0byBjb24lZHglZCBvciBsaW51eC0lZHglZClcbiIK
+bXNnc3RyICJyZXNpemVjb25zOiBnbPZtIGludGUg5G5kcmEgVEVSTSAoa2Fuc2tlIHRpbGwgY29u
+JWR4JWQgZWxsZXIgbGludXgtJWR4JWQpXG4iCgojOiBzcmMvcmVzaXplY29ucy5jOjMzMgptc2dp
+ZCAiIgoicmVzaXplY29uczpcbiIKImNhbGwgaXM6ICByZXNpemVjb25zIENPTFN4Uk9XUyAgb3I6
+ICByZXNpemVjb25zIENPTFMgUk9XU1xuIgoib3I6IHJlc2l6ZWNvbnMgLWxpbmVzIFJPV1MsIHdp
+dGggUk9XUyBvbmUgb2YgMjUsIDI4LCAzMCwgMzQsIDM2LCA0MCwgNDQsIDUwLCA2MFxuIgptc2dz
+dHIgIiIKInJlc2l6ZWNvbnM6XG4iCiJhbnJvcDogcmVzaXplY29ucyBLT0xVTU5FUnhSQURFUiAg
+ZWxsZXI6IHJlc2l6ZWNvbnMgS09MVU1ORVIgUkFERVJcbiIKImVsbGVyOiByZXNpemVjb25zIC1s
+aW5lcyBSQURFUiwgZORyIFJBREVSIORyIGVuIGF2IDI1LCAyOCwgMzAsIDM0LCAzNiwgNDAsIDQ0
+LCA1MCwgNjBcbiIKCiM6IHNyYy9yZXNpemVjb25zLmM6MzcwCm1zZ2lkICJyZXNpemVjb25zOiBj
+YW5ub3QgZ2V0IEkvTyBwZXJtaXNzaW9ucy5cbiIKbXNnc3RyICJyZXNpemVjb25zOiBrYW4gaW50
+ZSBm5SBJL08tcuR0dGlnaGV0ZXIuXG4iCgojOiBzcmMvc2NyZWVuZHVtcC5jOjQ4Cm1zZ2lkICJ1
+c2FnZTogc2NyZWVuZHVtcCBbbl1cbiIKbXNnc3RyICJhbnbkbmRuaW5nOiBzY3JlZW5kdW1wIFtu
+XVxuIgoKIzogc3JjL3NjcmVlbmR1bXAuYzo2OAojLCBjLWZvcm1hdAptc2dpZCAiRXJyb3IgcmVh
+ZGluZyAlc1xuIgptc2dzdHIgIkZlbCB2aWQgbORzbmluZyBhdiAlc1xuIgoKIzogc3JjL3NjcmVl
+bmR1bXAuYzoxMDkKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IHJlYWQgJXMsIGFuZCBjYW5u
+b3QgaW9jdGwgZHVtcFxuIgptc2dzdHIgImt1bmRlIGludGUgbORzYSAlcywgb2NoIGthbiBpbnRl
+IGv2cmEgXCJpb2N0bCBkdW1wXCJcbiIKCiMuIHdlIHRyaWVkIHRoaXMganVzdCB0byBiZSBzdXJl
+LCBidXQgVElPQ0xJTlVYCiMuIGZ1bmN0aW9uIDAgaGFzIGJlZW4gZGlzYWJsZWQgc2luY2UgMS4x
+LjkyCiMuIERvIG5vdCBtZW50aW9uIGBpb2N0bCBkdW1wJyBpbiBlcnJvciBtc2cKIzogc3JjL3Nj
+cmVlbmR1bXAuYzoxMTUKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IHJlYWQgJXNcbiIKbXNn
+c3RyICJrdW5kZSBpbnRlIGzkc2EgJXNcbiIKCiM6IHNyYy9zY3JlZW5kdW1wLmM6MTI0CiMsIGMt
+Zm9ybWF0Cm1zZ2lkICJTdHJhbmdlIC4uLiBzY3JlZW4gaXMgYm90aCAlZHglZCBhbmQgJWR4JWQg
+Pz9cbiIKbXNnc3RyICJLb25zdGlndCAuLi4gc2vkcm1lbiDkciBi5WRlICVk1yVkIG9jaCAlZNcl
+ZD8/XG4iCgojOiBzcmMvc2NyZWVuZHVtcC5jOjE0Mgptc2dpZCAiRXJyb3Igd3JpdGluZyBzY3Jl
+ZW5kdW1wXG4iCm1zZ3N0ciAiRmVsIHZpZCBza3Jpdm5pbmcgYXYgc2vkcm1kdW1wXG4iCgojOiBz
+cmMvc2V0Zm9udC5jOjczCm1zZ2lkICIiCiJVc2FnZTogc2V0Zm9udCBbd3JpdGUtb3B0aW9uc10g
+Wy08Tj5dIFtuZXdmb250Li5dIFstbSBjb25zb2xlbWFwXSBbLXUgdW5pY29kZW1hcF1cbiIKIiAg
+d3JpdGUtb3B0aW9ucyAodGFrZSBwbGFjZSBiZWZvcmUgZmlsZSBsb2FkaW5nKTpcbiIKIiAgICAt
+byAgPGZpbGVuYW1lPlx0V3JpdGUgY3VycmVudCBmb250IHRvIDxmaWxlbmFtZT5cbiIKIiAgICAt
+TyAgPGZpbGVuYW1lPlx0V3JpdGUgY3VycmVudCBmb250IGFuZCB1bmljb2RlIG1hcCB0byA8Zmls
+ZW5hbWU+XG4iCiIgICAgLW9tIDxmaWxlbmFtZT5cdFdyaXRlIGN1cnJlbnQgY29uc29sZW1hcCB0
+byA8ZmlsZW5hbWU+XG4iCiIgICAgLW91IDxmaWxlbmFtZT5cdFdyaXRlIGN1cnJlbnQgdW5pY29k
+ZW1hcCB0byA8ZmlsZW5hbWU+XG4iCiJJZiBubyBuZXdmb250IGFuZCBubyAtW298T3xvbXxvdXxt
+fHVdIG9wdGlvbiBpcyBnaXZlbixcbiIKImEgZGVmYXVsdCBmb250IGlzIGxvYWRlZDpcbiIKIiAg
+ICBzZXRmb250ICAgICAgICAgICAgIExvYWQgZm9udCBcImRlZmF1bHRbLmd6XVwiXG4iCiIgICAg
+c2V0Zm9udCAtPE4+ICAgICAgICBMb2FkIGZvbnQgXCJkZWZhdWx0OHg8Tj5bLmd6XVwiXG4iCiJU
+aGUgLTxOPiBvcHRpb24gc2VsZWN0cyBhIGZvbnQgZnJvbSBhIGNvZGVwYWdlIHRoYXQgY29udGFp
+bnMgdGhyZWUgZm9udHM6XG4iCiIgICAgc2V0Zm9udCAtezh8MTR8MTZ9IGNvZGVwYWdlLmNwWy5n
+el0gICBMb2FkIDh4PE4+IGZvbnQgZnJvbSBjb2RlcGFnZS5jcFxuIgoiRXhwbGljaXRseSAod2l0
+aCAtbSBvciAtdSkgb3IgaW1wbGljaXRseSAoaW4gdGhlIGZvbnRmaWxlKSBnaXZlbiBtYXBwaW5n
+c1xuIgoid2lsbCBiZSBsb2FkZWQgYW5kLCBpbiB0aGUgY2FzZSBvZiBjb25zb2xlbWFwcywgYWN0
+aXZhdGVkLlxuIgoiICAgIC1oPE4+ICAgICAgKG5vIHNwYWNlKSBPdmVycmlkZSBmb250IGhlaWdo
+dC5cbiIKIiAgICAtbSA8Zm4+ICAgIExvYWQgY29uc29sZSBzY3JlZW4gbWFwLlxuIgoiICAgIC11
+IDxmbj4gICAgTG9hZCBmb250IHVuaWNvZGUgbWFwLlxuIgoiICAgIC1tIG5vbmVcdFN1cHByZXNz
+IGxvYWRpbmcgYW5kIGFjdGl2YXRpb24gb2YgYSBzY3JlZW4gbWFwLlxuIgoiICAgIC11IG5vbmVc
+dFN1cHByZXNzIGxvYWRpbmcgb2YgYSB1bmljb2RlIG1hcC5cbiIKIiAgICAtdlx0XHRCZSB2ZXJi
+b3NlLlxuIgoiICAgIC1WXHRcdFByaW50IHZlcnNpb24gYW5kIGV4aXQuXG4iCiJGaWxlcyBhcmUg
+bG9hZGVkIGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IG9yIC91c3IvbGliL2tiZC8qLy5cbiIK
+bXNnc3RyICIiCiJBbnbkbmRuaW5nOiBzZXRmb250IFtza3JpdmZsYWdnb3JdIFstPE4+XSBbbnl0
+dHlwc25pdHQuLl0gWy1tIGtvbnNvbGx0YWJlbGxdIFstdSB1bmljb2RldGFiZWxsXVxuIgoiICBz
+a3JpdmZsYWdnb3IgKGjkbmRlciBm9nJlIGZpbGVyIGzkc2VzKTpcbiIKIiAgICAtbyAgPGZpbG5h
+bW4+XHRTa3JpdiBudXZhcmFuZGUgdHlwc25pdHQgdGlsbCA8ZmlsbmFtbj5cbiIKIiAgICAtTyAg
+PGZpbG5hbW4+XHRTa3JpdiBudXZhcmFuZGUgdHlwc25pdHQgb2NoIHVuaWNvZGV0YWJlbGwgdGls
+bCA8ZmlsbmFtbj5cbiIKIiAgICAtb20gPGZpbG5hbW4+XHRTa3JpdiBudXZhcmFuZGUga29uc29s
+bHRhYmVsbCB0aWxsIDxmaWxuYW1uPlxuIgoiICAgIC1vdSA8ZmlsbmFtbj5cdFNrcml2IG51dmFy
+YW5kZSB1bmljb2RldGFiZWxsIHRpbGwgPGZpbG5hbW4+XG4iCiJPbSBpbmdldCBcIm55dHR5cHNu
+aXR0XCIgb2NoIGluZ2VuIC1bb3xPfG9tfG91fG18dV0tZmxhZ2dhIORyIGdpdmVuLFxuIgoibORz
+ZXMgZXR0IHN0YW5kYXJkdHlwc25pdHQgaW46XG4iCiIgICAgc2V0Zm9udCAgICAgICAgICAgICBM
+5HMgaW4gdHlwc25pdHQgXCJkZWZhdWx0Wy5nel1cIlxuIgoiICAgIHNldGZvbnQgLTxOPiAgICAg
+ICAgTORzIGluIHR5cHNuaXR0IFwiZGVmYXVsdDh4PE4+Wy5nel1cIlxuIgoiLTxOPi1mbGFnZ2Fu
+IHbkbGplciBldHQgdHlwc25pdHQgZnLlbiBlbiB0ZWNrZW50YWJlbGwgc29tIGlubmVo5WxsZXIg
+dHJlIHR5cHNuaXR0OlxuIgoiICAgIHNldGZvbnQgLXs4fDE0fDE2fSBjb2RlcGFnZS5jcFsuZ3pd
+ICAgTORzIGluIDjXPE4+LXR5cHNuaXR0IGZy5W4gY29kZXBhZ2UuY3BcbiIKIkV4cGxpY2l0ICht
+ZWQgLW0gZWxsZXIgLXUpIGVsbGVyIGltcGxpY2l0IChpIHR5cHNuaXR0c2ZpbGVuKSBnaXZuYSB0
+YWJlbGxlclxuIgoia29tbWVyIGzkc2FzIGluIG9jaCwgb20gZGV0IGfkbGxlciBrb25zb2xsdGFi
+ZWxsZXIsIGFrdGl2ZXJhcy5cbiIKIiAgICAtaDxOPiAgICAgIChpbmdldCBibGFua3RlY2tlbikg
+5XNpZG9z5HR0IHR5cHNuaXR0c2j2amQuXG4iCiIgICAgLW0gPGZuPiAgICBM5HMgaW4ga29uc29s
+bHNr5HJtc3RhYmVsbC5cbiIKIiAgICAtdSA8Zm4+ICAgIEzkcyBpbiB1bmljb2RldHlwc25pdHRz
+dGFiZWxsLlxuIgoiICAgIC1tIG5vbmVcdEzldCBibGkgYXR0IGzkc2EgaW4gb2NoIGFrdGl2ZXJh
+IHNr5HJtdGFiZWxsLlxuIgoiICAgIC11IG5vbmVcdEzldCBibGkgYXR0IGzkc2EgaW4gdW5pY29k
+ZXRhYmVsbC5cbiIKIiAgICAtdlx0XHRWYXIgcHJhdHNhbS5cbiIKIiAgICAtVlx0XHRTa3JpdiB1
+dCB2ZXJzaW9uIG9jaCBhdnNsdXRhLlxuIgoiRmlsZXIgbORzZXMgaW4gZnLlbiBkZW4gYWt0dWVs
+bGEga2F0YWxvZ2VuIGVsbGVyIC91c3IvbGliL2tiZC8qLy5cbiIKCiM6IHNyYy9zZXRmb250LmM6
+MTY5Cm1zZ2lkICJzZXRmb250OiB0b28gbWFueSBpbnB1dCBmaWxlc1xuIgptc2dzdHIgInNldGZv
+bnQ6IGb2ciBt5W5nYSBpbmRhdGFmaWxlclxuIgoKIzogc3JjL3NldGZvbnQuYzoxNzcKbXNnaWQg
+InNldGZvbnQ6IGNhbm5vdCBib3RoIHJlc3RvcmUgZnJvbSBjaGFyYWN0ZXIgUk9NIGFuZCBmcm9t
+IGZpbGUuIEZvbnQgdW5jaGFuZ2VkLlxuIgptc2dzdHIgInNldGZvbnQ6IGthbiBpbnRlIGLlZGUg
+5XRlcnN05GxsYSBmcuVuIHRlY2tlbi1ST00gb2NoIGZy5W4gZmlsLiBGb250ZW4gb2b2cuRuZHJh
+ZC5cbiIKCiM6IHNyYy9zZXRmb250LmM6MjM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJCYWQgY2hhcmFj
+dGVyIGhlaWdodCAlZFxuIgptc2dzdHIgIkZlbGFrdGlnIHRlY2tlbmj2amQgJWRcbiIKCiM6IHNy
+Yy9zZXRmb250LmM6MjQwCiMsIGMtZm9ybWF0Cm1zZ2lkICJCYWQgY2hhcmFjdGVyIHdpZHRoICVk
+XG4iCm1zZ3N0ciAiRmVsYWt0aWcgdGVja2VuYnJlZGQgJWRcbiIKCiM6IHNyYy9zZXRmb250LmM6
+MjY1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZm9udCBwb3NpdGlvbiAzMiBpcyBub25ibGFua1xu
+Igptc2dzdHIgIiVzOiBUeXBzbml0dHNwb3NpdGlvbiAzMiDkciBpY2tlLWJsYW5rXG4iCgojOiBz
+cmMvc2V0Zm9udC5jOjI3MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdpcGVkIGl0XG4iCm1zZ3N0
+ciAiJXM6IHJlbnNhZGUgZGV0XG4iCgojOiBzcmMvc2V0Zm9udC5jOjI3NwojLCBjLWZvcm1hdApt
+c2dpZCAiJXM6IGJhY2tncm91bmQgd2lsbCBsb29rIGZ1bm55XG4iCm1zZ3N0ciAiJXM6IGJha2dy
+dW5kZW4ga29tbWVyIHNlIGtvbnN0aWcgdXRcbiIKCiM6IHNyYy9zZXRmb250LmM6Mjg3CiMsIGMt
+Zm9ybWF0Cm1zZ2lkICJMb2FkaW5nICVkLWNoYXIgJWR4JWQgZm9udCBmcm9tIGZpbGUgJXNcbiIK
+bXNnc3RyICJM5HNlciBpbiAlZC10ZWNrZW5zICVk1yVkLXR5cHNuaXR0IGZy5W4gZmlsZW4gJXNc
+biIKCiM6IHNyYy9zZXRmb250LmM6MjkwCiMsIGMtZm9ybWF0Cm1zZ2lkICJMb2FkaW5nICVkLWNo
+YXIgJWR4JWQgZm9udFxuIgptc2dzdHIgIkzkc2VyIGluICVkLXRlY2tlbnMgJWTXJWQtdHlwc25p
+dHRcbiIKCiM6IHNyYy9zZXRmb250LmM6MjkzCiMsIGMtZm9ybWF0Cm1zZ2lkICJMb2FkaW5nICVk
+LWNoYXIgJWR4JWQgKCVkKSBmb250IGZyb20gZmlsZSAlc1xuIgptc2dzdHIgIkzkc2VyIGluICVk
+LXRlY2tlbnMgJWTXJWQtdHlwc25pdHQgKCVkKSBmcuVuIGZpbGVuICVzXG4iCgojOiBzcmMvc2V0
+Zm9udC5jOjI5NgojLCBjLWZvcm1hdAptc2dpZCAiTG9hZGluZyAlZC1jaGFyICVkeCVkICglZCkg
+Zm9udFxuIgptc2dzdHIgIkzkc2VyIGluICVkLXRlY2tlbnMgJWTXJWQtdHlwc25pdHQgKCVkKVxu
+IgoKIzogc3JjL3NldGZvbnQuYzozMzYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBidWcgaW4gZG9f
+bG9hZHRhYmxlXG4iCm1zZ3N0ciAiJXM6IGZlbCBpIGRvX2xvYWR0YWJsZVxuIgoKIzogc3JjL3Nl
+dGZvbnQuYzozNDIKbXNnaWQgIkxvYWRpbmcgVW5pY29kZSBtYXBwaW5nIHRhYmxlLi4uXG4iCm1z
+Z3N0ciAiTORzZXIgaW4gVW5pY29kZS1rb252ZXJ0ZXJpbmdzc3RhYmVsbC4uLlxuIgoKIzogc3Jj
+L3NldGZvbnQuYzozNzggc3JjL3NldGZvbnQuYzo0NjIKIywgYy1mb3JtYXQKbXNnaWQgIkNhbm5v
+dCBvcGVuIGZvbnQgZmlsZSAlc1xuIgptc2dzdHIgIkthbiBpbnRlIPZwcG5hIHR5cHNuaXR0c2Zp
+bGVuICVzXG4iCgojOiBzcmMvc2V0Zm9udC5jOjM4OQojLCBjLWZvcm1hdAptc2dpZCAiV2hlbiBs
+b2FkaW5nIHNldmVyYWwgZm9udHMsIGFsbCBtdXN0IGJlIHBzZiBmb250cyAtICVzIGlzbid0XG4i
+Cm1zZ3N0ciAiTuRyIGZsZXJhIHR5cHNuaXR0IGzkc2VzIGluIG3lc3RlIGFsbGEgdmFyYSBwc2Yt
+dHlwc25pdHQgLSAlcyDkciBpbnRlIGRldFxuIgoKIzogc3JjL3NldGZvbnQuYzozOTcKIywgYy1m
+b3JtYXQKbXNnaWQgIlJlYWQgJWQtY2hhciAlZHglZCBmb250IGZyb20gZmlsZSAlc1xuIgptc2dz
+dHIgIkzkc3RlICVkLXRlY2tlbnMgJWTXJWQtdHlwc25pdHQgZnLlbiBmaWxlbiAlc1xuIgoKIzog
+c3JjL3NldGZvbnQuYzo0MDMKbXNnaWQgIldoZW4gbG9hZGluZyBzZXZlcmFsIGZvbnRzLCBhbGwg
+bXVzdCBoYXZlIHRoZSBzYW1lIGhlaWdodFxuIgptc2dzdHIgIk7kciBmbGVyYSB0eXBzbml0dCBs
+5HNlcyBpbiBt5XN0ZSBhbGxhIGhhIHNhbW1hIGj2amRcbiIKCiM6IHNyYy9zZXRmb250LmM6NDEw
+Cm1zZ2lkICJXaGVuIGxvYWRpbmcgc2V2ZXJhbCBmb250cywgYWxsIG11c3QgaGF2ZSB0aGUgc2Ft
+ZSB3aWR0aFxuIgptc2dzdHIgIk7kciBmbGVyYSB0eXBzbml0dCBs5HNlcyBpbiBt5XN0ZSBhbGxh
+IGhhIHNhbW1hIGJyZWRkXG4iCgojOiBzcmMvc2V0Zm9udC5jOjQ0OQptc2dpZCAiQ2Fubm90IGZp
+bmQgZGVmYXVsdCBmb250XG4iCm1zZ3N0ciAiSGl0dGFyIGludGUgc3RhbmRhcmR0eXBzbml0dGV0
+XG4iCgojOiBzcmMvc2V0Zm9udC5jOjQ1NgojLCBjLWZvcm1hdAptc2dpZCAiQ2Fubm90IGZpbmQg
+JXMgZm9udFxuIgptc2dzdHIgIkhpdHRhciBpbnRlIHR5cHNuaXR0ZXQgJXNcbiIKCiM6IHNyYy9z
+ZXRmb250LmM6NDY4CiMsIGMtZm9ybWF0Cm1zZ2lkICJSZWFkaW5nIGZvbnQgZmlsZSAlc1xuIgpt
+c2dzdHIgIkzkc2VyIHR5cHNuaXR0c2ZpbGVuICVzXG4iCgojOiBzcmMvc2V0Zm9udC5jOjUwNgpt
+c2dpZCAiTm8gZmluYWwgbmV3bGluZSBpbiBjb21iaW5lIGZpbGVcbiIKbXNnc3RyICJJbmdldCBz
+bHV0Z2lsdGlndCBueXJhZHN0ZWNrZW4gaSBrb21iaW5hdGlvbnNmaWxlblxuIgoKIzogc3JjL3Nl
+dGZvbnQuYzo1MTIKbXNnaWQgIlRvbyBtYW55IGZpbGVzIHRvIGNvbWJpbmVcbiIKbXNnc3RyICJG
+9nIgbeVuZ2EgZmlsZXIgYXR0IGtvbWJpbmVyYVxuIgoKIy4gcmVzdG9yZWZvbnQgLXcgd3JpdGVz
+IGEgU1ZHQSBmb250IHRvIGZpbGUKIy4gcmVzdG9yZWZvbnQgLXIgcmVzdG9yZXMgaXQKIy4gVGhl
+c2UgZm9udHMgaGF2ZSBzaXplIDMyNzY4LCBmb3IgdHdvIDUxMi1jaGFyIGZvbnRzLgojLiBJbiBm
+YWN0LCB3aGVuIEJST0tFTl9HUkFQSElDU19QUk9HUkFNUyBpcyBkZWZpbmVkLAojLiBhbmQgaXQg
+YWx3YXlzIGlzLCB0aGVyZSBpcyBubyBkZWZhdWx0IGZvbnQgdGhhdCBpcyBzYXZlZCwKIy4gc28g
+cHJvYmFibHkgdGhlIHNlY29uZCBoYWxmIGlzIGFsd2F5cyBnYXJiYWdlLgojOiBzcmMvc2V0Zm9u
+dC5jOjUzNgptc2dpZCAiSG1tIC0gYSBmb250IGZyb20gcmVzdG9yZWZvbnQ/IFVzaW5nIHRoZSBm
+aXJzdCBoYWxmLlxuIgptc2dzdHIgIkhtbSAtIGV0dCB0eXBzbml0dCBmcuVuIHJlc3RvcmVmb250
+PyBBbnbkbmRlciBm9nJzdGEgaGFsdmFuLlxuIgoKIzogc3JjL3NldGZvbnQuYzo1NTMKbXNnaWQg
+IkJhZCBpbnB1dCBmaWxlIHNpemVcbiIKbXNnc3RyICJGZWxha3RpZyBzdG9ybGVrIHDlIGluZGF0
+YWZpbGVuXG4iCgojOiBzcmMvc2V0Zm9udC5jOjU3NAptc2dpZCAiIgoiVGhpcyBmaWxlIGNvbnRh
+aW5zIDMgZm9udHM6IDh4OCwgOHgxNCBhbmQgOHgxNi4gUGxlYXNlIGluZGljYXRlXG4iCiJ1c2lu
+ZyBhbiBvcHRpb24gLTggb3IgLTE0IG9yIC0xNiB3aGljaCBvbmUgeW91IHdhbnQgbG9hZGVkLlxu
+Igptc2dzdHIgIiIKIkRlbiBo5HIgZmlsZW4gaW5uZWjlbGxlciAzIHR5cHNuaXR0OiA41zgsIDjX
+MTQgb2NoIDjXMTYuIFbkbGogdmlsa2V0XG4iCiJkdSB2aWxsIGzkc2EgaW4gbWVkIG7lZ29uIGF2
+IGZsYWdnb3JuYSAtOCwgLTE0IG9jaCAtMTYuXG4iCgojOiBzcmMvc2V0Zm9udC5jOjU4OAojLCBj
+LWZvcm1hdAptc2dpZCAiWW91IGFza2VkIGZvciBmb250IHNpemUgJWQsIGJ1dCBvbmx5IDgsIDE0
+LCAxNiBhcmUgcG9zc2libGUgaGVyZS5cbiIKbXNnc3RyICJEdSBiYWQgb20gdHlwc25pdHRzc3Rv
+cmxla2VuICVkLCBtZW4gYmFyYSA4LCAxNCBvY2ggMTYg5HIgbfZqbGlnYSBo5HIuXG4iCgojOiBz
+cmMvc2V0Zm9udC5jOjYzMwptc2dpZCAiRm91bmQgbm90aGluZyB0byBzYXZlXG4iCm1zZ3N0ciAi
+SGl0dGFkZSBpbmdldCBhdHQgc3BhcmFcbiIKCiM6IHNyYy9zZXRmb250LmM6NjM3Cm1zZ2lkICJD
+YW5ub3Qgd3JpdGUgZm9udCBmaWxlIgptc2dzdHIgIkthbiBpbnRlIHNrcml2YSB0aWxsIHR5cHNu
+aXR0c2ZpbGVuIgoKIzogc3JjL3NldGZvbnQuYzo2NDIKIywgYy1mb3JtYXQKbXNnaWQgIlNhdmVk
+ICVkLWNoYXIgJWR4JWQgZm9udCBmaWxlIG9uICVzXG4iCm1zZ3N0ciAiU3BhcmFkZSAlZC10ZWNr
+ZW5zICVk1yVkLXR5cHNuaXR0c2ZpbCB0aWxsICVzXG4iCgojOiBzcmMvc2V0a2V5Y29kZXMuYzoy
+MQptc2dpZCAiIgoidXNhZ2U6IHNldGtleWNvZGUgc2NhbmNvZGUga2V5Y29kZSAuLi5cbiIKIiAo
+d2hlcmUgc2NhbmNvZGUgaXMgZWl0aGVyIHh4IG9yIGUweHgsIGdpdmVuIGluIGhleGFkZWNpbWFs
+LFxuIgoiICBhbmQga2V5Y29kZSBpcyBnaXZlbiBpbiBkZWNpbWFsKVxuIgptc2dzdHIgIiIKImFu
+duRuZG5pbmc6IHNldGtleWNvZGUgYXZs5HNuaW5nc2tvZCB0YW5nZW50a29kIC4uLlxuIgoiIChk
+5HIgYXZs5HNuaW5nc2tvZCDkciBhbnRpbmdlbiB4eCBlbGxlciBlMHh4IGFuZ2l2ZXQgaGV4YWRl
+Y2ltYWx0LFxuIgoiICBvY2ggdGFuZ2VudGtvZCDkciBhbmdpdmV0IGRlY2ltYWx0KVxuIgoKIzog
+c3JjL3NldGtleWNvZGVzLmM6NDMKbXNnaWQgImV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cyBleHBl
+Y3RlZCIKbXNnc3RyICJq5G1udCBhbnRhbCBhcmd1bWVudCBm9nJ25G50YWRlcyIKCiM6IHNyYy9z
+ZXRrZXljb2Rlcy5jOjUwCm1zZ2lkICJlcnJvciByZWFkaW5nIHNjYW5jb2RlIgptc2dzdHIgImZl
+bCB2aWQgbORzbmluZyBhdiBhdmzkc25pbmdza29kIgoKIzogc3JjL3NldGtleWNvZGVzLmM6NTYK
+bXNnaWQgImNvZGUgb3V0c2lkZSBib3VuZHMiCm1zZ3N0ciAia29kIHV0YW5m9nIgZ3LkbnNlcm5h
+IgoKIzogc3JjL3NldGtleWNvZGVzLmM6NTkKIywgYy1mb3JtYXQKbXNnaWQgImZhaWxlZCB0byBz
+ZXQgc2NhbmNvZGUgJXggdG8ga2V5Y29kZSAlZFxuIgptc2dzdHIgImt1bmRlIGludGUgc+R0dGEg
+YXZs5HNuaW5nc2tvZGVuICV4IHRpbGwgdGFuZ2VudGtvZGVuICVkXG4iCgojOiBzcmMvc2V0bGVk
+cy5jOjI1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJVc2FnZTpcbiIKIlx0c2V0bGVkcyBbLXZdIFst
+TF0gWy1EXSBbLUZdIFtbK3wtXVsgbnVtIHwgY2FwcyB8IHNjcm9sbCAlc11dXG4iCiJUaHVzLFxu
+IgoiXHRzZXRsZWRzICtjYXBzIC1udW1cbiIKIndpbGwgc2V0IENhcHNMb2NrLCBjbGVhciBOdW1M
+b2NrIGFuZCBsZWF2ZSBTY3JvbGxMb2NrIHVuY2hhbmdlZC5cbiIKIlRoZSBzZXR0aW5ncyBiZWZv
+cmUgYW5kIGFmdGVyIHRoZSBjaGFuZ2UgKGlmIGFueSkgYXJlIHJlcG9ydGVkXG4iCiJ3aGVuIHRo
+ZSAtdiBvcHRpb24gaXMgZ2l2ZW4gb3Igd2hlbiBubyBjaGFuZ2UgaXMgcmVxdWVzdGVkLlxuIgoi
+Tm9ybWFsbHksIHNldGxlZHMgaW5mbHVlbmNlcyB0aGUgdnQgZmxhZyBzZXR0aW5nc1xuIgoiKGFu
+ZCB0aGVzZSBhcmUgdXN1YWxseSByZWZsZWN0ZWQgaW4gdGhlIGxlZHMpLlxuIgoiV2l0aCAtTCwg
+c2V0bGVkcyBvbmx5IHNldHMgdGhlIGxlZHMsIGFuZCBsZWF2ZXMgdGhlIGZsYWdzIGFsb25lLlxu
+IgoiV2l0aCAtRCwgc2V0bGVkcyBzZXRzIGJvdGggdGhlIGZsYWdzIGFuZCB0aGUgZGVmYXVsdCBm
+bGFncywgc29cbiIKInRoYXQgYSBzdWJzZXF1ZW50IHJlc2V0IHdpbGwgbm90IGNoYW5nZSB0aGUg
+ZmxhZ3MuXG4iCm1zZ3N0ciAiIgoiQW525G5kbmluZzpcbiIKIlx0c2V0bGVkcyBbLXZdIFstTF0g
+Wy1EXSBbLUZdIFtbK3wtXVsgbnVtIHwgY2FwcyB8IHNjcm9sbCAlc11dXG4iCiJEdnMsXG4iCiJc
+dHNldGxlZHMgK2NhcHMgLW51bVxuIgoia29tbWVyIHPkdHRhIGNhcHNsb2NrLCBzdORuZ2EgYXYg
+bnVtbG9jayBvY2ggbORtbmEgc2Nyb2xsb2NrIG9m9nLkbmRyYWQuXG4iCiJJbnN05GxsbmluZ2Fy
+bmEgZvZyZSBvY2ggZWZ0ZXIg5G5kcmluZyAob20gbuVnb24pIHJhcHBvcnRlcmFzIG7kclxuIgoi
+LXYtZmxhZ2dhbiDkciBnaXZlbiBlbGxlciBu5HIgaW5nYSDkbmRyaW5nYXIgYmVn5HJzLlxuIgoi
+Tm9ybWFsdCBw5XZlcmthciBzZXRsZWRzIHZ0LWZsYWdnaW5zdORsbG5pbmdhcm5hXG4iCiIob2No
+IGRldHRhIHZpc2FzIG5vcm1hbHQgbWVkIGRpb2Rlcm5hKS5cbiIKIk1lZCAtTCBz5HR0ZXIgc2V0
+bGVkcyBkaW9kZXJuYSBvY2ggcOV2ZXJrYXIgaW50ZSBmbGFnZ29ybmEuXG4iCiJNZWQgLUQgc+R0
+dGVyIGLlZGUgZmxhZ2dvcm5hIG9jaCBzdGFuZGFyZGZsYWdnb3JuYSBz5SBhdHQgc2VuYXJlXG4i
+CiJub2xsc3TkbGxuaW5nYXIgaW50ZSBrb21tZXIg5G5kcmEgZmxhZ2dvcm5hLlxuIgoKIzogc3Jj
+L3NldGxlZHMuYzo0Nwptc2dpZCAib24gIgptc2dzdHIgInDlIgoKIzogc3JjL3NldGxlZHMuYzo0
+Nwptc2dpZCAib2ZmIgptc2dzdHIgImF2IgoKIzogc3JjL3NldGxlZHMuYzo5MAptc2dpZCAiRXJy
+b3IgcmVhZGluZyBjdXJyZW50IGxlZCBzZXR0aW5nLiBNYXliZSBzdGRpbiBpcyBub3QgYSBWVD9c
+biIKbXNnc3RyICJGZWwgdmlkIGzkc25pbmcgYXYgbnV2YXJhbmRlIGluc3TkbGxuaW5nLiBTdGFu
+ZGFyZCBpbiBrYW5za2UgaW50ZSDkciBlbiBWVD9cbiIKCiM6IHNyYy9zZXRsZWRzLmM6MTA5Cm1z
+Z2lkICJFcnJvciByZWFkaW5nIGN1cnJlbnQgZmxhZ3Mgc2V0dGluZy4gTWF5YmUgeW91IGFyZSBu
+b3Qgb24gdGhlIGNvbnNvbGU/XG4iCm1zZ3N0ciAiRmVsIHZpZCBs5HNuaW5nIGF2IG51dmFyYW5k
+ZSBmbGFnZ2luc3TkbGxuaW5nLiBEdSBrYW5za2UgaW50ZSDkciBw5SBrb25zb2xsZW4/XG4iCgoj
+OiBzcmMvc2V0bGVkcy5jOjEyMyBzcmMvc2V0bGVkcy5jOjEzOAptc2dpZCAiRXJyb3IgcmVhZGlu
+ZyBjdXJyZW50IGxlZCBzZXR0aW5nIGZyb20gL2Rldi9rYmQuXG4iCm1zZ3N0ciAiRmVsIHZpZCBs
+5HNuaW5nIGF2IG51dmFyYW5kZSBkaW9kaW5zdORsbG5pbmcgZnLlbiAvZGV2L2tiZC5cbiIKCiM6
+IHNyYy9zZXRsZWRzLmM6MTI3Cm1zZ2lkICJLSU9DR0xFRCB1bmF2YWlsYWJsZT9cbiIKbXNnc3Ry
+ICJLSU9DR0xFRCBpbnRlIHRpbGxn5G5nbGlnP1xuIgoKIzogc3JjL3NldGxlZHMuYzoxNDIKbXNn
+aWQgIktJT0NTTEVEIHVuYXZhaWxhYmxlP1xuIgptc2dzdHIgIktJT0NTTEVEIGludGUgdGlsbGfk
+bmdsaWc/XG4iCgojOiBzcmMvc2V0bGVkcy5jOjE2OQptc2dpZCAiRXJyb3Igb3BlbmluZyAvZGV2
+L2tiZC5cbiIKbXNnc3RyICJGZWwgdmlkIPZwcG5hbmRlIGF2IC9kZXYva2JkLlxuIgoKIzogc3Jj
+L3NldGxlZHMuYzoyMDEKbXNnaWQgIkVycm9yIHJlc2V0dGluZyBsZWRtb2RlXG4iCm1zZ3N0ciAi
+RmVsIHZpZCBub2xsc3TkbGxuaW5nIGF2IGRpb2Rs5GdlXG4iCgojOiBzcmMvc2V0bGVkcy5jOjIx
+MAptc2dpZCAiQ3VycmVudCBkZWZhdWx0IGZsYWdzOiAgIgptc2dzdHIgIk51dmFyYW5kZSBzdGFu
+ZGFyZGZsYWdnb3I6ICAiCgojOiBzcmMvc2V0bGVkcy5jOjIxNAptc2dpZCAiQ3VycmVudCBmbGFn
+czogICAgICAgICAgIgptc2dzdHIgIk51dmFyYW5kZSBmbGFnZ29yOiAgICAgICAgICAiCgojOiBz
+cmMvc2V0bGVkcy5jOjIxOAptc2dpZCAiQ3VycmVudCBsZWRzOiAgICAgICAgICAgIgptc2dzdHIg
+Ik51dmFyYW5kZSBkaW9kZXI6ICAgICAgICAgICAiCgojOiBzcmMvc2V0bGVkcy5jOjI1NCBzcmMv
+c2V0bWV0YW1vZGUuYzo5NAojLCBjLWZvcm1hdAptc2dpZCAidW5yZWNvZ25pemVkIGFyZ3VtZW50
+OiBfJXNfXG5cbiIKbXNnc3RyICJva+RudCBhcmd1bWVudDogXyVzX1xuXG4iCgojOiBzcmMvc2V0
+bGVkcy5jOjI2Mwptc2dpZCAiT2xkIGRlZmF1bHQgZmxhZ3M6ICAgICIKbXNnc3RyICJHYW1sYSBz
+dGFuZGFyZGZsYWdnb3I6ICAgICIKCiM6IHNyYy9zZXRsZWRzLmM6MjY1Cm1zZ2lkICJOZXcgZGVm
+YXVsdCBmbGFnczogICAgIgptc2dzdHIgIk55YSBzdGFuZGFyZGZsYWdnb3I6ICAgICAgIgoKIzog
+c3JjL3NldGxlZHMuYzoyNzIKbXNnaWQgIk9sZCBmbGFnczogICAgICAgICAgICAiCm1zZ3N0ciAi
+R2FtbGEgZmxhZ2dvcjogICAgICAgICAgICAiCgojOiBzcmMvc2V0bGVkcy5jOjI3NAptc2dpZCAi
+TmV3IGZsYWdzOiAgICAgICAgICAgICIKbXNnc3RyICJOeWEgZmxhZ2dvcjogICAgICAgICAgICAg
+ICIKCiM6IHNyYy9zZXRsZWRzLmM6Mjg4IHNyYy9zZXRsZWRzLmM6Mjk3Cm1zZ2lkICJPbGQgbGVk
+czogICAgICAgICAgICAgIgptc2dzdHIgIkdhbWxhIGRpb2RlcjogICAgICAgICAgICAgIgoKIzog
+c3JjL3NldGxlZHMuYzoyOTAgc3JjL3NldGxlZHMuYzoyOTkKbXNnaWQgIk5ldyBsZWRzOiAgICAg
+ICAgICAgICAiCm1zZ3N0ciAiTnlhIGRpb2RlcjogICAgICAgICAgICAgICAiCgojOiBzcmMvc2V0
+bWV0YW1vZGUuYzoyMAptc2dpZCAiIgoiVXNhZ2U6XG4iCiJcdHNldG1ldGFtb2RlIFsgbWV0YWJp
+dCB8IG1ldGEgfCBiaXQgfCBlc2NwcmVmaXggfCBlc2MgfCBwcmVmaXggXVxuIgoiRWFjaCB2dCBo
+YXMgaGlzIG93biBjb3B5IG9mIHRoaXMgYml0LiBVc2VcbiIKIlx0c2V0bWV0YW1vZGUgW2FyZ10g
+PCAvZGV2L3R0eW5cbiIKInRvIGNoYW5nZSB0aGUgc2V0dGluZ3Mgb2YgYW5vdGhlciB2dC5cbiIK
+IlRoZSBzZXR0aW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGNoYW5nZSBhcmUgcmVwb3J0ZWQuXG4i
+Cm1zZ3N0ciAiIgoiQW525G5kbmluZzpcbiIKIlx0c2V0bWV0YW1vZGUgWyBtZXRhYml0IHwgbWV0
+YSB8IGJpdCB8IGVzY3ByZWZpeCB8IGVzYyB8IHByZWZpeCBdXG4iCiJWYXJqZSB2dCBoYXIgc2lu
+IGVnZW4ga29waWEgYXYgZGVuIGjkciBiaXRlbi4gQW525G5kXG4iCiJcdHNldG1ldGFtb2RlIFth
+cmddIDwgL2Rldi90dHluXG4iCiJm9nIgYXR0IORuZHJhIGluc3TkbGxuaW5nZW4gZvZyIGVuIGFu
+bmFuIHZ0LlxuIgoiSW5zdORsbG5pbmdlbiBm9nJlIG9jaCBlZnRlciBm9nLkbmRyaW5nZW4gcmFw
+cG9ydGVyYXMuXG4iCgojOiBzcmMvc2V0bWV0YW1vZGUuYzozNgptc2dpZCAiTWV0YSBrZXkgc2V0
+cyBoaWdoIG9yZGVyIGJpdFxuIgptc2dzdHIgIk1ldGF0YW5nZW50ZW4gc+R0dGVyIGj2Z3N0YSBi
+aXRlblxuIgoKIzogc3JjL3NldG1ldGFtb2RlLmM6MzkKbXNnaWQgIk1ldGEga2V5IGdpdmVzIEVz
+YyBwcmVmaXhcbiIKbXNnc3RyICJNZXRhdGFuZ2VudGVuIGdlciBlc2MtcHJlZml4XG4iCgojOiBz
+cmMvc2V0bWV0YW1vZGUuYzo0Mgptc2dpZCAiU3RyYW5nZSBtb2RlIGZvciBNZXRhIGtleT9cbiIK
+bXNnc3RyICJLb25zdGlndCBs5GdlIGb2ciBNZXRhdGFuZ2VudGVuP1xuIgoKIzogc3JjL3NldG1l
+dGFtb2RlLmM6NzgKbXNnaWQgIkVycm9yIHJlYWRpbmcgY3VycmVudCBzZXR0aW5nLiBNYXliZSBz
+dGRpbiBpcyBub3QgYSBWVD9cbiIKbXNnc3RyICJGZWwgdmlkIGzkc25pbmcgYXYgbnV2YXJhbmRl
+IGluc3TkbGxuaW5nLiBTdGFuZGFyZCBpbiBrYW5za2UgaW50ZSDkciBlbiBWVD9cbiIKCiM6IHNy
+Yy9zZXRtZXRhbW9kZS5jOjk4Cm1zZ2lkICJvbGQgc3RhdGU6ICAgICIKbXNnc3RyICJnYW1tYWx0
+IHRpbGxzdOVuZDogICAgIgoKIzogc3JjL3NldG1ldGFtb2RlLmM6MTA0Cm1zZ2lkICJuZXcgc3Rh
+dGU6ICAgICIKbXNnc3RyICJueXR0IHRpbGxzdOVuZDogICAgICAgIgoKIzogc3JjL3NldHZlc2Fi
+bGFuay5jOjIxCiMsIGMtZm9ybWF0Cm1zZ2lkICJ1c2FnZTogJXNcbiIKbXNnc3RyICJhbnbkbmRu
+aW5nOiAlc1xuIgoKIzogc3JjL3Nob3dmb250LmM6MzAKbXNnaWQgImZhaWxlZCB0byByZXN0b3Jl
+IG9yaWdpbmFsIHRyYW5zbGF0aW9uIHRhYmxlXG4iCm1zZ3N0ciAibWlzc2x5Y2thZGVzIG1lZCBh
+dHQg5XRlcnN05GxsYSBvcmlnaW5hbPZ2ZXJz5HR0bmluZ3N0YWJlbGxlblxuIgoKIzogc3JjL3No
+b3dmb250LmM6MzUKbXNnaWQgImZhaWxlZCB0byByZXN0b3JlIG9yaWdpbmFsIHVuaW1hcFxuIgpt
+c2dzdHIgIm1pc3NseWNrYWRlcyBtZWQgYXR0IOV0ZXJzdORsbGEgb3JpZ2luYWx1bml0YWJlbGxc
+biIKCiM6IHNyYy9zaG93Zm9udC5jOjUzCm1zZ2lkICJjYW5ub3QgY2hhbmdlIHRyYW5zbGF0aW9u
+IHRhYmxlXG4iCm1zZ3N0ciAia2FuIGludGUg5G5kcmEg9nZlcnPkdHRuaW5nc3RhYmVsbGVuXG4i
+CgojOiBzcmMvc2hvd2ZvbnQuYzo2MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IG91dCBvZiBtZW1v
+cnk/XG4iCm1zZ3N0ciAiJXM6IHNsdXQgcOUgbWlubmU/XG4iCgojOiBzcmMvc2hvd2ZvbnQuYzox
+MDEKbXNnaWQgIiIKInVzYWdlOiBzaG93Zm9udCBbLXZ8LVZdXG4iCiIocHJvYmFibHkgYWZ0ZXIg
+bG9hZGluZyBhIGZvbnQgd2l0aCBgc2V0Zm9udCBmb250JylcbiIKbXNnc3RyICIiCiJhbnbkbmRu
+aW5nOiBzaG93Zm9udCBbLXZ8LVZdXG4iCiIoZvZybW9kbGlnZW4gZWZ0ZXIgYXR0IGhhIGzkc3Qg
+aW4gZXR0IHR5cHNuaXR0IG1lZCBcInNldGZvbnQgdHlwc25pdHRcIilcbiIKCiM6IHNyYy9zaG93
+a2V5LmM6NDIKbXNnaWQgIj9VTktOT1dOPyIKbXNnc3RyICI/T0vETlQ/IgoKIzogc3JjL3Nob3dr
+ZXkuYzo0NAojLCBjLWZvcm1hdAptc2dpZCAia2IgbW9kZSB3YXMgJXNcbiIKbXNnc3RyICJ0Z2It
+bORnZSB2YXIgJXNcbiIKCiM6IHNyYy9zaG93a2V5LmM6NDYKbXNnaWQgIiIKIlsgaWYgeW91IGFy
+ZSB0cnlpbmcgdGhpcyB1bmRlciBYLCBpdCBtaWdodCBub3Qgd29ya1xuIgoic2luY2UgdGhlIFgg
+c2VydmVyIGlzIGFsc28gcmVhZGluZyAvZGV2L2NvbnNvbGUgXVxuIgptc2dzdHIgIiIKIlsgb20g
+ZHUgZ/ZyIGRldCBo5HIgaSBYIGthbnNrZSBkZXQgaW50ZSBmdW5nZXJhclxuIgoiZWZ0ZXJzb20g
+WC1zZXJ2ZXJuIG9ja3PlIGzkc2VyIC9kZXYvY29uc29sZSBdXG4iCgojOiBzcmMvc2hvd2tleS5j
+OjY1CiMsIGMtZm9ybWF0Cm1zZ2lkICJjYXVnaHQgc2lnbmFsICVkLCBjbGVhbmluZyB1cC4uLlxu
+Igptc2dzdHIgImZpY2sgc2lnbmFsZW4gJWQsIHN05GRhciB1cHAuLi5cbiIKCiM6IHNyYy9zaG93
+a2V5LmM6NzkKIywgYy1mb3JtYXQKbXNnaWQgIiIKInNob3drZXkgdmVyc2lvbiAlc1xuIgoiXG4i
+CiJ1c2FnZTogc2hvd2tleSBbb3B0aW9ucy4uLl1cbiIKIlxuIgoidmFsaWQgb3B0aW9ucyBhcmU6
+XG4iCiJcbiIKIlx0LWggLS1oZWxwXHRkaXNwbGF5IHRoaXMgaGVscCB0ZXh0XG4iCiJcdC1hIC0t
+YXNjaWlcdGRpc3BsYXkgdGhlIGRlY2ltYWwvb2N0YWwvaGV4IHZhbHVlcyBvZiB0aGUga2V5c1xu
+IgoiXHQtcyAtLXNjYW5jb2Rlc1x0ZGlzcGxheSBvbmx5IHRoZSByYXcgc2Nhbi1jb2Rlc1xuIgoi
+XHQtayAtLWtleWNvZGVzXHRkaXNwbGF5IG9ubHkgdGhlIGludGVycHJldGVkIGtleWNvZGVzIChk
+ZWZhdWx0KVxuIgptc2dzdHIgIiIKInNob3drZXkgdmVyc2lvbiAlc1xuIgoiXG4iCiJhbnbkbmRu
+aW5nOiBzaG93a2V5IFtmbGFnZ29yLi4uXVxuIgoiXG4iCiJ0aWxs5XRuYSBmbGFnZ29yIORyOlxu
+IgoiXG4iCiJcdC1oIC0taGVscFx0dmlzYSBkZW4gaORyIGhq5GxwdGV4dGVuXG4iCiJcdC1hIC0t
+YXNjaWlcdHZpc2EgZGVjaW1hbGEvb2t0YWxhL2hleGFkZWNpbWFsYSB25HJkZW4gZvZyIHRlY2tu
+ZW5cbiIKIlx0LXMgLS1zY2FuY29kZXNcdHZpc2EgYmFyYSBkZSBy5WEgYXZs5HNuaW5nc2tvZGVy
+bmFcbiIKIlx0LWsgLS1rZXljb2Rlc1x0dmlzYSBiYXJhIGRlIHRvbGthZGUgdGFuZ2VudGtvZGVy
+bmEgKHN0YW5kYXJkdmFsKVxuIgoKIzogc3JjL3Nob3drZXkuYzoxNTcKbXNnaWQgIlxuUHJlc3Mg
+YW55IGtleXMgLSBDdHJsLUQgd2lsbCB0ZXJtaW5hdGUgdGhpcyBwcm9ncmFtXG5cbiIKbXNnc3Ry
+ICJcblRyeWNrIG7lZ29uIHRhbmdlbnQgLSBDdHJsLUQga29tbWVyIGF0dCBhdnNsdXRhIHByb2dy
+YW1tZXRcblxuIgoKIzogc3JjL3Nob3drZXkuYzoyMjYKbXNnaWQgInByZXNzIGFueSBrZXkgKHBy
+b2dyYW0gdGVybWluYXRlcyAxMHMgYWZ0ZXIgbGFzdCBrZXlwcmVzcykuLi5cbiIKbXNnc3RyICJ0
+cnljayBu5WdvbiB0YW5nZW50IChwcm9ncmFtbWV0IGF2c2x1dGFzIDEwIHMgZWZ0ZXIgc2lzdGEg
+dGFuZ2VudHRyeWNrbmluZykuLi5cbiIKCiM6IHNyYy9zaG93a2V5LmM6MjM0CiMsIGMtZm9ybWF0
+Cm1zZ2lkICJrZXljb2RlICUzZCAlc1xuIgptc2dzdHIgInRhbmdlbnRrb2QgJTNkICVzXG4iCgoj
+OiBzcmMvc2hvd2tleS5jOjIzNgptc2dpZCAicmVsZWFzZSIKbXNnc3RyICJzbORwcCIKCiM6IHNy
+Yy9zaG93a2V5LmM6MjM3Cm1zZ2lkICJwcmVzcyIKbXNnc3RyICJ0cnljayIKCiM6IHNyYy92ZXJz
+aW9uLmg6MTcKIywgYy1mb3JtYXQKbXNnaWQgIiVzIGZyb20gJXNcbiIKbXNnc3RyICIlcyBmcuVu
+ICVzXG4iCg==
+--=-=-=
+
+                                The Translation Project robot, in the
+                                name of your kind translation coordinator.
+                                mailto:translation@iro.umontreal.ca
+
+--=-=-=--
+
index 196bf12..a5917a1 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -1336,23 +1336,23 @@ msgstr "nieuwe toestand:  "
 msgid "usage: %s\n"
 msgstr "aanroep: %s\n"
 
-#: src/showfont.c:18
+#: src/showconsolefont.c:18
 msgid "failed to restore original translation table\n"
 msgstr "kon de oorspronkelijke omnummertabel niet herstellen\n"
 
-#: src/showfont.c:34
+#: src/showconsolefont.c:34
 msgid ""
-"usage: showfont\n"
+"usage: showconsolefont\n"
 "(probably after loading a font with `setfont font')\n"
 msgstr ""
-"aanroep: showfont\n"
+"aanroep: showconsolefont\n"
 "(gewoonlijk na het laden van een font met `setfont font')\n"
 
-#: src/showfont.c:60
+#: src/showconsolefont.c:60
 msgid "cannot change translation table\n"
 msgstr "kan de omnummertabel niet aanpassen\n"
 
-#: src/showfont.c:86
+#: src/showconsolefont.c:86
 msgid "cannot change translation table??\n"
 msgstr "kan de omnummertabel niet aanpassen??\n"
 
index 066ca13..579a86e 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -1374,23 +1374,23 @@ msgstr "  
 msgid "usage: %s\n"
 msgstr "ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: %s\n"
 
-#: src/showfont.c:18
+#: src/showconsolefont.c:18
 msgid "failed to restore original translation table\n"
 msgstr "ÎÅ ÕÄÁÌÏÓØ ×ÏÓÓÔÁÎÏ×ÉÔØ ÉÓÈÏÄÎÕÀ ÔÁÂÌÉÃÕ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ\n"
 
-#: src/showfont.c:34
+#: src/showconsolefont.c:34
 msgid ""
-"usage: showfont\n"
+"usage: showconsolefont\n"
 "(probably after loading a font with `setfont font')\n"
 msgstr ""
-"ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: showfont\n"
+"ÐÏÌØÚÏ×ÁÔØÓÑ ÔÁË: showconsolefont\n"
 "(ÓËÏÒÅÅ ×ÓÅÇÏ, ÐÏÓÌÅ ÚÁÇÒÕÚËÉ ÛÒÉÆÔÁ ÐÏÓÒÅÄÓÔ×ÏÍ `setfont font')\n"
 
-#: src/showfont.c:60
+#: src/showconsolefont.c:60
 msgid "cannot change translation table\n"
 msgstr "ÎÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÁÂÌÉÃÕ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ\n"
 
-#: src/showfont.c:86
+#: src/showconsolefont.c:86
 msgid "cannot change translation table??\n"
 msgstr "ÎÅ ÍÏÇÕ ÉÚÍÅÎÉÔØ ÔÁÂÌÉÃÕ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÊ (?)\n"
 
diff --git a/src/CHANGELOG b/src/CHANGELOG
deleted file mode 100644 (file)
index 940df27..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-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 6a4ff63..04e18e5 100644 (file)
@@ -11,10 +11,14 @@ endif
 
 # Maybe we want to use a qwertz keyboard before /usr is mounted
 ifndef LOADKEYS_BINDIR
-LOADKEYS_BINDIR = $(DESTDIR)/bin
+ifeq ($(DESTDIR), /usr)
+  LOADKEYS_BINDIR = /bin
+else
+  LOADKEYS_BINDIR = $(DESTDIR)/bin
+endif
 endif
 
-PROGS   = dumpkeys loadkeys showkey setfont showfont \
+PROGS   = dumpkeys loadkeys showkey setfont showconsolefont \
          setleds setmetamode kbd_mode chvt deallocvt \
          psfxtable kbdrate fgconsole
 
@@ -34,7 +38,7 @@ OLDPROGS= mapscrn loadunimap
 
 # Not installed by default
 MISC    = screendump setlogcons setvesablank spawn_console spawn_login \
-         getunimap clrunimap outpsfheader
+         getunimap clrunimap outpsfheader setpalette
 
 # Installed by default
 SHCMDS  = unicode_start unicode_stop
@@ -104,9 +108,9 @@ 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 setlogcons.o: getfd.h
-setvesablank.o showfont.o showkey.o: getfd.h
+setpalette.o setvesablank.o showconsolefont.o showkey.o: getfd.h
 
-kdfontop.o setfont.o showfont.o: kdfontop.h
+kdfontop.o setfont.o showconsolefont.o: kdfontop.h
 
 clrunimap.o kdmapop.o loadunimap.o mapscrn.o: kdmapop.h
 
@@ -118,7 +122,7 @@ 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
+setmetamode.o setvesablank.o showconsolefont.o showkey.o xmalloc.o: nls.h
 
 loadkeys.o loadunimap.o mapscrn.o resizecons.o setfont.o: paths.h
 
@@ -131,7 +135,7 @@ loadunimap.o psffontop.o utf8.o: utf8.h
 chvt.o deallocvt.o dumpkeys.o getkeycodes.o getunimap.o kbd_mode.o: version.h
 kbdrate.o loadkeys.o loadunimap.o mapscrn.o psfxtable.o resizecons.o: version.h
 screendump.o setfont.o setkeycodes.o setleds.o setmetamode.o: version.h
-showfont.o showkey.o totextmode.o: version.h
+showconsolefont.o showkey.o totextmode.o: version.h
 
 findfile.o kdfontop.o loadunimap.o psffontop.o psfxtable.o: xmalloc.h
 setfont.o xmalloc.o: xmalloc.h
@@ -142,7 +146,7 @@ setfont.o xmalloc.o: xmalloc.h
 
 dumpkeys loadkeys: ksyms.o xmalloc.o
 
-getunimap screendump showfont: xmalloc.o
+getunimap screendump showconsolefont: xmalloc.o
 
 psfxtable: psffontop.o xmalloc.o utf8.o
 
@@ -150,12 +154,12 @@ 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
-showfont setlogcons setvesablank showkey: getfd.o
+setpalette showconsolefont setlogcons setvesablank showkey: getfd.o
 
 setfont: mapscrn.o loadunimap.o kdmapop.o kdfontop.o psffontop.o utf8.o
 
 loadunimap: utf8.o
 
-getunimap mapscrn clrunimap loadunimap showfont: kdmapop.o
+getunimap mapscrn clrunimap loadunimap showconsolefont: kdmapop.o
 
-catwithfont showfont: kdfontop.o
+catwithfont showconsolefont: kdfontop.o
diff --git a/src/README b/src/README
deleted file mode 100644 (file)
index 3c463bf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-Several corrections in kbd-0.90 are due to shields@tembel.org
-(Michael Shields).
-
-jrs@world.std.com (Rick Sladkey) suggested some improvements
-to the Makefile.
-
-resize has been renamed resizecons in order to avoid name conflicts.
-
-disalloc has been renamed deallocvt since people tell me
-that `disallocate' is bad English; also it is good to have
-the `vt' in the name, just like in chvt.
-Now open should be renamed openvt...
-
-A few Unicode related things are not installed by default, since
-not many people use them. Install them yourself, if you need them.
index dbbf944..8259089 100644 (file)
@@ -48,18 +48,21 @@ main(int argc, char *argv[]) {
                }
        } else for (i = 1; i < argc; i++) {
                num = atoi(argv[i]);
-               if (num == 0)
+               if (num == 0) {
                        fprintf(stderr,
                                _("%s: 0: illegal VT number\n"), progname);
-               else if (num == 1)
+                       exit(1);
+               } else if (num == 1) {
                        fprintf(stderr,
                                _("%s: VT 1 is the console and cannot be deallocated\n"),
                                progname);
-               else if (ioctl(fd,VT_DISALLOCATE,num)) {
+                       exit(1);
+               } else if (ioctl(fd,VT_DISALLOCATE,num)) {
                        perror("VT_DISALLOCATE");
                        fprintf(stderr,
                                _("%s: could not deallocate console %d\n"),
                                progname, num);
+                       exit(1);
                }
        }
        exit(0);
index e222ab1..28e97aa 100644 (file)
@@ -2,6 +2,7 @@
  * fgconsole.c - aeb - 960123 - Print foreground console
  */
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/ioctl.h>
 #include <linux/vt.h>
 #include "getfd.h"
index 57d94b6..ffed004 100644 (file)
@@ -72,6 +72,7 @@ findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) {
        struct dirent *de;
        char *ff, *fdir, *p, *q, **sp;
        struct decompressor *dc;
+       int secondpass = 0;
 
        ispipe = 0;
 
@@ -82,6 +83,11 @@ findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) {
        } else
                fdir = 0;               /* just to please gcc */
 
+       /* Scan the directory twice: first for files, then
+          for subdirectories, so that we do never search
+          a subdirectory when the directory itself already
+          contains the file we are looking for. */
+ StartScan:
        d = opendir(dir);
        if (d == NULL)
            return NULL;
@@ -97,7 +103,7 @@ findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) {
 
            okdir = (ff && strcmp(de->d_name, fdir) == 0);
 
-           if (recdepth || okdir) {
+           if ((secondpass && recdepth) || okdir) {
                        struct stat statbuf;
                char *a;
 
@@ -115,6 +121,9 @@ findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) {
                free(a);
            }
 
+           if (secondpass)
+                   continue;
+
            /* Should we be in a subdirectory? */
            if (ff)
                    continue;
@@ -144,6 +153,11 @@ findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) {
                    }
            }
        }
+       closedir(d);
+       if (recdepth > 0 && !secondpass) {
+               secondpass = 1;
+               goto StartScan;
+       }
        return NULL;
 }
 
index 816672a..08b3564 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <fcntl.h>
 #include <errno.h>
@@ -51,6 +52,10 @@ int getfd() {
     if (fd >= 0)
       return fd;
 
+    fd = open_a_console("/dev/vc/0");
+    if (fd >= 0)
+      return fd;
+
     fd = open_a_console("/dev/console");
     if (fd >= 0)
       return fd;
index 5e86ef4..f966d5d 100644 (file)
@@ -47,7 +47,7 @@ beats rebuilding the kernel!
                                (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
+  English way... Such hardware dependent stuff can never work on
   other architectures.
   
   Linux/68k has an new ioctl for setting the keyboard repeat rate
@@ -75,15 +75,21 @@ beats rebuilding the kernel!
 #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
 
+#ifndef KDKBDREP
+/* usually defined in <linux/kd.h> */
+#define KDKBDREP        0x4B52  /* set keyboard delay/repeat rate;
+                                * actually used values are returned */
+struct kbd_repeat {
+        int delay;      /* in msec; <= 0: don't change */
+        int period;       /* in msec; <= 0: don't change */
+};
+#endif
+
 #include "nls.h"
 #include "version.h"
 
@@ -98,13 +104,12 @@ static int valid_delays[] = { 250, 500, 750, 1000 };
 
 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.period = -1;
        kbdrep_s.delay = -1;
        if (ioctl( 0, KDKBDREP, &kbdrep_s )) {
                if (errno == EINVAL)
@@ -113,37 +118,38 @@ KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
                exit( 1 );
        }
 
+#if 0
+       printf("old delay %d, period %d\n",
+              kbdrep_s.delay, kbdrep_s.period);
+#endif
+
        /* do the change */
-       if (rate == 0)                          /* switch repeat off */
-               kbdrep_s.rate = 0;
+       if (rate == 0)                            /* switch repeat off */
+               kbdrep_s.period = 0;
        else
-               kbdrep_s.rate  = 1000.0 / rate; /* convert cps to msec */
-       if (kbdrep_s.rate < 1)
-               kbdrep_s.rate = 1;
+               kbdrep_s.period  = 1000.0 / rate; /* convert cps to msec */
+       if (kbdrep_s.period < 1)
+               kbdrep_s.period = 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 );
+       if (ioctl(0, KDKBDREP, &kbdrep_s)) {
+               perror("ioctl(KDKBDREP)");
+               exit(1);
        }
 
        /* report */
-       if (kbdrep_s.rate == 0)
+       if (kbdrep_s.period == 0)
                rate = 0;
        else
-               rate = 1000.0 / (double) kbdrep_s.rate;
+               rate = 1000.0 / (double) kbdrep_s.period;
 
        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
@@ -158,10 +164,10 @@ KIOCSRATE_ioctl_ok(double rate, int delay, int silent) {
                exit( 1 );
        }
 
-       kbdrate_s.rate = (int) (rate + 0.5);  /* round up */
+       kbdrate_s.period = (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 (kbdrate_s.period > 50)
+               kbdrate_s.period = 50;
 
        if (ioctl( fd, KIOCSRATE, &kbdrate_s )) {
                perror( "ioctl(KIOCSRATE)" );
@@ -171,7 +177,7 @@ KIOCSRATE_ioctl_ok(double rate, int delay, int silent) {
 
        if (!silent)
                printf( "Typematic Rate set to %d cps (delay = %d ms)\n",
-                       kbdrate_s.rate, kbdrate_s.delay * 1000 / HZ );
+                       kbdrate_s.period, kbdrate_s.delay * 1000 / HZ );
 
        return 1;
 #else /* no KIOCSRATE */
index 980ce60..8e142ea 100644 (file)
@@ -1123,6 +1123,7 @@ static sym iso_8859_9_syms[] = { /* latin-5 */
 #include "koi8.syms.h"
 #include "cp1250.syms.h"
 #include "ethiopic.syms.h"
+#include "sami.syms.h"
 
 static sym iso_8859_15_syms[] = {
        /* latin-1 with 8 changes */
@@ -1601,12 +1602,15 @@ 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 },
+    { "iso-8859-10",   latin6_syms, 160 },
     { "iso-8859-15",   iso_8859_15_syms, 160 },
     { "mazovia",       mazovia_syms, 128 },
     { "cp-1250",       cp1250_syms, 128 },
     { "koi8-r",                koi8_syms, 128 },
     { "koi8-u",                koi8_syms, 128 },
     { "iso-10646-18",  iso_10646_18_syms, 159 },       /* ethiopic */
+    { "iso-ir-197",    iso_ir_197_syms, 160 },         /* sami */
+    { "iso-ir-209",    iso_ir_209_syms, 160 },         /* sami */
 };
 
 /* Functions for both dumpkeys and loadkeys. */
index e6d767a..c7f1e57 100644 (file)
@@ -1,60 +1,7 @@
 /*
  * loadkeys.y
  *
- * Changes for 0.82:
- * Merged from version 0.81 of loadkeys.y and mktable.c - aeb@cwi.nl
- * Reason for change:
- *   The original version of mktable would use the current kernel
- *   for getting at the entries. However, this does not work if
- *   e.g. NR_FUNC in keyboard.h has changed. So, instead of getting
- *   the information from the current kernel, we must get it out of
- *   defkeymap.map, just like loadkeys. Thus, mktable is now an
- *   option of loadkeys.
- * (Other advantage: we first do the parsing, and then the key binding.
- *  No bindings are changed in case of a syntax error.)
- * Fix: contrary to the documentation in keytables.5 it was assumed
- * by default that the AltGr modifier had no effect. This assumption
- * has been removed.
- *
- * Changes for 0.83:
- * Added the intl_con patch by Eugene G. Crosser:
- * The modifier + in front of a keysym means that it is a letter,
- * and susceptible for change under CapsLock. For ASCII 'a'-'z'
- * and 'A'-'Z' no + is required (when given as a single entry).
- *
- * Changes for 0.84:
- * More compose key support. Default search path. Option -d.
- *
- * Change for 0.85:
- * Do not change compose key table when no definitions given.
- * Option -c to override this.
- *
- * Changes for 0.86:
- * Added a few synonyms. Comment may now contain non-ASCII symbols.
- *
- * Changes for 0.87:
- * Accept the "charset iso-8859-x" directive.
- *
- * Changes for 0.88:
- * Handle sparse keymaps and many strings. Accept "keymaps" directive.
- * Handle 8 modifiers. Handle Unicode.
- *
- * Change for 0.93:
- * Set K_UNICODE during the loading of keymaps requiring that.
- *
- * Change for 0.94:
- * Add alt_is_meta keyword:
- * Whenever some combination is defined as an ASCII symbol, and there
- * is a corresponding Alt keymap, define by default the corresponding
- * Alt combination as Meta_value.
- *
- * Change for 0.96:
- * Compose now accepts letter names.
- * Add strings_as_usual etc.
- * Add include directive.
- *
- * Change for 0.99:
- * Internationalized
+ * For history, see older versions.
  */
 
 %token EOL NUMBER LITERAL CHARSET KEYMAPS KEYCODE EQUALS
@@ -104,7 +51,6 @@ char *fp = func_buf;
 #define U(x) ((x) ^ 0xf000)
 
 #undef ECHO
-#include "analyze.c"
 
 static void addmap(int map, int explicit);
 static void addkey(int index, int table, int keycode);
@@ -128,6 +74,13 @@ int key_buf[MAX_NR_KEYMAPS];
 int mod;
 extern int unicode_used;
 int private_error_ct = 0;
+
+extern int rvalct;
+extern struct kbsentry kbs_buf;
+extern void lkfatal(const char *s);
+extern void lkfatal1(const char *s, const char *s2);
+
+#include "ksyms.h"
 %}
 
 %%
@@ -284,6 +237,8 @@ rvalue              : NUMBER
                ;
 %%                     
 
+#include "analyze.c"
+
 void
 usage(void) {
        fprintf(stderr, _("loadkeys version %s\n"
@@ -484,6 +439,9 @@ FILE *find_incl_file_near_fn(char *s, char *fn) {
        char *t, *te, *t1, *t2;
        int len;
 
+       if (!fn)
+               return NULL;
+
        t = xstrdup(fn);
        te = rindex(t, '/');
        if (te) {
@@ -512,13 +470,23 @@ FILE *find_standard_incl_file(char *s) {
 
        /* If filename is a symlink, also look near its target. */
        if (!f) {
-               char buf[1024];
+               char buf[1024], path[1024], *p;
                int n;
 
                n = readlink(filename, buf, sizeof(buf));
                if (n > 0 && n < sizeof(buf)) {
                     buf[n] = 0;
-                    f = find_incl_file_near_fn(s, buf);
+                    if (buf[0] == '/')
+                         f = find_incl_file_near_fn(s, buf);
+                    else if (strlen(filename) + n < sizeof(path)) {
+                         strcpy(path, filename);
+                         path[sizeof(path)-1] = 0;
+                         p = rindex(path, '/');
+                         if (p)
+                              p[1] = 0;
+                         strcat(path, buf);
+                         f = find_incl_file_near_fn(s, path);
+                    }
                }
        }
 
@@ -617,7 +585,7 @@ yywrap(void) {
 
        line_nr = 1;
        if (optd) {
-               /* first read default map */
+               /* first read default map - search starts in . */
                optd = 0;
                if((f = findfile(DEFMAP, dirpath, suffixes)) == NULL) {
                    fprintf(stderr, _("Cannot find %s\n"), DEFMAP);
@@ -742,7 +710,12 @@ addfunc(struct kbsentry kbs) {
                while (p < fp)
                        *q++ = *p++;
                fp -= sh;
+
+               for (i = kbs.kb_func + 1; i < MAX_NR_FUNC; i++)
+                    if (func_table[i])
+                         func_table[i] -= sh;
        }
+
        p = func_buf;                        /* find place for new def */
        for (i = 0; i < kbs.kb_func; i++)
                if (func_table[i]) {
@@ -752,7 +725,8 @@ addfunc(struct kbsentry kbs) {
        func_table[kbs.kb_func] = p;
         sh = strlen(kbs.kb_string) + 1;
        if (fp + sh > func_buf + sizeof(func_buf)) {
-               fprintf(stderr, _("%s: addfunc: func_buf overflow\n"), progname);
+               fprintf(stderr,
+                       _("%s: addfunc: func_buf overflow\n"), progname);
                exit(1);
        }
        q = fp;
@@ -761,7 +735,7 @@ addfunc(struct kbsentry kbs) {
        while (q > p)
                *--r = *--q;
        strcpy(p, kbs.kb_string);
-       for (i++; i < MAX_NR_FUNC; i++)
+       for (i = kbs.kb_func + 1; i < MAX_NR_FUNC; i++)
                if (func_table[i])
                        func_table[i] += sh;
 }
index a16d398..434bc29 100644 (file)
@@ -3,6 +3,7 @@
  */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <memory.h>
 #include <string.h>
 #include <fcntl.h>
index 11689b9..aaf64d3 100644 (file)
@@ -265,7 +265,12 @@ main(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, O_RDONLY)) > 0) {
+         fd = open(tty, O_RDONLY);
+         if (fd < 0 && errno == ENOENT) {
+             sprintf(tty, "/dev/vc/%d", i);
+             fd = open(tty, O_RDONLY);
+         }
+         if (fd >= 0) {
              if(ioctl(fd, TIOCSWINSZ, &winsize))
                perror("TIOCSWINSZ");
              close(fd);
diff --git a/src/sami.syms.h b/src/sami.syms.h
new file mode 100644 (file)
index 0000000..d3a578b
--- /dev/null
@@ -0,0 +1,316 @@
+/* This file was contributed by Regnor Jernsletten, Jan 2002 */
+
+/*
+ * Northern Sámi symbols.
+ *
+ * { "iso-ir-197", iso_ir_197_syms, nn },
+ */
+
+static sym iso_ir_197_syms[] = {
+       { 0x00a0, "nobreakspace" },
+       { 0x010c, "Ccaron" },
+       { 0x010d, "ccaron" },
+       { 0x0110, "Dstroke" },
+       { 0x0111, "dstroke" },
+       { 0x01e4, "Gstroke" },
+       { 0x01e5, "gstroke" },
+       { 0x00a7, "section" },
+       { 0x01e6, "Gcaron" },
+       { 0x00a9, "copyright" },
+       { 0x01e7, "gcaron" },
+       { 0x00ab, "guillemotleft" },
+       { 0x01e8, "Kcaron" },
+       { 0x00ad, "hyphen" },
+       { 0x01e9, "kcaron" },
+       { 0x014a, "ENG" },
+       { 0x00b0, "degree" },
+       { 0x014b, "eng" },
+       { 0x0160, "Scaron" },
+       { 0x0161, "scaron" },
+       { 0x00b4, "acute" },
+       { 0x0166, "Tstroke" },
+       { 0x00b6, "paragraph" },
+       { 0x00b7, "periodcentered" },
+       { 0x0167, "tstroke" },
+       { 0x017d, "Zcaron" },
+       { 0x017e, "zcaron" },
+       { 0x00bb, "guillemotright" },
+       { 0x01b7, "EZH" },
+       { 0x0292, "ezh" },
+       { 0x01ee, "EZHcaron" },
+       { 0x01ef, "ezhcaron" },
+       { 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, "multiplication" },
+       { 0x00d8, "Ostroke" },
+       { 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, "ostroke" },
+       { 0x00f9, "ugrave" },
+       { 0x00fa, "uacute" },
+       { 0x00fb, "ucircumflex" },
+       { 0x00fc, "udiaeresis" },
+       { 0x00fd, "yacute" },
+       { 0x00fe, "thorn" },
+       { 0x00ff, "ydiaeresis" },
+};
+
+/*
+ * ISO-IR-209 covers the Romani language as written in Finland.
+ * Identical to previous one with two exceptions:
+ *
+ * ISO-IR-197
+ * 0xAB    0x00AB  # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ * 0xBB    0x00BB  # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ * ISO-IR-209
+ * 0xAB    0x021E  # LATIN CAPITAL LETTER H WITH CARON
+ * 0xBB    0x021F  # LATIN SMALL LETTER H WITH CARON
+ */
+
+static sym iso_ir_209_syms[] = {
+       { 0x00a0, "nobreakspace" },
+       { 0x010c, "Ccaron" },
+       { 0x010d, "ccaron" },
+       { 0x0110, "Dstroke" },
+       { 0x0111, "dstroke" },
+       { 0x01e4, "Gstroke" },
+       { 0x01e5, "gstroke" },
+       { 0x00a7, "section" },
+       { 0x01e6, "Gcaron" },
+       { 0x00a9, "copyright" },
+       { 0x01e7, "gcaron" },
+       { 0x021e, "Hcaron" },
+       { 0x01e8, "Kcaron" },
+       { 0x00ad, "hyphen" },
+       { 0x01e9, "kcaron" },
+       { 0x014a, "ENG" },
+       { 0x00b0, "degree" },
+       { 0x014b, "eng" },
+       { 0x0160, "Scaron" },
+       { 0x0161, "scaron" },
+       { 0x00b4, "acute" },
+       { 0x0166, "Tstroke" },
+       { 0x00b6, "paragraph" },
+       { 0x00b7, "periodcentered" },
+       { 0x0167, "tstroke" },
+       { 0x017d, "Zcaron" },
+       { 0x017e, "zcaron" },
+       { 0x021f, "hcaron" },
+       { 0x01b7, "EZH" },
+       { 0x0292, "ezh" },
+       { 0x01ee, "EZHcaron" },
+       { 0x01ef, "ezhcaron" },
+       { 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, "multiplication" },
+       { 0x00d8, "Ostroke" },
+       { 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, "ostroke" },
+       { 0x00f9, "ugrave" },
+       { 0x00fa, "uacute" },
+       { 0x00fb, "ucircumflex" },
+       { 0x00fc, "udiaeresis" },
+       { 0x00fd, "yacute" },
+       { 0x00fe, "thorn" },
+       { 0x00ff, "ydiaeresis" },
+};
+
+static sym latin6_syms[] = {
+       { 0x00a0, "nobreakspace" },
+       { 0x0104, "Aogonek" },
+       { 0x0112, "Emacron" },
+       { 0x0122, "Gcedilla" },
+       { 0x012a, "Imacron" },
+       { 0x0128, "Itilde" },
+       { 0x0136, "Kcedilla" },
+       { 0x00a7, "section" },
+       { 0x013b, "Lcedilla" },
+       { 0x0110, "Dstroke" },
+       { 0x0160, "Scaron" },
+       { 0x0166, "Tstroke" },
+       { 0x017d, "Zcaron" },
+       { 0x00ad, "hyphen" },
+       { 0x016a, "Umacron" },
+       { 0x014a, "ENG" },
+       { 0x00b0, "degree" },
+       { 0x0105, "aogonek" },
+       { 0x0113, "emacron" },
+       { 0x0123, "gcedilla" },
+       { 0x012b, "imacron" },
+       { 0x0129, "itilde" },
+       { 0x0137, "kcedilla" },
+       { 0x00b7, "periodcentered" },
+       { 0x013c, "lcedilla" },
+       { 0x0111, "dstroke" },
+       { 0x0161, "scaron" },
+       { 0x0167, "tstroke" },
+       { 0x017e, "zcaron" },
+       { 0x2014, "emdash" },
+       { 0x016b, "umacron" },
+       { 0x014b, "eng" },
+       { 0x0100, "Amacron" },
+       { 0x00c1, "Aacute" },
+       { 0x00c2, "Acircumflex" },
+       { 0x00c3, "Atilde" },
+       { 0x00c4, "Adiaeresis" },
+       { 0x00c5, "Aring" },
+       { 0x00c6, "AE" },
+       { 0x012e, "Iogonek" },
+       { 0x010c, "Ccaron" },
+       { 0x00c9, "Eacute" },
+       { 0x0118, "Eogonek" },
+       { 0x00cb, "Ediaeresis" },
+       { 0x0116, "Eabovedot" },
+       { 0x00cd, "Iacute" },
+       { 0x00ce, "Icircumflex" },
+       { 0x00cf, "Idiaeresis" },
+       { 0x00d0, "ETH" },
+       { 0x0145, "Ncedilla" },
+       { 0x014c, "Omacron" },
+       { 0x00d3, "Oacute" },
+       { 0x00d4, "Ocircumflex" },
+       { 0x00d5, "Otilde" },
+       { 0x00d6, "Odiaeresis" },
+       { 0x0168, "Utilde" },
+       { 0x00d8, "Ostroke" },
+       { 0x0172, "Uogonek" },
+       { 0x00da, "Uacute" },
+       { 0x00db, "Ucircumflex" },
+       { 0x00dc, "Udiaeresis" },
+       { 0x00dd, "Yacute" },
+       { 0x00de, "THORN" },
+       { 0x00df, "ssharp" },
+       { 0x0101, "amacron" },
+       { 0x00e1, "aacute" },
+       { 0x00e2, "acircumflex" },
+       { 0x00e3, "atilde" },
+       { 0x00e4, "adiaeresis" },
+       { 0x00e5, "aring" },
+       { 0x00e6, "ae" },
+       { 0x012f, "iogonek" },
+       { 0x010d, "ccaron" },
+       { 0x00e9, "eacute" },
+       { 0x0119, "eogonek" },
+       { 0x00eb, "ediaeresis" },
+       { 0x0117, "eabovedot" },
+       { 0x00ed, "iacute" },
+       { 0x00ee, "icircumflex" },
+       { 0x00ef, "idiaeresis" },
+       { 0x00f0, "eth" },
+       { 0x0146, "ncedilla" },
+       { 0x014d, "omacron" },
+       { 0x00f3, "oacute" },
+       { 0x00f4, "ocircumflex" },
+       { 0x00f5, "otilde" },
+       { 0x00f6, "odiaeresis" },
+       { 0x0169, "utilde" },
+       { 0x00f8, "ostroke" },
+       { 0x0173, "uogonek" },
+       { 0x00fa, "uacute" },
+       { 0x00fb, "ucircumflex" },
+       { 0x00fc, "udiaeresis" },
+       { 0x00fd, "yacute" },
+       { 0x00fe, "thorn" },
+       { 0x0138, "kra" },
+};
index a16cc9a..554f01a 100644 (file)
@@ -53,8 +53,18 @@ main(int argc, char **argv) {
 
     sprintf(infile, "/dev/vcsa%d", cons);
     fd = open(infile, O_RDONLY);
-    if (fd < 0 && cons == 0 && errno == ENOENT)
-      fd = open("/dev/vcsa", O_RDONLY);
+    if (fd < 0 && cons == 0 && errno == ENOENT) {
+      sprintf(infile, "/dev/vcsa");
+      fd = open(infile, O_RDONLY);
+    }
+    if (fd < 0 && errno == ENOENT) {
+      sprintf(infile, "/dev/vcs/a%d", cons);
+      fd = open(infile, O_RDONLY);
+    }
+    if (fd < 0 && cons == 0 && errno == ENOENT) {
+      sprintf(infile, "/dev/vcs/a");
+      fd = open(infile, O_RDONLY);
+    }
     if (fd < 0 || read(fd, header, 4) != 4)
       goto try_ioctl;
     rows = header[0];
@@ -84,16 +94,23 @@ main(int argc, char **argv) {
 try_ioctl:
     {
        struct winsize win;
-       char consnam[20];
+       char consnam[20], devfsconsnam[20];
        unsigned char *screenbuf;
 
        sprintf(consnam, "/dev/tty%d", cons);
-       if((fd = open(consnam, O_RDONLY)) < 0) {
+       fd = open(consnam, O_RDONLY);
+       if (fd < 0 && errno == ENOENT) {
+           sprintf(devfsconsnam, "/dev/vc/%d", cons);
+           fd = open(devfsconsnam, O_RDONLY);
+           if (fd < 0)
+               errno = ENOENT;
+       }
+       if (fd < 0) {
            perror(consnam);
            fd = 0;
        }
 
-       if (ioctl(fd,TIOCGWINSZ,&win)) {
+       if (ioctl(fd, TIOCGWINSZ, &win)) {
            perror("TIOCGWINSZ");
            exit(1);
        }
index 8501293..0170c33 100644 (file)
@@ -133,7 +133,7 @@ static void
 sunsetleds(char *leds) {
 #ifdef KIOCSLED
     if (ioctl(sunkbdfd, KIOCSLED, leds)) {
-       perror("KIOCGSLED");
+       perror("KIOCSLED");
        fprintf(stderr,
          _("Error reading current led setting from /dev/kbd.\n"));
        exit(1);
diff --git a/src/setpalette.c b/src/setpalette.c
new file mode 100644 (file)
index 0000000..d91c4dc
--- /dev/null
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/ioctl.h>
+#include <linux/kd.h>
+#include "getfd.h"
+
+int
+main(int argc, char **argv){
+       int fd, indx, red, green, blue;
+       unsigned char cmap[48];
+
+       fd = getfd();
+       if (ioctl(fd, GIO_CMAP, cmap))
+               perror("GIO_CMAP");
+       if (argc != 5) {
+               fprintf(stderr, "call: setpalette index red green blue\n");
+               exit(1);
+       }
+       indx = atoi(argv[1]);
+       red = atoi(argv[2]);
+       green = atoi(argv[3]);
+       blue = atoi(argv[4]);
+       if (indx < 0 || red < 0 || green < 0 || blue < 0 ||
+           indx > 15 || red > 255 || green > 255 || blue > 255) {
+               fprintf(stderr, "indx must be in 0..15, colors in 0..255\n");
+               exit(1);
+       }
+       cmap[3*indx] = red;
+       cmap[3*indx+1] = green;
+       cmap[3*indx+2] = blue;
+       if (ioctl(fd, PIO_CMAP, cmap))
+               perror("PIO_CMAP");
+       return 0;
+}
index f3802e3..ee63db4 100644 (file)
@@ -4,33 +4,35 @@
  * usage: setvesablank ON|on|off
  */
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <sys/ioctl.h>
 #include "getfd.h"
 #include "nls.h"
 
 int
 main(int argc, char *argv[]) {
-    int fd;
-    struct { char ten, onoff; } arg;
+       int fd;
+       struct { char ten, onoff; } arg;
 
-    setlocale(LC_ALL, "");
-    bindtextdomain(PACKAGE, LOCALEDIR);
-    textdomain(PACKAGE);
+       setlocale(LC_ALL, "");
+       bindtextdomain(PACKAGE, LOCALEDIR);
+       textdomain(PACKAGE);
 
-    if (argc != 2) {
-       fprintf(stderr, _("usage: %s\n"), "setvesablank ON|on|off");
-       exit(1);
-    }
-    fd = getfd();
-    arg.ten = 10;
-    arg.onoff = 0;
-    if (!strcmp(argv[1], "on"))
-      arg.onoff = 1;
-    else if (!strcmp(argv[1], "ON"))
-      arg.onoff = 2;
-    if (ioctl(fd, TIOCLINUX, &arg)) {
-       perror("setvesablank: TIOCLINUX");
-       exit(1);
-    }
-    return 0;
+       if (argc != 2) {
+               fprintf(stderr, _("usage: %s\n"), "setvesablank ON|on|off");
+               exit(1);
+       }
+       fd = getfd();
+       arg.ten = 10;
+       arg.onoff = 0;
+       if (!strcmp(argv[1], "on"))
+               arg.onoff = 1;
+       else if (!strcmp(argv[1], "ON"))
+               arg.onoff = 2;
+       if (ioctl(fd, TIOCLINUX, &arg)) {
+               perror("setvesablank: TIOCLINUX");
+               exit(1);
+       }
+       return 0;
 }
similarity index 96%
rename from src/showfont.c
rename to src/showconsolefont.c
index ad97229..13d5091 100644 (file)
@@ -1,4 +1,5 @@
 /* showfont.c - aeb, 940207 - updated 2001-02-06 */
+/* renamed to showconsolefont.c to avoid clash with the X showfont */
 
 #include <stdio.h>
 #include <errno.h>
@@ -98,7 +99,7 @@ setnewunicodemap(int *list, int cnt) {
 static void
 usage(void) {
        fprintf(stderr,
-               _("usage: showfont [-v|-V]\n"
+               _("usage: showconsolefont [-v|-V]\n"
                  "(probably after loading a font with `setfont font')\n"));
        exit(1);
 }
index 2401644..466ef60 100644 (file)
@@ -6,10 +6,11 @@
  * Note: this functionality will probably go away and become
  * part of init. For the time being, be very careful when
  * you use this - if you have this in /etc/rc.local you should
- * start getty, not open, or anybody will have a root shell
+ * start getty, not openvt, or anybody will have a root shell
  * with a single keystroke.
  */
 #include <signal.h>
+#include <errno.h>
 #include <linux/kd.h>
 
 void
@@ -22,6 +23,8 @@ main(){
     int fd;
 
     fd = open("/dev/tty0", 0);
+    if (fd < 0 && errno == ENOENT)
+      fd = open("/dev/vc/0", 0);
     if (fd < 0)
       fd = 0;
     signal(SIGHUP, sighup);
index 8a87c3c..0cbb1dd 100644 (file)
@@ -5,6 +5,7 @@
  *
  */
 #include <signal.h>
+#include <errno.h>
 #include <linux/kd.h>
 
 void
@@ -17,6 +18,8 @@ main(){
     int fd;
 
     fd = open("/dev/tty0", 0);
+    if (fd < 0 && errno == ENOENT)
+      fd = open("/dev/vc/0", 0);
     if (fd < 0)
       fd = 0;
     signal(SIGHUP, sighup);
index e242abf..70a3de6 100644 (file)
@@ -1,6 +1,7 @@
 #include <string.h>
+#include <stdlib.h>
 
-#define VERSION "1.06"
+#define VERSION "1.08"
 
 char *progname;