Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 846467
Collapse All | Expand All

(-)a/meson.build (-3 / +3 lines)
Lines 133-142 gtk_vnc_version_check_flags = gvnc_version_check_flags + [ Link Here
133
  '-DGDK_VERSION_MAX_ALLOWED=@0@'.format(gtk_min_version_symbol),
133
  '-DGDK_VERSION_MAX_ALLOWED=@0@'.format(gtk_min_version_symbol),
134
]
134
]
135
135
136
subproject('keycodemapdb')
136
keycodemapdb = subproject('keycodemapdb')
137
137
138
keymapgen = files('subprojects/keycodemapdb/tools/keymap-gen')
138
keymapgen = find_program('keymap-gen')
139
keymapcsv = files('subprojects/keycodemapdb/data/keymaps.csv')
139
keymapcsv = keycodemapdb.get_variable('keymaps_csv')
140
140
141
141
142
gnome = import('gnome')
142
gnome = import('gnome')
(-)a/src/meson.build (-1 / +2 lines)
Lines 336-344 foreach keymap: keymaps Link Here
336
  cmd = [
336
  cmd = [
337
    python,
337
    python,
338
    keymapgen,
338
    keymapgen,
339
    'code-map',
339
    '--lang', 'glib2',
340
    '--lang', 'glib2',
340
    '--varname', varname,
341
    '--varname', varname,
341
    'code-map', keymapcsv, keymap, 'qnum'
342
    keymapcsv, keymap, 'qnum'
342
  ]
343
  ]
