diff --git a/sys/dev/pckbport/wskbdmap_mfii.c b/sys/dev/pckbport/wskbdmap_mfii.c index e69f06efbc66..8a7bcdbfeac8 100644 --- a/sys/dev/pckbport/wskbdmap_mfii.c +++ b/sys/dev/pckbport/wskbdmap_mfii.c @@ -1,4 +1,4 @@ -/* $NetBSD: wskbdmap_mfii.c,v 1.10 2005/12/11 12:23:22 christos Exp $ */ +/* $NetBSD: wskbdmap_mfii.c,v 1.11 2006/04/01 23:02:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.10 2005/12/11 12:23:22 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wskbdmap_mfii.c,v 1.11 2006/04/01 23:02:32 christos Exp $"); #include #include @@ -159,6 +159,39 @@ static const keysym_t pckbd_keydesc_us[] = { }; #ifndef WSKBD_USONLY +static const keysym_t pckbd_keydesc_gr[] = { +/* pos normal shifted altgr shift-altgr */ + KC(14), KS_Delete, KS_BackSpace, + KC(16), KS_q, KS_Q, KS_semicolon, KS_colon, + KC(17), KS_w, KS_W, KS_gr_teliko_s, KS_gr_S, + KC(18), KS_e, KS_E, KS_gr_e, KS_gr_E, + KC(19), KS_r, KS_R, KS_gr_r, KS_gr_R, + KC(20), KS_t, KS_T, KS_gr_t, KS_gr_T, + KC(21), KS_y, KS_Y, KS_gr_y, KS_gr_Y, + KC(22), KS_u, KS_U, KS_gr_u, KS_gr_U, + KC(23), KS_i, KS_I, KS_gr_i, KS_gr_I, + KC(24), KS_o, KS_O, KS_gr_o, KS_gr_O, + KC(25), KS_p, KS_P, KS_gr_p, KS_gr_P, + KC(30), KS_a, KS_A, KS_gr_a, KS_gr_A, + KC(31), KS_s, KS_S, KS_gr_s, KS_gr_S, + KC(32), KS_d, KS_D, KS_gr_d, KS_gr_D, + KC(33), KS_f, KS_F, KS_gr_f, KS_gr_F, + KC(34), KS_g, KS_G, KS_gr_g, KS_gr_G, + KC(35), KS_h, KS_H, KS_gr_h, KS_gr_H, + KC(36), KS_j, KS_J, KS_gr_j, KS_gr_J, + KC(37), KS_k, KS_K, KS_gr_k, KS_gr_K, + KC(38), KS_l, KS_L, KS_gr_l, KS_gr_L, + KC(39), KS_semicolon, KS_colon, KS_dead_semi, KS_dead_colon, + KC(44), KS_z, KS_Z, KS_gr_z, KS_gr_Z, + KC(45), KS_x, KS_X, KS_gr_x, KS_gr_X, + KC(46), KS_c, KS_C, KS_gr_c, KS_gr_C, + KC(47), KS_v, KS_V, KS_gr_v, KS_gr_V, + KC(48), KS_b, KS_B, KS_gr_b, KS_gr_B, + KC(49), KS_n, KS_N, KS_gr_n, KS_gr_N, + KC(50), KS_m, KS_M, KS_gr_m, KS_gr_M, + KC(184), KS_Mode_switch, KS_Multi_key, +}; + static const keysym_t pckbd_keydesc_de[] = { /* pos normal shifted altgr shift-altgr */ KC(3), KS_2, KS_quotedbl, KS_twosuperior, @@ -545,6 +578,7 @@ const struct wscons_keydesc pckbd_keydesctab[] = { pckbd_keydesc_swapctrlcaps), KBD_MAP(KB_ES , KB_US, pckbd_keydesc_es), KBD_MAP(KB_PT, KB_US, pckbd_keydesc_pt), + KBD_MAP(KB_GR, KB_US, pckbd_keydesc_gr), #endif /* WSKBD_USONLY */ /* placeholders */ diff --git a/sys/dev/wscons/wskbdutil.c b/sys/dev/wscons/wskbdutil.c index 1d8900037a95..c23c46ac8511 100644 --- a/sys/dev/wscons/wskbdutil.c +++ b/sys/dev/wscons/wskbdutil.c @@ -1,4 +1,4 @@ -/* $NetBSD: wskbdutil.c,v 1.12 2005/12/11 12:24:12 christos Exp $ */ +/* $NetBSD: wskbdutil.c,v 1.13 2006/04/01 23:02:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: wskbdutil.c,v 1.12 2005/12/11 12:24:12 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: wskbdutil.c,v 1.13 2006/04/01 23:02:32 christos Exp $"); #include #include @@ -177,7 +177,25 @@ static struct compose_tab_s { { { 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 }, + { { KS_dead_semi, KS_gr_A }, KS_gr_At }, + { { KS_dead_semi, KS_gr_E }, KS_gr_Et }, + { { KS_dead_semi, KS_gr_H }, KS_gr_Ht }, + { { KS_dead_semi, KS_gr_I }, KS_gr_It }, + { { KS_dead_semi, KS_gr_O }, KS_gr_Ot }, + { { KS_dead_semi, KS_gr_Y }, KS_gr_Yt }, + { { KS_dead_semi, KS_gr_V }, KS_gr_Vt }, + { { KS_dead_colon, KS_gr_I }, KS_gr_Id }, + { { KS_dead_colon, KS_gr_Y }, KS_gr_Yd }, + { { KS_dead_semi, KS_gr_a }, KS_gr_at }, + { { KS_dead_semi, KS_gr_e }, KS_gr_et }, + { { KS_dead_semi, KS_gr_h }, KS_gr_ht }, + { { KS_dead_semi, KS_gr_i }, KS_gr_it }, + { { KS_dead_semi, KS_gr_o }, KS_gr_ot }, + { { KS_dead_semi, KS_gr_y }, KS_gr_yt }, + { { KS_dead_semi, KS_gr_v }, KS_gr_vt }, + { { KS_dead_colon, KS_gr_i }, KS_gr_id }, + { { KS_dead_colon, KS_gr_y }, KS_gr_yd } }; #define COMPOSE_SIZE sizeof(compose_tab)/sizeof(compose_tab[0]) diff --git a/sys/dev/wscons/wsksymdef.h b/sys/dev/wscons/wsksymdef.h index 49fd726ea7ae..d444af172453 100644 --- a/sys/dev/wscons/wsksymdef.h +++ b/sys/dev/wscons/wsksymdef.h @@ -1,4 +1,4 @@ -/* $NetBSD: wsksymdef.h,v 1.55 2005/12/11 12:24:12 christos Exp $ */ +/* $NetBSD: wsksymdef.h,v 1.56 2006/04/01 23:02:32 christos Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -274,6 +274,82 @@ #define KS_dead_diaeresis 0x0308 #define KS_dead_abovering 0x030a #define KS_dead_cedilla 0x0327 +#define KS_dead_semi 0x0328 +#define KS_dead_colon 0x0329 + +/* + * Group Greek + */ + +#define KS_gr_At 0xb6 +#define KS_gr_Et 0xb8 +#define KS_gr_Ht 0xb9 +#define KS_gr_It 0xba +#define KS_gr_Ot 0xbc +#define KS_gr_Yt 0xbe +#define KS_gr_Vt 0xbf +#define KS_gr_itd 0xc0 +#define KS_gr_A 0xc1 +#define KS_gr_B 0xc2 +#define KS_gr_G 0xc3 +#define KS_gr_D 0xc4 +#define KS_gr_E 0xc5 +#define KS_gr_Z 0xc6 +#define KS_gr_H 0xc7 +#define KS_gr_U 0xc8 +#define KS_gr_I 0xc9 +#define KS_gr_K 0xca +#define KS_gr_L 0xcb +#define KS_gr_M 0xcc +#define KS_gr_N 0xcd +#define KS_gr_J 0xce +#define KS_gr_O 0xcf +#define KS_gr_P 0xd0 +#define KS_gr_R 0xd1 +#define KS_gr_S 0xd3 +#define KS_gr_T 0xd4 +#define KS_gr_Y 0xd5 +#define KS_gr_F 0xd6 +#define KS_gr_X 0xd7 +#define KS_gr_C 0xd8 +#define KS_gr_V 0xd9 +#define KS_gr_Id 0xda +#define KS_gr_Yd 0xdb +#define KS_gr_at 0xdc +#define KS_gr_et 0xdd +#define KS_gr_ht 0xde +#define KS_gr_it 0xdf +#define KS_gr_ytd 0xe0 +#define KS_gr_a 0xe1 +#define KS_gr_b 0xe2 +#define KS_gr_g 0xe3 +#define KS_gr_d 0xe4 +#define KS_gr_e 0xe5 +#define KS_gr_z 0xe6 +#define KS_gr_h 0xe7 +#define KS_gr_u 0xe8 +#define KS_gr_i 0xe9 +#define KS_gr_k 0xea +#define KS_gr_l 0xeb +#define KS_gr_m 0xec +#define KS_gr_n 0xed +#define KS_gr_j 0xee +#define KS_gr_o 0xef +#define KS_gr_p 0xf0 +#define KS_gr_r 0xf1 +#define KS_gr_teliko_s 0xf2 +#define KS_gr_s 0xf3 +#define KS_gr_t 0xf4 +#define KS_gr_y 0xf5 +#define KS_gr_f 0xf6 +#define KS_gr_x 0xf7 +#define KS_gr_c 0xf8 +#define KS_gr_v 0xf9 +#define KS_gr_id 0xfa +#define KS_gr_yd 0xfb +#define KS_gr_ot 0xfc +#define KS_gr_yt 0xfd +#define KS_gr_vt 0xfe /* * Group 1 (modifiers) @@ -511,6 +587,7 @@ action(KB_DK, 0, 0x0400, "dk", , "Danish") \ action(KB_FI, 0, 0x0900, "fi", , "Finnish") \ action(KB_FR, 0, 0x0600, "fr", , "French") \ action(KB_DE, KB_NODEAD,0x0300, "de",".nodead", "German") \ +action(KB_GR, 0, 0x1400, "gr", , "Greek") \ action(KB_HU, 0, 0x0c00, "hu", , "Hungarian") \ action(KB_IT, 0, 0x0500, "it", , "Italian") \ action(KB_JP, 0, 0x0800, "jp", , "Japanese") \ @@ -527,7 +604,7 @@ action(KB_UA, 0, 0x1200, "ua", , "Ukrainian") /* Define all the KB_xx numeric values using above table */ #define KBF_ENUM(tag, tagf, value, cc, ccf, country) tag=value, -enum { KB_ENC_FUN(KBF_ENUM) KB_NEXT=0x1400 }; +enum { KB_ENC_FUN(KBF_ENUM) KB_NEXT=0x1500 }; /* Define list of KB_xxx and country codes for array initialisation */ #define KBF_ENCTAB(tag, tagf, value, cc, ccf, country) { tag, cc },