5 my $dckeysymsfile = "dckeysyms.h";
8 open DCKB, "<$dckeysymsfile" || die "Unable to open keysym file $dckeysymsfile";
10 if( /^#define\s+DCKB_([^ ]*)/ ) {
11 $dcsyms{$1} = "DCKB_$1";
19 my ($val, $sym) = split /\s+/;
20 $ival = POSIX::strtol($val,0);
25 print "/**\n * $name keyboard map autogenerated by genkeymap.pl\n */\n\n";
27 print "const gchar *${name}_keysyms_by_keycode[128] = { ";
28 for( $i=0; $i < 128; $i++ ) {
29 if( $i != 0 ) { print ", "; }
30 if( defined($hash{$i}) ) {
31 print "\"$hash{$i}\"";
38 print "const uint16_t ${name}_keycode_to_dckeysym[128] = { ";
39 for( $i=0; $i<128; $i++ ) {
40 if( $i != 0 ) { print ", "; }
41 if( defined($hash{$i}) && $dcsyms{$hash{$i}} ) {
42 print $dcsyms{$hash{$i}};
49 my @keys = sort {uc($a) cmp uc($b)} keys %rhash;
50 print "#define ${name}_keysym_count " . ($#keys+1) . "\n";
51 print "struct ${name}_keymap_struct {\n const gchar *name;\n uint16_t keycode;\n};\n\n";
52 print "struct ${name}_keymap_struct ${name}_keysyms[] = { ";
53 foreach my $keysym (@keys) {
54 print "{\"$keysym\", $rhash{$keysym} }, ";
56 print "{NULL,-1} };\n\n";
.