Wed, 20 Jun 2018 02:13:44 -0400
prefs: Add binding versions of pref widget functions.
These just bind settings to existing widgets and copy the saved value to
the widget, except for combos which are produced from runtime lists.
Those are populated in a similar way as before.
There are some extra _bind_ words that will probably be dropped once the
other functions are unused.
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
1 | # This program takes a C header/source as the input and produces |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
2 | # |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
3 | # with --keyword=enum: the list of all enums |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
4 | # with --keyword=struct: the list of all structs |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
5 | # |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
6 | # the output styles: |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
7 | # |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
8 | # --enum DBUS_POINTER_NAME1, |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
9 | # DBUS_POINTER_NAME2, |
|
33932
c49bfe98716d
Fix build and other scripts on Python3.
Ashish Gupta <ashmew2@gmail.com>
parents:
15435
diff
changeset
|
10 | # DBUS_POINTER_NAME3, |
|
c49bfe98716d
Fix build and other scripts on Python3.
Ashish Gupta <ashmew2@gmail.com>
parents:
15435
diff
changeset
|
11 | # |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
12 | # --list NAME1 |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
13 | # NAME2 |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
14 | # NAME3 |
|
33932
c49bfe98716d
Fix build and other scripts on Python3.
Ashish Gupta <ashmew2@gmail.com>
parents:
15435
diff
changeset
|
15 | # |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
16 | |
|
38313
38a40ddbb9b7
Ensure all Python scripts are Py3k compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
17 | from __future__ import absolute_import, division, print_function |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
18 | |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
19 | import argparse |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
20 | import fileinput |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
21 | import re |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
22 | import sys |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
23 | |
|
11331
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
24 | |
|
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
25 | def toprint(match, line): |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
26 | if args.verbatim: |
|
11331
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
27 | return line |
|
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
28 | else: |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
29 | return args.pattern % match |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
30 | |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
31 | |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
32 | parser = argparse.ArgumentParser() |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
33 | parser.add_argument('input', nargs='*', |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
34 | help='Input files (or stdin if not specified)') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
35 | parser.add_argument('-o', '--output', type=argparse.FileType('w'), |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
36 | help='Output to file instead of stdout') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
37 | parser.add_argument('--keyword', default='struct', |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
38 | help='What keyword to search') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
39 | parser.add_argument('--pattern', default='%s', |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
40 | help='String pattern used to print matches') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
41 | parser.add_argument('--verbatim', action='store_true', |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
42 | help='Return full line of match instead of match itself') |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
43 | args = parser.parse_args() |
|
11331
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
44 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
45 | structregexp1 = re.compile( |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
46 | r"^(typedef\s+)?%s\s+\w+\s+(\w+)\s*;" % (args.keyword, )) |
|
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
47 | structregexp2 = re.compile(r"^(typedef\s+)?%s" % (args.keyword, )) |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
48 | structregexp3 = re.compile(r"^}\s+(\w+)\s*;") |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
49 | |
|
37984
6a5ca046a90d
Make all Python files PEP8 compatible.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37983
diff
changeset
|
50 | print("/* Generated by %s. Do not edit! */" % (sys.argv[0], ), |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
51 | file=args.output) |
|
11331
6e06ed40a312
[gaim-migrate @ 13544]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11171
diff
changeset
|
52 | |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
53 | myinput = fileinput.input(args.input) |
|
11171
a25653d60f9c
[gaim-migrate @ 13272]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
11146
diff
changeset
|
54 | |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
55 | for line in myinput: |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
56 | match = structregexp1.match(line) |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
57 | if match is not None: |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
58 | print(toprint(match.group(2), line), file=args.output) |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
59 | continue |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
60 | |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
61 | match = structregexp2.match(line) |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
62 | if match is not None: |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
63 | while True: |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
64 | if args.verbatim: |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
65 | print(line.rstrip(), file=args.output) |
|
33932
c49bfe98716d
Fix build and other scripts on Python3.
Ashish Gupta <ashmew2@gmail.com>
parents:
15435
diff
changeset
|
66 | line = next(myinput) |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
67 | match = structregexp3.match(line) |
|
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
68 | if match is not None: |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
69 | print(toprint(match.group(1), line), file=args.output) |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
70 | break |
|
37985
c3bab3be9695
Remove some "clever" Python code.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
37984
diff
changeset
|
71 | if line[0] not in " \t{\n": |
|
37936
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
72 | if args.verbatim: |
|
65e477a02dd6
Refactor DBus Python scripts to avoid redirection.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33932
diff
changeset
|
73 | print(line, file=args.output) |
|
11146
c56333373e3c
[gaim-migrate @ 13217]
Piotr Zielinski <zielaj@users.sourceforge.net>
parents:
diff
changeset
|
74 | break |