343
  gtk_vnc_sources += custom_target(
344
  gtk_vnc_sources += custom_target(
344
    target,
345
    target,
(-)a/subprojects/keycodemapdb/meson.build (-1 / +6 lines)
Line 1 Link Here
1
project('keycodemapdb')
1
project('keycodemapdb', meson_version: '>=0.46.0')
2
3
keymap_gen = find_program('tools/keymap-gen')
4
meson.override_find_program('keymap-gen', keymap_gen)
5
6
keymaps_csv = files('data/keymaps.csv')
(-)a/subprojects/keycodemapdb.old/data/keymaps.csv (-16 / +18 lines)
Lines 144-162 Link Here
144
KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDL,kp_decimal,0x32,0x41
144
KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDL,kp_decimal,0x32,0x41
145
KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDC,kp_decimal,0x32,0x41
145
KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,0x53,0x71,0x71,99,VK_DECIMAL,0x6e,83,83,XK_KP_Decimal,0xffae,NumpadDecimal,KPDC,kp_decimal,0x32,0x41
146
,84,,,0x54,,,,,,,,,,,,,,
146
,84,,,0x54,,,,,,,,,,,,,,
147
KEY_ZENKAKUHANKAKU,85,,,0x76,0x5f,,148,,,,,,,Lang5,HZTG,,,
147
KEY_ZENKAKUHANKAKU,85,,,0x76,0x5f,,148,,,,,XK_Zenkaku_Hankaku,0xff2a,Lang5,HZTG,,,
148
KEY_102ND,86,,,0x56,0x61,0x13,100,VK_OEM_102,0xe1,86,86,,,IntlBackslash,LSGT,less,0x7c,
148
KEY_102ND,86,,,0x56,0x61,0x13,100,VK_OEM_102,0xe2,86,86,XK_backslash,0x005c,IntlBackslash,LSGT,less,0x7c,
149
KEY_F11,87,F11,0x67,0x57,0x78,0x56,68,VK_F11,0x7a,87,87,XK_F11,0xffc8,F11,FK11,f11,0x09,0x67
149
KEY_F11,87,F11,0x67,0x57,0x78,0x56,68,VK_F11,0x7a,87,87,XK_F11,0xffc8,F11,FK11,f11,0x09,0x67
150
KEY_F12,88,F12,0x6f,0x58,0x07,0x5e,69,VK_F12,0x7b,88,88,XK_F12,0xffc9,F12,FK12,f12,0x0b,0x6f
150
KEY_F12,88,F12,0x6f,0x58,0x07,0x5e,69,VK_F12,0x7b,88,88,XK_F12,0xffc9,F12,FK12,f12,0x0b,0x6f
151
KEY_RO,89,,,0x73,0x51,,135,,,,,,,IntlRo,AB11,ro,,
151
KEY_RO,89,JIS_Underscore,0x5e,0x73,0x51,,135,VK_OEM_102,0xe2,0xcb,0x73,XK_underscore,0x005f,IntlRo,AB11,ro,,
152
KEY_KATAKANA,90,JIS_Kana,0x68,0x78,0x63,,146,VK_KANA,0x15,,,,,Katakana,KATA,,,
152
KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,XK_Katakana,0xff26,Katakana,KATA,,,
153
KEY_KATAKANA,90,JIS_Kana,0x68,0x78,0x63,,146,VK_KANA,0x15,,,,,Lang3,KATA,,,
153
KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,XK_Katakana,0xff26,Lang3,KATA,,,
154
KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Hiragana,HIRA,hiragana,,
154
KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,XK_Hiragana,0xff25,Hiragana,HIRA,hiragana,,
155
KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Lang4,HIRA,hiragana,,
155
KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,XK_Hiragana,0xff25,Lang4,HIRA,hiragana,,
156
KEY_HENKAN,92,,,0x79,0x64,0x86,138,,,,,,,Convert,HENK,henkan,,
156
KEY_HENKAN,92,,,0x79,0x64,0x86,138,VK_CONVERT,0x1c,0x79,0x79,XK_Henkan,0xff23,Convert,HENK,henkan,,
157
KEY_KATAKANAHIRAGANA,93,,,0x70,0x13,0x87,136,,,0xc8,0xc8,,,KanaMode,HKTG,katakanahiragana,,
157
KEY_KATAKANAHIRAGANA,93,,,0x70,0x13,0x87,136,VK_OEM_COPY,0xf2,0xc8,0x70,XK_Hiragana_Katakana,0xff27,KanaMode,HKTG,katakanahiragana,,
158
KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,NFER,muhenkan,,
158
KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,VK_NONCONVERT,0x1d,0x7b,0x7b,XK_Muhenkan,0xff22,NonConvert,NFER,muhenkan,,
159
KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,MUHE,muhenkan,,
159
KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,VK_NONCONVERT,0x1d,0x7b,0x7b,XK_Muhenkan,0xff22,NonConvert,MUHE,muhenkan,,
160
KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,KPSP,,,
160
KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,KPSP,,,
161
KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,JPCM,,,
161
KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,JPCM,,,
162
KEY_KPENTER,96,ANSI_KeypadEnter,0x4c,0xe01c,0xe05a,0x79,88,,,0x64,0x64,XK_KP_Enter,0xff8d,NumpadEnter,KPEN,kp_enter,0x5a,0x4c
162
KEY_KPENTER,96,ANSI_KeypadEnter,0x4c,0xe01c,0xe05a,0x79,88,,,0x64,0x64,XK_KP_Enter,0xff8d,NumpadEnter,KPEN,kp_enter,0x5a,0x4c
Lines 192-200 Link Here
192
KEY_SCALE,120,,,0xe00b,,,,,,,,,,,I128,,,
192
KEY_SCALE,120,,,0xe00b,,,,,,,,,,,I128,,,
193
KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,KPCO,kp_comma,,
193
KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,KPCO,kp_comma,,
194
KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,I129,,,
194
KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,I129,,,
195
KEY_HANGEUL,122,,,,,,144,VK_HANGEUL,0x15,,,,,,HNGL,,,
195
KEY_HANGEUL,122,JIS_Kana,0x68,0x72,,,144,VK_HANGEUL,0x15,,0x71,,,Lang1,HNGL,lang1,,
196
KEY_HANJA,123,,,0xe00d,,,145,VK_HANJA,0x19,,,,,,HJCV,,,
196
KEY_HANGEUL,122,JIS_Kana,0x68,0x72,,,144,VK_IME_ON,0x16,,0x71,,,Lang1,HNGL,lang1,,
197
KEY_YEN,124,JIS_Yen,0x5d,0x7d,0x6a,0x5d,137,,,0x7d,0x7d,,,IntlYen,AE13,yen,,
197
KEY_HANJA,123,JIS_Eisu,0x66,0x71,,,145,VK_HANJA,0x19,,0x72,,,Lang2,HJCV,lang2,,
198
KEY_HANJA,123,JIS_Eisu,0x66,0x71,,,145,VK_IME_OFF,0x1A,,0x72,,,Lang2,HJCV,lang2,,
199
KEY_YEN,124,JIS_Yen,0x5d,0x7d,0x6a,0x5d,137,VK_OEM_5,0xdc,0x7d,0x7d,,,IntlYen,AE13,yen,,
198
KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LMTA,meta_l,0x78,0x37
200
KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LMTA,meta_l,0x78,0x37
199
KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LWIN,meta_l,0x78,0x37
201
KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LWIN,meta_l,0x78,0x37
200
KEY_RIGHTMETA,126,RightCommand,0x36,0xe05c,0xe027,0x8c,231,VK_RWIN,0x5c,0x6c,0x6c,XK_Meta_R,0xffe8,MetaRight,RMTA,meta_r,0x7a,0x37
202
KEY_RIGHTMETA,126,RightCommand,0x36,0xe05c,0xe027,0x8c,231,VK_RWIN,0x5c,0x6c,0x6c,XK_Meta_R,0xffe8,MetaRight,RMTA,meta_r,0x7a,0x37
Lines 250-257 Link Here
250
KEY_CONFIG,171,,,0xe001,,,,,,,,,,,I179,,,
252
KEY_CONFIG,171,,,0xe001,,,,,,,,,,,I179,,,
251
KEY_HOMEPAGE,172,,,0xe032,0xe03a,0x97,,VK_BROWSER_HOME,0xac,,,,,BrowserHome,I180,ac_home,,
253
KEY_HOMEPAGE,172,,,0xe032,0xe03a,0x97,,VK_BROWSER_HOME,0xac,,,,,BrowserHome,I180,ac_home,,
252
KEY_REFRESH,173,,,0xe067,0xe020,,250,VK_BROWSER_REFRESH,0xa8,,,,,BrowserRefresh,I181,ac_refresh,,
254
KEY_REFRESH,173,,,0xe067,0xe020,,250,VK_BROWSER_REFRESH,0xa8,,,,,BrowserRefresh,I181,ac_refresh,,
253
KEY_EXIT,174,,,0x71,,,,,,,,,,,I182,,,
255
KEY_EXIT,174,,,,,,,,,,,,,,I182,,,
254
KEY_MOVE,175,,,0x72,,,,,,,,,,,I183,,,
256
KEY_MOVE,175,,,,,,,,,,,,,,I183,,,
255
KEY_EDIT,176,,,0xe008,,,247,,,,,,,,I184,,,
257
KEY_EDIT,176,,,0xe008,,,247,,,,,,,,I184,,,
256
KEY_SCROLLUP,177,,,0x75,,,245,,,,,,,,I185,,,
258
KEY_SCROLLUP,177,,,0x75,,,245,,,,,,,,I185,,,
257
KEY_SCROLLDOWN,178,,,0xe00f,,,246,,,,,,,,I186,,,
259
KEY_SCROLLDOWN,178,,,0xe00f,,,246,,,,,,,,I186,,,
(-)a/subprojects/keycodemapdb.old/README (+1 lines)
Lines 85-90 Link Here
85
 - GLib2 (standard C, but with GLib2 data types)
85
 - GLib2 (standard C, but with GLib2 data types)
86
 - Python
86
 - Python
87
 - Perl
87
 - Perl
88
 - Rust
88
89
89
90
90
Usage
91
Usage
(-)a/subprojects/keycodemapdb.old/tests/Makefile (-49 / +70 lines)
Lines 1-4 Link Here
1
TESTS := stdc stdc++ python2 python3 javascript
1
TESTS := stdc stdc++ python2 python3 javascript rust
2
2
3
check: $(TESTS)
3
check: $(TESTS)
4
	@set -e; for fn in $(TESTS); do \
4
	@set -e; for fn in $(TESTS); do \
Lines 19-55 Link Here
19
             osx.h osx.c osx_name.h osx_name.c
19
             osx.h osx.c osx_name.h osx_name.c
20
	$(CC) -Wall -o $@ $(filter %.c, $^)
20
	$(CC) -Wall -o $@ $(filter %.c, $^)
21
osx2win32.c: $(SOURCES)
21
osx2win32.c: $(SOURCES)
22
	$(GEN) --lang stdc code-map $(DATA) osx win32 > $@
22
	$(GEN) code-map --lang stdc $(DATA) osx win32 > $@
23
osx2win32.h: $(SOURCES)
23
osx2win32.h: $(SOURCES)
24
	$(GEN) --lang stdc-header code-map $(DATA) osx win32 > $@
24
	$(GEN) code-map --lang stdc-header $(DATA) osx win32 > $@
25
osx2win32_name.c: $(SOURCES)
25
osx2win32_name.c: $(SOURCES)
26
	$(GEN) --lang stdc name-map $(DATA) osx win32 > $@
26
	$(GEN) name-map --lang stdc $(DATA) osx win32 > $@
27
osx2win32_name.h: $(SOURCES)
27
osx2win32_name.h: $(SOURCES)
28
	$(GEN) --lang stdc-header name-map $(DATA) osx win32 > $@
28
	$(GEN) name-map --lang stdc-header $(DATA) osx win32 > $@
29
osx2xkb.c: $(SOURCES)
29
osx2xkb.c: $(SOURCES)
30
	$(GEN) --lang stdc code-map $(DATA) osx xkb > $@
30
	$(GEN) code-map --lang stdc $(DATA) osx xkb > $@
31
osx2xkb.h: $(SOURCES)
31
osx2xkb.h: $(SOURCES)
32
	$(GEN) --lang stdc-header code-map $(DATA) osx xkb > $@
32
	$(GEN) code-map --lang stdc-header $(DATA) osx xkb > $@
33
osx2xkb_name.c: $(SOURCES)
33
osx2xkb_name.c: $(SOURCES)
34
	$(GEN) --lang stdc name-map $(DATA) osx xkb > $@
34
	$(GEN) name-map --lang stdc $(DATA) osx xkb > $@
35
osx2xkb_name.h: $(SOURCES)
35
osx2xkb_name.h: $(SOURCES)
36
	$(GEN) --lang stdc-header name-map $(DATA) osx xkb > $@
36
	$(GEN) name-map --lang stdc-header $(DATA) osx xkb > $@
37
html2win32.c: $(SOURCES)
37
html2win32.c: $(SOURCES)
38
	$(GEN) --lang stdc code-map $(DATA) html win32 > $@
38
	$(GEN) code-map --lang stdc $(DATA) html win32 > $@
39
html2win32.h: $(SOURCES)
39
html2win32.h: $(SOURCES)
40
	$(GEN) --lang stdc-header code-map $(DATA) html win32 > $@
40
	$(GEN) code-map --lang stdc-header $(DATA) html win32 > $@
41
html2win32_name.c: $(SOURCES)
41
html2win32_name.c: $(SOURCES)
42
	$(GEN) --lang stdc name-map $(DATA) html win32 > $@
42
	$(GEN) name-map --lang stdc $(DATA) html win32 > $@
43
html2win32_name.h: $(SOURCES)
43
html2win32_name.h: $(SOURCES)
44
	$(GEN) --lang stdc-header name-map $(DATA) html win32 > $@
44
	$(GEN) name-map --lang stdc-header $(DATA) html win32 > $@
45
osx.c: $(SOURCES)
45
osx.c: $(SOURCES)
46
	$(GEN) --lang stdc code-table $(DATA) osx > $@
46
	$(GEN) code-table --lang stdc $(DATA) osx > $@
47
osx.h: $(SOURCES)
47
osx.h: $(SOURCES)
48
	$(GEN) --lang stdc-header code-table $(DATA) osx > $@
48
	$(GEN) code-table --lang stdc-header $(DATA) osx > $@
49
osx_name.c: $(SOURCES)
49
osx_name.c: $(SOURCES)
50
	$(GEN) --lang stdc name-table $(DATA) osx > $@
50
	$(GEN) name-table --lang stdc $(DATA) osx > $@
51
osx_name.h: $(SOURCES)
51
osx_name.h: $(SOURCES)
52
	$(GEN) --lang stdc-header name-table $(DATA) osx > $@
52
	$(GEN) name-table --lang stdc-header $(DATA) osx > $@
53
53
54
stdc++: stdc++.cc osx2win32.hh osx2win32.cc osx2win32_name.hh osx2win32_name.cc \
54
stdc++: stdc++.cc osx2win32.hh osx2win32.cc osx2win32_name.hh osx2win32_name.cc \
55
             osx2xkb.hh osx2xkb.cc osx2xkb_name.hh osx2xkb_name.cc \
55
             osx2xkb.hh osx2xkb.cc osx2xkb_name.hh osx2xkb_name.cc \
Lines 57-114 Link Here
57
             osx.hh osx.cc osx_name.hh osx_name.cc
57
             osx.hh osx.cc osx_name.hh osx_name.cc
58
	$(CXX) -Wall -std=c++11 -o $@ $(filter %.cc, $^)
58
	$(CXX) -Wall -std=c++11 -o $@ $(filter %.cc, $^)
59
osx2win32.cc: $(SOURCES)
59
osx2win32.cc: $(SOURCES)
60
	$(GEN) --lang stdc++ code-map $(DATA) osx win32 > $@
60
	$(GEN) code-map --lang stdc++ $(DATA) osx win32 > $@
61
osx2win32.hh: $(SOURCES)
61
osx2win32.hh: $(SOURCES)
62
	$(GEN) --lang stdc++-header code-map $(DATA) osx win32 > $@
62
	$(GEN) code-map --lang stdc++-header $(DATA) osx win32 > $@
63
osx2win32_name.cc: $(SOURCES)
63
osx2win32_name.cc: $(SOURCES)
64
	$(GEN) --lang stdc++ name-map $(DATA) osx win32 > $@
64
	$(GEN) name-map --lang stdc++ $(DATA) osx win32 > $@
65
osx2win32_name.hh: $(SOURCES)
65
osx2win32_name.hh: $(SOURCES)
66
	$(GEN) --lang stdc++-header name-map $(DATA) osx win32 > $@
66
	$(GEN) name-map --lang stdc++-header $(DATA) osx win32 > $@
67
osx2xkb.cc: $(SOURCES)
67
osx2xkb.cc: $(SOURCES)
68
	$(GEN) --lang stdc++ code-map $(DATA) osx xkb > $@
68
	$(GEN) code-map --lang stdc++ $(DATA) osx xkb > $@
69
osx2xkb.hh: $(SOURCES)
69
osx2xkb.hh: $(SOURCES)
70
	$(GEN) --lang stdc++-header code-map $(DATA) osx xkb > $@
70
	$(GEN) code-map --lang stdc++-header $(DATA) osx xkb > $@
71
osx2xkb_name.cc: $(SOURCES)
71
osx2xkb_name.cc: $(SOURCES)
72
	$(GEN) --lang stdc++ name-map $(DATA) osx xkb > $@
72
	$(GEN) name-map --lang stdc++ $(DATA) osx xkb > $@
73
osx2xkb_name.hh: $(SOURCES)
73
osx2xkb_name.hh: $(SOURCES)
74
	$(GEN) --lang stdc++-header name-map $(DATA) osx xkb > $@
74
	$(GEN) name-map --lang stdc++-header $(DATA) osx xkb > $@
75
html2win32.cc: $(SOURCES)
75
html2win32.cc: $(SOURCES)
76
	$(GEN) --lang stdc++ code-map $(DATA) html win32 > $@
76
	$(GEN) code-map --lang stdc++ $(DATA) html win32 > $@
77
html2win32.hh: $(SOURCES)
77
html2win32.hh: $(SOURCES)
78
	$(GEN) --lang stdc++-header code-map $(DATA) html win32 > $@
78
	$(GEN) code-map --lang stdc++-header $(DATA) html win32 > $@
79
html2win32_name.cc: $(SOURCES)
79
html2win32_name.cc: $(SOURCES)
80
	$(GEN) --lang stdc++ name-map $(DATA) html win32 > $@
80
	$(GEN) name-map --lang stdc++ $(DATA) html win32 > $@
81
html2win32_name.hh: $(SOURCES)
81
html2win32_name.hh: $(SOURCES)
82
	$(GEN) --lang stdc++-header name-map $(DATA) html win32 > $@
82
	$(GEN) name-map --lang stdc++-header $(DATA) html win32 > $@
83
osx.cc: $(SOURCES)
83
osx.cc: $(SOURCES)
84
	$(GEN) --lang stdc++ code-table $(DATA) osx > $@
84
	$(GEN) code-table --lang stdc++ $(DATA) osx > $@
85
osx.hh: $(SOURCES)
85
osx.hh: $(SOURCES)
86
	$(GEN) --lang stdc++-header code-table $(DATA) osx > $@
86
	$(GEN) code-table --lang stdc++-header $(DATA) osx > $@
87
osx_name.cc: $(SOURCES)
87
osx_name.cc: $(SOURCES)
88
	$(GEN) --lang stdc++ name-table $(DATA) osx > $@
88
	$(GEN) name-table --lang stdc++ $(DATA) osx > $@
89
osx_name.hh: $(SOURCES)
89
osx_name.hh: $(SOURCES)
90
	$(GEN) --lang stdc++-header name-table $(DATA) osx > $@
90
	$(GEN) name-table --lang stdc++-header $(DATA) osx > $@
91
91
92
python2: osx2win32.py osx2win32_name.py \
92
python2: osx2win32.py osx2win32_name.py \
93
         osx2xkb.py osx2xkb_name.py \
93
         osx2xkb.py osx2xkb_name.py \
94
         html2win32.py html2win32_name.py \
94
         html2win32.py html2win32_name.py \
95
         osx.py osx_name.py
95
         osx.py osx_name.py
96
osx2win32.py: $(SOURCES)
96
osx2win32.py: $(SOURCES)
97
	$(GEN) --lang python2 code-map $(DATA) osx win32 > $@
97
	$(GEN) code-map --lang python2 $(DATA) osx win32 > $@
98
osx2win32_name.py: $(SOURCES)
98
osx2win32_name.py: $(SOURCES)
99
	$(GEN) --lang python2 name-map $(DATA) osx win32 > $@
99
	$(GEN) name-map --lang python2 $(DATA) osx win32 > $@
100
osx2xkb.py: $(SOURCES)
100
osx2xkb.py: $(SOURCES)
101
	$(GEN) --lang python2 code-map $(DATA) osx xkb > $@
101
	$(GEN) code-map --lang python2 $(DATA) osx xkb > $@
102
osx2xkb_name.py: $(SOURCES)
102
osx2xkb_name.py: $(SOURCES)
103
	$(GEN) --lang python2 name-map $(DATA) osx xkb > $@
103
	$(GEN) name-map --lang python2 $(DATA) osx xkb > $@
104
html2win32.py: $(SOURCES)
104
html2win32.py: $(SOURCES)
105
	$(GEN) --lang python2 code-map $(DATA) html win32 > $@
105
	$(GEN) code-map --lang python2 $(DATA) html win32 > $@
106
html2win32_name.py: $(SOURCES)
106
html2win32_name.py: $(SOURCES)
107
	$(GEN) --lang python2 name-map $(DATA) html win32 > $@
107
	$(GEN) name-map --lang python2 $(DATA) html win32 > $@
108
osx.py: $(SOURCES)
108
osx.py: $(SOURCES)
109
	$(GEN) --lang python2 code-table $(DATA) osx > $@
109
	$(GEN) code-table --lang python2 $(DATA) osx > $@
110
osx_name.py: $(SOURCES)
110
osx_name.py: $(SOURCES)
111
	$(GEN) --lang python2 name-table $(DATA) osx > $@
111
	$(GEN) name-table --lang python2 $(DATA) osx > $@
112
112
113
javascript: node_modules/babel-core \
113
javascript: node_modules/babel-core \
114
            node_modules/babel-plugin-transform-es2015-modules-commonjs \
114
            node_modules/babel-plugin-transform-es2015-modules-commonjs \
Lines 121-141 Link Here
121
node_modules/babel-plugin-transform-es2015-modules-commonjs:
121
node_modules/babel-plugin-transform-es2015-modules-commonjs:
122
	npm install babel-plugin-transform-es2015-modules-commonjs
122
	npm install babel-plugin-transform-es2015-modules-commonjs
123
osx2win32.js: $(SOURCES)
123
osx2win32.js: $(SOURCES)
124
	$(GEN) --lang js code-map $(DATA) osx win32 > $@
124
	$(GEN) code-map --lang js $(DATA) osx win32 > $@
125
osx2win32_name.js: $(SOURCES)
125
osx2win32_name.js: $(SOURCES)
126
	$(GEN) --lang js name-map $(DATA) osx win32 > $@
126
	$(GEN) name-map --lang js $(DATA) osx win32 > $@
127
osx2xkb.js: $(SOURCES)
127
osx2xkb.js: $(SOURCES)
128
	$(GEN) --lang js code-map $(DATA) osx xkb > $@
128
	$(GEN) code-map --lang js $(DATA) osx xkb > $@
129
osx2xkb_name.js: $(SOURCES)
129
osx2xkb_name.js: $(SOURCES)
130
	$(GEN) --lang js name-map $(DATA) osx xkb > $@
130
	$(GEN) name-map --lang js $(DATA) osx xkb > $@
131
html2win32.js: $(SOURCES)
131
html2win32.js: $(SOURCES)
132
	$(GEN) --lang js code-map $(DATA) html win32 > $@
132
	$(GEN) code-map --lang js $(DATA) html win32 > $@
133
html2win32_name.js: $(SOURCES)
133
html2win32_name.js: $(SOURCES)
134
	$(GEN) --lang js name-map $(DATA) html win32 > $@
134
	$(GEN) name-map --lang js $(DATA) html win32 > $@
135
osx.js: $(SOURCES)
135
osx.js: $(SOURCES)
136
	$(GEN) --lang js code-table $(DATA) osx > $@
136
	$(GEN) code-table --lang js $(DATA) osx > $@
137
osx_name.js: $(SOURCES)
137
osx_name.js: $(SOURCES)
138
	$(GEN) --lang js name-table $(DATA) osx > $@
138
	$(GEN) name-table --lang js $(DATA) osx > $@
139
140
rust: osx2win32.rs osx2win32_name.rs \
141
      osx2xkb.rs osx2xkb_name.rs \
142
      html2win32.rs html2win32_name.rs \
143
      osx.rs osx_name.rs
144
osx2win32.rs: $(SOURCES)
145
	$(GEN) code-map --lang rust $(DATA) osx win32 > $@
146
osx2win32_name.rs: $(SOURCES)
147
	$(GEN) name-map --lang rust $(DATA) osx win32 > $@
148
osx2xkb.rs: $(SOURCES)
149
	$(GEN) code-map --lang rust $(DATA) osx xkb > $@
150
osx2xkb_name.rs: $(SOURCES)
151
	$(GEN) name-map --lang rust $(DATA) osx xkb > $@
152
html2win32.rs: $(SOURCES)
153
	$(GEN) code-map --lang rust $(DATA) html win32 > $@
154
html2win32_name.rs: $(SOURCES)
155
	$(GEN) name-map --lang rust $(DATA) html win32 > $@
156
osx.rs: $(SOURCES)
157
	$(GEN) code-table --lang rust $(DATA) osx > $@
158
osx_name.rs: $(SOURCES)
159
	$(GEN) name-table --lang rust $(DATA) osx > $@
139
160
140
clean:
161
clean:
141
	rm -rf node_modules
162
	rm -rf node_modules
(-)a/subprojects/keycodemapdb.old/tools/keymap-gen (-37 / +171 lines)
Lines 508-514 Link Here
508
    def _array_code_entry(self, value, name):
508
    def _array_code_entry(self, value, name):
509
        raise NotImplementedError()
509
        raise NotImplementedError()
510
510
511
    def generate_name_docs(self, varname, database, mapname):
511
    def generate_name_docs(self, title, subtitle, database, mapname):
512
        if mapname not in database.mapname:
512
        if mapname not in database.mapname:
513
            raise Exception("Unknown map %s, expected one of %s" % (
513
            raise Exception("Unknown map %s, expected one of %s" % (
514
                            mapname, ", ".join(database.mapname.keys())))
514
                            mapname, ", ".join(database.mapname.keys())))
Lines 517-526 Link Here
517
        keys.sort()
517
        keys.sort()
518
        names = [database.mapname[Database.MAP_LINUX].get(key, "unnamed") for key in keys]
518
        names = [database.mapname[Database.MAP_LINUX].get(key, "unnamed") for key in keys]
519
519
520
        if varname is None:
520
        if title is None:
521
            varname = mapname
521
            title = mapname
522
        if subtitle is None:
523
            subtitle = "Docs for %s" % mapname
522
524
523
        self._array_start_name_doc(varname, mapname)
525
        self._array_start_name_doc(title, subtitle, mapname)
524
526
525
        for i in range(len(keys)):
527
        for i in range(len(keys)):
526
            key = keys[i]
528
            key = keys[i]
Lines 530-536 Link Here
530
        self._array_end()
532
        self._array_end()
531
533
532
534
533
    def generate_code_docs(self, varname, database, mapname):
535
    def generate_code_docs(self, title, subtitle, database, mapname):
534
        if mapname not in database.mapfrom:
536
        if mapname not in database.mapfrom:
535
            raise Exception("Unknown map %s, expected one of %s" % (
537
            raise Exception("Unknown map %s, expected one of %s" % (
536
                            mapname, ", ".join(database.mapfrom.keys())))
538
                            mapname, ", ".join(database.mapfrom.keys())))
Lines 545-554 Link Here
545
            names = database.mapname[Database.MAP_LINUX]
547
            names = database.mapname[Database.MAP_LINUX]
546
            namemap = Database.MAP_LINUX
548
            namemap = Database.MAP_LINUX
547
549
548
        if varname is None:
550
        if title is None:
549
            varname = mapname
551
            title = mapname
552
        if subtitle is None:
553
            subtitle = "Docs for %s" % mapname
550
554
551
        self._array_start_code_doc(varname, mapname, namemap)
555
        self._array_start_code_doc(title, subtitle, mapname, namemap)
552
556
553
        for i in range(len(keys)):
557
        for i in range(len(keys)):
554
            key = keys[i]
558
            key = keys[i]
Lines 748-753 Link Here
748
    def __init__(self):
752
    def __init__(self):
749
        super(StdCppHeaderLanguageGenerator, self).__init__("unsigned short", "char *", "unsigned int")
753
        super(StdCppHeaderLanguageGenerator, self).__init__("unsigned short", "char *", "unsigned int")
750
754
755
756
class RustLanguageGenerator(LanguageSrcGenerator):
757
758
    def _boilerplate(self, lines):
759
        print("//")
760
        for line in lines:
761
            print("// %s" % line)
762
        print("//")
763
764
    def _array_start(self, varname, length, defvalue, fromtype, totype):
765
        if fromtype == self.TYPE_ENUM:
766
            raise NotImplementedError("Enums not supported as source in Rust generator")
767
768
        totypename = "&str" if totype == self.TYPE_STRING else "u16"
769
        if fromtype != self.TYPE_STRING:
770
            print("pub static %s: &[%s] = &[" % (varname.upper(), totypename))
771
        else:
772
            print("pub static %s: phf::Map<&str, %s> = phf::phf_map! {" %
773
                  (varname.upper(), totypename))
774
775
    def _array_end(self, fromtype, totype):
776
        if fromtype != self.TYPE_STRING:
777
            print("];")
778
        else:
779
            print("};")
780
781
    def _array_entry(self, index, value, comment, fromtype, totype):
782
        none = "\"\"" if totype == self.TYPE_STRING else "0"
783
        if fromtype == self.TYPE_INT:
784
            if value is None:
785
                print("  %s, // %s" % (none, comment))
786
            elif totype == self.TYPE_INT:
787
                print("  0x%x, // %s" % (value, comment))
788
            elif totype == self.TYPE_ENUM:
789
                print("  %s, // %s" % (value, comment))
790
            else:
791
                print("  \"%s\", // %s" % (value, comment))
792
        else:
793
            if value is None:
794
                print("  \"%s\" => %s, // %s" % (index, none, comment))
795
            elif totype == self.TYPE_INT:
796
                print("  \"%s\" => 0x%x, // %s" % (index, value, comment))
797
            elif totype == self.TYPE_ENUM:
798
                print("  \"%s\" => %s, // %s" % (index, value, comment))
799
            else:
800
                print("  \"%s\" => \"%s\", // %s" % (index, value, comment))
801
802
751
class PythonLanguageGenerator(LanguageSrcGenerator):
803
class PythonLanguageGenerator(LanguageSrcGenerator):
752
804
753
    def _boilerplate(self, lines):
805
    def _boilerplate(self, lines):
Lines 872-881 Link Here
872
            print("# %s" % line)
924
            print("# %s" % line)
873
        print("#")
925
        print("#")
874
926
875
    def _array_start_name_doc(self, varname, namemap):
927
    def _array_start_name_doc(self, title, subtitle, namemap):
876
        print("=head1 NAME")
928
        print("=head1 NAME")
877
        print("")
929
        print("")
878
        print("%s" % varname)
930
        print("%s - %s" % (title, subtitle))
879
        print("")
931
        print("")
880
        print("=head1 DESCRIPTION")
932
        print("=head1 DESCRIPTION")
881
        print("")
933
        print("")
Lines 884-893 Link Here
884
        print("=over 4")
936
        print("=over 4")
885
        print("")
937
        print("")
886
938
887
    def _array_start_code_doc(self, varname, codemap, namemap):
939
    def _array_start_code_doc(self, title, subtitle, codemap, namemap):
888
        print("=head1 NAME")
940
        print("=head1 NAME")
889
        print("")
941
        print("")
890
        print("%s" % varname)
942
        print("%s - %s" % (title, subtitle))
891
        print("")
943
        print("")
892
        print("=head1 DESCRIPTION")
944
        print("=head1 DESCRIPTION")
893
        print("")
945
        print("")
Lines 912-917 Link Here
912
        print("Key name %s" % name)
964
        print("Key name %s" % name)
913
        print("")
965
        print("")
914
966
967
class RSTLanguageGenerator(LanguageDocGenerator):
968
969
    def _boilerplate(self, lines):
970
        print("..")
971
        for line in lines:
972
            print("   %s" % line)
973
        print("")
974
975
    def _array_start_name_doc(self, title, subtitle, namemap):
976
        print("=" * len(title))
977
        print(title)
978
        print("=" * len(title))
979
        print("")
980
        print("-" * len(subtitle))
981
        print(subtitle)
982
        print("-" * len(subtitle))
983
        print("")
984
        print(":Manual section: 7")
985
        print(":Manual group: Virtualization Support")
986
        print("")
987
        print("DESCRIPTION")
988
        print("===========")
989
        print("List of %s key code names, with corresponding key code values" % namemap)
990
        print("")
991
992
    def _array_start_code_doc(self, title, subtitle, codemap, namemap):
993
        print("=" * len(title))
994
        print(title)
995
        print("=" * len(title))
996
        print("")
997
        print("-" * len(subtitle))
998
        print(subtitle)
999
        print("-" * len(subtitle))
1000
        print("")
1001
        print(":Manual section: 7")
1002
        print(":Manual group: Virtualization Support")
1003
        print("")
1004
        print("DESCRIPTION")
1005
        print("===========")
1006
        print("List of %s key code values, with corresponding %s key code names" % (codemap, namemap))
1007
        print("")
1008
1009
    def _array_end(self):
1010
        print("")
1011
1012
    def _array_name_entry(self, value, name):
1013
        print("* %s" % name)
1014
        print("")
1015
        print("  Key value %d (0x%x)" % (value, value))
1016
        print("")
1017
1018
    def _array_code_entry(self, value, name):
1019
        print("* %d (0x%x)" % (value, value))
1020
        print("")
1021
        print("  Key name %s" % name)
1022
        print("")
1023
915
SRC_GENERATORS = {
1024
SRC_GENERATORS = {
916
    "stdc": StdCLanguageGenerator(),
1025
    "stdc": StdCLanguageGenerator(),
917
    "stdc-header": StdCHeaderLanguageGenerator(),
1026
    "stdc-header": StdCHeaderLanguageGenerator(),
Lines 923-941 Link Here
923
    "python3": PythonLanguageGenerator(),
1032
    "python3": PythonLanguageGenerator(),
924
    "perl": PerlLanguageGenerator(),
1033
    "perl": PerlLanguageGenerator(),
925
    "js": JavaScriptLanguageGenerator(),
1034
    "js": JavaScriptLanguageGenerator(),
1035
    "rust": RustLanguageGenerator(),
926
}
1036
}
927
DOC_GENERATORS = {
1037
DOC_GENERATORS = {
928
    "pod": PodLanguageGenerator(),
1038
    "pod": PodLanguageGenerator(),
1039
    "rst": RSTLanguageGenerator(),
929
}
1040
}
930
1041
931
def code_map(args):
1042
def code_map(args):
932
    database = Database()
1043
    database = Database()
933
    database.load(args.keymaps)
1044
    database.load(args.keymaps)
934
1045
935
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1046
    cliargs = ["keymap-gen", "code-map", "--lang=%s" % args.lang]
936
    if args.varname is not None:
1047
    if args.varname is not None:
937
        cliargs.append("--varname=%s" % args.varname)
1048
        cliargs.append("--varname=%s" % args.varname)
938
    cliargs.extend(["code-map", "keymaps.csv", args.frommapname, args.tomapname])
1049
    cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname])
939
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1050
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
940
1051
941
    SRC_GENERATORS[args.lang].generate_code_map(args.varname, database, args.frommapname, args.tomapname)
1052
    SRC_GENERATORS[args.lang].generate_code_map(args.varname, database, args.frommapname, args.tomapname)
Lines 944-953 Link Here
944
    database = Database()
1055
    database = Database()
945
    database.load(args.keymaps)
1056
    database.load(args.keymaps)
946
1057
947
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1058
    cliargs = ["keymap-gen", "code-table", "--lang=%s" % args.lang]
948
    if args.varname is not None:
1059
    if args.varname is not None:
949
        cliargs.append("--varname=%s" % args.varname)
1060
        cliargs.append("--varname=%s" % args.varname)
950
    cliargs.extend(["code-table", "keymaps.csv", args.mapname])
1061
    cliargs.extend(["keymaps.csv", args.mapname])
951
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1062
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
952
1063
953
    SRC_GENERATORS[args.lang].generate_code_table(args.varname, database, args.mapname)
1064
    SRC_GENERATORS[args.lang].generate_code_table(args.varname, database, args.mapname)
Lines 956-965 Link Here
956
    database = Database()
1067
    database = Database()
957
    database.load(args.keymaps)
1068
    database.load(args.keymaps)
