83 lines
3.2 KiB
Diff
83 lines
3.2 KiB
Diff
|
From fa4382c4b48ec34ed3259334f2e0f8d2706ffcf9 Mon Sep 17 00:00:00 2001
|
||
|
From: Jonathan MERCIER <jmercier@cng.fr>
|
||
|
Date: Tue, 17 Mar 2020 21:18:37 -0400
|
||
|
Subject: [PATCH 3/3] icustrip.py: fix use of string and byte objects
|
||
|
|
||
|
Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
|
||
|
---
|
||
|
tools/icu/icutrim.py | 17 ++++++++---------
|
||
|
1 file changed, 8 insertions(+), 9 deletions(-)
|
||
|
|
||
|
diff --git a/tools/icu/icutrim.py b/tools/icu/icutrim.py
|
||
|
index 25bd99d9cb260da00de9647f9b060790b48af8b2..f857e73bbce298048e407ddbef87f5bc4ac5307a 100755
|
||
|
--- a/tools/icu/icutrim.py
|
||
|
+++ b/tools/icu/icutrim.py
|
||
|
@@ -11,10 +11,11 @@
|
||
|
# Usage:
|
||
|
# Use "-h" to get help options.
|
||
|
|
||
|
from __future__ import print_function
|
||
|
|
||
|
+import io
|
||
|
import json
|
||
|
import optparse
|
||
|
import os
|
||
|
import re
|
||
|
import shutil
|
||
|
@@ -157,13 +158,12 @@ def runcmd(tool, cmd, doContinue=False):
|
||
|
print("FAILED: %s" % cmd)
|
||
|
sys.exit(1)
|
||
|
return rc
|
||
|
|
||
|
## STEP 0 - read in json config
|
||
|
-fi= open(options.filterfile, "rb")
|
||
|
-config=json.load(fi)
|
||
|
-fi.close()
|
||
|
+with io.open(options.filterfile, encoding='utf-8') as fi:
|
||
|
+ config = json.load(fi)
|
||
|
|
||
|
if options.locales:
|
||
|
config["variables"] = config.get("variables", {})
|
||
|
config["variables"]["locales"] = config["variables"].get("locales", {})
|
||
|
config["variables"]["locales"]["only"] = options.locales.split(',')
|
||
|
@@ -283,14 +283,13 @@ for i in range(len(items)):
|
||
|
print("procesing %s" % (tree))
|
||
|
trees[tree] = { "extension": ".res", "treeprefix": treeprefix, "hasIndex": True }
|
||
|
# read in the resource list for the tree
|
||
|
treelistfile = os.path.join(options.tmpdir,"%s.lst" % tree)
|
||
|
runcmd("iculslocs", "-i %s -N %s -T %s -l > %s" % (outfile, dataname, tree, treelistfile))
|
||
|
- fi = open(treelistfile, 'rb')
|
||
|
- treeitems = fi.readlines()
|
||
|
- trees[tree]["locs"] = [treeitems[i].strip() for i in range(len(treeitems))]
|
||
|
- fi.close()
|
||
|
+ with io.open(treelistfile, 'r', encoding='utf-8') as fi:
|
||
|
+ treeitems = fi.readlines()
|
||
|
+ trees[tree]["locs"] = [line.strip() for line in treeitems]
|
||
|
if tree not in config.get("trees", {}):
|
||
|
print(" Warning: filter file %s does not mention trees.%s - will be kept as-is" % (options.filterfile, tree))
|
||
|
else:
|
||
|
queueForRemoval(tree)
|
||
|
|
||
|
@@ -315,16 +314,16 @@ def removeList(count=0):
|
||
|
print("## Damage control, trying to parse stderr from icupkg..")
|
||
|
fi = open(hackerrfile, 'rb')
|
||
|
erritems = fi.readlines()
|
||
|
fi.close()
|
||
|
#Item zone/zh_Hant_TW.res depends on missing item zone/zh_Hant.res
|
||
|
- pat = re.compile("""^Item ([^ ]+) depends on missing item ([^ ]+).*""")
|
||
|
+ pat = re.compile(bytes(r"^Item ([^ ]+) depends on missing item ([^ ]+).*", 'utf-8'))
|
||
|
for i in range(len(erritems)):
|
||
|
line = erritems[i].strip()
|
||
|
m = pat.match(line)
|
||
|
if m:
|
||
|
- toDelete = m.group(1)
|
||
|
+ toDelete = m.group(1).decode("utf-8")
|
||
|
if(options.verbose > 5):
|
||
|
print("<< %s added to delete" % toDelete)
|
||
|
remove.add(toDelete)
|
||
|
else:
|
||
|
print("ERROR: could not match errline: %s" % line)
|
||
|
--
|
||
|
2.25.1
|
||
|
|