[Mesa-dev] [PATCH] r600/egd_tables.py: make the script python 2+3 compatible
Stefan Dirsch
sndirsch at suse.de
Wed Feb 28 11:12:25 UTC 2018
Patch by "Tomas Chvatal" <tchvatal at suse.com> with modifications
by "Michal Srb" <msrb at suse.com> to not break python 2.
https://bugzilla.suse.com/show_bug.cgi?id=1082303
v2:
- open parse file in binary mode (default changed from binary to unicode
text mode with python3)
- make use of 'from __future__ import print_function', so semantics
of print statements in python2 are closer to print functions in python3
https://lists.freedesktop.org/archives/mesa-dev/2018-February/187056.html
Signed-off-by: Stefan Dirsch <sndirsch at suse.de>
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
---
src/gallium/drivers/r600/egd_tables.py | 55 +++++++++++++++++-----------------
1 file changed, 28 insertions(+), 27 deletions(-)
diff --git a/src/gallium/drivers/r600/egd_tables.py b/src/gallium/drivers/r600/egd_tables.py
index d7b78c7fb1..ee62157141 100644
--- a/src/gallium/drivers/r600/egd_tables.py
+++ b/src/gallium/drivers/r600/egd_tables.py
@@ -1,3 +1,4 @@
+from __future__ import print_function
CopyRight = '''
/*
@@ -60,7 +61,7 @@ class StringTable:
"""
fragments = [
'"%s\\0" /* %s */' % (
- te[0].encode('string_escape'),
+ te[0].encode('unicode_escape'),
', '.join(str(idx) for idx in te[2])
)
for te in self.table
@@ -146,7 +147,7 @@ def strip_prefix(s):
return s[s[2:].find('_')+3:]
def parse(filename, regs, packets):
- stream = open(filename)
+ stream = io.open('filename', 'b')
for line in stream:
if not line.startswith('#define '):
@@ -217,10 +218,10 @@ def write_tables(regs, packets):
strings = StringTable()
strings_offsets = IntTable("int")
- print '/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */'
- print
- print CopyRight.strip()
- print '''
+ print('/* This file is autogenerated by egd_tables.py from evergreend.h. Do not edit directly. */')
+ print('')
+ print(CopyRight.strip())
+ print('''
#ifndef EG_TABLES_H
#define EG_TABLES_H
@@ -242,20 +243,20 @@ struct eg_packet3 {
unsigned name_offset;
unsigned op;
};
-'''
+''')
- print 'static const struct eg_packet3 packet3_table[] = {'
+ print('static const struct eg_packet3 packet3_table[] = {')
for pkt in packets:
- print '\t{%s, %s},' % (strings.add(pkt[5:]), pkt)
- print '};'
- print
+ print('\t{%s, %s},' % (strings.add(pkt[5:]), pkt))
+ print('};')
+ print('')
- print 'static const struct eg_field egd_fields_table[] = {'
+ print('static const struct eg_field egd_fields_table[] = {')
fields_idx = 0
for reg in regs:
if len(reg.fields) and reg.own_fields:
- print '\t/* %s */' % (fields_idx)
+ print('\t/* %s */' % (fields_idx))
reg.fields_idx = fields_idx
@@ -266,34 +267,34 @@ struct eg_packet3 {
while value[1] >= len(values_offsets):
values_offsets.append(-1)
values_offsets[value[1]] = strings.add(strip_prefix(value[0]))
- print '\t{%s, %s(~0u), %s, %s},' % (
+ print('\t{%s, %s(~0u), %s, %s},' % (
strings.add(field.name), field.s_name,
- len(values_offsets), strings_offsets.add(values_offsets))
+ len(values_offsets), strings_offsets.add(values_offsets)))
else:
- print '\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name)
+ print('\t{%s, %s(~0u)},' % (strings.add(field.name), field.s_name))
fields_idx += 1
- print '};'
- print
+ print('};')
+ print('')
- print 'static const struct eg_reg egd_reg_table[] = {'
+ print('static const struct eg_reg egd_reg_table[] = {')
for reg in regs:
if len(reg.fields):
- print '\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
- len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx)
+ print('\t{%s, %s, %s, %s},' % (strings.add(reg.name), reg.r_name,
+ len(reg.fields), reg.fields_idx if reg.own_fields else reg.fields_owner.fields_idx))
else:
- print '\t{%s, %s},' % (strings.add(reg.name), reg.r_name)
- print '};'
- print
+ print('\t{%s, %s},' % (strings.add(reg.name), reg.r_name))
+ print('};')
+ print('')
strings.emit(sys.stdout, "egd_strings")
- print
+ print('')
strings_offsets.emit(sys.stdout, "egd_strings_offsets")
- print
- print '#endif'
+ print('')
+ print('#endif')
def main():
--
2.13.6
More information about the mesa-dev
mailing list