Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gtk-vnc for openSUSE:Factory checked in at 2022-08-10 17:12:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gtk-vnc (Old) and /work/SRC/openSUSE:Factory/.gtk-vnc.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtk-vnc" Wed Aug 10 17:12:52 2022 rev:56 rq:993939 version:1.3.1 Changes: -------- --- /work/SRC/openSUSE:Factory/gtk-vnc/gtk-vnc.changes 2021-11-24 23:54:23.536495181 +0100 +++ /work/SRC/openSUSE:Factory/.gtk-vnc.new.1521/gtk-vnc.changes 2022-08-10 17:13:11.125690049 +0200 @@ -1,0 +2,8 @@ +Fri Aug 5 07:53:17 UTC 2022 - Bj??rn Lie <[email protected]> + +- Update to version 1.3.1: + + Fix invalid use of subprojects with meson. + + Support ZRLE encoding for zero size alpha cursors. + + Add 'check' arg to meson run_command(). + +------------------------------------------------------------------- Old: ---- gtk-vnc-1.3.0.tar.xz New: ---- gtk-vnc-1.3.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gtk-vnc.spec ++++++ --- /var/tmp/diff_new_pack.8VwOKK/_old 2022-08-10 17:13:11.633691375 +0200 +++ /var/tmp/diff_new_pack.8VwOKK/_new 2022-08-10 17:13:11.641691396 +0200 @@ -1,7 +1,7 @@ # # spec file for package gtk-vnc # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,7 +21,7 @@ %define _sonamepkg 2_0 Name: gtk-vnc -Version: 1.3.0 +Version: 1.3.1 Release: 0 Summary: A GTK widget for VNC clients License: LGPL-2.1-only AND LGPL-2.1-or-later ++++++ gtk-vnc-1.3.0.tar.xz -> gtk-vnc-1.3.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/.gitignore new/gtk-vnc-1.3.1/.gitignore --- old/gtk-vnc-1.3.0/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/.gitignore 2022-07-14 10:10:55.000000000 +0200 @@ -0,0 +1,3 @@ +*~ +build/ +vroot/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/.gitmodules new/gtk-vnc-1.3.1/.gitmodules --- old/gtk-vnc-1.3.0/.gitmodules 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/.gitmodules 2022-07-14 10:10:55.000000000 +0200 @@ -0,0 +1,3 @@ +[submodule "src/keycodemapdb"] + path = subprojects/keycodemapdb + url = https://gitlab.com/keycodemap/keycodemapdb.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/AUTHORS new/gtk-vnc-1.3.1/AUTHORS --- old/gtk-vnc-1.3.0/AUTHORS 2021-11-17 11:24:01.254825400 +0100 +++ new/gtk-vnc-1.3.1/AUTHORS 2022-07-14 10:12:54.293014300 +0200 @@ -42,6 +42,7 @@ Daniel P. Berrang?? <[email protected]> Doug Goldstein <[email protected]> Dr. Matthias St. Pierre <[email protected]> +Eli Schwartz <[email protected]> Emilio Pozuelo Monfort <[email protected]> Enrico Nicoletto <[email protected]> Eric R. Schulz <[email protected]> @@ -65,6 +66,7 @@ Jakub Jank?? <[email protected]> Jan Tojnar <[email protected]> J??n Tomko <[email protected]> +Johannes Maibaum <[email protected]> John Haxby <[email protected]> Jonh Wendell <[email protected]> Jorge Gonz??lez <[email protected]> @@ -122,6 +124,7 @@ Victor Toso <[email protected]> Yaron Shahrabani <[email protected]> Zeeshan Ali (Khattak) <[email protected]> +Zurab Kargareteli <[email protected]> ???????????????? ?????????????? <[email protected]> ...send patches to get your name here... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/ChangeLog new/gtk-vnc-1.3.1/ChangeLog --- old/gtk-vnc-1.3.0/ChangeLog 2021-11-17 11:24:01.237825400 +0100 +++ new/gtk-vnc-1.3.1/ChangeLog 2022-07-14 10:12:54.280014300 +0200 @@ -1,3 +1,36 @@ +2022-07-14 Daniel P. Berrang?? <[email protected]> + + Bump version to 1.3.1 and add release notes + + Add 'check' arg to meson run_command() + +2022-07-07 Zurab Kargareteli <[email protected]> + + Add Georgian translation + +2022-06-27 Eli Schwartz <[email protected]> + + fix invalid use of subprojects + The keycodemapdb Meson subproject provides a program and a source input. + Since it is a subproject, Meson wants to sandbox that and requires it to + be explicitly exported. But this never happened -- instead, we manually + poked at files using the actual string path "subprojects/......" + + This was always a Meson sandbox violation, but Meson 0.63.0 started + noticing it and erroring out. + + Instead, do the right thing. Update the subproject to a version that has + a meson.build with actually meaningful contents -- namely, a files + variable and a found program. Then use these in order to run the needed + custom_target. + + In the process, it is also necessary to correct the argument ordering + when running keymap-gen. + +2022-02-23 Johannes Maibaum <[email protected]> + + Handle ZRLE encoding of zero size alpha cursor + 2021-11-17 Daniel P. Berrang?? <[email protected]> Bump version to 1.3.0 and add release notes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/NEWS new/gtk-vnc-1.3.1/NEWS --- old/gtk-vnc-1.3.0/NEWS 2021-11-17 11:23:59.967830400 +0100 +++ new/gtk-vnc-1.3.1/NEWS 2022-07-14 10:10:55.000000000 +0200 @@ -1,6 +1,13 @@ GTK VNC News ============ +Jul 14, 2022: Release 1.3.1 +=========================== + + o Fix invalid use of subprojects with meson + o Support ZRLE encoding for zero size alpha cursors + o Add 'check' arg to meson run_command() + Nov 16, 2021: Release 1.3.0 =========================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/gtk-vnc.spec new/gtk-vnc-1.3.1/gtk-vnc.spec --- old/gtk-vnc-1.3.0/gtk-vnc.spec 2021-11-17 11:24:01.238825600 +0100 +++ new/gtk-vnc-1.3.1/gtk-vnc.spec 2022-07-14 10:12:54.282014400 +0200 @@ -8,7 +8,7 @@ Summary: A GTK widget for VNC clients Name: gtk-vnc -Version: 1.3.0 +Version: 1.3.1 Release: 1%{?dist} License: LGPLv2+ Source: https://download.gnome.org/sources/%{name}/%{verdir}/%{name}-%{version}.tar.xz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/meson.build new/gtk-vnc-1.3.1/meson.build --- old/gtk-vnc-1.3.0/meson.build 2021-11-17 11:23:59.969830300 +0100 +++ new/gtk-vnc-1.3.1/meson.build 2022-07-14 10:10:55.000000000 +0200 @@ -1,6 +1,6 @@ project( 'gtk-vnc','c', - version: '1.3.0', + version: '1.3.1', license: 'LGPLv2.1+', default_options: [ 'buildtype=debugoptimized', @@ -24,7 +24,7 @@ # ninja dist helper meson.add_dist_script('build-aux/dist.sh', meson.source_root(), meson.build_root()) -git = run_command('test', '-d', '.git').returncode() == 0 +git = run_command('test', '-d', '.git', check: false).returncode() == 0 if git test( @@ -133,10 +133,10 @@ '-DGDK_VERSION_MAX_ALLOWED=@0@'.format(gtk_min_version_symbol), ] -subproject('keycodemapdb') +keycodemapdb = subproject('keycodemapdb') -keymapgen = files('subprojects/keycodemapdb/tools/keymap-gen') -keymapcsv = files('subprojects/keycodemapdb/data/keymaps.csv') +keymapgen = find_program('keymap-gen') +keymapcsv = keycodemapdb.get_variable('keymaps_csv') gnome = import('gnome') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/po/LINGUAS new/gtk-vnc-1.3.1/po/LINGUAS --- old/gtk-vnc-1.3.0/po/LINGUAS 2021-11-17 11:23:59.969830300 +0100 +++ new/gtk-vnc-1.3.1/po/LINGUAS 2022-07-14 10:10:55.000000000 +0200 @@ -22,6 +22,7 @@ id it ja +ka ko lt lv diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/po/ka.po new/gtk-vnc-1.3.1/po/ka.po --- old/gtk-vnc-1.3.0/po/ka.po 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/po/ka.po 2022-07-14 10:10:55.000000000 +0200 @@ -0,0 +1,31 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: gtk-vnc master\n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk-vnc/issues\n" +"POT-Creation-Date: 2022-02-23 12:19+0000\n" +"PO-Revision-Date: 2022-04-30 20:39+0200\n" +"Last-Translator: Temuri Doghonadze <[email protected]>\n" +"Language-Team: Georgian <[email protected]>\n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.0.1\n" + +#: src/vncdisplay.c:180 +msgid "Enables debug output" +msgstr "??????????????????????????? ????????????????????????????????? ????????????????????????" + +#: src/vncdisplay.c:3748 +msgid "GTK-VNC Options:" +msgstr "GTK-VNC-?????? ?????????????????????????????????:" + +#: src/vncdisplay.c:3748 +msgid "Show GTK-VNC Options" +msgstr "GTK-VNC-?????? ???????????????????????????????????? ?????????????????????" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/src/meson.build new/gtk-vnc-1.3.1/src/meson.build --- old/gtk-vnc-1.3.0/src/meson.build 2021-11-17 11:23:59.972830300 +0100 +++ new/gtk-vnc-1.3.1/src/meson.build 2022-07-14 10:10:55.000000000 +0200 @@ -336,9 +336,10 @@ cmd = [ python, keymapgen, + 'code-map', '--lang', 'glib2', '--varname', varname, - 'code-map', keymapcsv, keymap, 'qnum' + keymapcsv, keymap, 'qnum' ] gtk_vnc_sources += custom_target( target, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/src/vncconnection.c new/gtk-vnc-1.3.1/src/vncconnection.c --- old/gtk-vnc-1.3.0/src/vncconnection.c 2021-11-17 11:23:59.974830400 +0100 +++ new/gtk-vnc-1.3.1/src/vncconnection.c 2022-07-14 10:10:55.000000000 +0200 @@ -3297,10 +3297,24 @@ switch (encoding) { case VNC_CONNECTION_ENCODING_RAW: break; + case VNC_CONNECTION_ENCODING_ZRLE: { + guint32 length = vnc_connection_read_u32(conn); + if (vnc_connection_has_error(conn)) { + return; + } + if (length != 0) { + vnc_connection_set_error(conn, + "Read non-zero length %u for zero sized ZRLE alpha cursor", + length); + return; + } + break; + } default: vnc_connection_set_error(conn, "Unsupported encoding %u for zero size alpha cursor", encoding); + return; break; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/README new/gtk-vnc-1.3.1/subprojects/keycodemapdb/README --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/README 2021-11-17 11:24:01.167825700 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/README 2022-06-22 02:20:27.000000000 +0200 @@ -85,6 +85,7 @@ - GLib2 (standard C, but with GLib2 data types) - Python - Perl + - Rust Usage diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/data/keymaps.csv new/gtk-vnc-1.3.1/subprojects/keycodemapdb/data/keymaps.csv --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/data/keymaps.csv 2021-11-17 11:24:01.168825600 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/data/keymaps.csv 2022-06-22 02:20:27.000000000 +0200 @@ -144,19 +144,19 @@ 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 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 ,84,,,0x54,,,,,,,,,,,,,, -KEY_ZENKAKUHANKAKU,85,,,0x76,0x5f,,148,,,,,,,Lang5,HZTG,,, -KEY_102ND,86,,,0x56,0x61,0x13,100,VK_OEM_102,0xe1,86,86,,,IntlBackslash,LSGT,less,0x7c, +KEY_ZENKAKUHANKAKU,85,,,0x76,0x5f,,148,,,,,XK_Zenkaku_Hankaku,0xff2a,Lang5,HZTG,,, +KEY_102ND,86,,,0x56,0x61,0x13,100,VK_OEM_102,0xe2,86,86,XK_backslash,0x005c,IntlBackslash,LSGT,less,0x7c, KEY_F11,87,F11,0x67,0x57,0x78,0x56,68,VK_F11,0x7a,87,87,XK_F11,0xffc8,F11,FK11,f11,0x09,0x67 KEY_F12,88,F12,0x6f,0x58,0x07,0x5e,69,VK_F12,0x7b,88,88,XK_F12,0xffc9,F12,FK12,f12,0x0b,0x6f -KEY_RO,89,,,0x73,0x51,,135,,,,,,,IntlRo,AB11,ro,, -KEY_KATAKANA,90,JIS_Kana,0x68,0x78,0x63,,146,VK_KANA,0x15,,,,,Katakana,KATA,,, -KEY_KATAKANA,90,JIS_Kana,0x68,0x78,0x63,,146,VK_KANA,0x15,,,,,Lang3,KATA,,, -KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Hiragana,HIRA,hiragana,, -KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,,,Lang4,HIRA,hiragana,, -KEY_HENKAN,92,,,0x79,0x64,0x86,138,,,,,,,Convert,HENK,henkan,, -KEY_KATAKANAHIRAGANA,93,,,0x70,0x13,0x87,136,,,0xc8,0xc8,,,KanaMode,HKTG,katakanahiragana,, -KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,NFER,muhenkan,, -KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,,,,,,,NonConvert,MUHE,muhenkan,, +KEY_RO,89,JIS_Underscore,0x5e,0x73,0x51,,135,VK_OEM_102,0xe2,0xcb,0x73,XK_underscore,0x005f,IntlRo,AB11,ro,, +KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,XK_Katakana,0xff26,Katakana,KATA,,, +KEY_KATAKANA,90,,,0x78,0x63,,146,VK_KANA,0x15,,,XK_Katakana,0xff26,Lang3,KATA,,, +KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,XK_Hiragana,0xff25,Hiragana,HIRA,hiragana,, +KEY_HIRAGANA,91,,,0x77,0x62,0x87,147,,,,,XK_Hiragana,0xff25,Lang4,HIRA,hiragana,, +KEY_HENKAN,92,,,0x79,0x64,0x86,138,VK_CONVERT,0x1c,0x79,0x79,XK_Henkan,0xff23,Convert,HENK,henkan,, +KEY_KATAKANAHIRAGANA,93,,,0x70,0x13,0x87,136,VK_OEM_COPY,0xf2,0xc8,0x70,XK_Hiragana_Katakana,0xff27,KanaMode,HKTG,katakanahiragana,, +KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,VK_NONCONVERT,0x1d,0x7b,0x7b,XK_Muhenkan,0xff22,NonConvert,NFER,muhenkan,, +KEY_MUHENKAN,94,,,0x7b,0x67,0x85,139,VK_NONCONVERT,0x1d,0x7b,0x7b,XK_Muhenkan,0xff22,NonConvert,MUHE,muhenkan,, KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,KPSP,,, KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,0x5c,0x27,,140,,,,,XK_KP_Separator,0xffac,,JPCM,,, KEY_KPENTER,96,ANSI_KeypadEnter,0x4c,0xe01c,0xe05a,0x79,88,,,0x64,0x64,XK_KP_Enter,0xff8d,NumpadEnter,KPEN,kp_enter,0x5a,0x4c @@ -192,9 +192,11 @@ KEY_SCALE,120,,,0xe00b,,,,,,,,,,,I128,,, KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,KPCO,kp_comma,, KEY_KPCOMMA,121,,,0x7e,0x6d,,133,VK_SEPARATOR??,0x6c,,,,,NumpadComma,I129,,, -KEY_HANGEUL,122,,,,,,144,VK_HANGEUL,0x15,,,,,,HNGL,,, -KEY_HANJA,123,,,0xe00d,,,145,VK_HANJA,0x19,,,,,,HJCV,,, -KEY_YEN,124,JIS_Yen,0x5d,0x7d,0x6a,0x5d,137,,,0x7d,0x7d,,,IntlYen,AE13,yen,, +KEY_HANGEUL,122,JIS_Kana,0x68,0x72,,,144,VK_HANGEUL,0x15,,0x71,,,Lang1,HNGL,lang1,, +KEY_HANGEUL,122,JIS_Kana,0x68,0x72,,,144,VK_IME_ON,0x16,,0x71,,,Lang1,HNGL,lang1,, +KEY_HANJA,123,JIS_Eisu,0x66,0x71,,,145,VK_HANJA,0x19,,0x72,,,Lang2,HJCV,lang2,, +KEY_HANJA,123,JIS_Eisu,0x66,0x71,,,145,VK_IME_OFF,0x1A,,0x72,,,Lang2,HJCV,lang2,, +KEY_YEN,124,JIS_Yen,0x5d,0x7d,0x6a,0x5d,137,VK_OEM_5,0xdc,0x7d,0x7d,,,IntlYen,AE13,yen,, KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LMTA,meta_l,0x78,0x37 KEY_LEFTMETA,125,Command,0x37,0xe05b,0xe01f,0x8b,227,VK_LWIN,0x5b,0x6b,0x6b,XK_Meta_L,0xffe7,MetaLeft,LWIN,meta_l,0x78,0x37 KEY_RIGHTMETA,126,RightCommand,0x36,0xe05c,0xe027,0x8c,231,VK_RWIN,0x5c,0x6c,0x6c,XK_Meta_R,0xffe8,MetaRight,RMTA,meta_r,0x7a,0x37 @@ -250,8 +252,8 @@ KEY_CONFIG,171,,,0xe001,,,,,,,,,,,I179,,, KEY_HOMEPAGE,172,,,0xe032,0xe03a,0x97,,VK_BROWSER_HOME,0xac,,,,,BrowserHome,I180,ac_home,, KEY_REFRESH,173,,,0xe067,0xe020,,250,VK_BROWSER_REFRESH,0xa8,,,,,BrowserRefresh,I181,ac_refresh,, -KEY_EXIT,174,,,0x71,,,,,,,,,,,I182,,, -KEY_MOVE,175,,,0x72,,,,,,,,,,,I183,,, +KEY_EXIT,174,,,,,,,,,,,,,,I182,,, +KEY_MOVE,175,,,,,,,,,,,,,,I183,,, KEY_EDIT,176,,,0xe008,,,247,,,,,,,,I184,,, KEY_SCROLLUP,177,,,0x75,,,245,,,,,,,,I185,,, KEY_SCROLLDOWN,178,,,0xe00f,,,246,,,,,,,,I186,,, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/meson.build new/gtk-vnc-1.3.1/subprojects/keycodemapdb/meson.build --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/meson.build 2021-11-17 11:24:01.168825600 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/meson.build 2022-06-22 02:20:27.000000000 +0200 @@ -1 +1,6 @@ -project('keycodemapdb') +project('keycodemapdb', meson_version: '>=0.46.0') + +keymap_gen = find_program('tools/keymap-gen') +meson.override_find_program('keymap-gen', keymap_gen) + +keymaps_csv = files('data/keymaps.csv') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/.gitignore new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/.gitignore --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/.gitignore 2021-11-17 11:24:01.168825600 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/.gitignore 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -osx2win32.* -osx2win32_name.* -osx2xkb.* -osx2xkb_name.* -html2win32.* -html2win32_name.* -osx.* -osx_name.* -stdc -stdc++ -node_modules/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/Makefile new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/Makefile --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/Makefile 2021-11-17 11:24:01.168825600 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/Makefile 2022-06-22 02:20:27.000000000 +0200 @@ -1,4 +1,4 @@ -TESTS := stdc stdc++ python2 python3 javascript +TESTS := stdc stdc++ python2 python3 javascript rust check: $(TESTS) @set -e; for fn in $(TESTS); do \ @@ -19,37 +19,37 @@ osx.h osx.c osx_name.h osx_name.c $(CC) -Wall -o $@ $(filter %.c, $^) osx2win32.c: $(SOURCES) - $(GEN) --lang stdc code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang stdc $(DATA) osx win32 > $@ osx2win32.h: $(SOURCES) - $(GEN) --lang stdc-header code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang stdc-header $(DATA) osx win32 > $@ osx2win32_name.c: $(SOURCES) - $(GEN) --lang stdc name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang stdc $(DATA) osx win32 > $@ osx2win32_name.h: $(SOURCES) - $(GEN) --lang stdc-header name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang stdc-header $(DATA) osx win32 > $@ osx2xkb.c: $(SOURCES) - $(GEN) --lang stdc code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang stdc $(DATA) osx xkb > $@ osx2xkb.h: $(SOURCES) - $(GEN) --lang stdc-header code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang stdc-header $(DATA) osx xkb > $@ osx2xkb_name.c: $(SOURCES) - $(GEN) --lang stdc name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang stdc $(DATA) osx xkb > $@ osx2xkb_name.h: $(SOURCES) - $(GEN) --lang stdc-header name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang stdc-header $(DATA) osx xkb > $@ html2win32.c: $(SOURCES) - $(GEN) --lang stdc code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang stdc $(DATA) html win32 > $@ html2win32.h: $(SOURCES) - $(GEN) --lang stdc-header code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang stdc-header $(DATA) html win32 > $@ html2win32_name.c: $(SOURCES) - $(GEN) --lang stdc name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang stdc $(DATA) html win32 > $@ html2win32_name.h: $(SOURCES) - $(GEN) --lang stdc-header name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang stdc-header $(DATA) html win32 > $@ osx.c: $(SOURCES) - $(GEN) --lang stdc code-table $(DATA) osx > $@ + $(GEN) code-table --lang stdc $(DATA) osx > $@ osx.h: $(SOURCES) - $(GEN) --lang stdc-header code-table $(DATA) osx > $@ + $(GEN) code-table --lang stdc-header $(DATA) osx > $@ osx_name.c: $(SOURCES) - $(GEN) --lang stdc name-table $(DATA) osx > $@ + $(GEN) name-table --lang stdc $(DATA) osx > $@ osx_name.h: $(SOURCES) - $(GEN) --lang stdc-header name-table $(DATA) osx > $@ + $(GEN) name-table --lang stdc-header $(DATA) osx > $@ stdc++: stdc++.cc osx2win32.hh osx2win32.cc osx2win32_name.hh osx2win32_name.cc \ osx2xkb.hh osx2xkb.cc osx2xkb_name.hh osx2xkb_name.cc \ @@ -57,58 +57,58 @@ osx.hh osx.cc osx_name.hh osx_name.cc $(CXX) -Wall -std=c++11 -o $@ $(filter %.cc, $^) osx2win32.cc: $(SOURCES) - $(GEN) --lang stdc++ code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang stdc++ $(DATA) osx win32 > $@ osx2win32.hh: $(SOURCES) - $(GEN) --lang stdc++-header code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang stdc++-header $(DATA) osx win32 > $@ osx2win32_name.cc: $(SOURCES) - $(GEN) --lang stdc++ name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang stdc++ $(DATA) osx win32 > $@ osx2win32_name.hh: $(SOURCES) - $(GEN) --lang stdc++-header name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang stdc++-header $(DATA) osx win32 > $@ osx2xkb.cc: $(SOURCES) - $(GEN) --lang stdc++ code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang stdc++ $(DATA) osx xkb > $@ osx2xkb.hh: $(SOURCES) - $(GEN) --lang stdc++-header code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang stdc++-header $(DATA) osx xkb > $@ osx2xkb_name.cc: $(SOURCES) - $(GEN) --lang stdc++ name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang stdc++ $(DATA) osx xkb > $@ osx2xkb_name.hh: $(SOURCES) - $(GEN) --lang stdc++-header name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang stdc++-header $(DATA) osx xkb > $@ html2win32.cc: $(SOURCES) - $(GEN) --lang stdc++ code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang stdc++ $(DATA) html win32 > $@ html2win32.hh: $(SOURCES) - $(GEN) --lang stdc++-header code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang stdc++-header $(DATA) html win32 > $@ html2win32_name.cc: $(SOURCES) - $(GEN) --lang stdc++ name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang stdc++ $(DATA) html win32 > $@ html2win32_name.hh: $(SOURCES) - $(GEN) --lang stdc++-header name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang stdc++-header $(DATA) html win32 > $@ osx.cc: $(SOURCES) - $(GEN) --lang stdc++ code-table $(DATA) osx > $@ + $(GEN) code-table --lang stdc++ $(DATA) osx > $@ osx.hh: $(SOURCES) - $(GEN) --lang stdc++-header code-table $(DATA) osx > $@ + $(GEN) code-table --lang stdc++-header $(DATA) osx > $@ osx_name.cc: $(SOURCES) - $(GEN) --lang stdc++ name-table $(DATA) osx > $@ + $(GEN) name-table --lang stdc++ $(DATA) osx > $@ osx_name.hh: $(SOURCES) - $(GEN) --lang stdc++-header name-table $(DATA) osx > $@ + $(GEN) name-table --lang stdc++-header $(DATA) osx > $@ python2: osx2win32.py osx2win32_name.py \ osx2xkb.py osx2xkb_name.py \ html2win32.py html2win32_name.py \ osx.py osx_name.py osx2win32.py: $(SOURCES) - $(GEN) --lang python2 code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang python2 $(DATA) osx win32 > $@ osx2win32_name.py: $(SOURCES) - $(GEN) --lang python2 name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang python2 $(DATA) osx win32 > $@ osx2xkb.py: $(SOURCES) - $(GEN) --lang python2 code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang python2 $(DATA) osx xkb > $@ osx2xkb_name.py: $(SOURCES) - $(GEN) --lang python2 name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang python2 $(DATA) osx xkb > $@ html2win32.py: $(SOURCES) - $(GEN) --lang python2 code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang python2 $(DATA) html win32 > $@ html2win32_name.py: $(SOURCES) - $(GEN) --lang python2 name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang python2 $(DATA) html win32 > $@ osx.py: $(SOURCES) - $(GEN) --lang python2 code-table $(DATA) osx > $@ + $(GEN) code-table --lang python2 $(DATA) osx > $@ osx_name.py: $(SOURCES) - $(GEN) --lang python2 name-table $(DATA) osx > $@ + $(GEN) name-table --lang python2 $(DATA) osx > $@ javascript: node_modules/babel-core \ node_modules/babel-plugin-transform-es2015-modules-commonjs \ @@ -121,21 +121,42 @@ node_modules/babel-plugin-transform-es2015-modules-commonjs: npm install babel-plugin-transform-es2015-modules-commonjs osx2win32.js: $(SOURCES) - $(GEN) --lang js code-map $(DATA) osx win32 > $@ + $(GEN) code-map --lang js $(DATA) osx win32 > $@ osx2win32_name.js: $(SOURCES) - $(GEN) --lang js name-map $(DATA) osx win32 > $@ + $(GEN) name-map --lang js $(DATA) osx win32 > $@ osx2xkb.js: $(SOURCES) - $(GEN) --lang js code-map $(DATA) osx xkb > $@ + $(GEN) code-map --lang js $(DATA) osx xkb > $@ osx2xkb_name.js: $(SOURCES) - $(GEN) --lang js name-map $(DATA) osx xkb > $@ + $(GEN) name-map --lang js $(DATA) osx xkb > $@ html2win32.js: $(SOURCES) - $(GEN) --lang js code-map $(DATA) html win32 > $@ + $(GEN) code-map --lang js $(DATA) html win32 > $@ html2win32_name.js: $(SOURCES) - $(GEN) --lang js name-map $(DATA) html win32 > $@ + $(GEN) name-map --lang js $(DATA) html win32 > $@ osx.js: $(SOURCES) - $(GEN) --lang js code-table $(DATA) osx > $@ + $(GEN) code-table --lang js $(DATA) osx > $@ osx_name.js: $(SOURCES) - $(GEN) --lang js name-table $(DATA) osx > $@ + $(GEN) name-table --lang js $(DATA) osx > $@ + +rust: osx2win32.rs osx2win32_name.rs \ + osx2xkb.rs osx2xkb_name.rs \ + html2win32.rs html2win32_name.rs \ + osx.rs osx_name.rs +osx2win32.rs: $(SOURCES) + $(GEN) code-map --lang rust $(DATA) osx win32 > $@ +osx2win32_name.rs: $(SOURCES) + $(GEN) name-map --lang rust $(DATA) osx win32 > $@ +osx2xkb.rs: $(SOURCES) + $(GEN) code-map --lang rust $(DATA) osx xkb > $@ +osx2xkb_name.rs: $(SOURCES) + $(GEN) name-map --lang rust $(DATA) osx xkb > $@ +html2win32.rs: $(SOURCES) + $(GEN) code-map --lang rust $(DATA) html win32 > $@ +html2win32_name.rs: $(SOURCES) + $(GEN) name-map --lang rust $(DATA) html win32 > $@ +osx.rs: $(SOURCES) + $(GEN) code-table --lang rust $(DATA) osx > $@ +osx_name.rs: $(SOURCES) + $(GEN) name-table --lang rust $(DATA) osx > $@ clean: rm -rf node_modules diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust 2022-06-22 02:20:27.000000000 +0200 @@ -0,0 +1,5 @@ +#!/bin/sh + +cd rust-test +cargo test +cargo clippy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust-test/Cargo.toml new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust-test/Cargo.toml --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust-test/Cargo.toml 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust-test/Cargo.toml 2022-06-22 02:20:27.000000000 +0200 @@ -0,0 +1,10 @@ +[package] +name = "rust-test" +version = "0.1.0" +authors = ["Marc-Andr?? Lureau <[email protected]>"] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +phf = { version = "0.8", features = ["macros"] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust-test/src/main.rs new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust-test/src/main.rs --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tests/rust-test/src/main.rs 1970-01-01 01:00:00.000000000 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tests/rust-test/src/main.rs 2022-06-22 02:20:27.000000000 +0200 @@ -0,0 +1,28 @@ +include!("../../html2win32_name.rs"); +include!("../../html2win32.rs"); +include!("../../osx2win32_name.rs"); +include!("../../osx2win32.rs"); +include!("../../osx2xkb_name.rs"); +include!("../../osx2xkb.rs"); +include!("../../osx_name.rs"); +include!("../../osx.rs"); + +fn main() { + assert_eq!(CODE_MAP_OSX_TO_WIN32[0x1d], 0x30); + assert_eq!(NAME_MAP_OSX_TO_WIN32[0x1d], "VK_0"); + + assert_eq!(CODE_MAP_OSX_TO_XKB[0x1d], "AE10"); + assert_eq!(NAME_MAP_OSX_TO_XKB[0x1d], "AE10"); + + assert_eq!(CODE_MAP_HTML_TO_WIN32["ControlLeft"], 0x11); + assert_eq!(NAME_MAP_HTML_TO_WIN32["ControlLeft"], "VK_CONTROL"); + + assert_eq!(CODE_TABLE_OSX[0x1d], 0x3b); + assert_eq!(NAME_TABLE_OSX[0x1d], "Control"); +} + + +#[test] +fn test() { + main() +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tools/keymap-gen new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tools/keymap-gen --- old/gtk-vnc-1.3.0/subprojects/keycodemapdb/tools/keymap-gen 2021-11-17 11:24:01.170825700 +0100 +++ new/gtk-vnc-1.3.1/subprojects/keycodemapdb/tools/keymap-gen 2022-06-22 02:20:27.000000000 +0200 @@ -508,7 +508,7 @@ def _array_code_entry(self, value, name): raise NotImplementedError() - def generate_name_docs(self, varname, database, mapname): + def generate_name_docs(self, title, subtitle, database, mapname): if mapname not in database.mapname: raise Exception("Unknown map %s, expected one of %s" % ( mapname, ", ".join(database.mapname.keys()))) @@ -517,10 +517,12 @@ keys.sort() names = [database.mapname[Database.MAP_LINUX].get(key, "unnamed") for key in keys] - if varname is None: - varname = mapname + if title is None: + title = mapname + if subtitle is None: + subtitle = "Docs for %s" % mapname - self._array_start_name_doc(varname, mapname) + self._array_start_name_doc(title, subtitle, mapname) for i in range(len(keys)): key = keys[i] @@ -530,7 +532,7 @@ self._array_end() - def generate_code_docs(self, varname, database, mapname): + def generate_code_docs(self, title, subtitle, database, mapname): if mapname not in database.mapfrom: raise Exception("Unknown map %s, expected one of %s" % ( mapname, ", ".join(database.mapfrom.keys()))) @@ -545,10 +547,12 @@ names = database.mapname[Database.MAP_LINUX] namemap = Database.MAP_LINUX - if varname is None: - varname = mapname + if title is None: + title = mapname + if subtitle is None: + subtitle = "Docs for %s" % mapname - self._array_start_code_doc(varname, mapname, namemap) + self._array_start_code_doc(title, subtitle, mapname, namemap) for i in range(len(keys)): key = keys[i] @@ -748,6 +752,54 @@ def __init__(self): super(StdCppHeaderLanguageGenerator, self).__init__("unsigned short", "char *", "unsigned int") + +class RustLanguageGenerator(LanguageSrcGenerator): + + def _boilerplate(self, lines): + print("//") + for line in lines: + print("// %s" % line) + print("//") + + def _array_start(self, varname, length, defvalue, fromtype, totype): + if fromtype == self.TYPE_ENUM: + raise NotImplementedError("Enums not supported as source in Rust generator") + + totypename = "&str" if totype == self.TYPE_STRING else "u16" + if fromtype != self.TYPE_STRING: + print("pub static %s: &[%s] = &[" % (varname.upper(), totypename)) + else: + print("pub static %s: phf::Map<&str, %s> = phf::phf_map! {" % + (varname.upper(), totypename)) + + def _array_end(self, fromtype, totype): + if fromtype != self.TYPE_STRING: + print("];") + else: + print("};") + + def _array_entry(self, index, value, comment, fromtype, totype): + none = "\"\"" if totype == self.TYPE_STRING else "0" + if fromtype == self.TYPE_INT: + if value is None: + print(" %s, // %s" % (none, comment)) + elif totype == self.TYPE_INT: + print(" 0x%x, // %s" % (value, comment)) + elif totype == self.TYPE_ENUM: + print(" %s, // %s" % (value, comment)) + else: + print(" \"%s\", // %s" % (value, comment)) + else: + if value is None: + print(" \"%s\" => %s, // %s" % (index, none, comment)) + elif totype == self.TYPE_INT: + print(" \"%s\" => 0x%x, // %s" % (index, value, comment)) + elif totype == self.TYPE_ENUM: + print(" \"%s\" => %s, // %s" % (index, value, comment)) + else: + print(" \"%s\" => \"%s\", // %s" % (index, value, comment)) + + class PythonLanguageGenerator(LanguageSrcGenerator): def _boilerplate(self, lines): @@ -872,10 +924,10 @@ print("# %s" % line) print("#") - def _array_start_name_doc(self, varname, namemap): + def _array_start_name_doc(self, title, subtitle, namemap): print("=head1 NAME") print("") - print("%s" % varname) + print("%s - %s" % (title, subtitle)) print("") print("=head1 DESCRIPTION") print("") @@ -884,10 +936,10 @@ print("=over 4") print("") - def _array_start_code_doc(self, varname, codemap, namemap): + def _array_start_code_doc(self, title, subtitle, codemap, namemap): print("=head1 NAME") print("") - print("%s" % varname) + print("%s - %s" % (title, subtitle)) print("") print("=head1 DESCRIPTION") print("") @@ -912,6 +964,63 @@ print("Key name %s" % name) print("") +class RSTLanguageGenerator(LanguageDocGenerator): + + def _boilerplate(self, lines): + print("..") + for line in lines: + print(" %s" % line) + print("") + + def _array_start_name_doc(self, title, subtitle, namemap): + print("=" * len(title)) + print(title) + print("=" * len(title)) + print("") + print("-" * len(subtitle)) + print(subtitle) + print("-" * len(subtitle)) + print("") + print(":Manual section: 7") + print(":Manual group: Virtualization Support") + print("") + print("DESCRIPTION") + print("===========") + print("List of %s key code names, with corresponding key code values" % namemap) + print("") + + def _array_start_code_doc(self, title, subtitle, codemap, namemap): + print("=" * len(title)) + print(title) + print("=" * len(title)) + print("") + print("-" * len(subtitle)) + print(subtitle) + print("-" * len(subtitle)) + print("") + print(":Manual section: 7") + print(":Manual group: Virtualization Support") + print("") + print("DESCRIPTION") + print("===========") + print("List of %s key code values, with corresponding %s key code names" % (codemap, namemap)) + print("") + + def _array_end(self): + print("") + + def _array_name_entry(self, value, name): + print("* %s" % name) + print("") + print(" Key value %d (0x%x)" % (value, value)) + print("") + + def _array_code_entry(self, value, name): + print("* %d (0x%x)" % (value, value)) + print("") + print(" Key name %s" % name) + print("") + SRC_GENERATORS = { "stdc": StdCLanguageGenerator(), "stdc-header": StdCHeaderLanguageGenerator(), @@ -923,19 +1032,21 @@ "python3": PythonLanguageGenerator(), "perl": PerlLanguageGenerator(), "js": JavaScriptLanguageGenerator(), + "rust": RustLanguageGenerator(), } DOC_GENERATORS = { "pod": PodLanguageGenerator(), + "rst": RSTLanguageGenerator(), } def code_map(args): database = Database() database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] + cliargs = ["keymap-gen", "code-map", "--lang=%s" % args.lang] if args.varname is not None: cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["code-map", "keymaps.csv", args.frommapname, args.tomapname]) + cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname]) SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) SRC_GENERATORS[args.lang].generate_code_map(args.varname, database, args.frommapname, args.tomapname) @@ -944,10 +1055,10 @@ database = Database() database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] + cliargs = ["keymap-gen", "code-table", "--lang=%s" % args.lang] if args.varname is not None: cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["code-table", "keymaps.csv", args.mapname]) + cliargs.extend(["keymaps.csv", args.mapname]) SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) SRC_GENERATORS[args.lang].generate_code_table(args.varname, database, args.mapname) @@ -956,10 +1067,10 @@ database = Database() database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] + cliargs = ["keymap-gen", "name-map", "--lang=%s" % args.lang] if args.varname is not None: cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["name-map", "keymaps.csv", args.frommapname, args.tomapname]) + cliargs.extend(["keymaps.csv", args.frommapname, args.tomapname]) SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) SRC_GENERATORS[args.lang].generate_name_map(args.varname, database, args.frommapname, args.tomapname) @@ -969,10 +1080,10 @@ database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] + cliargs = ["keymap-gen", "name-table", "--lang=%s" % args.lang] if args.varname is not None: cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["name-table", "keymaps.csv", args.mapname]) + cliargs.extend(["keymaps.csv", args.mapname]) SRC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) SRC_GENERATORS[args.lang].generate_name_table(args.varname, database, args.mapname) @@ -982,26 +1093,30 @@ database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] - if args.varname is not None: - cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["code-docs", "keymaps.csv", args.mapname]) + cliargs = ["keymap-gen", "code-docs", "--lang=%s" % args.lang] + if args.title is not None: + cliargs.append("--title=%s" % args.title) + if args.subtitle is not None: + cliargs.append("--subtitle=%s" % args.subtitle) + cliargs.extend(["keymaps.csv", args.mapname]) DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) - DOC_GENERATORS[args.lang].generate_code_docs(args.varname, database, args.mapname) + DOC_GENERATORS[args.lang].generate_code_docs(args.title, args.subtitle, database, args.mapname) def name_docs(args): database = Database() database.load(args.keymaps) - cliargs = ["keymap-gen", "--lang=%s" % args.lang] - if args.varname is not None: - cliargs.append("--varname=%s" % args.varname) - cliargs.extend(["name-docs", "keymaps.csv", args.mapname]) + cliargs = ["keymap-gen", "name-docs", "--lang=%s" % args.lang] + if args.title is not None: + cliargs.append("--title=%s" % args.title) + if args.subtitle is not None: + cliargs.append("--subtitle=%s" % args.subtitle) + cliargs.extend(["keymaps.csv", args.mapname]) DOC_GENERATORS[args.lang].generate_header(database, " ".join(cliargs)) - DOC_GENERATORS[args.lang].generate_name_docs(args.varname, database, args.mapname) + DOC_GENERATORS[args.lang].generate_name_docs(args.title, args.subtitle, database, args.mapname) def usage(): print ("Please select a command:") @@ -1011,43 +1126,62 @@ def main(): parser = argparse.ArgumentParser() - parser.add_argument("--lang", default="stdc", - help="Output language, (src=%s, doc=%s)" % ( - ",".join(SRC_GENERATORS.keys()), - ",".join(DOC_GENERATORS.keys()))) - parser.add_argument("--varname", default=None, - help="Data variable name") - subparsers = parser.add_subparsers(help="sub-command help") codemapparser = subparsers.add_parser("code-map", help="Generate a mapping between code tables") + codemapparser.add_argument("--varname", default=None, help="Data variable name") + codemapparser.add_argument("--lang", default="stdc", + help="Output language (%s)" % ( + ",".join(SRC_GENERATORS.keys()))) codemapparser.add_argument("keymaps", help="Path to keymap CSV data file") codemapparser.add_argument("frommapname", help="Source code table name") codemapparser.add_argument("tomapname", help="Target code table name") codemapparser.set_defaults(func=code_map) codetableparser = subparsers.add_parser("code-table", help="Generate a flat code table") + codetableparser.add_argument("--lang", default="stdc", + help="Output language (%s)" % ( + ",".join(SRC_GENERATORS.keys()))) + codetableparser.add_argument("--varname", default=None, help="Data variable name") codetableparser.add_argument("keymaps", help="Path to keymap CSV data file") codetableparser.add_argument("mapname", help="Code table name") codetableparser.set_defaults(func=code_table) namemapparser = subparsers.add_parser("name-map", help="Generate a mapping to names") + namemapparser.add_argument("--lang", default="stdc", + help="Output language (%s)" % ( + ",".join(SRC_GENERATORS.keys()))) + namemapparser.add_argument("--varname", default=None, help="Data variable name") namemapparser.add_argument("keymaps", help="Path to keymap CSV data file") namemapparser.add_argument("frommapname", help="Source code table name") namemapparser.add_argument("tomapname", help="Target name table name") namemapparser.set_defaults(func=name_map) nametableparser = subparsers.add_parser("name-table", help="Generate a flat name table") + nametableparser.add_argument("--lang", default="stdc", + help="Output language, (%s)" % ( + ",".join(SRC_GENERATORS.keys()))) + nametableparser.add_argument("--varname", default=None, help="Data variable name") nametableparser.add_argument("keymaps", help="Path to keymap CSV data file") nametableparser.add_argument("mapname", help="Name table name") nametableparser.set_defaults(func=name_table) codedocsparser = subparsers.add_parser("code-docs", help="Generate code documentation") + codedocsparser.add_argument("--lang", default="pod", + help="Output language (%s)" % ( + ",".join(DOC_GENERATORS.keys()))) + codedocsparser.add_argument("--title", default=None, help="Document title") + codedocsparser.add_argument("--subtitle", default=None, help="Document subtitle") codedocsparser.add_argument("keymaps", help="Path to keymap CSV data file") codedocsparser.add_argument("mapname", help="Code table name") codedocsparser.set_defaults(func=code_docs) namedocsparser = subparsers.add_parser("name-docs", help="Generate name documentation") + namedocsparser.add_argument("--lang", default="pod", + help="Output language (%s)" % ( + ",".join(DOC_GENERATORS.keys()))) + namedocsparser.add_argument("--title", default=None, help="Document title") + namedocsparser.add_argument("--subtitle", default=None, help="Document subtitle") namedocsparser.add_argument("keymaps", help="Path to keymap CSV data file") namedocsparser.add_argument("mapname", help="Name table name") namedocsparser.set_defaults(func=name_docs)
