git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
keyboard/altgr/index: label modes by description character.
[sheet.git]
/
tools
/
mkxkeysymdef
diff --git
a/tools/mkxkeysymdef
b/tools/mkxkeysymdef
index e7d7690af196d30e768040053b9e614c21722030..cecf9d438059e7e93ba7384f1b57a71a5e57c199 100755
(executable)
--- a/
tools/mkxkeysymdef
+++ b/
tools/mkxkeysymdef
@@
-2,19
+2,21
@@
use 5.014;
use warnings;
use utf8;
use 5.014;
use warnings;
use utf8;
-use re '/msx';
+use re '/m
n
sx';
use JSON;
use JSON;
-our $VERSION = '1.0
0
';
+our $VERSION = '1.0
1
';
-my
%keysym
;
+my
(%keysym, %keyval)
;
while (readline) {
m{
\A [#]define[ ]XK_ (?<name>[a-zA-Z_0-9]+)
\h+ 0x(?<value>[0-9a-fA-F]+)
while (readline) {
m{
\A [#]define[ ]XK_ (?<name>[a-zA-Z_0-9]+)
\h+ 0x(?<value>[0-9a-fA-F]+)
- \h* [/][*] [\h(] U[+] (?<unicode>[0-9A-F]{4,6})
+ ( \h* [/][*] [\h(] U[+] (?<unicode>[0-9A-F]{4,6}) )?
} or next;
} 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);
}
print JSON->new->ascii->canonical->indent->encode(\%keysym);