958
1069
959
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1070
    cliargs = ["keymap-gen", "name-map", "--lang=%s" % args.lang]
960
    if args.varname is not None:
1071
    if args.varname is not None:
961
        cliargs.append("--varname=%s" % args.varname)
1072
        cliargs.append("--varname=%s" % args.varname)
962
    cliargs.extend(["name-map", "keymaps.csv", args.frommapname, args.tomapname])
1073
    cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname])
963
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1074
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
964
1075
965
    SRC_GENERATORS[args.lang].generate_name_map(args.varname, database, args.frommapname, args.tomapname)
1076
    SRC_GENERATORS[args.lang].generate_name_map(args.varname, database, args.frommapname, args.tomapname)
Lines 969-978 Link Here
969
    database.load(args.keymaps)
1080
    database.load(args.keymaps)
970
1081
971
1082
972
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1083
    cliargs = ["keymap-gen", "name-table", "--lang=%s" % args.lang]
973
    if args.varname is not None:
1084
    if args.varname is not None:
974
        cliargs.append("--varname=%s" % args.varname)
1085
        cliargs.append("--varname=%s" % args.varname)
975
    cliargs.extend(["name-table", "keymaps.csv", args.mapname])
1086
    cliargs.extend(["keymaps.csv", args.mapname])
