[gen-ucd] Protect against accidents like previous commit
https://github.com/harfbuzz/harfbuzz/pull/1796
diff --git a/src/gen-ucd-table.py b/src/gen-ucd-table.py
index 1afde3b..a152375 100755
--- a/src/gen-ucd-table.py
+++ b/src/gen-ucd-table.py
@@ -58,13 +58,14 @@
dm_order.update(dm1_order)
dm_order.update(dm2_order)
-gc_order = packTab.AutoMapping()
-for _ in ('Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu',
- 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf',
- 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs',):
- gc_order[_]
+gc_order = dict()
+for i,v in enumerate(('Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu',
+ 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf',
+ 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs',)):
+ gc_order[i] = v
+ gc_order[v] = i
-sc_order = packTab.AutoMapping()
+sc_order = dict()
sc_array = []
sc_re = re.compile(r"\b(HB_SCRIPT_[_A-Z]*).*HB_TAG [(]'(.)','(.)','(.)','(.)'[)]")
for line in open('hb-common.h'):
@@ -72,14 +73,11 @@
if not m: continue
name = m.group(1)
tag = ''.join(m.group(i) for i in range(2, 6))
- i = sc_order[tag]
- assert i == len(sc_array)
+ i = len(sc_array)
+ sc_order[tag] = i
+ sc_order[i] = tag
sc_array.append(name)
-# TODO Currently if gc_order or sc_order do not capture all values, we get in
-# trouble because they silently add new values. We should be able to "freeze"
-# them, or just do the mapping ourselves.
-
DEFAULT = 1
COMPACT = 3
SLOPPY = 5