As always, auto-conversion applies in case of XLATE mode (or no KDSKBDIACRUC support). Signed-off-by: Michael Schutte <michi@uiae.at> --- src/loadkeys.y | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/loadkeys.y b/src/loadkeys.y index 64cb8ee..b2ba003 100644 --- a/src/loadkeys.y +++ b/src/loadkeys.y @@ -161,15 +161,16 @@ strline : STRING LITERAL EQUALS STRLITERAL EOL addfunc(kbs_buf); } ; -compline : COMPOSE CCHAR CCHAR TO CCHAR EOL +compline : COMPOSE compsym compsym TO compsym EOL { compose($2, $3, $5); } - | COMPOSE CCHAR CCHAR TO rvalue EOL - { - compose($2, $3, $5); - } ; +compsym : CCHAR + { $$ = $1; } + | UNUMBER + { $$ = $1 ^ 0xf000; } + ; singleline : { mod = 0; } modifiers KEYCODE NUMBER EQUALS rvalue EOL { -- 1.5.6.5
24.07.2009 15:55, Michael Schutte wrote:
> As always, auto-conversion applies in case of XLATE mode (or no
> KDSKBDIACRUC support).
>
> Signed-off-by: Michael Schutte <michi@uiae.at>
> ---
> src/loadkeys.y | 11 ++++++-----
> 1 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/src/loadkeys.y b/src/loadkeys.y
> index 64cb8ee..b2ba003 100644
> --- a/src/loadkeys.y
> +++ b/src/loadkeys.y
> @@ -161,15 +161,16 @@ strline : STRING LITERAL EQUALS STRLITERAL EOL
> addfunc(kbs_buf);
> }
> ;
> -compline : COMPOSE CCHAR CCHAR TO CCHAR EOL
> +compline : COMPOSE compsym compsym TO compsym EOL
> {
> compose($2, $3, $5);
> }
> - | COMPOSE CCHAR CCHAR TO rvalue EOL
> - {
> - compose($2, $3, $5);
> - }
> ;
> +compsym : CCHAR
> + { $$ = $1; }
> + | UNUMBER
> + { $$ = $1 ^ 0xf000; }
> + ;
> singleline : { mod = 0; }
> modifiers KEYCODE NUMBER EQUALS rvalue EOL
> {
You narrowed syntax. I disagree with this incompatibility.
Why you did this ?
At least, three keymaps use Literal:
$ grep -lri '^[[:space:]]*Compose.*to[[:space:]]\+[a-zA-Z][a-zA-Z_0-9]*' *
i386/qwerty/br-latin1-abnt2.map
i386/qwerty/br-latin1-us.map
i386/qwerty/et.map
--
Rgrds, legion
[-- Attachment #1.1: Type: text/plain, Size: 509 bytes --] Hey Alexey, On Wed, Jul 29, 2009 at 02:41:02AM +0400, Alexey Gladkov wrote: > You narrowed syntax. I disagree with this incompatibility. > Why you did this ? > > At least, three keymaps use Literal: > > $ grep -lri '^[[:space:]]*Compose.*to[[:space:]]\+[a-zA-Z][a-zA-Z_0-9]*' * > i386/qwerty/br-latin1-abnt2.map > i386/qwerty/br-latin1-us.map > i386/qwerty/et.map You’re right of course. A corrected version of the patch is attached to this mail. -- Michael Schutte <michi@uiae.at> [-- Attachment #1.2: 0001-Enable-UNUMBERs-in-compose-definitions.patch --] [-- Type: text/x-diff, Size: 1183 bytes --] From 4bf89bb1f47bdf003cb9af47363dd28c3fe82ba2 Mon Sep 17 00:00:00 2001 From: Michael Schutte <michi@uiae.at> Date: Fri, 24 Jul 2009 12:28:27 +0200 Subject: [PATCH] Enable UNUMBERs in compose definitions As always, auto-conversion applies in case of XLATE mode (or no KDSKBDIACRUC support). Signed-off-by: Michael Schutte <michi@uiae.at> --- src/loadkeys.y | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/loadkeys.y b/src/loadkeys.y index c58aa03..6beba09 100644 --- a/src/loadkeys.y +++ b/src/loadkeys.y @@ -169,15 +169,20 @@ strline : STRING LITERAL EQUALS STRLITERAL EOL addfunc(kbs_buf); } ; -compline : COMPOSE CCHAR CCHAR TO CCHAR EOL +compline : COMPOSE compsym compsym TO compsym EOL { compose($2, $3, $5); } - | COMPOSE CCHAR CCHAR TO rvalue EOL + | COMPOSE compsym compsym TO rvalue EOL { compose($2, $3, $5); } ; +compsym : CCHAR + { $$ = $1; } + | UNUMBER + { $$ = $1 ^ 0xf000; } + ; singleline : { mod = 0; } modifiers KEYCODE NUMBER EQUALS rvalue EOL { -- 1.5.6.5 [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 489 bytes --]
On 29.07.2009 11:55, Michael Schutte wrote:
> You’re right of course. A corrected version of the patch is attached to
> this mail.
You added UNUMBER to CCHAR for COMPOSE.
Can you explain your patch in more detail?
--
Rgrds, legion
[-- Attachment #1: Type: text/plain, Size: 832 bytes --] Hi, On Thu, Jul 30, 2009 at 03:27:42PM +0400, Alexey Gladkov wrote: > You added UNUMBER to CCHAR for COMPOSE. > > Can you explain your patch in more detail? Sure! Since 18eadfe…, loadkeys supports the composition of two Unicode keysyms to another Unicode keysym. Whereas the resulting char could already be specified as U+…, diacr and base had to be given as 8-bit characters, which is ugly with today’s Unicode support. Since it isn’t realistic to make keymaps capable of UTF-8, I was asked by a Debian developer to at least make it possible to specify Unicode codepoints. rvalue is unsuitable at this point (because it does some trickery with KT_LATIN vs. KT_LETTER which is not applicable here), I decided to add this to a new expression just for compose. -- Michael Schutte <michi@uiae.at> [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 489 bytes --]
On 30.07.2009 15:39, Michael Schutte wrote:
> Since 18eadfe…, loadkeys supports the composition of two Unicode keysyms
> to another Unicode keysym. Whereas the resulting char could already be
> specified as U+…, diacr and base had to be given as 8-bit characters,
> which is ugly with today’s Unicode support. Since it isn’t realistic to
> make keymaps capable of UTF-8, I was asked by a Debian developer to at
> least make it possible to specify Unicode codepoints. rvalue is
> unsuitable at this point (because it does some trickery with KT_LATIN
> vs. KT_LETTER which is not applicable here), I decided to add this to a
> new expression just for compose.
Now everything is clear. If you do not mind, I will add this
description in the comment.
--
Rgrds, legion
[-- Attachment #1: Type: text/plain, Size: 928 bytes --] On Thu, Jul 30, 2009 at 04:17:48PM +0400, Alexey Gladkov wrote: > On 30.07.2009 15:39, Michael Schutte wrote: > > Since 18eadfe…, loadkeys supports the composition of two Unicode keysyms > > to another Unicode keysym. Whereas the resulting char could already be > > specified as U+…, diacr and base had to be given as 8-bit characters, > > which is ugly with today’s Unicode support. Since it isn’t realistic to > > make keymaps capable of UTF-8, I was asked by a Debian developer to at > > least make it possible to specify Unicode codepoints. rvalue is > > unsuitable at this point (because it does some trickery with KT_LATIN > > vs. KT_LETTER which is not applicable here), I decided to add this to a > > new expression just for compose. > > Now everything is clear. If you do not mind, I will add this > description in the comment. Please go ahead! :-) -- Michael Schutte <michi@uiae.at> [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 489 bytes --]
On 30.07.2009 16:36, Michael Schutte wrote:
> Please go ahead! :-)
Applied.
--
Rgrds, legion