976
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1087
    SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
977
1088
978
    SRC_GENERATORS[args.lang].generate_name_table(args.varname, database, args.mapname)
1089
    SRC_GENERATORS[args.lang].generate_name_table(args.varname, database, args.mapname)
Lines 982-1007 Link Here
982
    database.load(args.keymaps)
1093
    database.load(args.keymaps)
983
1094
984
1095
985
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1096
    cliargs = ["keymap-gen", "code-docs", "--lang=%s" % args.lang]
986
    if args.varname is not None:
1097
    if args.title is not None:
987
        cliargs.append("--varname=%s" % args.varname)
1098
        cliargs.append("--title=%s" % args.title)
988
    cliargs.extend(["code-docs", "keymaps.csv", args.mapname])
1099
    if args.subtitle is not None:
1100
        cliargs.append("--subtitle=%s" % args.subtitle)
1101
    cliargs.extend(["keymaps.csv", args.mapname])
989
    DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1102
    DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
990
1103
991
    DOC_GENERATORS[args.lang].generate_code_docs(args.varname, database, args.mapname)
1104
    DOC_GENERATORS[args.lang].generate_code_docs(args.title, args.subtitle, database, args.mapname)
992
1105
993
def name_docs(args):
1106
def name_docs(args):
994
    database = Database()
