test/shaping/Makefile.am | 1 test/shaping/hb_test_tools.py | 27 ++++++++++++++++++++++- test/shaping/record-test.sh | 2 - test/shaping/tests/indic-script-extensions.tests | 2 - 4 files changed, 29 insertions(+), 3 deletions(-)
New commits: commit bf133497e53e8b1dcd22df62080d33e7f3d85b68 Merge: fd786c76 49a41dc7 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Oct 25 17:23:20 2017 -0600 Merge commit '49a41dc75931cc2d2f7e74b7801f8cc327039e8e' commit fd786c768f838ab61090004dd46b8cefeb270dfd Author: David Corbett <corbett....@husky.neu.edu> Date: Wed Oct 25 14:31:22 2017 -0400 Use `mktemp -d` instead of `mktemp --directory` diff --git a/test/shaping/record-test.sh b/test/shaping/record-test.sh index 0259c76a..d7c0d6d5 100755 --- a/test/shaping/record-test.sh +++ b/test/shaping/record-test.sh @@ -1,6 +1,6 @@ #!/bin/bash -dir=`mktemp --directory` +dir=`mktemp -d` hb_shape=$1 shift commit c4944920c0c11d6424d600ebc9130c9055382f80 Author: David Corbett <corbett....@husky.neu.edu> Date: Wed Oct 25 16:06:40 2017 -0400 Fix and run indic-script-extensions.tests diff --git a/test/shaping/Makefile.am b/test/shaping/Makefile.am index f788d42b..377c08d0 100644 --- a/test/shaping/Makefile.am +++ b/test/shaping/Makefile.am @@ -61,6 +61,7 @@ TESTS = \ tests/indic-joiners.tests \ tests/indic-old-spec.tests \ tests/indic-pref-blocking.tests \ + tests/indic-script-extensions.tests \ tests/indic-special-cases.tests \ tests/indic-syllable.tests \ tests/language-tags.tests \ diff --git a/test/shaping/tests/indic-script-extensions.tests b/test/shaping/tests/indic-script-extensions.tests index 52b6aa0d..d59d79a5 100644 --- a/test/shaping/tests/indic-script-extensions.tests +++ b/test/shaping/tests/indic-script-extensions.tests @@ -1 +1 @@ -fonts/sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf::U+0BA4,U+0BC6,U+D804,U+DF3C,U+0BAA,U+D804,U+DF3C,U+0BC6,U+D804,U+DF3C:[u0BC6=0+2093|u1133C=0+0|u0BA4=0+1863|u0BC6=3+2093|u1133C=3+0|u0BAA=3+1706|u1133C=3+0] +fonts/sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf::U+0BA4,U+0BC6,U+1133C,U+0BAA,U+1133C,U+0BC6,U+1133C:[u0BC6=0+2093|u1133C=0+0|u0BA4=0+1863|u0BC6=3+2093|u1133C=3+0|u0BAA=3+1706|u1133C=3+0] commit d8df714251c61e13d7d12eb3f7393dd3a75a3719 Author: David Corbett <corbett....@husky.neu.edu> Date: Wed Oct 25 16:06:01 2017 -0400 Fix code point iteration in narrow Python diff --git a/test/shaping/hb_test_tools.py b/test/shaping/hb_test_tools.py index b9cb836a..c9bb1dd3 100644 --- a/test/shaping/hb_test_tools.py +++ b/test/shaping/hb_test_tools.py @@ -7,6 +7,9 @@ from itertools import * diff_symbols = "-+=*&^%$#@!~/" diff_colors = ['red', 'green', 'blue'] +def codepoints(s): + return (ord (u) for u in s) + try: unichr = unichr @@ -43,6 +46,28 @@ try: except UnicodeDecodeError: raise ValueError('unichr() arg not in range(0x110000)') + def codepoints(s): + high_surrogate = None + for u in s: + cp = ord (u) + if 0xDC00 <= cp <= 0xDFFF: + if high_surrogate: + yield 0x10000 + (high_surrogate - 0xD800) * 0x400 + (cp - 0xDC00) + high_surrogate = None + else: + yield 0xFFFC + else: + if high_surrogate: + yield 0xFFFC + high_surrogate = None + if 0xD800 <= cp <= 0xDBFF: + high_surrogate = cp + else: + yield cp + high_surrogate = None + if high_surrogate: + yield 0xFFFC + except NameError: unichr = chr @@ -456,7 +481,7 @@ class Unicode: @staticmethod def decode (s): - return u','.join ("U+%04X" % ord (u) for u in tounicode (s, 'utf-8')) + return u','.join ("U+%04X" % cp for cp in codepoints (tounicode (s, 'utf-8'))) @staticmethod def parse (s): _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz