diff --git a/dll/apisets/update.py b/dll/apisets/update.py
index c30a8bef7d1..ad3fd24f416 100644
--- a/dll/apisets/update.py
+++ b/dll/apisets/update.py
@@ -29,9 +29,9 @@ FUNCTION_BLACKLIST = [
]
SPEC_HEADER = [
- '\n',
- '# This file is autogenerated by update.py\n',
- '\n'
+ b'\n',
+ b'# This file is autogenerated by update.py\n',
+ b'\n'
]
ALIAS_DLL = {
@@ -258,7 +258,7 @@ class SpecEntry(object):
assert self._ord != '@'
name = 'Ordinal' + self._ord
if not self._forwarder:
- spec_file.write('{} stub{} {}{}'.format(self._ord, opts, name, NL_CHAR))
+ spec_file.write('{} stub{} {}{}'.format(self._ord, opts, name, NL_CHAR).encode('utf-8'))
estimate_size += 0x1000
else:
assert self.arch != Arch(), self.name
@@ -279,7 +279,7 @@ class SpecEntry(object):
name=name,
args=args,
fwd=fwd,
- nl=NL_CHAR))
+ nl=NL_CHAR).encode('utf-8'))
estimate_size += 0x100
return estimate_size
@@ -298,7 +298,7 @@ class SpecFile(object):
for line in specfile.readlines():
if line:
try:
- entry = SpecEntry(line, self)
+ entry = SpecEntry(line.decode('utf-8'), self)
self._entries.append(entry)
self._functions[entry.name].append(entry)
except InvalidSpecError:
@@ -383,7 +383,7 @@ class SpecFile(object):
fwd_strings = ' '.join(fwd_strings)
name = self.name
baseaddress = '0x{:8x}'.format(baseaddress)
- cmakelists.write('add_apiset({} {} {}){}'.format(name, baseaddress, fwd_strings, NL_CHAR))
+ cmakelists.write('add_apiset({} {} {}){}'.format(name, baseaddress, fwd_strings, NL_CHAR).encode('utf-8'))
return self._estimate_size
@@ -416,7 +416,7 @@ def run(wineroot):
version = subprocess.check_output(["git", "describe"], cwd=wineroot).strip()
- print 'Reading Wine apisets for', version
+ print('Reading Wine apisets for', version.decode('utf-8'))
wine_apiset_path = os.path.join(wineroot, 'dlls')
for dirname in os.listdir(wine_apiset_path):
if not dirname.startswith('api-'):
@@ -427,78 +427,78 @@ def run(wineroot):
spec = SpecFile(fullpath, dirname)
wine_apisets.append(spec)
- print 'Parsing Wine apisets,',
+ print('Parsing Wine apisets,',)
total = (0, 0)
for apiset in wine_apisets:
total = tuple(map(sum, zip(apiset.parse(), total)))
- print 'found', total[0], '/', total[1], 'forwarders'
+ print('found', total[0], '/', total[1], 'forwarders')
- print 'Reading ReactOS modules'
+ print('Reading ReactOS modules')
for fullpath, dllname in generate_specnames(os.path.dirname(SCRIPT_DIR)):
spec = SpecFile(fullpath, dllname)
ros_modules.append(spec)
- print 'Parsing ReactOS modules'
+ print('Parsing ReactOS modules')
for module in ros_modules:
module.parse()
assert module.name not in module_lookup, module.name
module_lookup[module.name] = module
module.add_functions(function_lookup)
- print 'First pass, resolving forwarders,',
+ print('First pass, resolving forwarders,',)
total = (0, 0)
for apiset in wine_apisets:
total = tuple(map(sum, zip(apiset.resolve_forwarders(module_lookup), total)))
- print 'found', total[0], '/', total[1], 'forwarders'
+ print('found', total[0], '/', total[1], 'forwarders')
- print 'Second pass, searching extra forwarders,',
+ print('Second pass, searching extra forwarders,',)
total = (0, 0)
for apiset in wine_apisets:
total = tuple(map(sum, zip(apiset.extra_forwarders(function_lookup, module_lookup), total)))
- print 'found', total[0], '/', total[1], 'forwarders'
+ print('found', total[0], '/', total[1], 'forwarders')
with open(os.path.join(SCRIPT_DIR, 'CMakeLists.txt.in'), 'rb') as template:
cmake_template = template.read()
- cmake_template = cmake_template.replace('%WINE_GIT_VERSION%', version)
+ cmake_template = cmake_template.replace(b'%WINE_GIT_VERSION%', version)
# Detect the checkout newline settings
- if '\r\n' in cmake_template:
+ if b'\r\n' in cmake_template:
NL_CHAR = '\r\n'
manifest_files = []
- print 'Writing apisets'
- spec_header = [line.replace('\n', NL_CHAR) for line in SPEC_HEADER]
+ print('Writing apisets')
+ spec_header = [line.replace(b'\n', NL_CHAR.encode('utf-8')) for line in SPEC_HEADER]
for apiset in wine_apisets:
with open(os.path.join(SCRIPT_DIR, apiset.name + '.spec'), 'wb') as out_spec:
out_spec.writelines(spec_header)
apiset.write(out_spec)
- manifest_files.append(' '.format(apiset.name))
+ manifest_files.append(' '.format(apiset.name).encode('utf-8'))
- print 'Generating manifest'
+ print('Generating manifest')
manifest_name = 'x86_reactos.apisets_6595b64144ccf1df_1.0.0.0_none_deadbeef.manifest'
with open(os.path.join(SCRIPT_DIR, manifest_name + '.in'), 'rb') as template:
manifest_template = template.read()
- manifest_template = manifest_template.replace('%WINE_GIT_VERSION%', version)
- file_list = '\r\n'.join(manifest_files)
- manifest_template = manifest_template.replace('%MANIFEST_FILE_LIST%', file_list)
+ manifest_template = manifest_template.replace(b'%WINE_GIT_VERSION%', version)
+ file_list = b'\r\n'.join(manifest_files)
+ manifest_template = manifest_template.replace(b'%MANIFEST_FILE_LIST%', file_list)
with open(os.path.join(SCRIPT_DIR, manifest_name), 'wb') as manifest:
manifest.write(manifest_template)
- print 'Writing CMakeLists.txt'
+ print('Writing CMakeLists.txt')
baseaddress = 0x60000000
with open(os.path.join(SCRIPT_DIR, 'CMakeLists.txt'), 'wb') as cmakelists:
cmakelists.write(cmake_template)
for apiset in wine_apisets:
baseaddress += apiset.write_cmake(cmakelists, baseaddress)
baseaddress += (0x10000 - baseaddress) % 0x10000
- print 'Done'
+ print('Done')
def main(paths):
for path in paths:
if path:
run(path)
return
- print 'No path specified,'
- print 'either pass it as argument, or set the environment variable "WINE_SRC_ROOT"'
+ print('No path specified,')
+ print('either pass it as argument, or set the environment variable "WINE_SRC_ROOT"')
if __name__ == '__main__':
main(sys.argv[1:] + [os.environ.get('WINE_SRC_ROOT')])