1107
    database = Database()
995
    database.load(args.keymaps)
1108
    database.load(args.keymaps)
996
1109
997
1110
998
    cliargs = ["keymap-gen", "--lang=%s" % args.lang]
1111
    cliargs = ["keymap-gen", "name-docs", "--lang=%s" % args.lang]
999
    if args.varname is not None:
1112
    if args.title is not None:
1000
        cliargs.append("--varname=%s" % args.varname)
1113
        cliargs.append("--title=%s" % args.title)
1001
    cliargs.extend(["name-docs", "keymaps.csv", args.mapname])
1114
    if args.subtitle is not None:
1115
        cliargs.append("--subtitle=%s" % args.subtitle)
1116
    cliargs.extend(["keymaps.csv", args.mapname])
1002
    DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1117
    DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs))
1003
1118
1004
    DOC_GENERATORS[args.lang].generate_name_docs(args.varname, database, args.mapname)
1119
    DOC_GENERATORS[args.lang].generate_name_docs(args.title, args.subtitle, database, args.mapname)
1005
1120
1006
def usage():
1121
def usage():
1007
    print ("Please select a command:")
1122
    print ("Please select a command:")
Lines 1011-1053 Link Here
1011
def main():
1126
def main():
1012
    parser = argparse.ArgumentParser()
