xkeysymtounicodetablegen.rb
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 06 Sep 2017 10:04:18 +0200
branchjv
changeset 8180 25149dfd68e0
parent 8038 c7cab63f9ec9
child 8420 76e39223f5ab
permissions -rwxr-xr-x
Build files: removed a bunch of make rules for long-dead unsupported systems ...in order to unify and simplify the build. If a need to support this ancient systems arose, these hacks may ni longer be needed (due to new versions of tools) or the hacks would have to be written again (better) or retrieved from SCM (worse). Time will show.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8038
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
#!/usr/bin/env ruby
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
# 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
#  Copyright (c) 2017-now Jan Vrany
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
#  
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
#  Permission is hereby granted, free of charge, to any person obtaining
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
#  a copy of this software and associated documentation files (the
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
#  "Software"), to deal in the Software without restriction, including
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
#  without limitation the rights to use, copy, modify, merge, publish,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
#  distribute, sublicense, and/or sell copies of the Software, and to
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
#  permit persons to whom the Software is furnished to do so, subject to
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
#  the following conditions:
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
#  
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
#  The above copyright notice and this permission notice shall be
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
#  included in all copies or substantial portions of the Software.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
#  
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
#  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
#  MeERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
#  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
#  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
#  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
#  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
#
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
#
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
# A quick and dirty generator of character lookup table used
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
# by XKeysymToUnicode(). 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
#
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
# Usage: 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
#
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
#   ruby xkeysymtounicodetablegen.rb > xkeysymtounicodetable.h
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
#
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
KEYSYMDEF_H = '/usr/include/X11/keysymdef.h'
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
KEYSYMDEF_MATCHER = /^#define (XK_[A-Za-z_]+)+\ +0x([0-9A-Fa-f]+)  \/\* U\+([0-9A-Fa-f]+) (.+) \*\/$/
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
KEYSYM_DIRECT_LOW_NAME = "XK_space"
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
keysyms = []
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
keysym_direct_low = nil
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
keysym_direct_high = nil
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
class KeySym
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
  attr_accessor :x_code, :x_name, :u_code, :u_name
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
  def initialize(xcode, xname, ucode, uname) 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
    @x_code = xcode
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
    @x_name = xname
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    @u_code = ucode
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
    @u_name = uname
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
  end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
  def to_s
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
    return "#define #{x_name} 0x#{x_code.to_s(16)} /* U+#{u_code.to_s(16)} #{u_name} */"
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
  end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
File.open(KEYSYMDEF_H).each do | line |
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
  m = line.match(KEYSYMDEF_MATCHER)
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
  if m then
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    x_name, x_code, u_code, u_name = m.captures
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
    keysym = KeySym.new(x_code.to_i(16), x_name, u_code.to_i(16), u_name)    
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    if keysym.x_code != 0 then
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
      keysyms << keysym
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
      if keysym.x_name == KEYSYM_DIRECT_LOW_NAME then
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
        keysym_direct_low = keysym
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
        keysym_direct_high = keysym
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
      end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
  end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
keysyms.sort! { | a, b | a.x_code <=> b.x_code }
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
begin
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
  i = keysyms.index(keysym_direct_low) + 1
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
  while (true)
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    keysym = keysyms[i]
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    i = i + 1
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    if (keysym.x_code == keysym.u_code && keysym.x_code >= keysym_direct_high.x_code) then
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
      keysym_direct_high = keysym      
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    else
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
      break
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
    end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
  end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
print <<-end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
/* 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
 * Automatically generated - do not edit! 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
 */
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
/* 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
 * Copyright (c) 2017-now Jan Vrany
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
 * 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
 * Permission is hereby granted, free of charge, to any person obtaining
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
 * a copy of this software and associated documentation files (the
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
 * "Software"), to deal in the Software without restriction, including
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
 * without limitation the rights to use, copy, modify, merge, publish,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
 * distribute, sublicense, and/or sell copies of the Software, and to
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
 * permit persons to whom the Software is furnished to do so, subject to
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
 * the following conditions:
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
 * 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
 * The above copyright notice and this permission notice shall be
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
 * included in all copies or substantial portions of the Software.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
 * 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
 * MeERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
 */
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
/* 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
 * This header contain table definitions for XKeysymToUnicode() function. 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
 *
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
 * Automatically generated by `xkeysymtounicodetablegen.rb` from `keysymdef.h`.
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
 */
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
#ifndef _XKEYSYMTOUNICODETABLE_H_
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   123
#define _XKEYSYMTOUNICODETABLE_H_
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
#include <stdint.h>
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
#include <X11/X.h>
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
#include <X11/keysym.h>
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   128
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
#define XKEYSYMTOUNICODE_DIRECT_LO 0x#{keysym_direct_low.x_code.to_s(16)} /* #{keysym_direct_low.x_name}, #{keysym_direct_low.u_name} */
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
#define XKEYSYMTOUNICODE_DIRECT_HI 0x#{keysym_direct_high.x_code.to_s(16)} /* #{keysym_direct_high.x_name}, #{keysym_direct_high.u_name} */
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
typedef struct _xkeysymtounicode_table_entry {
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
  KeySym keysym;
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
  uint16_t codepoint;
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
} xkeysymtounicode_table_entry_t;
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
static const xkeysymtounicode_table_entry_t 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
xkeysymtounicode_table[] = {
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
keysyms_size = 0
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
keysyms.each do | keysym | 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
  if keysym.x_code < keysym_direct_low.x_code || keysym.x_code > keysym_direct_high.x_code
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    keysyms_size = keysyms_size + 1 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    print "    { 0x#{keysym.x_code.to_s(16)}, 0x#{keysym.u_code.to_s(16)} }, /* #{keysym.x_name}, #{keysym.u_name} */\n"
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
  end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
print "    { 0, 0 } /* -- terminator -- */\n"
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
print "};\n"
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   151
print <<-end
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
static const int 
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
xkeysymtounicode_table_size = #{keysyms_size};
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
#endif // _XKEYSYMTOUNICODETABLE_H_
c7cab63f9ec9 X11: translate national characters early in X11 event processing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
end