Podpora Latin 2 pre NetBSD. Po patchnuti treba znovu vygenerovat src/usr.sbin/wsconsctl/keysym.h pred kompilaciou wsconsctl --- sys/dev/wscons/wsksymdef.h.orig 2006-04-24 14:56:57.000000000 +0200 +++ sys/dev/wscons/wsksymdef.h 2006-04-24 14:57:19.000000000 +0200 @@ -161,6 +161,10 @@ #define KS_asciitilde 0x7e #define KS_Delete 0x7f +/* + * Latin 1 + */ + #define KS_nobreakspace 0xa0 #define KS_exclamdown 0xa1 #define KS_cent 0xa2 @@ -258,12 +262,129 @@ #define KS_thorn 0xfe #define KS_ydiaeresis 0xff +/* + * Latin 2 + */ + +#define KS_nobreakspace 0xa0 +#define KS_Aogonek 0xa1 +#define KS_breve 0xa2 +#define KS_Lslash 0xa3 +#define KS_currency 0xa4 +#define KS_Lcaron 0xa5 +#define KS_Sacute 0xa6 +#define KS_section 0xa7 +#define KS_diaeresis 0xa8 +#define KS_Scaron 0xa9 +#define KS_Scedilla 0xaa +#define KS_Tcaron 0xab +#define KS_Zacute 0xac +#define KS_hyphen 0xad +#define KS_Zcaron 0xae +#define KS_Zdotaccent 0xaf +#define KS_degree 0xb0 +#define KS_aogonek 0xb1 +#define KS_ogonek 0xb2 +#define KS_lslash 0xb3 +#define KS_acute 0xb4 +#define KS_lcaron 0xb5 +#define KS_sacute 0xb6 +#define KS_caron 0xb7 +#define KS_cedilla 0xb8 +#define KS_scaron 0xb9 +#define KS_scedilla 0xba +#define KS_tcaron 0xbb +#define KS_zacute 0xbc +#define KS_hungarumlaut 0xbd +#define KS_zcaron 0xbe +#define KS_zdotaccent 0xbf +#define KS_Racute 0xc0 +#define KS_Aacute 0xc1 +#define KS_Acircumflex 0xc2 +#define KS_Abreve 0xc3 +#define KS_Adiaeresis 0xc4 +#define KS_Lacute 0xc5 +#define KS_Cacute 0xc6 +#define KS_Ccedilla 0xc7 +#define KS_Ccaron 0xc8 +#define KS_Eacute 0xc9 +#define KS_Eogonek 0xca +#define KS_Ediaeresis 0xcb +#define KS_Ecaron 0xcc +#define KS_Iacute 0xcd +#define KS_Icircumflex 0xce +#define KS_Dcaron 0xcf +#define KS_Eth 0xd0 +#define KS_Nacute 0xd1 +#define KS_Ncaron 0xd2 +#define KS_Oacute 0xd3 +#define KS_Ocircumflex 0xd4 +#define KS_Ohungarumlaut 0xd5 +#define KS_Odiaeresis 0xd6 +#define KS_multiply 0xd7 +#define KS_Rcaron 0xd8 +#define KS_Uring 0xd9 +#define KS_Uacute 0xda +#define KS_Uhungarumlaut 0xdb +#define KS_Udiaeresis 0xdc +#define KS_Yacute 0xdd +#define KS_Tcedilla 0xde +#define KS_germandbls 0xdf +#define KS_racute 0xe0 +#define KS_aacute 0xe1 +#define KS_acircumflex 0xe2 +#define KS_abreve 0xe3 +#define KS_adiaeresis 0xe4 +#define KS_lacute 0xe5 +#define KS_cacute 0xe6 +#define KS_ccedilla 0xe7 +#define KS_ccaron 0xe8 +#define KS_eacute 0xe9 +#define KS_eogonek 0xea +#define KS_ediaeresis 0xeb +#define KS_ecaron 0xec +#define KS_iacute 0xed +#define KS_icircumflex 0xee +#define KS_dcaron 0xef +#define KS_dbar 0xf0 +#define KS_nacute 0xf1 +#define KS_ncaron 0xf2 +#define KS_oacute 0xf3 +#define KS_ocircumflex 0xf4 +#define KS_ohungarumlaut 0xf5 +#define KS_odiaeresis 0xf6 +#define KS_divide 0xf7 +#define KS_rcaron 0xf8 +#define KS_uring 0xf9 +#define KS_uacute 0xfa +#define KS_uhungarumlaut 0xfb +#define KS_udiaeresis 0xfc +#define KS_yacute 0xfd +#define KS_tcedilla 0xfe +#define KS_dotaccent 0xff + #define KS_Odoubleacute 0x150 #define KS_odoubleacute 0x151 #define KS_Udoubleacute 0x170 #define KS_udoubleacute 0x171 /* + * Latin 2 specific dead + * http://www.unicode.org/charts/PDF/U0300.pdf + * dotaccent = "dot above" + * hungarumlaut = "double acute" + * slash = "short solidus" + */ + +#define KS_dead_breve 0x0306 +#define KS_dead_caron 0x030c +#define KS_dead_dotaccent 0x0307 +#define KS_dead_hungarumlaut 0x030b +#define KS_dead_ogonek 0x0328 +#define KS_dead_slash 0x0337 + + +/* * Group Dead (dead accents) */ --- sys/dev/wscons/wskbdutil.c.orig 2006-04-02 13:49:51.000000000 +0200 +++ sys/dev/wscons/wskbdutil.c 2006-04-02 13:58:19.000000000 +0200 @@ -177,7 +177,88 @@ { { KS_acute, KS_u }, KS_uacute }, { { KS_asciicircum, KS_u }, KS_ucircumflex }, { { KS_grave, KS_u }, KS_ugrave }, - { { KS_acute, KS_y }, KS_yacute } + { { KS_acute, KS_y }, KS_yacute }, + + /* Latin 2 */ + + { { KS_dead_acute, KS_S }, KS_Sacute }, + { { KS_dead_acute, KS_Z }, KS_Zacute }, + { { KS_dead_acute, KS_s }, KS_sacute }, + { { KS_dead_acute, KS_z }, KS_zacute }, + { { KS_dead_acute, KS_R }, KS_Racute }, + { { KS_dead_acute, KS_A }, KS_Aacute }, + { { KS_dead_acute, KS_L }, KS_Lacute }, + { { KS_dead_acute, KS_C }, KS_Cacute }, + { { KS_dead_acute, KS_E }, KS_Eacute }, + { { KS_dead_acute, KS_I }, KS_Iacute }, + { { KS_dead_acute, KS_N }, KS_Nacute }, + { { KS_dead_acute, KS_O }, KS_Oacute }, + { { KS_dead_acute, KS_U }, KS_Uacute }, + { { KS_dead_acute, KS_Y }, KS_Yacute }, + { { KS_dead_acute, KS_r }, KS_racute }, + { { KS_dead_acute, KS_a }, KS_aacute }, + { { KS_dead_acute, KS_l }, KS_lacute }, + { { KS_dead_acute, KS_c }, KS_cacute }, + { { KS_dead_acute, KS_e }, KS_eacute }, + { { KS_dead_acute, KS_i }, KS_iacute }, + { { KS_dead_acute, KS_n }, KS_nacute }, + { { KS_dead_acute, KS_o }, KS_oacute }, + { { KS_dead_acute, KS_u }, KS_uacute }, + { { KS_dead_acute, KS_y }, KS_yacute }, + { { KS_dead_breve, KS_A }, KS_Abreve }, + { { KS_dead_breve, KS_a }, KS_abreve }, + { { KS_dead_caron, KS_L }, KS_Lcaron }, + { { KS_dead_caron, KS_S }, KS_Scaron }, + { { KS_dead_caron, KS_T }, KS_Tcaron }, + { { KS_dead_caron, KS_Z }, KS_Zcaron }, + { { KS_dead_caron, KS_l }, KS_lcaron }, + { { KS_dead_caron, KS_s }, KS_scaron }, + { { KS_dead_caron, KS_t }, KS_tcaron }, + { { KS_dead_caron, KS_z }, KS_zcaron }, + { { KS_dead_caron, KS_C }, KS_Ccaron }, + { { KS_dead_caron, KS_E }, KS_Ecaron }, + { { KS_dead_caron, KS_D }, KS_Dcaron }, + { { KS_dead_caron, KS_N }, KS_Ncaron }, + { { KS_dead_caron, KS_R }, KS_Rcaron }, + { { KS_dead_caron, KS_c }, KS_ccaron }, + { { KS_dead_caron, KS_e }, KS_ecaron }, + { { KS_dead_caron, KS_d }, KS_dcaron }, + { { KS_dead_caron, KS_n }, KS_ncaron }, + { { KS_dead_caron, KS_r }, KS_rcaron }, + { { KS_dead_cedilla, KS_S }, KS_Scedilla }, + { { KS_dead_cedilla, KS_s }, KS_scedilla }, + { { KS_dead_cedilla, KS_C }, KS_Ccedilla }, + { { KS_dead_cedilla, KS_T }, KS_Tcedilla }, + { { KS_dead_cedilla, KS_c }, KS_ccedilla }, + { { KS_dead_cedilla, KS_t }, KS_tcedilla }, + { { KS_dead_circumflex, KS_A }, KS_Acircumflex }, + { { KS_dead_circumflex, KS_I }, KS_Icircumflex }, + { { KS_dead_circumflex, KS_O }, KS_Ocircumflex }, + { { KS_dead_circumflex, KS_a }, KS_acircumflex }, + { { KS_dead_circumflex, KS_i }, KS_icircumflex }, + { { KS_dead_circumflex, KS_o }, KS_ocircumflex }, + { { KS_dead_diaeresis, KS_A }, KS_Adiaeresis }, + { { KS_dead_diaeresis, KS_E }, KS_Ediaeresis }, + { { KS_dead_diaeresis, KS_O }, KS_Odiaeresis }, + { { KS_dead_diaeresis, KS_U }, KS_Udiaeresis }, + { { KS_dead_diaeresis, KS_a }, KS_adiaeresis }, + { { KS_dead_diaeresis, KS_e }, KS_ediaeresis }, + { { KS_dead_diaeresis, KS_o }, KS_odiaeresis }, + { { KS_dead_diaeresis, KS_u }, KS_udiaeresis }, + { { KS_dead_dotaccent, KS_Z }, KS_Zdotaccent }, + { { KS_dead_dotaccent, KS_z }, KS_zdotaccent }, + { { KS_dead_hungarumlaut, KS_O }, KS_Ohungarumlaut }, + { { KS_dead_hungarumlaut, KS_U }, KS_Uhungarumlaut }, + { { KS_dead_hungarumlaut, KS_o }, KS_ohungarumlaut }, + { { KS_dead_hungarumlaut, KS_u }, KS_uhungarumlaut }, + { { KS_dead_ogonek, KS_A }, KS_Aogonek }, + { { KS_dead_ogonek, KS_a }, KS_aogonek }, + { { KS_dead_ogonek, KS_E }, KS_Eogonek }, + { { KS_dead_ogonek, KS_e }, KS_eogonek }, + { { KS_dead_abovering, KS_U }, KS_Uring }, + { { KS_dead_abovering, KS_u }, KS_uring }, + { { KS_dead_slash, KS_L }, KS_Lslash }, + { { KS_dead_slash, KS_l }, KS_lslash } }; #define COMPOSE_SIZE sizeof(compose_tab)/sizeof(compose_tab[0])