Re: [PATCH] kbd: complete dead keys definitions
From: Samuel Thibault
Date: Thu Jun 28 2018 - 18:27:05 EST
Hello,
Ping?
Samuel
Samuel Thibault, le dim. 03 juin 2018 20:18:58 +0200, a ecrit:
> 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 <samuel.thibault@xxxxxxxxxxxx>
>
> Index: linux-4.15/drivers/s390/char/keyboard.c
> ===================================================================
> --- linux-4.15.orig/drivers/s390/char/keyboard.c
> +++ linux-4.15/drivers/s390/char/keyboard.c
> @@ -39,8 +39,34 @@ static const int kbd_max_vals[] = {
> };
> static const int KBD_NR_TYPES = ARRAY_SIZE(kbd_max_vals);
>
> -static unsigned char ret_diacr[NR_DEAD] = {
> - '`', '\'', '^', '~', '"', ','
> +static const unsigned char ret_diacr[NR_DEAD] = {
> + '`', /* dead_grave */
> + '\'', /* dead_acute */
> + '^', /* dead_circumflex */
> + '~', /* dead_tilda */
> + '"', /* dead_diaeresis */
> + ',', /* dead_cedilla */
> + '_', /* dead_macron */
> + 'U', /* dead_breve */
> + '.', /* dead_abovedot */
> + '*', /* dead_abovering */
> + '=', /* dead_doubleacute */
> + 'c', /* dead_caron */
> + 'k', /* dead_ogonek */
> + 'i', /* dead_iota */
> + '#', /* dead_voiced_sound */
> + 'o', /* dead_semivoiced_sound */
> + '!', /* dead_belowdot */
> + '?', /* dead_hook */
> + '+', /* dead_horn */
> + '-', /* dead_stroke */
> + ')', /* dead_abovecomma */
> + '(', /* dead_abovereversedcomma */
> + ':', /* dead_doublegrave */
> + 'n', /* dead_invertedbreve */
> + ';', /* dead_belowcomma */
> + '$', /* dead_currency */
> + '@', /* dead_greek */
> };
>
> /*
> Index: linux-4.15/drivers/tty/vt/keyboard.c
> ===================================================================
> --- linux-4.15.orig/drivers/tty/vt/keyboard.c
> +++ linux-4.15/drivers/tty/vt/keyboard.c
> @@ -690,7 +690,35 @@ static void k_dead2(struct vc_data *vc,
> */
> static void k_dead(struct vc_data *vc, unsigned char value, char up_flag)
> {
> - static const unsigned char ret_diacr[NR_DEAD] = {'`', '\'', '^', '~', '"', ',' };
> + static const unsigned char ret_diacr[NR_DEAD] = {
> + '`', /* dead_grave */
> + '\'', /* dead_acute */
> + '^', /* dead_circumflex */
> + '~', /* dead_tilda */
> + '"', /* dead_diaeresis */
> + ',', /* dead_cedilla */
> + '_', /* dead_macron */
> + 'U', /* dead_breve */
> + '.', /* dead_abovedot */
> + '*', /* dead_abovering */
> + '=', /* dead_doubleacute */
> + 'c', /* dead_caron */
> + 'k', /* dead_ogonek */
> + 'i', /* dead_iota */
> + '#', /* dead_voiced_sound */
> + 'o', /* dead_semivoiced_sound */
> + '!', /* dead_belowdot */
> + '?', /* dead_hook */
> + '+', /* dead_horn */
> + '-', /* dead_stroke */
> + ')', /* dead_abovecomma */
> + '(', /* dead_abovereversedcomma */
> + ':', /* dead_doublegrave */
> + 'n', /* dead_invertedbreve */
> + ';', /* dead_belowcomma */
> + '$', /* dead_currency */
> + '@', /* dead_greek */
> + };
>
> k_deadunicode(vc, ret_diacr[value], up_flag);
> }
> Index: linux-4.15/include/uapi/linux/keyboard.h
> ===================================================================
> --- linux-4.15.orig/include/uapi/linux/keyboard.h
> +++ linux-4.15/include/uapi/linux/keyboard.h
> @@ -357,8 +357,29 @@
> #define K_DTILDE K(KT_DEAD,3)
> #define K_DDIERE K(KT_DEAD,4)
> #define K_DCEDIL K(KT_DEAD,5)
> +#define K_DMACRON K(KT_DEAD,6)
> +#define K_DBREVE K(KT_DEAD,7)
> +#define K_DABDOT K(KT_DEAD,8)
> +#define K_DABRING K(KT_DEAD,9)
> +#define K_DDBACUTE K(KT_DEAD,10)
> +#define K_DCARON K(KT_DEAD,11)
> +#define K_DOGONEK K(KT_DEAD,12)
> +#define K_DIOTA K(KT_DEAD,13)
> +#define K_DVOICED K(KT_DEAD,14)
> +#define K_DSEMVOICED K(KT_DEAD,15)
> +#define K_DBEDOT K(KT_DEAD,16)
> +#define K_DHOOK K(KT_DEAD,17)
> +#define K_DHORN K(KT_DEAD,18)
> +#define K_DSTROKE K(KT_DEAD,19)
> +#define K_DABCOMMA K(KT_DEAD,20)
> +#define K_DABREVCOMMA K(KT_DEAD,21)
> +#define K_DDBGRAVE K(KT_DEAD,22)
> +#define K_DINVBREVE K(KT_DEAD,23)
> +#define K_DBECOMMA K(KT_DEAD,24)
> +#define K_DCURRENCY K(KT_DEAD,25)
> +#define K_DGREEK K(KT_DEAD,26)
>
> -#define NR_DEAD 6
> +#define NR_DEAD 27
>
> #define K_DOWN K(KT_CUR,0)
> #define K_LEFT K(KT_CUR,1)