1127
    parser = argparse.ArgumentParser()
1013
1128
1014
    parser.add_argument("--lang", default="stdc",
1015
                        help="Output language, (src=%s, doc=%s)" % (
1016
                            ",".join(SRC_GENERATORS.keys()),
1017
                            ",".join(DOC_GENERATORS.keys())))
1018
    parser.add_argument("--varname", default=None,
1019
                        help="Data variable name")
1020
1021
    subparsers = parser.add_subparsers(help="sub-command help")
1129
    subparsers = parser.add_subparsers(help="sub-command help")
1022
1130
1023
    codemapparser = subparsers.add_parser("code-map", help="Generate a mapping between code tables")
1131
    codemapparser = subparsers.add_parser("code-map", help="Generate a mapping between code tables")
1132
    codemapparser.add_argument("--varname", default=None, help="Data variable name")
1133
    codemapparser.add_argument("--lang", default="stdc",
1134
                        help="Output language (%s)" % (
1135
                            ",".join(SRC_GENERATORS.keys())))
1024
    codemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
1136
    codemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
1025
    codemapparser.add_argument("frommapname", help="Source code table name")
1137
    codemapparser.add_argument("frommapname", help="Source code table name")
1026
    codemapparser.add_argument("tomapname", help="Target code table name")
1138
    codemapparser.add_argument("tomapname", help="Target code table name")
