Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2776741imm; Sun, 3 Jun 2018 11:21:11 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLhoIye4FafFDJk1Fn00qe06Ivn65LUe0VB6SE9j2y3Wjq+Yb47Gmp2UX9L1rZodg9aVDx5 X-Received: by 2002:a17:902:42a3:: with SMTP id h32-v6mr19069140pld.72.1528050070943; Sun, 03 Jun 2018 11:21:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528050070; cv=none; d=google.com; s=arc-20160816; b=QoFl1YWhH6FyNZT6Jv73CCMXiH+JBxBmoKLoVCejqzYJ4DaCWq5hr4fE0HNpXEEXUw 98ccADxqZARZCbsmY58foZpIawOMBVrx4y0wWb5M4HYOS+A0i1K9pFoPdakMu+PvZ3Cj RrrwVLcmR7xjpgiha+rO4T2LzPMzvUYvOZ4wAGGPEXQ6uYo4Ej4MipMUKDtkT+FGoNw+ +mAU1/rnen1CWJ1iGjplrp9cUC2zVV+Nj9QefzSs5Gv/53QjaD0+uMbIvDEAg2EtOXeU IiyZvfMhfdJEZXJ+3ryV3NAA5ZgZUShoAPqQk4k0DIfPS8uDr9ie0+CIKWru71MBvazy BnjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:organization :content-disposition:mime-version:mail-followup-to:message-id :subject:cc:to:from:date:arc-authentication-results; bh=JLfHFg7pUlww1g7Sz+MGm0a1jla1ijt7+FhKgZRttx4=; b=f/N0yDTtkUWpBTDDrYXW3EIhDYzHEYP78PPFhkEvP3LzsNEj6uK3Wt8FzNc1OyWOZo dbutWyxWYZICJg3m5wXWryp82d6QnJuRHd02JJW+JHz930cNoCmTxjZVHErFthhFIGC7 0jZ2lf211gjEUaaoqPTUNpCNlMLGH8aC/pH+WsW3fz5b9NgIWJK+xZ/iJLrUYRl4CANN tJjer56UztLhAaLU1cgXDSsQjsBHQQCNt8WOlyjXmhxVBd4E0zAIpKH5uZ+F8AZKZO6f hgt3WIF2bWo5p6j5uiYL3+RBxKtHg+ZDTl3/iRvjd3v+8nu9+siYxpMOj2exaUvBaz0/ xYxA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k5-v6si4606616pgn.258.2018.06.03.11.20.56; Sun, 03 Jun 2018 11:21:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751373AbeFCSTD (ORCPT + 99 others); Sun, 3 Jun 2018 14:19:03 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:33048 "EHLO hera.aquilenet.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750952AbeFCSTC (ORCPT ); Sun, 3 Jun 2018 14:19:02 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 813FDA72; Sun, 3 Jun 2018 20:19:00 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K6F8dVwFZYM6; Sun, 3 Jun 2018 20:18:59 +0200 (CEST) Received: from var.youpi.perso.aquilenet.fr (static-176-158-111-12.ftth.abo.bbox.fr [176.158.111.12]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 7E2D3485; Sun, 3 Jun 2018 20:18:59 +0200 (CEST) Received: from samy by var.youpi.perso.aquilenet.fr with local (Exim 4.91) (envelope-from ) id 1fPXak-0005CP-H1; Sun, 03 Jun 2018 20:18:58 +0200 Date: Sun, 3 Jun 2018 20:18:58 +0200 From: Samuel Thibault To: Greg Kroah-Hartman , Jiri Slaby , Dmitry Torokhov Cc: linux-kernel@vger.kernel.org, Anton Zinoviev Subject: [PATCH] kbd: complete dead keys definitions Message-ID: <20180603181858.dtyhhmb7f43cqg3d@var.youpi.perso.aquilenet.fr> Mail-Followup-To: Samuel Thibault , Greg Kroah-Hartman , Jiri Slaby , Dmitry Torokhov , linux-kernel@vger.kernel.org, Anton Zinoviev MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Organization: I am not organized User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 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)