Skip to content

Commit 16777ec

Browse files
sthibaulgregkh
authored andcommitted
kbd: complete dead keys definitions
This completes dead keys definitions for internationalization completeness on the console. The representatives have been chosen coherently with libx11 compose sequences, which avoid symetry conflicts (e.g. there is U with caron, but no c with breve). Signed-off-by: Samuel Thibault <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent c9a104e commit 16777ec

File tree

3 files changed

+79
-4
lines changed

3 files changed

+79
-4
lines changed

drivers/s390/char/keyboard.c

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,34 @@ static const int kbd_max_vals[] = {
3939
};
4040
static const int KBD_NR_TYPES = ARRAY_SIZE(kbd_max_vals);
4141

42-
static unsigned char ret_diacr[NR_DEAD] = {
43-
'`', '\'', '^', '~', '"', ','
42+
static const unsigned char ret_diacr[NR_DEAD] = {
43+
'`', /* dead_grave */
44+
'\'', /* dead_acute */
45+
'^', /* dead_circumflex */
46+
'~', /* dead_tilda */
47+
'"', /* dead_diaeresis */
48+
',', /* dead_cedilla */
49+
'_', /* dead_macron */
50+
'U', /* dead_breve */
51+
'.', /* dead_abovedot */
52+
'*', /* dead_abovering */
53+
'=', /* dead_doubleacute */
54+
'c', /* dead_caron */
55+
'k', /* dead_ogonek */
56+
'i', /* dead_iota */
57+
'#', /* dead_voiced_sound */
58+
'o', /* dead_semivoiced_sound */
59+
'!', /* dead_belowdot */
60+
'?', /* dead_hook */
61+
'+', /* dead_horn */
62+
'-', /* dead_stroke */
63+
')', /* dead_abovecomma */
64+
'(', /* dead_abovereversedcomma */
65+
':', /* dead_doublegrave */
66+
'n', /* dead_invertedbreve */
67+
';', /* dead_belowcomma */
68+
'$', /* dead_currency */
69+
'@', /* dead_greek */
4470
};
4571

4672
/*

drivers/tty/vt/keyboard.c

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,35 @@ static void k_dead2(struct vc_data *vc, unsigned char value, char up_flag)
690690
*/
691691
static void k_dead(struct vc_data *vc, unsigned char value, char up_flag)
692692
{
693-
static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' };
693+
static const unsigned char ret_diacr[NR_DEAD] = {
694+
'`', /* dead_grave */
695+
'\'', /* dead_acute */
696+
'^', /* dead_circumflex */
697+
'~', /* dead_tilda */
698+
'"', /* dead_diaeresis */
699+
',', /* dead_cedilla */
700+
'_', /* dead_macron */
701+
'U', /* dead_breve */
702+
'.', /* dead_abovedot */
703+
'*', /* dead_abovering */
704+
'=', /* dead_doubleacute */
705+
'c', /* dead_caron */
706+
'k', /* dead_ogonek */
707+
'i', /* dead_iota */
708+
'#', /* dead_voiced_sound */
709+
'o', /* dead_semivoiced_sound */
710+
'!', /* dead_belowdot */
711+
'?', /* dead_hook */
712+
'+', /* dead_horn */
713+
'-', /* dead_stroke */
714+
')', /* dead_abovecomma */
715+
'(', /* dead_abovereversedcomma */
716+
':', /* dead_doublegrave */
717+
'n', /* dead_invertedbreve */
718+
';', /* dead_belowcomma */
719+
'$', /* dead_currency */
720+
'@', /* dead_greek */
721+
};
694722

695723
k_deadunicode(vc, ret_diacr[value], up_flag);
696724
}

include/uapi/linux/keyboard.h

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -357,8 +357,29 @@
357357
#define K_DTILDE K(KT_DEAD,3)
358358
#define K_DDIERE K(KT_DEAD,4)
359359
#define K_DCEDIL K(KT_DEAD,5)
360+
#define K_DMACRON K(KT_DEAD,6)
361+
#define K_DBREVE K(KT_DEAD,7)
362+
#define K_DABDOT K(KT_DEAD,8)
363+
#define K_DABRING K(KT_DEAD,9)
364+
#define K_DDBACUTE K(KT_DEAD,10)
365+
#define K_DCARON K(KT_DEAD,11)
366+
#define K_DOGONEK K(KT_DEAD,12)
367+
#define K_DIOTA K(KT_DEAD,13)
368+
#define K_DVOICED K(KT_DEAD,14)
369+
#define K_DSEMVOICED K(KT_DEAD,15)
370+
#define K_DBEDOT K(KT_DEAD,16)
371+
#define K_DHOOK K(KT_DEAD,17)
372+
#define K_DHORN K(KT_DEAD,18)
373+
#define K_DSTROKE K(KT_DEAD,19)
374+
#define K_DABCOMMA K(KT_DEAD,20)
375+
#define K_DABREVCOMMA K(KT_DEAD,21)
376+
#define K_DDBGRAVE K(KT_DEAD,22)
377+
#define K_DINVBREVE K(KT_DEAD,23)
378+
#define K_DBECOMMA K(KT_DEAD,24)
379+
#define K_DCURRENCY K(KT_DEAD,25)
380+
#define K_DGREEK K(KT_DEAD,26)
360381

361-
#define NR_DEAD 6
382+
#define NR_DEAD 27
362383

363384
#define K_DOWN K(KT_CUR,0)
364385
#define K_LEFT K(KT_CUR,1)

0 commit comments

Comments
 (0)