1027
    codemapparser.set_defaults(func=code_map)
1139
    codemapparser.set_defaults(func=code_map)
1028
1140
1029
    codetableparser = subparsers.add_parser("code-table", help="Generate a flat code table")
1141
    codetableparser = subparsers.add_parser("code-table", help="Generate a flat code table")
1142
    codetableparser.add_argument("--lang", default="stdc",
1143
                        help="Output language (%s)" % (
1144
                            ",".join(SRC_GENERATORS.keys())))
1145
    codetableparser.add_argument("--varname", default=None, help="Data variable name")
1030
    codetableparser.add_argument("keymaps", help="Path to keymap CSV data file")
1146
    codetableparser.add_argument("keymaps", help="Path to keymap CSV data file")
1031
    codetableparser.add_argument("mapname", help="Code table name")
1147
    codetableparser.add_argument("mapname", help="Code table name")
1032
    codetableparser.set_defaults(func=code_table)
1148
    codetableparser.set_defaults(func=code_table)
1033
1149
1034
    namemapparser = subparsers.add_parser("name-map", help="Generate a mapping to names")
1150
    namemapparser = subparsers.add_parser("name-map", help="Generate a mapping to names")
1151
    namemapparser.add_argument("--lang", default="stdc",
1152
                        help="Output language (%s)" % (
1153
                            ",".join(SRC_GENERATORS.keys())))
1154
    namemapparser.add_argument("--varname", default=None, help="Data variable name")
1035
    namemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
1155
    namemapparser.add_argument("keymaps", help="Path to keymap CSV data file")
1036
    namemapparser.add_argument("frommapname", help="Source code table name")
1156
    namemapparser.add_argument("frommapname", help="Source code table name")
1037
    namemapparser.add_argument("tomapname", help="Target name table name")
1157
    namemapparser.add_argument("tomapname", help="Target name table name")
1038
    namemapparser.set_defaults(func=name_map)
1158
    namemapparser.set_defaults(func=name_map)
1039
1159
1040
    nametableparser = subparsers.add_parser("name-table", help="Generate a flat name table")
1160
    nametableparser = subparsers.add_parser("name-table", help="Generate a flat name table")
1161
    nametableparser.add_argument("--lang", default="stdc",
1162
                        help="Output language, (%s)" % (
1163
                            ",".join(SRC_GENERATORS.keys())))
1164
    nametableparser.add_argument("--varname", default=None, help="Data variable name")
1041
    nametableparser.add_argument("keymaps", help="Path to keymap CSV data file")
1165
    nametableparser.add_argument("keymaps", help="Path to keymap CSV data file")
1042
    nametableparser.add_argument("mapname", help="Name table name")
1166
    nametableparser.add_argument("mapname", help="Name table name")
1043
    nametableparser.set_defaults(func=name_table)
1167
    nametableparser.set_defaults(func=name_table)
1044
1168
1045
    codedocsparser = subparsers.add_parser("code-docs", help="Generate code documentation")
1169
    codedocsparser = subparsers.add_parser("code-docs", help="Generate code documentation")
1170
    codedocsparser.add_argument("--lang", default="pod",
1171
                        help="Output language (%s)" % (
1172
                            ",".join(DOC_GENERATORS.keys())))
1173
    codedocsparser.add_argument("--title", default=None, help="Document title")
1174
    codedocsparser.add_argument("--subtitle", default=None, help="Document subtitle")
1046
    codedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
1175
    codedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
1047
    codedocsparser.add_argument("mapname", help="Code table name")
1176
    codedocsparser.add_argument("mapname", help="Code table name")
1048
    codedocsparser.set_defaults(func=code_docs)
1177
    codedocsparser.set_defaults(func=code_docs)
1049
1178
1050
    namedocsparser = subparsers.add_parser("name-docs", help="Generate name documentation")
1179
    namedocsparser = subparsers.add_parser("name-docs", help="Generate name documentation")
1180
    namedocsparser.add_argument("--lang", default="pod",
1181
                        help="Output language (%s)" % (
1182
                            ",".join(DOC_GENERATORS.keys())))
1183
    namedocsparser.add_argument("--title", default=None, help="Document title")
1184
    namedocsparser.add_argument("--subtitle", default=None, help="Document subtitle")
1051
    namedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
1185
    namedocsparser.add_argument("keymaps", help="Path to keymap CSV data file")
1052
    namedocsparser.add_argument("mapname", help="Name table name")
1186
    namedocsparser.add_argument("mapname", help="Name table name")
1053
    namedocsparser.set_defaults(func=name_docs)
1187
    namedocsparser.set_defaults(func=name_docs)

Return to bug 846467