X-Git-Url: http://git.shiar.net/sheet.git/blobdiff_plain/0eb0af3c6f7b6dda01f5de21de11732ab9cb0cc8..HEAD:/tools/mkxkeysymdef diff --git a/tools/mkxkeysymdef b/tools/mkxkeysymdef index e7d7690..cecf9d4 100755 --- a/tools/mkxkeysymdef +++ b/tools/mkxkeysymdef @@ -2,19 +2,21 @@ use 5.014; use warnings; use utf8; -use re '/msx'; +use re '/mnsx'; use JSON; -our $VERSION = '1.00'; +our $VERSION = '1.01'; -my %keysym; +my (%keysym, %keyval); while (readline) { m{ \A [#]define[ ]XK_ (?[a-zA-Z_0-9]+) \h+ 0x(?[0-9a-fA-F]+) - \h* [/][*] [\h(] U[+] (?[0-9A-F]{4,6}) + ( \h* [/][*] [\h(] U[+] (?[0-9A-F]{4,6}) )? } or next; - $keysym{ $+{name} } = chr hex $+{unicode}; + my $cp = $+{unicode} // $keyval{ $+{value} } or next; + $keysym{ $+{name} } = chr hex $cp; + $keyval{ $+{value} } = $cp; } print JSON->new->ascii->canonical->indent->encode(\%keysym);