summaryrefslogtreecommitdiff
path: root/backend/pixma/scripts/pixma_gen_options.py
diff options
context:
space:
mode:
Diffstat (limited to 'backend/pixma/scripts/pixma_gen_options.py')
-rwxr-xr-xbackend/pixma/scripts/pixma_gen_options.py102
1 files changed, 49 insertions, 53 deletions
diff --git a/backend/pixma/scripts/pixma_gen_options.py b/backend/pixma/scripts/pixma_gen_options.py
index c4c75e0..cee2c58 100755
--- a/backend/pixma/scripts/pixma_gen_options.py
+++ b/backend/pixma/scripts/pixma_gen_options.py
@@ -1,6 +1,8 @@
#!/usr/bin/env python
+from __future__ import print_function
import sys,os,re
+import functools
class Error(Exception):
pass
@@ -181,40 +183,35 @@ def parseFile(f):
def genHeader(options):
- print """
-typedef union {
- SANE_Word w;
- SANE_Int i;
- SANE_Bool b;
- SANE_Fixed f;
- SANE_String s;
- void *ptr;
-} option_value_t;
-"""
- print 'typedef enum {'
+ print ("\ntypedef union {")
+ print (" SANE_Word w;")
+ print (" SANE_Int i;")
+ print (" SANE_Bool b;")
+ print (" SANE_Fixed f;")
+ print (" SANE_String s;")
+ print (" void *ptr;")
+ print ("} option_value_t;")
+ print ("\ntypedef enum {")
for o in options:
- print ' %(cname_opt)s,' % o
- print ' ' + opt_prefix + 'last'
- print '} option_t;'
- print """
+ print (" %(cname_opt)s," % o)
+ print (" " + opt_prefix + "last")
+ print ("} option_t;")
-typedef struct {
- SANE_Option_Descriptor sod;
- option_value_t val,def;
- SANE_Word info;
-} option_descriptor_t;
+ print ("\ntypedef struct {")
+ print (" SANE_Option_Descriptor sod;")
+ print (" option_value_t val,def;")
+ print (" SANE_Word info;")
+ print ("} option_descriptor_t;")
-
-struct pixma_sane_t;
-static int build_option_descriptors(struct pixma_sane_t *ss);
-"""
+ print ("\nstruct pixma_sane_t;")
+ print ("static int build_option_descriptors(struct pixma_sane_t *ss);\n")
def genMinMaxRange(n, t, r):
if t == 'SANE_TYPE_FIXED':
r = ['SANE_FIX(%s)' % x for x in r]
- print 'static const SANE_Range ' + n + ' = '
- print ' { ' + r[0] + ',' + r[1] + ',' + r[2] + ' };'
+ print ("static const SANE_Range " + n + " =")
+ print (" { " + r[0] + "," + r[1] + "," + r[2] + " };")
def genList(n, t, l):
@@ -227,13 +224,14 @@ def genList(n, t, l):
elif t == 'SANE_TYPE_STRING':
etype = 'SANE_String_Const'
l = ['SANE_I18N("%s")' % x for x in l] + ['NULL']
- print 'static const %s %s[%d] = {' % (etype, n, len(l))
+ print ("static const %s %s[%d] = {" % (etype, n, len(l)))
for x in l[0:-1]:
- print '\t' + x + ','
- print '\t' + l[-1] + ' };'
+ print ("\t" + x + ",")
+ print ("\t" + l[-1] + " };")
def genConstraints(options):
+ print ("")
for o in options:
if 'constraint' not in o: continue
c = o['constraint']
@@ -243,7 +241,6 @@ def genConstraints(options):
genMinMaxRange(oname, otype, c)
elif isinstance(c, list):
genList(oname, otype, c)
- print
def buildCodeVerbatim(o):
for f in ('name', 'title', 'desc', 'type', 'unit', 'size', 'cap',
@@ -283,12 +280,12 @@ def ccode(o):
o['code_size'] = code
if ('code_cap' not in o) and ('cap' in o):
- o['code_cap'] = reduce(lambda a,b: a+'|'+b, o['cap'])
+ o['code_cap'] = functools.reduce(lambda a,b: a+'|'+b, o['cap'])
else:
o['code_cap'] = '0'
if ('code_info' not in o) and ('info' in o):
- o['code_info'] = reduce(lambda a,b: a+'|'+b, o['info'])
+ o['code_info'] = functools.reduce(lambda a,b: a+'|'+b, o['info'])
else:
o['code_info'] = '0'
@@ -335,22 +332,21 @@ def ccode(o):
return o
def genBuildOptions(options):
- print """
-static
-int find_string_in_list(SANE_String_Const str, const SANE_String_Const *list)
-{
- int i;
- for (i = 0; list[i] && strcmp(str, list[i]) != 0; i++) {}
- return i;
-}
-
-static
-int build_option_descriptors(struct pixma_sane_t *ss)
-{
- SANE_Option_Descriptor *sod;
- option_descriptor_t *opt;
-
- memset(OPT_IN_CTX, 0, sizeof(OPT_IN_CTX));"""
+ print ("\nstatic")
+ print ("int find_string_in_list(SANE_String_Const str, const SANE_String_Const *list)")
+ print ("{")
+ print (" int i;")
+ print (" for (i = 0; list[i] && strcmp(str, list[i]) != 0; i++) {}")
+ print (" return i;")
+ print ("}")
+ print ("")
+ print ("static")
+ print ("int build_option_descriptors(struct pixma_sane_t *ss)")
+ print ("{")
+ print (" SANE_Option_Descriptor *sod;")
+ print (" option_descriptor_t *opt;")
+ print ("")
+ print (" memset(OPT_IN_CTX, 0, sizeof(OPT_IN_CTX));")
for o in options:
o = ccode(o)
@@ -370,10 +366,9 @@ int build_option_descriptors(struct pixma_sane_t *ss)
' OPT_IN_CTX[%(cname_opt)s].info = %(code_info)s;\n' \
'%(full_code_default)s'
sys.stdout.write(code % o)
- print
- print ' return 0;\n'
- print '}'
- print
+ print ("")
+ print (" return 0;")
+ print ("}\n")
g = Struct()
g.ngroups = 0
@@ -381,7 +376,8 @@ opt_prefix = 'opt_'
con_prefix = 'constraint_'
cnameMap = createCNameMap()
options = parseFile(sys.stdin)
-print "/* Automatically generated from pixma_sane.c */"
+print ("/* DO NOT EDIT THIS FILE! */")
+print ("/* Automatically generated from pixma.c */")
if (len(sys.argv) == 2) and (sys.argv[1] == 'h'):
genHeader(options)
else: