From 610626019cd10944b76622e30b2610910bf4b2b8 Mon Sep 17 00:00:00 2001 From: Bowon Ryu Date: Fri, 12 Apr 2019 13:22:11 +0900 Subject: [PATCH] Imported Upstream version 2.4.0 --- CMakeLists.txt | 12 - ChangeLog | 22635 ++++++++----------- Makefile.am | 2 +- Makefile.in | 21 +- NEWS | 11 + aclocal.m4 | 267 +- ar-lib | 4 +- compile | 13 +- config.guess | 485 +- config.sub | 207 +- configure | 411 +- configure.ac | 7 +- depcomp | 8 +- docs/Makefile.in | 115 +- docs/harfbuzz-docs.xml | 1 + docs/harfbuzz-sections.txt | 16 +- docs/harfbuzz.types | 36 - .../a-clustering-example-for-levels-0-and-1.html | 6 +- docs/html/aat-shaping.html | 6 +- docs/html/adding-text-to-the-buffer.html | 6 +- docs/html/annotation-glossary.html | 6 +- docs/html/api-index-0-9-10.html | 34 - docs/html/api-index-0-9-11.html | 34 - docs/html/api-index-0-9-2.html | 757 - docs/html/api-index-0-9-20.html | 38 - docs/html/api-index-0-9-22.html | 34 - docs/html/api-index-0-9-28.html | 34 - docs/html/api-index-0-9-30.html | 41 - docs/html/api-index-0-9-31.html | 46 - docs/html/api-index-0-9-38.html | 45 - docs/html/api-index-0-9-39.html | 34 - docs/html/api-index-0-9-41.html | 34 - docs/html/api-index-0-9-42.html | 42 - docs/html/api-index-0-9-5.html | 56 - docs/html/api-index-0-9-7.html | 195 - docs/html/api-index-0-9-8.html | 34 - docs/html/api-index-1-0-5.html | 42 - docs/html/api-index-1-1-2.html | 38 - docs/html/api-index-1-1-3.html | 49 - docs/html/api-index-1-2-3.html | 46 - docs/html/api-index-1-3-3.html | 86 - docs/html/api-index-1-4-0.html | 30 - docs/html/api-index-1-4-2.html | 84 - docs/html/api-index-1-4-3.html | 34 - docs/html/api-index-1-5-0.html | 49 - docs/html/api-index-1-6-0.html | 38 - docs/html/api-index-1-7-5.html | 30 - docs/html/api-index-1-7-7.html | 100 - docs/html/api-index-1-8-0.html | 45 - docs/html/api-index-1-8-1.html | 41 - docs/html/api-index-1-8-5.html | 34 - docs/html/api-index-1-8-6.html | 50 - docs/html/api-index-1-9-0.html | 57 - docs/html/api-index-2-0-0.html | 92 - docs/html/api-index-2-1-0.html | 121 - docs/html/api-index-full.html | 314 +- .../buffers-language-script-and-direction.html | 6 +- docs/html/building.html | 17 +- docs/html/ch01s03.html | 6 +- docs/html/ch03s02.html | 6 +- docs/html/ch03s03.html | 24 +- docs/html/ch09.html | 6 +- docs/html/ch10.html | 6 +- docs/html/ch11.html | 6 +- docs/html/ch12.html | 6 +- docs/html/clusters.html | 6 +- docs/html/complex-scripts.html | 6 +- docs/html/customizing-unicode-functions.html | 6 +- docs/html/deprecated-api-index.html | 98 - docs/html/fonts-and-faces.html | 6 +- docs/html/getting-started.html | 6 +- docs/html/graphite-shaping.html | 6 +- docs/html/harfbuzz-hb-aat-layout.html | 40 +- docs/html/harfbuzz-hb-blob.html | 79 +- docs/html/harfbuzz-hb-buffer.html | 397 +- docs/html/harfbuzz-hb-common.html | 1092 +- docs/html/harfbuzz-hb-coretext.html | 18 +- docs/html/harfbuzz-hb-deprecated.html | 22 +- docs/html/harfbuzz-hb-face.html | 105 +- docs/html/harfbuzz-hb-font.html | 288 +- docs/html/harfbuzz-hb-ft.html | 36 +- docs/html/harfbuzz-hb-glib.html | 22 +- docs/html/harfbuzz-hb-gobject.html | 837 +- docs/html/harfbuzz-hb-graphite2.html | 8 +- docs/html/harfbuzz-hb-icu.html | 10 +- docs/html/harfbuzz-hb-map.html | 59 +- docs/html/harfbuzz-hb-ot-color.html | 59 +- docs/html/harfbuzz-hb-ot-font.html | 10 +- docs/html/harfbuzz-hb-ot-layout.html | 131 +- docs/html/harfbuzz-hb-ot-math.html | 73 +- docs/html/harfbuzz-hb-ot-name.html | 30 +- docs/html/harfbuzz-hb-ot-shape.html | 14 +- docs/html/harfbuzz-hb-ot-var.html | 45 +- docs/html/harfbuzz-hb-set.html | 115 +- docs/html/harfbuzz-hb-shape-plan.html | 89 +- docs/html/harfbuzz-hb-shape.html | 201 +- docs/html/harfbuzz-hb-unicode.html | 98 +- docs/html/harfbuzz-hb-uniscribe.html | 10 +- docs/html/harfbuzz-hb-version.html | 18 +- docs/html/harfbuzz.devhelp2 | 254 +- docs/html/home.png | Bin 256 -> 256 bytes docs/html/index.html | 41 +- docs/html/install-harfbuzz.html | 6 +- docs/html/left-insensitive.png | Bin 395 -> 395 bytes docs/html/left.png | Bin 262 -> 262 bytes docs/html/level-2.html | 8 +- docs/html/opentype-shaping-models.html | 6 +- docs/html/plans-and-caching.html | 6 +- docs/html/pt01.html | 6 +- docs/html/pt02.html | 43 +- docs/html/reordering-in-levels-0-and-1.html | 6 +- docs/html/right-insensitive.png | Bin 373 -> 373 bytes docs/html/right.png | Bin 261 -> 261 bytes docs/html/setting-buffer-properties.html | 6 +- docs/html/shaping-and-shape-plans.html | 6 +- docs/html/shaping-concepts.html | 6 +- docs/html/shaping-operations.html | 6 +- docs/html/style.css | 4 + docs/html/text-runs.html | 6 +- .../the-distinction-between-levels-0-and-1.html | 8 +- docs/html/unicode-character-categories.html | 6 +- docs/html/up-insensitive.png | Bin 374 -> 374 bytes docs/html/up.png | Bin 260 -> 260 bytes ...g-harfbuzzs-native-opentype-implementation.html | 6 +- docs/html/using-your-own-font-functions.html | 6 +- docs/html/what-about-the-other-scripts.html | 6 +- docs/html/what-harfbuzz-doesnt-do.html | 6 +- docs/html/what-is-harfbuzz.html | 6 +- docs/html/why-do-i-need-a-shaping-engine.html | 6 +- docs/html/why-is-it-called-harfbuzz.html | 6 +- docs/html/working-with-harfbuzz-clusters.html | 6 +- docs/usermanual-clusters.xml | 4 +- docs/usermanual-getting-started.xml | 18 +- docs/usermanual-install-harfbuzz.xml | 12 + docs/version.xml | 2 +- gtk-doc.make | 102 +- install-sh | 36 +- ltmain.sh | 789 +- m4/gtk-doc.m4 | 27 +- m4/libtool.m4 | 129 +- m4/ltoptions.m4 | 2 +- m4/ltsugar.m4 | 2 +- m4/ltversion.m4 | 12 +- m4/lt~obsolete.m4 | 2 +- missing | 16 +- src/Makefile.in | 608 +- src/check-symbols.sh | 2 +- src/gen-indic-table.py | 4 - src/gen-use-table.py | 34 +- src/gen-vowel-constraints.py | 4 + src/hb-aat-layout-ankr-table.hh | 1 + src/hb-aat-layout-common.hh | 14 +- src/hb-atomic.hh | 8 +- src/hb-buffer.h | 7 +- src/hb-common.cc | 49 +- src/hb-common.h | 8 + src/hb-coretext.cc | 10 +- src/hb-directwrite.cc | 70 +- src/hb-directwrite.h | 5 +- src/hb-dsalgs.hh | 32 +- src/hb-graphite2.cc | 35 +- src/hb-machinery.hh | 30 +- src/hb-map.hh | 2 +- src/hb-null.hh | 31 +- src/hb-ot-cff-common.hh | 1 + src/hb-ot-cff1-table.hh | 51 +- src/hb-ot-font.cc | 2 +- src/hb-ot-hdmx-table.hh | 19 +- src/hb-ot-hmtx-table.hh | 102 +- src/hb-ot-layout-common.hh | 4 +- src/hb-ot-layout-gsub-table.hh | 4 +- src/hb-ot-layout.cc | 13 - src/hb-ot-layout.hh | 13 +- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-shape-complex-arabic-table.hh | 14 +- src/hb-ot-shape-complex-arabic.cc | 6 +- src/hb-ot-shape-complex-hangul.cc | 3 +- src/hb-ot-shape-complex-indic-machine.hh | 1244 +- src/hb-ot-shape-complex-indic-machine.rl | 5 +- src/hb-ot-shape-complex-indic-table.cc | 56 +- src/hb-ot-shape-complex-indic.cc | 18 +- src/hb-ot-shape-complex-indic.hh | 7 +- src/hb-ot-shape-complex-khmer-machine.hh | 248 +- src/hb-ot-shape-complex-khmer-machine.rl | 2 +- src/hb-ot-shape-complex-khmer.cc | 5 +- src/hb-ot-shape-complex-myanmar.cc | 3 + src/hb-ot-shape-complex-use-table.cc | 55 +- src/hb-ot-shape-complex-use.cc | 3 + src/hb-ot-shape-complex-vowel-constraints.cc | 7 +- src/hb-ot-shape-complex.hh | 3 + src/hb-ot-shape.cc | 3 + src/hb-ot-tag-table.hh | 12 +- src/hb-ot-tag.cc | 46 +- src/hb-ot-vorg-table.hh | 30 +- src/hb-subset-cff-common.cc | 13 +- src/hb-subset-cff-common.hh | 117 +- src/hb-subset-cff1.cc | 77 +- src/hb-subset-cff2.cc | 30 +- src/hb-subset-glyf.cc | 252 +- src/hb-subset-input.cc | 27 + src/hb-subset-input.hh | 1 + src/hb-subset-plan.cc | 68 +- src/hb-subset-plan.hh | 61 +- src/hb-subset.cc | 2 +- src/hb-subset.h | 6 + src/hb-ucdn.cc | 4 + src/hb-ucdn/Makefile.in | 49 +- src/hb-ucdn/ucdn.h | 11 + src/hb-ucdn/ucdn_db.h | 2998 +-- src/hb-unicode-emoji-table.hh | 6 +- src/hb-version.h | 6 +- src/hb.hh | 3 +- test-driver | 10 +- test/Makefile.in | 16 +- test/api/Makefile.in | 186 +- test/api/fonts/AdobeVFPrototype.ac.retaingids.otf | Bin 0 -> 7000 bytes test/api/fonts/Roboto-Regular.ac.retaingids.ttf | Bin 0 -> 2284 bytes .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 0 -> 2736 bytes .../fonts/SourceSansPro-Regular.ac.retaingids.otf | Bin 0 -> 1708 bytes test/api/fonts/Zycon.ttf | Bin 0 -> 21036 bytes test/api/hb-subset-test.h | 11 +- test/api/test-ot-face.c | 9 + test/api/test-subset-cff1.c | 48 + test/api/test-subset-cff2.c | 24 + test/api/test-subset-glyf.c | 50 + test/fuzzing/Makefile.in | 46 +- ...case-minimized-harfbuzz_fuzzer-5748102301614080 | Bin 0 -> 213 bytes ...ase-minimized-hb-subset-fuzzer-5739000398086144 | Bin 0 -> 620 bytes ...ase-minimized-hb-subset-fuzzer-5760768497156096 | Bin 0 -> 210 bytes ...ase-minimized-hb-subset-fuzzer-5764268627066880 | Bin 0 -> 687 bytes test/fuzzing/hb-subset-fuzzer.cc | 32 +- test/shaping/Makefile.in | 16 +- test/shaping/data/Makefile.in | 16 +- test/shaping/data/aots/Makefile.in | 16 +- test/shaping/data/in-house/Makefile.in | 16 +- .../ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf | Bin 0 -> 1500 bytes .../f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf | Bin 0 -> 1924 bytes .../data/in-house/tests/indic-syllable.tests | 2 + test/shaping/data/in-house/tests/khmer-misc.tests | 1 + test/shaping/data/in-house/tests/macos.tests | 19 + test/shaping/data/text-rendering-tests/Makefile.in | 16 +- test/subset/Makefile.in | 16 +- test/subset/data/Makefile.in | 18 +- ...Regular.abc.drop-hints-retain-gids.61,62,63.ttf | Bin 0 -> 924 bytes ...to-Regular.abc.drop-hints-retain-gids.61,63.ttf | Bin 0 -> 856 bytes ...oboto-Regular.abc.drop-hints-retain-gids.61.ttf | Bin 0 -> 744 bytes ...oboto-Regular.abc.drop-hints-retain-gids.62.ttf | Bin 0 -> 712 bytes ...oboto-Regular.abc.drop-hints-retain-gids.63.ttf | Bin 0 -> 716 bytes .../Roboto-Regular.abc.retain-gids.61,62,63.ttf | Bin 0 -> 2168 bytes .../Roboto-Regular.abc.retain-gids.61,63.ttf | Bin 0 -> 1996 bytes .../basics/Roboto-Regular.abc.retain-gids.61.ttf | Bin 0 -> 1808 bytes .../basics/Roboto-Regular.abc.retain-gids.62.ttf | Bin 0 -> 1756 bytes .../basics/Roboto-Regular.abc.retain-gids.63.ttf | Bin 0 -> 1732 bytes ...eSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 3784 -> 0 bytes .../SourceSansPro-Regular.default.61,62,63.otf | Bin 3496 -> 0 bytes ...ourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 3612 -> 0 bytes ...o-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin 3640 -> 0 bytes ...urceSansPro-Regular.desubroutinize.61,62,63.otf | Bin 3400 -> 0 bytes ...nsPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 3596 -> 0 bytes ...nsPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 3564 -> 0 bytes .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 3340 -> 0 bytes ...ceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 3464 -> 0 bytes ...rop-hints.desubroutinize.1FC,21,41,20,62,63.otf | Bin 3480 -> 0 bytes ...-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 3276 -> 0 bytes ...ar.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 3448 -> 0 bytes ...gular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6324 -> 0 bytes ...gular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6568 -> 0 bytes .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5500 -> 0 bytes ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6780 -> 0 bytes .../SourceHanSans-Regular.default.660E.otf | Bin 5248 -> 0 bytes .../SourceHanSans-Regular.desubroutinize..otf | Bin 2340 -> 0 bytes ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> 0 bytes ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> 0 bytes ...eHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 5428 -> 0 bytes ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> 0 bytes .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 5196 -> 0 bytes ...ar.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6132 -> 0 bytes ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6304 -> 0 bytes ...ourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5344 -> 0 bytes ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6472 -> 0 bytes .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5140 -> 0 bytes ...eHanSans-Regular.drop-hints.desubroutinize..otf | Bin 2188 -> 0 bytes ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 6076 -> 0 bytes ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6180 -> 0 bytes ...gular.drop-hints.desubroutinize.61,63,65,6B.otf | Bin 5312 -> 0 bytes ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6248 -> 0 bytes ...Sans-Regular.drop-hints.desubroutinize.660E.otf | Bin 5140 -> 0 bytes .../data/profiles/desubroutinize-retain-gids.txt | 2 + .../drop-hints-desubroutinize-retain-gids.txt | 3 + .../data/profiles/drop-hints-retain-gids.txt | 2 + test/subset/data/profiles/retain-gids.txt | 1 + test/subset/data/tests/basics.tests | 2 + test/subset/data/tests/full-font.tests | 1 - test/subset/data/tests/japanese.tests | 1 - test/subset/subset_test_suite.py | 7 +- util/Makefile.in | 67 +- util/hb-subset.cc | 1 + util/options.cc | 4 +- util/options.hh | 2 + 299 files changed, 17067 insertions(+), 23121 deletions(-) delete mode 100644 docs/harfbuzz.types delete mode 100644 docs/html/api-index-0-9-10.html delete mode 100644 docs/html/api-index-0-9-11.html delete mode 100644 docs/html/api-index-0-9-2.html delete mode 100644 docs/html/api-index-0-9-20.html delete mode 100644 docs/html/api-index-0-9-22.html delete mode 100644 docs/html/api-index-0-9-28.html delete mode 100644 docs/html/api-index-0-9-30.html delete mode 100644 docs/html/api-index-0-9-31.html delete mode 100644 docs/html/api-index-0-9-38.html delete mode 100644 docs/html/api-index-0-9-39.html delete mode 100644 docs/html/api-index-0-9-41.html delete mode 100644 docs/html/api-index-0-9-42.html delete mode 100644 docs/html/api-index-0-9-5.html delete mode 100644 docs/html/api-index-0-9-7.html delete mode 100644 docs/html/api-index-0-9-8.html delete mode 100644 docs/html/api-index-1-0-5.html delete mode 100644 docs/html/api-index-1-1-2.html delete mode 100644 docs/html/api-index-1-1-3.html delete mode 100644 docs/html/api-index-1-2-3.html delete mode 100644 docs/html/api-index-1-3-3.html delete mode 100644 docs/html/api-index-1-4-0.html delete mode 100644 docs/html/api-index-1-4-2.html delete mode 100644 docs/html/api-index-1-4-3.html delete mode 100644 docs/html/api-index-1-5-0.html delete mode 100644 docs/html/api-index-1-6-0.html delete mode 100644 docs/html/api-index-1-7-5.html delete mode 100644 docs/html/api-index-1-7-7.html delete mode 100644 docs/html/api-index-1-8-0.html delete mode 100644 docs/html/api-index-1-8-1.html delete mode 100644 docs/html/api-index-1-8-5.html delete mode 100644 docs/html/api-index-1-8-6.html delete mode 100644 docs/html/api-index-1-9-0.html delete mode 100644 docs/html/api-index-2-0-0.html delete mode 100644 docs/html/api-index-2-1-0.html delete mode 100644 docs/html/deprecated-api-index.html create mode 100644 test/api/fonts/AdobeVFPrototype.ac.retaingids.otf create mode 100644 test/api/fonts/Roboto-Regular.ac.retaingids.ttf create mode 100644 test/api/fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf create mode 100644 test/api/fonts/SourceSansPro-Regular.ac.retaingids.otf create mode 100644 test/api/fonts/Zycon.ttf create mode 100644 test/fuzzing/fonts/clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5748102301614080 create mode 100644 test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5739000398086144 create mode 100644 test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5760768497156096 create mode 100644 test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5764268627066880 create mode 100644 test/shaping/data/in-house/fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf create mode 100644 test/shaping/data/in-house/fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.61,62,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.61,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.61.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.62.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.61,62,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.61,63.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.61.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.62.ttf create mode 100644 test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.63.ttf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.default.1FC,21,41,20,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.default.61,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.61,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.61,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.61,62,63.otf delete mode 100644 test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.default.3042,3044,3046,3048,304A,304B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.default.61,63,65,6B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.default.660E.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize..otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.3042,3044,3046,3048,304A,304B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.61,63,65,6B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.660E.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.3042,3044,3046,3048,304A,304B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.61,63,65,6B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.660E.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize..otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.3042,3044,3046,3048,304A,304B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.61,63,65,6B.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf delete mode 100644 test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E.otf create mode 100644 test/subset/data/profiles/desubroutinize-retain-gids.txt create mode 100644 test/subset/data/profiles/drop-hints-desubroutinize-retain-gids.txt create mode 100644 test/subset/data/profiles/drop-hints-retain-gids.txt create mode 100644 test/subset/data/profiles/retain-gids.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a1a36d..f64f96d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -842,18 +842,6 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) endif () endif () -if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja") - if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics") - endif () - if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-color") - endif () -endif () - - if (HB_BUILD_TESTS) ## src/ executables foreach (prog main test test-would-substitute test-size-params test-buffer-serialize hb-ot-tag test-unicode-ranges) diff --git a/ChangeLog b/ChangeLog index 135b034..1ee02dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,1361 @@ +commit d6fc1d49aa099104a889c96bc9087c21d8fc0960 +Author: Behdad Esfahbod +Date: Thu Mar 28 21:21:26 2019 -0700 + + 2.4.0 + + NEWS | 11 +++++++++++ + configure.ac | 2 +- + src/hb-buffer.h | 2 +- + src/hb-version.h | 6 +++--- + 4 files changed, 16 insertions(+), 5 deletions(-) + +commit d2db71fdc4764eecf8320cf465ee0e4254146b6e +Author: Behdad Esfahbod +Date: Thu Mar 28 21:00:58 2019 -0700 + + Use internal bsearch() for language tags + + Fixes https://github.com/harfbuzz/harfbuzz/pull/1639 + + src/hb-ot-tag.cc | 46 ++++++++++++++++++++++------------------------ + 1 file changed, 22 insertions(+), 24 deletions(-) + +commit 21bb80ebf2e20025a196386cee8fd92dd1eb4597 +Author: Behdad Esfahbod +Date: Thu Mar 28 20:50:04 2019 -0700 + + [indic] Add back medial-consonant to grammar + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1592 + + src/hb-ot-shape-complex-indic-machine.hh | 1244 +++++++++++--------- + src/hb-ot-shape-complex-indic-machine.rl | 5 +- + src/hb-ot-shape-complex-indic.cc | 2 +- + src/hb-ot-shape-complex-indic.hh | 6 +- + .../f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf | Bin 0 -> 1924 bytes + .../data/in-house/tests/indic-syllable.tests | 2 + + 6 files changed, 672 insertions(+), 587 deletions(-) + +commit 5ab6de7a6fbad4c4a954c2c81d216486a5a14f72 +Author: Behdad Esfahbod +Date: Thu Mar 28 20:23:12 2019 -0700 + + [khmer] Add trailing Coeng to syllable grammar + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1541 + + src/hb-ot-shape-complex-khmer-machine.hh | 248 ++++++++++----------- + src/hb-ot-shape-complex-khmer-machine.rl | 2 +- + .../ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf | Bin 0 -> 1500 bytes + test/shaping/data/in-house/tests/khmer-misc.tests | 1 + + 4 files changed, 122 insertions(+), 129 deletions(-) + +commit 7360265e69a8cdaa9f993c36def2860a79cca49f +Author: Ebrahim Byagowi +Date: Thu Mar 28 16:57:56 2019 -0700 + + [ci] Tweak macos and psvita bots (#1638) + + * Add --with-graphite2 to macOS + * Add a dummy ragel script for psvita + + .circleci/config.yml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit a548d1da78b506cc6460fdde3715f6ef13ccad48 +Author: Ebrahim Byagowi +Date: Thu Mar 28 15:42:45 2019 -0700 + + [ci] Use only CircleCI for macOS (#1637) + + .circleci/config.yml | 5 +++-- + .travis.yml | 18 ------------------ + 2 files changed, 3 insertions(+), 20 deletions(-) + +commit 160b4a2b01e925812fbf0e7db5bc9dcb90dc81cc +Author: Behdad Esfahbod +Date: Thu Mar 28 13:44:38 2019 -0700 + + Fix shell syntax error + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1612 + + src/check-symbols.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8665b9b0a24e4d46e486057d72c0486b9da16523 +Author: Behdad Esfahbod +Date: Thu Mar 28 11:11:52 2019 -0700 + + Comment + + src/hb.hh | 1 + + 1 file changed, 1 insertion(+) + +commit a7eed7e41dba8e583a9c740a4ca7ddf53e77de63 +Author: punchcutter +Date: Wed Mar 27 23:12:58 2019 -0700 + + Override USE category for Grantha and Tirhuta visargas to allow marks + + src/gen-use-table.py | 3 ++- + src/hb-ot-shape-complex-use-table.cc | 4 ++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +commit cf040c0fef4a049a75a5ec7972f518b9034bdc76 +Author: Egor Pugin +Date: Thu Mar 28 19:06:12 2019 +0300 + + Disable unwanted C++ definitions for MSVC. + + MSVC does not set __cplusplus to the latest standard and also it does not like redefining some keywords. + + src/hb.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 717181c5943c13a682c719dce10bfc3d9cc47e6b +Author: Ebrahim Byagowi +Date: Wed Mar 27 16:38:39 2019 +0430 + + [ci] remove ragel from psvita compile bot + + .circleci/config.yml | 1 - + 1 file changed, 1 deletion(-) + +commit 08e36c5d8be22b3a7e31f33af9452372dafeacc0 +Author: Ebrahim Byagowi +Date: Wed Mar 27 16:21:47 2019 +0430 + + [ci] Don't install ragel on cmake build bot images + + It is not needed anyway + + .circleci/config.yml | 5 ----- + 1 file changed, 5 deletions(-) + +commit ec2a5dc859b03ceb92518aa992e4e9c053b30534 +Author: Behdad Esfahbod +Date: Tue Mar 26 16:18:03 2019 -0700 + + Use class templates for Null objects + + This allows partial-instantiating custom Null object for template Lookup. + Before, this had to be handcoded per instantiation. Apparently I missed + adding one for AAT::ankr.lookupTable, so it was getting the wrong (generic) + null for Lookup object, which is wrong and unsafe. + + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=944346 + + src/hb-aat-layout-common.hh | 14 ++++------ + src/hb-null.hh | 31 +++++++++++++-------- + ...case-minimized-harfbuzz_fuzzer-5748102301614080 | Bin 0 -> 213 bytes + 3 files changed, 24 insertions(+), 21 deletions(-) + +commit 96f12377942dbe1c6b1d0ffa7d626d99cb265443 +Author: Behdad Esfahbod +Date: Tue Mar 26 16:17:45 2019 -0700 + + [aat] Add missing check to ankr table + + Isn't absolutely needed. But helps. + + src/hb-aat-layout-ankr-table.hh | 1 + + 1 file changed, 1 insertion(+) + +commit e5dfffb1ef610a982ed9878fbf3f9ee49cbc3a97 +Author: Behdad Esfahbod +Date: Mon Mar 25 15:15:37 2019 -0700 + + [docs] Update + + docs/harfbuzz-docs.xml | 1 + + 1 file changed, 1 insertion(+) + +commit 0dd3fdf9d227f9bd79f395078f8e58dcfc32d1bf +Author: Behdad Esfahbod +Date: Mon Mar 25 15:08:14 2019 -0700 + + Update ChangeLog generation + + Let's see if I can make a release on Mac... + + Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2d9034491eca0a63db82d3801f05c067a5241b7d +Author: Qunxin Liu +Date: Tue Mar 26 10:37:24 2019 -0700 + + completely remove lines that are commented out + + src/hb-subset-plan.cc | 6 ------ + src/hb-subset-plan.hh | 3 --- + 2 files changed, 9 deletions(-) + +commit 3147133b6173487c26813a2a406aebd067b53fbf +Author: Qunxin Liu +Date: Tue Mar 26 09:15:56 2019 -0700 + + update arguments in_populate_gids_to_retain() and _create_old_gid_to_new_gid_map() + so they don't use deprecated variable + + src/hb-subset-plan.cc | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) + +commit 79a6c258497e80be15245a7b576e34443d9f7bff +Author: Qunxin Liu +Date: Mon Mar 25 19:59:37 2019 -0700 + + try to remove deprecated variable from struct definition + + src/hb-subset-plan.cc | 9 +++++---- + src/hb-subset-plan.hh | 2 +- + 2 files changed, 6 insertions(+), 5 deletions(-) + +commit bcb4e505d6ffe33e3268a06698e75d6be0e64957 +Author: Michiharu Ariza +Date: Fri Mar 15 13:46:25 2019 -0700 + + cff2 subset fuzzer issues (#1619) + + * add check to FDArray::serialize + + * add test files + + * fix off by one + + src/hb-ot-cff-common.hh | 1 + + ...z-testcase-minimized-hb-subset-fuzzer-5739000398086144 | Bin 0 -> 620 bytes + ...z-testcase-minimized-hb-subset-fuzzer-5760768497156096 | Bin 0 -> 210 bytes + ...z-testcase-minimized-hb-subset-fuzzer-5764268627066880 | Bin 0 -> 687 bytes + 4 files changed, 1 insertion(+) + +commit 8aaab78efcac81a05ec919be13792c98741ea1b5 +Author: Ebrahim Byagowi +Date: Thu Mar 14 16:49:42 2019 -0700 + + Allow zero length ranges in sanitization (#1617) + + Fixes fvar table sanitization where there are no named instance + by allowing zero length ranges starting from Null() address. + + Fixes #1607 + + src/hb-machinery.hh | 30 ++++++++++++++++-------------- + test/api/fonts/Zycon.ttf | Bin 0 -> 21036 bytes + test/api/test-ot-face.c | 9 +++++++++ + 3 files changed, 25 insertions(+), 14 deletions(-) + +commit b1dfb8c850f36d4065190a779a6e3342a5fbb593 +Author: Khaled Hosny +Date: Thu Mar 14 21:41:25 2019 +0200 + + [ci] Cache FreeType build on Travis + + .ci/build-freetype.sh | 17 +++++++++++++++++ + .travis.yml | 18 ++++++++++++------ + 2 files changed, 29 insertions(+), 6 deletions(-) + +commit 7de9f92ee9ced6f4c176459cf25f4ca931ca5ceb +Author: David Corbett +Date: Tue Mar 12 19:30:47 2019 -0400 + + Categorize U+09FC as Consonant_Placeholder + + src/hb-ot-shape-complex-indic.hh | 1 + + 1 file changed, 1 insertion(+) + +commit 8b1eaecd9485fe504af364db1537bb04852b265c +Author: Khaled Hosny +Date: Wed Mar 13 13:21:12 2019 +0200 + + [ci] Simplify and fix Travis CI macOS build + + .travis.yml | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +commit e52ec3fc23c2d5a881849f047885e0423bd74740 +Author: Behdad Esfahbod +Date: Mon Mar 11 18:09:51 2019 -0700 + + Remove redundant hb_ot_layout_lookup_would_substitute_fast + + src/hb-ot-layout.cc | 13 ------------- + src/hb-ot-layout.hh | 7 ------- + src/hb-ot-shape-complex-indic.cc | 2 +- + src/hb-ot-shape-complex-khmer.cc | 2 +- + 4 files changed, 2 insertions(+), 22 deletions(-) + +commit c2442c90d6ecfaee987ed8ac6f93a9ac6b07c642 +Author: Khaled Hosny +Date: Tue Mar 12 01:09:27 2019 +0200 + + [doc] Add placeholder since version for new flag + + src/hb-buffer.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8c42f03215097d7c1bae74db7e98315263d3e8a4 +Author: David Corbett +Date: Fri Mar 8 09:46:48 2019 -0500 + + Remove obsolete overrides from Indic/USE scripts + + src/gen-indic-table.py | 4 ---- + src/gen-use-table.py | 30 +++++++----------------------- + src/hb-ot-shape-complex-use-table.cc | 2 +- + 3 files changed, 8 insertions(+), 28 deletions(-) + +commit b38bab86229bc40d9cdf4819d6dc6aab444d0291 +Author: Eric Muller +Date: Tue Feb 12 11:41:16 2019 -0800 + + Update generation code for hb-ot-shape-complex-vowel-constraints.cc. Remove 'unlikely' + + src/gen-vowel-constraints.py | 3 +++ + src/hb-ot-shape-complex-vowel-constraints.cc | 2 +- + 2 files changed, 4 insertions(+), 1 deletion(-) + +commit 44a67ddeb878f7639b30d1884e38b1525aab4f4a +Author: Eric Muller +Date: Sun Feb 10 04:31:41 2019 -0800 + + Fix coding style. + + src/hb-ot-shape-complex-hangul.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 30d7c40f8ce9f47d733b1f43a93f20739772859e +Author: Eric Muller +Date: Sat Feb 9 02:55:27 2019 -0800 + + Add a flag to hb_buffer_t to prevent the insertion of dotted circles on incorrect character sequences. + + Current behavior unchanged if this flag is not set (and it isn't by default). + + src/hb-buffer.h | 7 ++++++- + src/hb-ot-shape-complex-hangul.cc | 3 ++- + src/hb-ot-shape-complex-indic.cc | 3 +++ + src/hb-ot-shape-complex-khmer.cc | 3 +++ + src/hb-ot-shape-complex-myanmar.cc | 3 +++ + src/hb-ot-shape-complex-use.cc | 3 +++ + src/hb-ot-shape-complex-vowel-constraints.cc | 3 +++ + src/hb-ot-shape.cc | 3 +++ + 8 files changed, 26 insertions(+), 2 deletions(-) + +commit 8b6eb6cf465032d0ca747f4b75f6e9155082bc45 +Author: Ebrahim Byagowi +Date: Fri Mar 8 01:33:41 2019 +0330 + + Add a macOS 10.14.3 fonts tests (#1608) + + .circleci/config.yml | 11 +++++++++++ + test/shaping/data/in-house/tests/macos.tests | 19 +++++++++++++++++++ + 2 files changed, 30 insertions(+) + +commit e723c04de1b3dcd96e6a70baf09e3ae2ddbbc0bf +Author: David Corbett +Date: Wed Mar 6 12:37:25 2019 -0500 + + Update to Unicode 12.0.0 + + src/gen-use-table.py | 1 - + src/gen-vowel-constraints.py | 1 + + src/hb-common.h | 8 + + src/hb-ot-shape-complex-arabic-table.hh | 14 +- + src/hb-ot-shape-complex-indic-table.cc | 56 +- + src/hb-ot-shape-complex-use-table.cc | 49 +- + src/hb-ot-shape-complex-vowel-constraints.cc | 4 +- + src/hb-ot-shape-complex.hh | 3 + + src/hb-ot-tag-table.hh | 12 +- + src/hb-ucdn.cc | 4 + + src/hb-ucdn/ucdn.h | 11 + + src/hb-ucdn/ucdn_db.h | 2998 +++++++++++++------------- + src/hb-unicode-emoji-table.hh | 6 +- + 13 files changed, 1631 insertions(+), 1536 deletions(-) + +commit 2f125b0fa763c3be7d8d74489c027f7155607756 +Author: Adrian Wong +Date: Wed Feb 13 21:04:46 2019 +1100 + + [indic] Remove superfluous ZWNJ check in final reorder of pre-base matras + + src/hb-ot-shape-complex-indic.cc | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +commit d936ad4582a0017cf88406372d7c08b9896beed6 +Author: Stephan Bergmann +Date: Tue Mar 5 17:18:57 2019 +0100 + + Fix hb_atomic_* variants based on C++11 atomics + + I stumbled over this when trying to upgrade the version of HarfBuzz used by + LibreOffice to 3.2.1 (see "Upgrade to latest + HarfBuzz 2.3.1"), where building with MSVC 2017 failed like + + > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2440: 'reinterpret_cast': cannot convert from 'const int *' to 'std::atomic *' + > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): note: Conversion loses qualifiers + > c:\cygwin\home\tdf\lode\jenkins\workspace\gerrit_windows\workdir\unpackedtarball\harfbuzz\src\hb-atomic.hh(272): error C2227: left of '->load' must point to class/struct/union/generic type + + (see ). + + I added all the necessary "const" to make building of HarfBuzz 2.3.1 with + MSVC 2017 succeed for me. There may be more missing at least conceptually. + + src/hb-atomic.hh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 731b13e4e9190a45e51f855f19e88869a7718d43 +Author: Martin Hosken +Date: Mon Mar 4 11:12:21 2019 +0700 + + Fix offset drift in graphite integration + + src/hb-graphite2.cc | 35 +++++++++++++++++++---------------- + 1 file changed, 19 insertions(+), 16 deletions(-) + +commit 8a25868e6a41a3d82782aadb3c7b744ad87d20ff +Author: Ebrahim Byagowi +Date: Sat Mar 2 03:24:49 2019 +0330 + + Minor, remove .editorconfig hack + + As vscode is going to support it soon + + .editorconfig | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +commit 4f37ab63de9705d7bf74ee75364747e41b7c06a1 +Author: Garret Rieger +Date: Thu Feb 28 17:25:05 2019 -0800 + + Make hb_subset_input_glyph_set () actually do something. + + src/hb-subset-plan.cc | 3 +++ + test/api/hb-subset-test.h | 11 ++++++++++- + test/api/test-subset-glyf.c | 24 ++++++++++++++++++++++++ + 3 files changed, 37 insertions(+), 1 deletion(-) + +commit 45149eb34f9735b5d690a2a7956adb42b938c8d9 +Author: Ebrahim Byagowi +Date: Fri Feb 22 13:13:42 2019 +0330 + + [dwrite] hb_directwrite_face_create, a new API + + It makes a hb_face_t from IDWriteFontFace, useful when using + DirectWrite facilities for font selection, loading and rendering + but using harfbuzz for shaping. + + src/hb-directwrite.cc | 70 +++++++++++++++++++++++++++++++++++++++++++++++---- + src/hb-directwrite.h | 5 +++- + 2 files changed, 69 insertions(+), 6 deletions(-) + +commit 45adc185260f0fa1fa86472aafb7f91f942c567e +Author: David Corbett +Date: Mon Feb 18 22:30:40 2019 -0500 + + Fix or document unsupported font-feature-settings + + src/hb-common.cc | 18 ++++++++++++------ + util/options.cc | 3 ++- + 2 files changed, 14 insertions(+), 7 deletions(-) + +commit d66f7e14a0097d8ca54ad9824f7aa7daee6c7f72 +Author: Joël R. Langlois +Date: Mon Feb 25 15:26:58 2019 -0500 + + Remove Forcing Diagnostic Colours from CMakeLists.txt (#1597) + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1596 + + CMakeLists.txt | 12 ------------ + 1 file changed, 12 deletions(-) + +commit 93739242e1aab9b745d0ba3c22c33b4acaf9526c +Author: Michiharu Ariza +Date: Wed Feb 20 13:23:12 2019 -0800 + + minor edit + + src/hb-map.hh | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit eebc21c8de08d58c806fcd3d0f3a5aedee867776 +Author: Michiharu Ariza +Date: Wed Feb 20 12:43:18 2019 -0800 + + fix crash in hb_map_t::clear() + + in case called immediately after init() + + src/hb-map.hh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit a17ed8459ee1e01caf4761f682bcda821bc8e656 +Author: Khaled Hosny +Date: Tue Feb 19 21:14:11 2019 +0200 + + [doc] Move hb_variation_t to hb-common section + + docs/harfbuzz-sections.txt | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 9caabc9cf898e1d66921f88890d5b7d46494dc90 +Author: Khaled Hosny +Date: Tue Feb 19 19:27:28 2019 +0200 + + [doc] Move feature_t and its function to hb-common + + It is rather confusing to have script, language etc, in hb-common section + while feature is in hb-shape section. I keep looking for it in hb-common + section then using the API index because I can’t find it there. + + docs/harfbuzz-sections.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit d29c8424c8bfa47c910d0e270f05b5c0a1f803a2 +Author: Evgeniy Reizner +Date: Tue Feb 19 18:35:00 2019 +0200 + + Typo (#1588) + + Fixed a small typo. + [skip ci] + + src/hb-ot-font.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 6bd4c082e49143d0631881645b81f999347257f8 +Author: Khaled Hosny +Date: Tue Feb 19 02:23:58 2019 +0200 + + [doc] Document hb_feature_from_string() syntax + + Copied and edited from the util option documentation. The docbook table + syntax is too verbose, but that is the best I can come up with. + + src/hb-common.cc | 35 ++++++++++++++++++++++++++++++++++- + 1 file changed, 34 insertions(+), 1 deletion(-) + +commit 3da79dd5b92b89fbf062cbe591e6b1ba83083aec +Merge: 50005501 d8a68728 +Author: Behdad Esfahbod +Date: Fri Feb 15 15:54:51 2019 -0800 + + Merge pull request #1557 from harfbuzz/cff-more-arrayof-fixes + + CFF more arrayof fixes + +commit 5000550183022db8c9cfef63a9ed90eb9f37764d +Merge: 5c2bb1de 90c8bbf9 +Author: Behdad Esfahbod +Date: Fri Feb 15 15:54:13 2019 -0800 + + Merge pull request #1583 from harfbuzz/cff-retain-gids + + [subset] Implement --retain-gids with CFF/CFF2 + +commit d8a68728a077a8c5fc8ceae19f2866cdc8b70baf +Merge: 1cb1d5d7 5c2bb1de +Author: Michiharu Ariza +Date: Fri Feb 15 14:48:10 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit 90c8bbf98747eb29687471da892b4a34a9236242 +Merge: 6f1dfd08 5c2bb1de +Author: Michiharu Ariza +Date: Fri Feb 15 14:47:38 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit 5c2bb1de8de31fecf0dae2ef905b896e42d39f1d +Author: Martin <44297768+TheRealMDoerr@users.noreply.github.com> +Date: Fri Feb 15 19:23:46 2019 +0100 + + Support xlclang++ on AIX. (#1584) + + src/hb-atomic.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 28f77361322886360743fdbffd388c9482cf4257 +Author: Behdad Esfahbod +Date: Thu Feb 14 11:34:28 2019 -0800 + + [CI] Install more packages + + Wish there was a way to streamline this :(. + + .circleci/config.yml | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 1cb1d5d7fb74e9f42dc8361dcdf669ed479d595d +Merge: 8a568a88 d5287e1b +Author: Michiharu Ariza +Date: Thu Feb 14 10:09:19 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit 6f1dfd082cf79488ae6773e7d99172f13575668c +Merge: b1dbc77f d5287e1b +Author: Michiharu Ariza +Date: Thu Feb 14 10:08:16 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit d5287e1ba40638be5d48178ce3d64557b622b01f +Author: Behdad Esfahbod +Date: Wed Feb 13 23:46:17 2019 -0800 + + [CI] Install wget on clang-O3-O0 bot + + .circleci/config.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 890d0ee77fecd6aa4f19b663bb2897735a0d4c0b +Author: Ebrahim Byagowi +Date: Thu Feb 14 00:27:01 2019 +0330 + + Minor, use a meaningful naming in template parameter (#1582) + + src/hb-ot-layout.hh | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 8a568a8858b44a81ca43a82761a70bf8d53e7c26 +Merge: c83412e4 1e1d0e63 +Author: Michiharu Ariza +Date: Wed Feb 13 11:25:00 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit b1dbc77fa62a99047df539663cfd1e8778d2c907 +Merge: c3a3536c 1e1d0e63 +Author: Michiharu Ariza +Date: Wed Feb 13 11:24:38 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit 1e1d0e63df405730ed542ae1d729928623addf08 +Author: Ebrahim Byagowi +Date: Wed Feb 13 12:58:01 2019 +0330 + + Fix djgpp complains by tweaking templates (#1579) + + For some reasons djgpp doesn't understand "unsigned int" can be same + with one of uint*_t anyway so lets do that for it explicitly. + + Just to note, our CI's djgpp is based GCC 7.2.0 and isn't old. + + src/hb-ot-layout.hh | 4 ++-- + src/hb-ot-shape-complex-arabic.cc | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +commit c3a3536c9a00a989ebd83d52e67d06525ed669bc +Merge: bc33c617 85a6d312 +Author: Michiharu Ariza +Date: Tue Feb 12 15:10:59 2019 -0800 + + Merge branch 'cff-retain-gids' of https://github.com/harfbuzz/harfbuzz into cff-retain-gids + +commit bc33c617b85988f4d81312e62a75f92601852c76 +Merge: c6af8461 fdfa3d29 +Author: Michiharu Ariza +Date: Tue Feb 12 15:10:50 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit c6af846178bba10af318bcea1e9ac5165ec2aea6 +Author: Michiharu Ariza +Date: Tue Feb 12 15:10:43 2019 -0800 + + tweaked --desubroutinize to remove hintmask only subrs + + src/hb-subset-cff-common.hh | 26 ++++++++++++++++++++++++-- + 1 file changed, 24 insertions(+), 2 deletions(-) + +commit 85a6d3121a26c9bcbec60d37b64643ff8dc97a0a +Merge: d9ded069 fdfa3d29 +Author: Michiharu Ariza +Date: Mon Feb 11 14:25:21 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit c83412e4cec10f6f6f6ac38f202b3ce373da5daf +Merge: 1239b6b2 fdfa3d29 +Author: Michiharu Ariza +Date: Mon Feb 11 14:16:25 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit fdfa3d29b7c347b5038f4f9148428c80dde462ae +Author: Ken <21211439+kencu@users.noreply.github.com> +Date: Sun Feb 10 23:46:05 2019 -0800 + + hb-coretext.cc: remove TARGET_OS_MAC from test (#1578) + + it is always true when building on APPLE systems + and this file only builds on APPLE systems + + src/hb-coretext.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit f55e7bf5835c59e478d6a448327d53027c4e9f4a +Author: Ebrahim Byagowi +Date: Sun Feb 10 01:08:05 2019 +0330 + + [ci] Install 'base-devel' on ArchLinux CI bot + + .circleci/config.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 8f4eb919bd0498e997852aa39656adc4c65b3f0e +Author: Ebrahim Byagowi +Date: Sat Feb 9 16:58:02 2019 +0330 + + [ci] Install 'which' in ArchLinux bot + + .circleci/config.yml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 02294349618037f59b32834b49880ca75ed96261 +Author: Ebrahim Byagowi +Date: Sat Feb 9 16:33:28 2019 +0330 + + [ci] Speculative fix for Alpine and ArchLinux bots + + .circleci/config.yml | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d9ded069926bf46a5d8e5edbf5201c98044db78e +Merge: a5e933eb 84694af7 +Author: Michiharu Ariza +Date: Fri Feb 8 14:44:20 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit a5e933eba08ff50ac3beb1055ae952ccc26d0af7 +Author: Michiharu Ariza +Date: Fri Feb 8 14:44:13 2019 -0800 + + Updated expected/cff-japanese fonts with retained FDs + + ...gular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6324 -> 6356 bytes + ...gular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6568 -> 6564 bytes + .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5500 -> 5532 bytes + ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6780 -> 6780 bytes + .../SourceHanSans-Regular.default.660E.otf | Bin 5248 -> 5248 bytes + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536352 -> 537992 bytes + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690752 -> 692312 bytes + ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin 530004 -> 531624 bytes + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690868 -> 692496 bytes + ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin 612212 -> 613836 bytes + ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> 6272 bytes + ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> 6456 bytes + ...eHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 5428 -> 5460 bytes + ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> 6572 bytes + .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 5196 -> 5224 bytes + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536176 -> 537424 bytes + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690500 -> 691692 bytes + ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin 529888 -> 531124 bytes + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690564 -> 691808 bytes + ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin 612108 -> 613348 bytes + ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536244 -> 537492 bytes + ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690596 -> 691788 bytes + ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin 529928 -> 531164 bytes + ...-Regular.drop-hints-retain-gids.61,63,65,6B.ttx | 393879 ++++++++++++++++++ + ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 690768 -> 692008 bytes + ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin 612128 -> 613368 bytes + ...ar.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6132 -> 6164 bytes + ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6304 -> 6300 bytes + ...ourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5344 -> 5376 bytes + ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6472 -> 6472 bytes + .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5140 -> 5140 bytes + ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 536436 -> 538076 bytes + ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 690860 -> 692420 bytes + ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin 530084 -> 531704 bytes + ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 691076 -> 692700 bytes + .../SourceHanSans-Regular.retain-gids.660E.otf | Bin 612236 -> 613860 bytes + 36 files changed, 393879 insertions(+) + +commit 84694af723bde07cf3231ed2d2e193123f5f73ed +Author: Ebrahim Byagowi +Date: Fri Feb 8 15:30:17 2019 +0330 + + [ci] Disable the just added bot + + Doesn't play well with CircleCI apparently + + https://circleci.com/gh/harfbuzz/harfbuzz/74289 + + .circleci/config.yml | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit 81ae4974e35aa8ca408abd6238eb768f5c948287 +Author: Ebrahim Byagowi +Date: Fri Feb 8 15:18:26 2019 +0330 + + [ci] Add a Void Linux bot + + https://voidlinux.org/ is yet another and different distro written from scratch, thus completely eligible to have a bot here! + + Seriously however not that useful yet however but I will try to overload it other tasks later, like our other bots. + + No test yet also, couldn't install cairo-devel, will try to fix that later. + + Their harfbuzz package source: https://github.com/void-linux/void-packages/blob/master/srcpkgs/harfbuzz/template + + .circleci/config.yml | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +commit e2856c2d85eb0f6ce0c780d1889dc9bb05cdc433 +Author: Michiharu Ariza +Date: Thu Feb 7 15:32:32 2019 -0800 + + retain FDSelect & FDArray with --retain-gids + + so in sync with fonttools behavior + + src/hb-subset-cff-common.cc | 12 ++++-------- + .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 2604 -> 2736 bytes + 2 files changed, 4 insertions(+), 8 deletions(-) + +commit 1239b6b2b4430658aea78216a1dcc885724a7ab4 +Merge: 9f80eb01 126abca9 +Author: Michiharu Ariza +Date: Thu Feb 7 10:29:40 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit a5fa76977b5bdf3bd40ede3cdd0da9c5546557a6 +Merge: 214d0b02 126abca9 +Author: Michiharu Ariza +Date: Thu Feb 7 10:28:13 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit 214d0b024b49edd51974ff2c051535ae06de0709 +Author: Michiharu Ariza +Date: Thu Feb 7 10:27:43 2019 -0800 + + minor change + + src/hb-subset-cff-common.cc | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 126abca98a954f7ec3374d0593fee25f78dc10f3 +Merge: 1e062821 7859decd +Author: Behdad Esfahbod +Date: Wed Feb 6 13:36:52 2019 -0800 + + Merge pull request #1571 from kencu/cleanostests + + hb-coretext.cc: clean up macosx test + +commit 7859decdd02f65dfb3da07bd95742b14b4697638 +Author: Ken Cunningham +Date: Tue Feb 5 20:26:49 2019 -0800 + + hb-coretext.cc: clean up macosx test + + TARGET_OS_OSX was introduced only in late OS versions + so always returns as "0" on older systems. + + if !TARGET_OS_IPHONE can work, as it returns as !0 on older + systems where TARGET_OS_IPHONE is not defined, but is not + specific + + if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) + is both specific and accurate on all systems. + + src/hb-coretext.cc | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 9328354a83252a8d8d74fe424ab3894d398b0bd0 +Author: Michiharu Ariza +Date: Mon Feb 4 11:28:15 2019 -0800 + + separate CFF from TrueType in full font tests + + ...eSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin + .../SourceSansPro-Regular.default.61,62,63.otf | Bin + ...ourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin + ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin + ...Regular.desubroutinize-retain-gids.61,62,63.otf | Bin + ...r.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin + ...o-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin + ...urceSansPro-Regular.desubroutinize.61,62,63.otf | Bin + ...nsPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin + ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin + ...p-hints-desubroutinize-retain-gids.61,62,63.otf | Bin + ...s-desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin + ...rop-hints-desubroutinize.1FC,21,41,20,62,63.otf | Bin + ...-Regular.drop-hints-desubroutinize.61,62,63.otf | Bin + ...ar.drop-hints-desubroutinize.D7,D8,D9,DA,DE.otf | Bin + ...r.drop-hints-retain-gids.1FC,21,41,20,62,63.otf | Bin + ...Pro-Regular.drop-hints-retain-gids.61,62,63.otf | Bin + ...gular.drop-hints-retain-gids.D7,D8,D9,DA,DE.otf | Bin + ...nsPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin + .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin + ...ceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin + ...sPro-Regular.retain-gids.1FC,21,41,20,62,63.otf | Bin + .../SourceSansPro-Regular.retain-gids.61,62,63.otf | Bin + ...eSansPro-Regular.retain-gids.D7,D8,D9,DA,DE.otf | Bin + ...gular.default.3042,3044,3046,3048,304A,304B.otf | Bin + ...gular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin + ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + .../SourceHanSans-Regular.default.660E.otf | Bin + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin + ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin + ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...eHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin + ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin + ...esubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin + ...esubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...gular.drop-hints-desubroutinize.61,63,65,6B.otf | Bin + ...esubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + ...Sans-Regular.drop-hints-desubroutinize.660E.otf | Bin + ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin + ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin + ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin + ...ar.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin + ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...ourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin + ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + .../SourceHanSans-Regular.drop-hints.660E.otf | Bin + ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin + ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin + ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin + ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin + .../SourceHanSans-Regular.retain-gids.660E.otf | Bin + test/subset/data/tests/cff-full-font.tests | 18 +++++++++++++++++ + test/subset/data/tests/cff-japanese.tests | 22 +++++++++++++++++++++ + test/subset/data/tests/full-font.tests | 7 ------- + test/subset/data/tests/japanese.tests | 7 ------- + test/subset/subset_test_suite.py | 7 +------ + 69 files changed, 41 insertions(+), 20 deletions(-) + +commit ec30a8a9acf7be9918a8a6bff41696127090173f +Author: Michiharu Ariza +Date: Fri Feb 1 15:58:03 2019 -0800 + + removed unused test data + + ...ts.desubroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 15456 -> 0 bytes + ...r.drop-hints.desubroutinize-retain-gids.61,62,63.otf | Bin 13036 -> 0 bytes + ...-hints.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 16656 -> 0 bytes + ...nsPro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 3276 -> 0 bytes + ...-hints.desubroutinize.retain-gids.D7,D8,D9,DA,DE.otf | Bin 34560 -> 0 bytes + ...ro-Regular.drop-hints.retain-gids.D7,D8,D9,DA,DE.otf | Bin 34576 -> 0 bytes + 6 files changed, 0 insertions(+), 0 deletions(-) + +commit 30b781f20a8e386732f8e2858a22665d7af98061 +Merge: c1286265 1e062821 +Author: Michiharu Ariza +Date: Fri Feb 1 14:50:34 2019 -0800 + + Merge branch 'master' into cff-retain-gids + +commit c12862657f24b6c197e23d99a4edbdfcf3c90653 +Author: Michiharu Ariza +Date: Fri Feb 1 14:50:01 2019 -0800 + + added desubroutinize & retain-gids full test cases with CFF fonts + + and CFF retain-gids fixes + + src/hb-subset-cff1.cc | 44 +++++++++------------ + .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 2600 -> 2604 bytes + ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33516 bytes + ...Regular.desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 31080 bytes + ...r.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34708 bytes + ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33352 bytes + ...p-hints-desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 30956 bytes + ...s-desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34560 bytes + ...op-hints-desubroutinize.1FC,21,41,20,62,63.otf} | Bin + ...-Regular.drop-hints-desubroutinize.61,62,63.otf | Bin 0 -> 3288 bytes + ...r.drop-hints-desubroutinize.D7,D8,D9,DA,DE.otf} | Bin + ...r.drop-hints-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33448 bytes + ...Pro-Regular.drop-hints-retain-gids.61,62,63.otf | Bin 0 -> 31028 bytes + ...gular.drop-hints-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34576 bytes + ...subroutinize-retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 15456 bytes + ...p-hints.desubroutinize-retain-gids.61,62,63.otf | Bin 0 -> 13036 bytes + ...s.desubroutinize-retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 16656 bytes + ...s.desubroutinize.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34560 bytes + ...gular.drop-hints.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34576 bytes + ...sPro-Regular.retain-gids.1FC,21,41,20,62,63.otf | Bin 0 -> 33668 bytes + .../SourceSansPro-Regular.retain-gids.61,62,63.otf | Bin 0 -> 31180 bytes + ...eSansPro-Regular.retain-gids.D7,D8,D9,DA,DE.otf | Bin 0 -> 34724 bytes + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536352 bytes + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690752 bytes + ...ular.desubroutinize-retain-gids.61,63,65,6B.otf | Bin 0 -> 530004 bytes + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690868 bytes + ...ans-Regular.desubroutinize-retain-gids.660E.otf | Bin 0 -> 612212 bytes + .../SourceHanSans-Regular.desubroutinize..otf | Bin 2340 -> 0 bytes + ...e-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536176 bytes + ...e-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690500 bytes + ...ints-desubroutinize-retain-gids.61,63,65,6B.otf | Bin 0 -> 529888 bytes + ...e-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690564 bytes + ....drop-hints-desubroutinize-retain-gids.660E.otf | Bin 0 -> 612108 bytes + ...subroutinize.3042,3044,3046,3048,304A,304B.otf} | Bin 6076 -> 6096 bytes + ...subroutinize.3042,3044,3046,73E0,5EA6,8F38.otf} | Bin 6180 -> 6204 bytes + ...ular.drop-hints-desubroutinize.61,63,65,6B.otf} | Bin 5312 -> 5344 bytes + ...subroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf} | Bin 6248 -> 6268 bytes + ...ans-Regular.drop-hints-desubroutinize.660E.otf} | Bin 5140 -> 5120 bytes + ...s-retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536244 bytes + ...s-retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690596 bytes + ...-Regular.drop-hints-retain-gids.61,63,65,6B.otf | Bin 0 -> 529928 bytes + ...s-retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 690768 bytes + ...HanSans-Regular.drop-hints-retain-gids.660E.otf | Bin 0 -> 612128 bytes + ...eHanSans-Regular.drop-hints.desubroutinize..otf | Bin 2188 -> 0 bytes + ...r.retain-gids.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 536436 bytes + ...r.retain-gids.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 690860 bytes + ...urceHanSans-Regular.retain-gids.61,63,65,6B.otf | Bin 0 -> 530084 bytes + ...r.retain-gids.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 691076 bytes + .../SourceHanSans-Regular.retain-gids.660E.otf | Bin 0 -> 612236 bytes + .../data/profiles/desubroutinize-retain-gids.txt | 2 + + .../drop-hints-desubroutinize-retain-gids.txt | 3 ++ + test/subset/data/tests/full-font.tests | 6 +++ + test/subset/data/tests/japanese.tests | 6 +++ + test/subset/subset_test_suite.py | 2 +- + 54 files changed, 36 insertions(+), 27 deletions(-) + +commit f2908b4d8f9b02ce06d3f648c3f08757797073b6 +Author: Michiharu Ariza +Date: Thu Jan 31 14:16:37 2019 -0800 + + Implement subset --regain-gids option with CFF1/2 + + along with api tests & expected results + + src/hb-subset-cff-common.cc | 17 +++- + src/hb-subset-cff-common.hh | 91 +++++++++++++-------- + src/hb-subset-cff1.cc | 89 ++++++++++++-------- + src/hb-subset-cff2.cc | 30 ++++--- + test/api/fonts/AdobeVFPrototype.ac.retaingids.otf | Bin 0 -> 7000 bytes + .../SourceHanSans-Regular.41,4C2E.retaingids.otf | Bin 0 -> 2600 bytes + .../fonts/SourceSansPro-Regular.ac.retaingids.otf | Bin 0 -> 1708 bytes + test/api/test-subset-cff1.c | 48 +++++++++++ + test/api/test-subset-cff2.c | 24 ++++++ + 9 files changed, 217 insertions(+), 82 deletions(-) + +commit 1e06282105a2d579aab32094cc7abc10ed231978 +Author: Behdad Esfahbod +Date: Thu Jan 31 13:56:58 2019 -0800 + + Adjust hb_is_signed<> + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1535 + + src/hb-dsalgs.hh | 27 +++++++++------------------ + 1 file changed, 9 insertions(+), 18 deletions(-) + +commit 21ea1c91529471c05e03b6db61df256f24fa23c1 +Author: Behdad Esfahbod +Date: Thu Jan 31 13:49:18 2019 -0800 + + Remove stale comment + + src/hb-dsalgs.hh | 5 ----- + 1 file changed, 5 deletions(-) + +commit 9f80eb0177e527253818ad9171fc75fb565318cb +Merge: b3799007 d14d2c20 +Author: Michiharu Ariza +Date: Thu Jan 31 12:54:36 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit d14d2c20b05c5acf0a6f9c6dc36a7b8d8966153e +Merge: acf5f0a3 dc04261a +Author: Behdad Esfahbod +Date: Wed Jan 30 18:36:57 2019 -0500 + + Merge pull request #1567 from googlefonts/fuzzer + + [subset] Update the subset fuzzer to get options to use from test case. + +commit dc04261a5b8408bcfde16090ddf91568c3d8dae7 +Author: Garret Rieger +Date: Wed Jan 30 15:23:19 2019 -0800 + + [subset] Update the subset fuzzer to determine which options to use based on data in the fuzzing test case. + Add support for toggling retain_gids. + + test/fuzzing/hb-subset-fuzzer.cc | 32 +++++++++++++++++++------------- + 1 file changed, 19 insertions(+), 13 deletions(-) + +commit acf5f0a3aff0e128509b0979f629edf0596fcee5 +Author: Behdad Esfahbod +Date: Wed Jan 30 15:10:23 2019 -0800 + + [configure] Fix up + + configure.ac | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +commit 6b834c1c76b867ef32747202a755255d2f360f1e +Author: Behdad Esfahbod +Date: Wed Jan 30 15:06:22 2019 -0800 + + [configure] Print compiler version info in report + + configure.ac | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit d983c529b66b530715e9c813c69e699b1d8029d3 +Merge: 55d1d7c8 e6ffcc59 +Author: Behdad Esfahbod +Date: Wed Jan 30 17:17:59 2019 -0500 + + Merge pull request #1564 from googlefonts/retain_gids + + [subset] Add --retain-gids option to the subsetter. + +commit 55d1d7c8bcd8d97c4e618e5dd21f13df50b10ce8 +Author: Behdad Esfahbod +Date: Wed Jan 30 13:54:15 2019 -0800 + + 2.3.1 + + NEWS | 7 +++++++ + configure.ac | 2 +- + src/hb-version.h | 4 ++-- + 3 files changed, 10 insertions(+), 3 deletions(-) + +commit e6ffcc5904ab88143cad0c7a7a4c990147af278b +Author: Garret Rieger +Date: Mon Jan 28 18:12:19 2019 -0800 + + [subset] Add expected files for retain-gids integration tests. + + ...oboto-Regular.abc.drop-hints-retain-gids.61,62,63.ttf | Bin 0 -> 924 bytes + .../Roboto-Regular.abc.drop-hints-retain-gids.61,63.ttf | Bin 0 -> 856 bytes + .../Roboto-Regular.abc.drop-hints-retain-gids.61.ttf | Bin 0 -> 744 bytes + .../Roboto-Regular.abc.drop-hints-retain-gids.62.ttf | Bin 0 -> 712 bytes + .../Roboto-Regular.abc.drop-hints-retain-gids.63.ttf | Bin 0 -> 716 bytes + .../basics/Roboto-Regular.abc.retain-gids.61,62,63.ttf | Bin 0 -> 2168 bytes + .../basics/Roboto-Regular.abc.retain-gids.61,63.ttf | Bin 0 -> 1996 bytes + .../basics/Roboto-Regular.abc.retain-gids.61.ttf | Bin 0 -> 1808 bytes + .../basics/Roboto-Regular.abc.retain-gids.62.ttf | Bin 0 -> 1756 bytes + .../basics/Roboto-Regular.abc.retain-gids.63.ttf | Bin 0 -> 1732 bytes + test/subset/data/profiles/retain-gids.txt | 1 - + 11 files changed, 1 deletion(-) + +commit 198859bb3702e45cb271dd51b7231f10d01576be +Author: Garret Rieger +Date: Mon Jan 28 18:10:56 2019 -0800 + + [subset] For retain gids don't truncate glyphs past the highest requested subset glyph. + + src/hb-subset-plan.cc | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +commit 490d52f908aaa4722e71a4a682de20e94d89ad00 +Author: Garret Rieger +Date: Mon Jan 28 17:43:42 2019 -0800 + + [subset] Add retain-gids option to hb-subset executable. + + util/hb-subset.cc | 1 + + util/options.cc | 1 + + util/options.hh | 2 ++ + 3 files changed, 4 insertions(+) + +commit a903f9c228d1f3e8065f89de16e50027d6018e58 +Author: Garret Rieger +Date: Mon Jan 28 17:43:11 2019 -0800 + + [subset] Add some subsetting integration tests covering retain gids. + + test/subset/data/profiles/drop-hints-retain-gids.txt | 2 ++ + test/subset/data/profiles/retain-gids.txt | 2 ++ + test/subset/data/tests/basics.tests | 2 ++ + 3 files changed, 6 insertions(+) + +commit 05e99c86baa0e95c2bff1c87d601eaf022c9d1f8 +Author: Garret Rieger +Date: Mon Jan 28 17:05:04 2019 -0800 + + [subset] A few small fixes for the new subset plan api. + + src/hb-ot-hdmx-table.hh | 6 +++--- + src/hb-ot-hmtx-table.hh | 9 +++------ + src/hb-subset.cc | 2 +- + 3 files changed, 7 insertions(+), 10 deletions(-) + +commit bdbe047d6ce3d8873c6740500d38d1b0c4e851f8 +Author: Garret Rieger +Date: Mon Jan 28 16:59:15 2019 -0800 + + [subset] Update hb-subset-plan.cc to match hb-subset-plan.hh. + + src/hb-subset-plan.cc | 20 ++++++++++---------- + src/hb-subset-plan.hh | 1 - + 2 files changed, 10 insertions(+), 11 deletions(-) + +commit 74c44ffebafe7758937d82524758be8bb4ecc4e2 +Author: Garret Rieger +Date: Mon Jan 28 16:53:01 2019 -0800 + + [subset] Update hb-subset-glyf.cc to use new hb-subset-plan API. + + src/hb-subset-glyf.cc | 57 ++++++++++++++++++++------------------------------- + 1 file changed, 22 insertions(+), 35 deletions(-) + +commit 4842294b861b9fe322c811abef0ebb0553be2bf0 +Author: Garret Rieger +Date: Mon Jan 28 16:51:27 2019 -0800 + + [subset] Update gsub to use glyphset() method of subset plan. + + src/hb-ot-layout-gsub-table.hh | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 853b1f1aa5489b8439c41c30be77ed042c8c89e5 +Author: Garret Rieger +Date: Mon Jan 28 16:50:56 2019 -0800 + + [subset] Correct maxp num glyph's to use new subset plan method. + + src/hb-ot-maxp-table.hh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 846e05a298bc088f2cd2fe53b75ca531916a56f8 +Author: Garret Rieger +Date: Mon Jan 28 16:50:20 2019 -0800 + + [subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it. + + src/hb-subset-cff1.cc | 36 ++++++++++++++++++------------------ + src/hb-subset-cff2.cc | 12 ++++++------ + src/hb-subset-plan.hh | 3 +++ + 3 files changed, 27 insertions(+), 24 deletions(-) + +commit 03e88eab5c0f8775ccffc0925532748140d93470 +Author: Garret Rieger +Date: Mon Jan 28 16:15:06 2019 -0800 + + Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation. + + src/hb-ot-hmtx-table.hh | 99 +++++++++++++++++++++++++------------------------ + src/hb-subset-plan.cc | 2 +- + src/hb-subset-plan.hh | 2 +- + 3 files changed, 53 insertions(+), 50 deletions(-) + +commit 925be2922348336335a96d84e606d4bdd9a11110 +Author: Garret Rieger +Date: Fri Jan 25 18:04:41 2019 -0800 + + Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api. + + src/hb-ot-layout-common.hh | 4 ++-- + src/hb-ot-vorg-table.hh | 30 +++++++++++++++++++----------- + 2 files changed, 21 insertions(+), 13 deletions(-) + +commit 4af3be6ef8654ae05b331941e6e690ac197fd144 +Author: Garret Rieger +Date: Fri Jan 25 18:03:47 2019 -0800 + + Remove glyph array from subset plan, make num_glyphs and glyphset private. + + src/hb-subset-plan.hh | 51 +++++++++++++++++++++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 10 deletions(-) + +commit 23f364429dc9350ee06146bdf0ff73d7035e1d71 +Author: Garret Rieger +Date: Fri Jan 18 18:33:21 2019 -0800 + + [subset] Fix hdmx subsetting when retain gids is enabled. + + src/hb-ot-hdmx-table.hh | 19 +++++++++++-------- + src/hb-subset-plan.cc | 10 ++++++++++ + src/hb-subset-plan.hh | 16 +++++++++++++++- + 3 files changed, 36 insertions(+), 9 deletions(-) + +commit 2da1654aefbe4f8e5f1320f1c061adbf90963951 +Author: Garret Rieger +Date: Fri Jan 18 17:49:35 2019 -0800 + + [subset] Compute num_glyphs during subset plan construction. + Update maxp to use the correct num glyphs. + + src/hb-ot-maxp-table.hh | 2 +- + src/hb-subset-glyf.cc | 6 +----- + src/hb-subset-plan.cc | 16 +++++++++++++--- + src/hb-subset-plan.hh | 1 + + 4 files changed, 16 insertions(+), 9 deletions(-) + +commit ccc59dc6121e98ed8d610350b43218e540f61f25 +Author: Garret Rieger +Date: Fri Jan 18 17:36:32 2019 -0800 + + [subset] Add unit test for glyf subsetting and retain gids. + + test/api/fonts/Roboto-Regular.ac.retaingids.ttf | Bin 0 -> 2284 bytes + test/api/test-subset-glyf.c | 26 ++++++++++++++++++++++++ + 2 files changed, 26 insertions(+) + +commit 96b038f375bcfcfdf76c75200ca02758ea7a4ff6 +Author: Garret Rieger +Date: Fri Jan 18 16:41:08 2019 -0800 + + [subset] fix failure to init instruction ranges values for an invalid glyph. + + src/hb-subset-glyf.cc | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 4b1ac3a2fa0a5842b5d45d287fe33e5050ffda3f +Author: Garret Rieger +Date: Fri Jan 18 15:11:26 2019 -0800 + + [subset] Do some refactoring in hb-subset-glyf.cc. + - Extract code out into helper methods in several places. + - Bundle loca address, size and is short into a struct. + + src/hb-subset-glyf.cc | 264 ++++++++++++++++++++++++++++---------------------- + 1 file changed, 148 insertions(+), 116 deletions(-) + +commit b7f971884ed838636be85de216bf60ca4a28ccb9 +Author: Garret Rieger +Date: Thu Jan 17 18:55:56 2019 -0800 + + Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids. + + src/hb-subset-glyf.cc | 39 ++++++++++++++++++++++++++++++--------- + src/hb-subset-input.cc | 27 +++++++++++++++++++++++++++ + src/hb-subset-input.hh | 1 + + src/hb-subset-plan.cc | 14 ++++++++++---- + src/hb-subset.h | 6 ++++++ + 5 files changed, 74 insertions(+), 13 deletions(-) + +commit b3799007554f2909170df941b07c72f7dc02dfcd +Merge: c6856443 fe532923 +Author: Michiharu Ariza +Date: Tue Jan 29 12:19:57 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + commit fe532923101586e316b300d419a337d357cd93da Author: Behdad Esfahbod Date: Mon Jan 28 20:47:58 2019 -0500 [CI] Peg CircleCI badge link to master branch - + [skip ci] README.md | 2 +- @@ -14,7 +1366,7 @@ Author: Behdad Esfahbod Date: Mon Jan 28 20:43:43 2019 -0500 [ci] Peg build status badges to master branch - + [skip ci] README.md | 6 +++--- @@ -25,7 +1377,7 @@ Author: Behdad Esfahbod Date: Mon Jan 28 20:38:15 2019 -0500 Switch README / README.md - + [skip ci] README | 19 +------------------ @@ -55,10 +1407,8 @@ Author: Behdad Esfahbod Date: Mon Jan 28 14:09:59 2019 -0500 Fix warning - - c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: - unary minus operator applied to unsigned type, result still unsigned - [C:\projects\harfbuzz\build\harfbuzz.vcxproj] + + c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj] src/hb-ot-color-cbdt-table.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -110,6 +1460,13 @@ Date: Fri Jan 25 15:11:47 2019 +0100 test/shaping/data/in-house/tests/macos.tests | 2 ++ 1 file changed, 2 insertions(+) +commit c685644386d1c88d6df6e024e56d61c792d94418 +Merge: 0bd0a331 e970de48 +Author: Michiharu Ariza +Date: Thu Jan 24 13:19:18 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + commit e970de48bcbdccd29350f331288c0a98f7846c16 Author: Behdad Esfahbod Date: Thu Jan 24 18:16:17 2019 +0100 @@ -124,11 +1481,10 @@ Author: Behdad Esfahbod Date: Thu Jan 24 18:12:25 2019 +0100 [AAT] Use a ring buffer for ligature stack - - I think Apple does very similarly, but probably with a stack size - of 16. + + I think Apple does very similarly, but probably with a stack size of 16. We do it with a stack size that is currently set to 64. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1531 src/hb-aat-layout-morx-table.hh | 15 ++++++--------- @@ -148,10 +1504,9 @@ Author: Behdad Esfahbod Date: Thu Jan 24 18:01:07 2019 +0100 [AAT] Handle transition errors during machine operation - - Before we used to give up. Now, just ignore error and continue - processing. - + + Before we used to give up. Now, just ignore error and continue processing. + Fixes https://github.com/harfbuzz/harfbuzz/issues/1531 src/hb-aat-layout-common.hh | 3 +-- @@ -159,6 +1514,13 @@ Date: Thu Jan 24 18:01:07 2019 +0100 src/hb-aat-layout-morx-table.hh | 34 +++++++++++++--------------------- 3 files changed, 21 insertions(+), 37 deletions(-) +commit 0bd0a3311cfded5ffa4d9d488d404558cf65e8ed +Merge: 12cd3171 f60282c5 +Author: Michiharu Ariza +Date: Thu Jan 24 08:53:28 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + commit e234bb6a428cd6c8ddf57eb078cd51b9d1f25ba8 Author: Behdad Esfahbod Date: Thu Jan 24 17:23:11 2019 +0100 @@ -176,8 +1538,7 @@ Date: Thu Jan 24 17:21:41 2019 +0100 src/hb-aat-layout-common.hh | 12 ++++---- src/hb-aat-layout-kerx-table.hh | 38 +++++++++++------------ - src/hb-aat-layout-morx-table.hh | 68 - ++++++++++++++++++++--------------------- + src/hb-aat-layout-morx-table.hh | 68 ++++++++++++++++++++--------------------- 3 files changed, 59 insertions(+), 59 deletions(-) commit 299eca0c3b28c99add006420bc667431d874fb2e @@ -212,7 +1573,7 @@ Author: Behdad Esfahbod Date: Thu Jan 24 16:29:09 2019 +0100 More pragma control - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=924848 src/hb.hh | 16 +++++++++++++++- @@ -242,13 +1603,11 @@ Author: Behdad Esfahbod Date: Thu Jan 24 16:08:33 2019 +0100 Form cluster for Emoji sub-region tag sequences - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1556 - src/hb-ot-shape.cc | 13 - +++++++++++++ - .../fonts/8d9c4b193808b8bde94389ba7831c1fc6f9e794e.ttf | Bin 0 -> - 1548 bytes + src/hb-ot-shape.cc | 13 +++++++++++++ + .../fonts/8d9c4b193808b8bde94389ba7831c1fc6f9e794e.ttf | Bin 0 -> 1548 bytes test/shaping/data/in-house/tests/cluster.tests | 1 + 3 files changed, 14 insertions(+) @@ -266,13 +1625,12 @@ Author: Behdad Esfahbod Date: Thu Jan 24 12:08:23 2019 +0100 Adjust mark offsets when zeroing from fallback mark positioning code - + Adjust tests. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1532 - src/hb-ot-shape-fallback.cc | 31 - +++++++++++++++------- + src/hb-ot-shape-fallback.cc | 31 +++++++++++++++------- src/hb-ot-shape-fallback.hh | 3 ++- src/hb-ot-shape.cc | 3 ++- .../in-house/tests/arabic-fallback-shaping.tests | 2 +- @@ -280,12 +1638,30 @@ Date: Thu Jan 24 12:08:23 2019 +0100 .../data/in-house/tests/fallback-positioning.tests | 4 +-- 6 files changed, 30 insertions(+), 15 deletions(-) +commit 12cd3171ba3b84eff9f359778fabcab8f66ce36e +Merge: 261a7421 36fb2b4d +Author: Michiharu Ariza +Date: Wed Jan 23 14:05:42 2019 -0800 + + Merge branch 'master' into cff-more-arrayof-fixes + +commit 261a7421814d83f84d8def046b7108a245347461 +Author: Michiharu Ariza +Date: Wed Jan 23 14:04:29 2019 -0800 + + more rewriting with ArrayOf<> + + CFF1 Encoding0, Encoding1, CFF1SuppEncData + + src/hb-ot-cff1-table.hh | 51 +++++++++++++++++++++++-------------------------- + 1 file changed, 24 insertions(+), 27 deletions(-) + commit 36fb2b4da9718a86978fa07c99ba4345f7ca9b4b Author: Behdad Esfahbod Date: Wed Jan 23 20:53:57 2019 +0100 [AAT] In InsertionChain, set mark to previous-position if inserting - + Fixes MORX-31 src/hb-aat-layout-morx-table.hh | 8 +++++--- @@ -335,11 +1711,9 @@ commit a5e5dd8b42b40c3647e06e6bb62580af77bed42b Author: Behdad Esfahbod Date: Tue Jan 22 16:30:07 2019 +0100 - Fix sign-compare error resulted from promoting unsigned integers to - signed larger ints - - Clang and gcc know not to warn in these cases, but not nonmainstream - compilers + Fix sign-compare error resulted from promoting unsigned integers to signed larger ints + + Clang and gcc know not to warn in these cases, but not nonmainstream compilers src/hb-subset-cff2.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) @@ -400,24 +1774,18 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:34:05 2019 +0100 Fix cast-align error - + If compiler doesn't inline StructAtOffset, this was an error since we only disable cast-align at call-site. So, move the cast out. - - ../src/hb-machinery.hh: In instantiation of 'const Type& - StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': + + ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:146:85: required from here - ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to - 'const unsigned int*' increases required alignment of target type - [-Werror=cast-align] - { return * reinterpret_cast ((const char *) P + - offset); } + ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align] + { return * reinterpret_cast ((const char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ../src/hb-machinery.hh: In instantiation of 'Type& - StructAtOffset(void*, unsigned int) [with Type = unsigned int]': + ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:147:79: required from here - ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned - int*' increases required alignment of target type [-Werror=cast-align] + ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast ((char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -432,7 +1800,7 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:29:05 2019 +0100 [CI] Remove gcc 4.2 bots - + We don't support that version anymore. .circleci/config.yml | 25 ------------------------- @@ -443,7 +1811,7 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:15:23 2019 +0100 Convert all other enum class consts to static constexpr - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1553 src/hb-cff-interp-common.hh | 2 +- @@ -460,7 +1828,7 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:11:24 2019 +0100 Convert unsigned enum class consts to static constexpr - + Part of https://github.com/harfbuzz/harfbuzz/issues/1553 src/hb-aat-layout-common.hh | 6 +++--- @@ -477,7 +1845,7 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:08:57 2019 +0100 Convert tag enum class consts to static constexpr - + Part of https://github.com/harfbuzz/harfbuzz/issues/1553 src/hb-aat-fdsc-table.hh | 2 +- @@ -528,7 +1896,7 @@ Author: Behdad Esfahbod Date: Tue Jan 22 12:07:43 2019 +0100 Convert boolean enum class consts to static constexpr - + Part of https://github.com/harfbuzz/harfbuzz/issues/1553 src/hb-aat-layout-common.hh | 4 ++-- @@ -592,12 +1960,9 @@ Date: Sun Jan 20 20:09:10 2019 -0500 Remove wrongly added files - test/api/test-ot-extents-cff | Bin 8574336 -> - 0 bytes - .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 - -------------------- - .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 7650053 -> - 0 bytes + test/api/test-ot-extents-cff | Bin 8574336 -> 0 bytes + .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 -------------------- + .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 7650053 -> 0 bytes 3 files changed, 20 deletions(-) commit 380c3cffb9353083913a3bb505c2c62367613096 @@ -670,12 +2035,8 @@ Author: Behdad Esfahbod Date: Sat Jan 19 09:20:46 2019 -0500 Fix sign compare warnings - - ../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: - comparison of integers of different signs: 'const hb_codepoint_t' - (aka 'const unsigned int') and 'hb_map_t::(anonymous enum - at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' - [-Wsign-compare] + + ../../third_party/harfbuzz-ng/src/src/hb-map.hh(56,45): warning: comparison of integers of different signs: 'const hb_codepoint_t' (aka 'const unsigned int') and 'hb_map_t::(anonymous enum at ../../third_party/harfbuzz-ng/src/src/hb-map.hh:169:3)' [-Wsign-compare] bool is_unused () const { return key == INVALID; } src/hb-map.hh | 2 +- @@ -687,7 +2048,7 @@ Author: Behdad Esfahbod Date: Sat Jan 19 09:18:03 2019 -0500 Fix warning - + warning: '_WIN64' is not defined, evaluates to 0 [-Wundef] src/hb-dsalgs.hh | 4 ++-- @@ -737,7 +2098,7 @@ Author: Ebrahim Byagowi Date: Fri Jan 18 21:55:21 2019 +0330 [dwrite] Try to fix delete-non-virtual-dtor warnings - + Fixes #1548 hopefully src/hb-directwrite.cc | 4 ++-- @@ -759,7 +2120,7 @@ Author: Behdad Esfahbod Date: Fri Jan 18 12:48:01 2019 -0500 Fix -Wundef errors with __GNUC__ - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1549 src/hb-common.h | 4 ++-- @@ -771,16 +2132,13 @@ Author: Michiharu Ariza Date: Fri Jan 18 09:43:51 2019 -0800 init interp_env_t::hintmask_size - + fixes issue #1547 src/hb-cff-interp-cs-common.hh | 1 + - test/api/test-ot-extents-cff | Bin 0 -> - 8574336 bytes - .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 - ++++++++++++++++++++ - .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 0 -> - 7650053 bytes + test/api/test-ot-extents-cff | Bin 0 -> 8574336 bytes + .../test-ot-extents-cff.dSYM/Contents/Info.plist | 20 ++++++++++++++++++++ + .../Contents/Resources/DWARF/test-ot-extents-cff | Bin 0 -> 7650053 bytes 4 files changed, 21 insertions(+) commit 9b4e51b2e44d7dea026b1f9201d2f83277bab1cf @@ -788,7 +2146,7 @@ Author: Behdad Esfahbod Date: Fri Jan 18 12:23:02 2019 -0500 [pragma] Enable error -Wdelete-non-virtual-dtor - + Currently fails directwrite backend. src/hb.hh | 1 + @@ -799,24 +2157,18 @@ Author: Behdad Esfahbod Date: Fri Jan 18 12:22:07 2019 -0500 [directwrite] Fix error - - hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const - wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)': - hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be - initialized after [-Werror=reorder] + + hb-directwrite.cc: In constructor 'TextAnalysis::TextAnalysis(const wchar_t*, uint32_t, const wchar_t*, DWRITE_READING_DIRECTION)': + hb-directwrite.cc:489:18: error: 'TextAnalysis::mText' will be initialized after [-Werror=reorder] const wchar_t* mText; ^~~~~ - hb-directwrite.cc:488:12: error: 'uint32_t - TextAnalysis::mTextLength' [-Werror=reorder] + hb-directwrite.cc:488:12: error: 'uint32_t TextAnalysis::mTextLength' [-Werror=reorder] uint32_t mTextLength; ^~~~~~~~~~~ - hb-directwrite.cc:282:3: error: when initialized here - [-Werror=reorder] + hb-directwrite.cc:282:3: error: when initialized here [-Werror=reorder] TextAnalysis (const wchar_t* text, uint32_t textLength, ^~~~~~~~~~~~ - hb-directwrite.cc: In function 'hb_bool_t - _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, - const hb_feature_t*, unsigned int, float)': + hb-directwrite.cc: In function 'hb_bool_t _hb_directwrite_shape_full(hb_shape_plan_t*, hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, float)': src/hb-directwrite.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -838,25 +2190,18 @@ Author: Behdad Esfahbod Date: Fri Jan 18 10:03:43 2019 -0500 [pragma] Allow cast-align in hb-font.cc - - ../src/hb-machinery.hh: In instantiation of 'const Type& - StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': + + ../src/hb-machinery.hh: In instantiation of 'const Type& StructAtOffset(const void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:144:85: required from here - ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to - 'const unsigned int*' increases required alignment of target type - [-Werror=cast-align] - { return * reinterpret_cast ((const char *) P + - offset); } + ../src/hb-machinery.hh:63:12: error: cast from 'const char*' to 'const unsigned int*' increases required alignment of target type [-Werror=cast-align] + { return * reinterpret_cast ((const char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ../src/hb-machinery.hh: In instantiation of 'Type& - StructAtOffset(void*, unsigned int) [with Type = unsigned int]': + ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = unsigned int]': ../src/hb-font.cc:145:79: required from here - ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned - int*' increases required alignment of target type [-Werror=cast-align] + ../src/hb-machinery.hh:66:12: error: cast from 'char*' to 'unsigned int*' increases required alignment of target type [-Werror=cast-align] { return * reinterpret_cast ((char *) P + offset); } ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ../src/hb-machinery.hh: In instantiation of 'Type& - StructAtOffset(void*, unsigned int) [with Type = int]': + ../src/hb-machinery.hh: In instantiation of 'Type& StructAtOffset(void*, unsigned int) [with Type = int]': src/hb-font.cc | 5 +++++ 1 file changed, 5 insertions(+) @@ -885,8 +2230,7 @@ Date: Fri Jan 18 09:49:14 2019 -0500 [pragma] Massage more - src/hb.hh | 106 - ++++++++++++++++++++++++++++++++------------------------------ + src/hb.hh | 106 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 55 insertions(+), 51 deletions(-) commit 16e5ba85b1822ff9d2b2f85f45ddd44f1a05f4b1 @@ -903,11 +2247,10 @@ Author: Behdad Esfahbod Date: Fri Jan 18 09:28:22 2019 -0500 [pragma] Reorg again - + https://github.com/harfbuzz/harfbuzz/issues/1546 - src/hb.hh | 91 - ++++++++++++++++++++++++++++++++------------------------------- + src/hb.hh | 91 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 46 insertions(+), 45 deletions(-) commit c04272fac81cac48b6310182d58d54569117f298 @@ -915,7 +2258,7 @@ Author: Behdad Esfahbod Date: Fri Jan 18 08:49:45 2019 -0500 [pragma] GCC diagnostic ignored "-Wunknown-warning-option" - + Try at fixing https://github.com/harfbuzz/harfbuzz/issues/1546 src/hb.hh | 3 ++- @@ -962,7 +2305,7 @@ Author: Behdad Esfahbod Date: Thu Jan 17 19:12:07 2019 -0500 [ci] Remove unnecessary warning declarations - + clang -Weverything still left to be ported to pragmas .circleci/config.yml | 2 +- @@ -1105,10 +2448,9 @@ Author: Behdad Esfahbod Date: Thu Jan 17 16:07:27 2019 -0500 [ci] Remove -Werror from Travis - - hb-machinery.hh:111:37: warning: comparison of unsigned expression >= - 0 is always true [-Wtype-limits] - + + hb-machinery.hh:111:37: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] + Also ignore -Wtype-limits. .travis.yml | 2 -- @@ -1169,10 +2511,9 @@ Author: Behdad Esfahbod Date: Thu Jan 17 14:54:32 2019 -0500 [AAT] Fully sanitize ankr table at sanitize time - - Third try to fix access. Followup - 6879efc2c1596d11a6a6ad296f80063b558d5e0f - + + Third try to fix access. Followup 6879efc2c1596d11a6a6ad296f80063b558d5e0f + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532 Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303 @@ -1184,15 +2525,13 @@ Author: Behdad Esfahbod Date: Thu Jan 17 14:06:37 2019 -0500 [AAT] Fix anchor bound checking, again - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12532 Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=922303 src/hb-aat-layout-ankr-table.hh | 3 ++- - ...zz-testcase-minimized-harfbuzz_fuzzer-5166320261529600 | Bin 0 -> - 393 bytes - ...zz-testcase-minimized-hb-shape-fuzzer-5667182741028864 | Bin 0 -> - 407 bytes + ...zz-testcase-minimized-harfbuzz_fuzzer-5166320261529600 | Bin 0 -> 393 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5667182741028864 | Bin 0 -> 407 bytes 3 files changed, 2 insertions(+), 1 deletion(-) commit a262eb3d0b7009aabd9e0beebc77e5c0a2a65548 @@ -1209,7 +2548,7 @@ Author: Behdad Esfahbod Date: Tue Jan 15 13:58:19 2019 -0500 Improve overflow avoidance - + Better fix for 480406cd3ef9e5ab8476ddfa04498bf23906c508 This way we behave the same on 32bit and 64bit archs. @@ -1221,7 +2560,7 @@ Author: Behdad Esfahbod Date: Mon Jan 14 18:23:17 2019 -0800 fix FDSelect fuzzing bug (#1539) - + Rewrote struct FDSelect3_4.ranges as ArrayOf Updated FDSelect3_4::sanitize () to call ranges.sanitize () nRanges now a function to return a reference to ranges.len @@ -1235,7 +2574,7 @@ Author: Behdad Esfahbod Date: Mon Jan 14 20:45:31 2019 -0500 Move _POSIX_SOURCE definition - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1308 src/hb-blob.cc | 9 +++++++++ @@ -1248,8 +2587,7 @@ Date: Mon Jan 14 15:31:31 2019 -0500 [test] Add test for previous commit - ...uzz-testcase-minimized-harfbuzz_fuzzer-5662548265009152 | Bin 0 -> - 28 bytes + ...uzz-testcase-minimized-harfbuzz_fuzzer-5662548265009152 | Bin 0 -> 28 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 480406cd3ef9e5ab8476ddfa04498bf23906c508 @@ -1257,7 +2595,7 @@ Author: Behdad Esfahbod Date: Mon Jan 14 15:27:34 2019 -0500 Fix assertion on address overflow - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=917031 src/hb-machinery.hh | 5 +++-- @@ -1268,12 +2606,11 @@ Author: Behdad Esfahbod Date: Mon Jan 14 15:09:14 2019 -0500 [AAT] Fix mort ContextualSubtable offset access - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=12312 src/hb-aat-layout-morx-table.hh | 3 ++- - ...zz-testcase-minimized-hb-shape-fuzzer-5631444412530688 | Bin 0 -> - 336 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5631444412530688 | Bin 0 -> 336 bytes 2 files changed, 2 insertions(+), 1 deletion(-) commit a3fa7d33360a58df5333dbbd121328e580f08849 @@ -1281,12 +2618,11 @@ Author: Behdad Esfahbod Date: Mon Jan 14 14:37:36 2019 -0500 [AAT] Fix ankr table access - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=918340 src/hb-aat-layout-ankr-table.hh | 7 ++++--- - ...z-testcase-minimized-harfbuzz_fuzzer-5126525414014976 | Bin 0 -> - 1141 bytes + ...z-testcase-minimized-harfbuzz_fuzzer-5126525414014976 | Bin 0 -> 1141 bytes 2 files changed, 4 insertions(+), 3 deletions(-) commit 760303d411b1561533f8f08c7c15db331c71ece8 @@ -1303,10 +2639,10 @@ Author: Ebrahim Byagowi Date: Wed Jan 9 16:01:11 2019 +0330 Add an initial .clang-format config - + There are things can be improved on clang-format side I guess before the full assertion, but is the best we can get for now I guess. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1536 .clang-format | 38 ++++++++++++++++++++++++++++++++++++++ @@ -1317,9 +2653,8 @@ Author: Ebrahim Byagowi Date: Wed Jan 9 15:56:32 2019 +0330 Minor, hack .editorconfig for vscode use - - As VSCode and Atom https://github.com/Microsoft/vscode/issues/44438 - don't support it + + As VSCode and Atom https://github.com/Microsoft/vscode/issues/44438 don't support it .editorconfig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) @@ -1329,7 +2664,7 @@ Author: Michiharu Ariza Date: Tue Jan 8 12:37:48 2019 -0800 fix leak in subset_enc_supp_codes (#1537) - + oss-fuzz issue 12310 src/hb-subset-cff1.cc | 2 +- @@ -1363,8 +2698,7 @@ Date: Wed Nov 28 13:48:38 2018 -0600 Usermanual: small updates. ...anual-buffers-language-script-and-direction.xml | 7 +- - docs/usermanual-clusters.xml | 279 - ++++++++++++++++----- + docs/usermanual-clusters.xml | 279 ++++++++++++++++----- docs/usermanual-getting-started.xml | 91 ++++++- docs/usermanual-install-harfbuzz.xml | 3 +- docs/usermanual-shaping-concepts.xml | 11 +- @@ -1375,20 +2709,15 @@ Author: cclauss Date: Mon Dec 31 04:30:43 2018 +0100 CircleCI: Test for Python 3 syntax errors and undefined names (#1522) - + Catch missing imports and errors like #1520 and #1521 - - __E901,E999,F821,F822,F823__ are the "_showstopper_" - [flake8](http://flake8.pycqa.org) issues that can halt the runtime - with a SyntaxError, NameError, etc. Most other flake8 issues are - merely "style violations" -- useful for readability but they do not - effect runtime safety. + + __E901,E999,F821,F822,F823__ are the "_showstopper_" [flake8](http://flake8.pycqa.org) issues that can halt the runtime with a SyntaxError, NameError, etc. Most other flake8 issues are merely "style violations" -- useful for readability but they do not effect runtime safety. * F821: undefined name `name` * F822: undefined name `name` in `__all__` * F823: local variable name referenced before assignment * E901: SyntaxError or IndentationError - * E999: SyntaxError -- failed to compile a file into an Abstract - Syntax Tree + * E999: SyntaxError -- failed to compile a file into an Abstract Syntax Tree .circleci/config.yml | 3 ++- src/gen-use-table.py | 4 +++- @@ -1400,7 +2729,7 @@ Author: Behdad Esfahbod Date: Sun Dec 30 11:27:42 2018 -0500 Fix automake warnings - + [skip ci] test/api/Makefile.am | 1 - @@ -1421,10 +2750,8 @@ Author: cclauss Date: Sun Dec 30 12:58:34 2018 +0100 Python 3 fixes to gen-os2-unicode-ranges.py (#1521) - - In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__ - because the default is already utf-8. Also __Error()__ is an - _undefined name_ and __Exception()__ creates a generic exception. + + In Python 3, __reload()__ was moved and __sys.setdefaultencoding()__ because the default is already utf-8. Also __Error()__ is an _undefined name_ and __Exception()__ creates a generic exception. src/gen-os2-unicode-ranges.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) @@ -1499,11 +2826,9 @@ Author: Behdad Esfahbod Date: Thu Dec 27 17:56:22 2018 -0500 [vector] Remove static_array - - Was good idea, but with C++ types with constructor/destructor, - was getting in - the way as compiler was destructing those items where it was not - desired. + + Was good idea, but with C++ types with constructor/destructor, was getting in + the way as compiler was destructing those items where it was not desired. Since C++ does not allow zero-sized arrays, just remove it... src/hb-aat-map.hh | 4 ++-- @@ -1542,9 +2867,8 @@ Author: Behdad Esfahbod Date: Mon Dec 24 11:31:04 2018 -0500 [vector] Change pre-alloced count from 8 to 2 - - I'm thinking about dropping it to zero, but that needs slight code - changes. + + I'm thinking about dropping it to zero, but that needs slight code changes. src/hb-vector.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -1625,42 +2949,41 @@ Author: Michiharu Ariza Date: Sat Dec 22 07:47:04 2018 -0800 CFF renaming (#1507) - + * reimplement ByteStr as byte_str_t based on hb_ubytes_t - + Unuse start_embed Also renamed SubByteStr to byte_str_ref_t More renaming to come - + * substr renamed to str_ref in line with its type byte_str_ref_t - + * uncamelize non-table struct names - + * uncamelized non-struct types OpCode etc - + * add byte_str_t copy ctor - + * test - + * test2 - + * undo tests - + * fix bot failure - + * undo the previous change - + * fixed tabs, added inline - + * Revert "fixed tabs, added inline" - + This reverts commit 21163c30e9d18759414f7fe2518628241599f039. - + * fix tabs src/hb-cff-interp-common.hh | 215 +++++++++++++++------------------ - src/hb-cff-interp-cs-common.hh | 250 - +++++++++++++++++++-------------------- + src/hb-cff-interp-cs-common.hh | 250 +++++++++++++++++++-------------------- src/hb-cff-interp-dict-common.hh | 64 +++++----- src/hb-cff1-interp-cs.hh | 26 ++-- src/hb-cff2-interp-cs.hh | 56 ++++----- @@ -1670,10 +2993,8 @@ Date: Sat Dec 22 07:47:04 2018 -0800 src/hb-ot-cff2-table.cc | 28 ++--- src/hb-ot-cff2-table.hh | 128 ++++++++++---------- src/hb-subset-cff-common.cc | 10 +- - src/hb-subset-cff-common.hh | 232 - ++++++++++++++++++------------------ - src/hb-subset-cff1.cc | 244 - +++++++++++++++++++------------------- + src/hb-subset-cff-common.hh | 232 ++++++++++++++++++------------------ + src/hb-subset-cff1.cc | 244 +++++++++++++++++++------------------- src/hb-subset-cff2.cc | 100 ++++++++-------- 14 files changed, 796 insertions(+), 819 deletions(-) @@ -1719,33 +3040,17 @@ Author: Behdad Esfahbod Date: Fri Dec 21 19:48:21 2018 -0500 [iter] Change operator[] operand to be signed - + To fix older compilers again (this was the case in hb_array_t). - - hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*, - int) - hb-ot-layout-common.hh:1354: error: ISO C++ says that these are - ambiguous, even though the worst conversion for the first is better - than the worst conversion for the second: - hb-iter.hh:63: note: candidate 1: Item& hb_iter_t::operator[](unsigned int) const [with Iter = hb_array_t >, Item = const OT::IntType] - hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*, - int) - hb-ot-layout-common.hh: In member function 'bool - OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t >, hb_array_t >)': - hb-ot-layout-common.hh:1490: error: ISO C++ says that these are - ambiguous, even though the worst conversion for the first is better - than the worst conversion for the second: - hb-iter.hh:63: note: candidate 1: Item& hb_iter_t::operator[](unsigned int) const [with Iter = hb_array_t >, Item = const OT::IntType] - hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*, - int) + + hb-ot-layout-common.hh:1353: note: candidate 2: operator[](T*, int) + hb-ot-layout-common.hh:1354: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-iter.hh:63: note: candidate 1: Item& hb_iter_t::operator[](unsigned int) const [with Iter = hb_array_t >, Item = const OT::IntType] + hb-ot-layout-common.hh:1354: note: candidate 2: operator[](T*, int) + hb-ot-layout-common.hh: In member function 'bool OT::ClassDef::serialize(hb_serialize_context_t*, hb_array_t >, hb_array_t >)': + hb-ot-layout-common.hh:1490: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-iter.hh:63: note: candidate 1: Item& hb_iter_t::operator[](unsigned int) const [with Iter = hb_array_t >, Item = const OT::IntType] + hb-ot-layout-common.hh:1490: note: candidate 2: operator[](T*, int) src/hb-iter.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -1755,11 +3060,10 @@ Author: Behdad Esfahbod Date: Fri Dec 21 19:29:00 2018 -0500 [array] Port to hb_iter_t<> - + hb_array_t is its own iterator... - src/hb-array.hh | 75 - +++++++++++++++++++++++++-------------------------------- + src/hb-array.hh | 75 +++++++++++++++++++++++++-------------------------------- src/hb-iter.hh | 5 ++-- 2 files changed, 36 insertions(+), 44 deletions(-) @@ -1782,8 +3086,7 @@ Date: Fri Dec 21 18:46:51 2018 -0500 src/hb-aat-layout-feat-table.hh | 5 ++- src/hb-aat-layout-lcar-table.hh | 2 +- src/hb-aat-map.cc | 4 +-- - src/hb-array.hh | 72 - ++++++++++++++++++++--------------------- + src/hb-array.hh | 72 ++++++++++++++++++++--------------------- src/hb-cff-interp-common.hh | 10 +++--- src/hb-cff2-interp-cs.hh | 6 ++-- src/hb-coretext.cc | 12 +++---- @@ -1881,7 +3184,7 @@ Author: Behdad Esfahbod Date: Fri Dec 21 16:39:57 2018 -0500 [iter] Disallow copy-construction or assignment of hb_iter_t<> - + Should only be done by subclass. src/hb-iter.hh | 5 +++++ @@ -1910,7 +3213,7 @@ Author: Behdad Esfahbod Date: Fri Dec 21 16:04:38 2018 -0500 [iter] Make hb_fill() take collection type, not iter - + Starting to get the hang of when take which. src/test-iter.cc | 6 +++--- @@ -1958,7 +3261,7 @@ Author: Behdad Esfahbod Date: Fri Dec 21 15:12:55 2018 -0500 [array] Remove copy constructor - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1502 src/hb-array.hh | 1 - @@ -1969,11 +3272,8 @@ Author: Behdad Esfahbod Date: Fri Dec 21 15:08:06 2018 -0500 Fix bot - - C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: - 'hb_vector_t::operator - +': 3 overloads have similar conversions - [C:\projects\harfbuzz\build\harfbuzz.vcxproj] + + C:\projects\harfbuzz\src\hb-uniscribe.cc(709): error C2666: 'hb_vector_t::operator +': 3 overloads have similar conversions [C:\projects\harfbuzz\build\harfbuzz.vcxproj] src/hb-uniscribe.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -2020,7 +3320,7 @@ Author: Behdad Esfahbod Date: Fri Dec 21 02:48:28 2018 -0500 [iter] Make hb_fill() and hb_copy() take iterators - + I'm still going back and force... src/test-iter.cc | 11 ++++------- @@ -2099,8 +3399,7 @@ Date: Fri Dec 21 00:54:55 2018 -0500 [iter] Sketch new iterator design - src/hb-iter.hh | 154 - +++++++++++++++++++------------------------------------ + src/hb-iter.hh | 154 +++++++++++++++++++------------------------------------ src/test-iter.cc | 16 ++++++ 2 files changed, 69 insertions(+), 101 deletions(-) @@ -2121,12 +3420,11 @@ Author: Behdad Esfahbod Date: Fri Dec 21 00:08:05 2018 -0500 Revert "Remove unused hb-iter.hh" - + This reverts commit 969ff3c7aadbe721cdd414488eb170433f10d00c. src/Makefile.sources | 1 + - src/hb-iter.hh | 146 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-iter.hh | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-machinery.hh | 1 + 3 files changed, 148 insertions(+) @@ -2176,7 +3474,7 @@ Author: Behdad Esfahbod Date: Thu Dec 20 15:54:17 2018 -0500 [serializer] Add operator << - + Not sure if we are going to use it. But might incentivize us to. src/hb-machinery.hh | 2 ++ @@ -2198,7 +3496,7 @@ Author: Behdad Esfahbod Date: Thu Dec 20 12:26:30 2018 -0500 [serialize] Adjust ClassDef - + [skip ci] src/hb-ot-layout-common.hh | 32 ++++++++++++++++---------------- @@ -2209,9 +3507,9 @@ Author: Behdad Esfahbod Date: Thu Dec 20 11:48:45 2018 -0500 Fix code on big-endian gcc / clang - + Ouch! We need a bigendian bot... - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1498 src/hb-machinery.hh | 8 +++++++- @@ -2240,31 +3538,27 @@ Author: fanc999 Date: Thu Dec 20 11:26:54 2018 +0800 Fix build on older Visual Studio versions (#1499) - + * src/hb-cff-interp-dict-common.hh: Use ull for unsigned int64_t - + The llu suffix does not work for older Visual Studio versions (pre-2013), but ull works for all the compilers that we attempt to support. - + * test/api: Fix build on pre-C99 compilers - + Ensure variables are declared at the top of the block. - + * src/hb-dsalgs.hh: Add specialization for hb_is_signed<> for __int8 - - Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed - to - int8_t) to be equivilant to signed char, so the compiler cannot - find the + + Pre-Visual Studio 2010 does not consider __int8 (which is typedef'ed to + int8_t) to be equivilant to signed char, so the compiler cannot find the corresponding hb_is_signed<> specialization that is needed. - - The interesting thing is unsigned __int8 is considered to be - equivilant - to unsigned char, so as the other types (short, int, long) that - we look + + The interesting thing is unsigned __int8 is considered to be equivilant + to unsigned char, so as the other types (short, int, long) that we look for here, so only the specialization for __int8 is added here. - + This will fix builds on Visual Studio 2008 at least. src/hb-cff-interp-dict-common.hh | 2 +- @@ -2278,7 +3572,7 @@ Author: Behdad Esfahbod Date: Wed Dec 19 21:05:00 2018 -0500 [sanitize] Use hb_static_size instead of ::static_size - + https://github.com/harfbuzz/harfbuzz/issues/1496#issuecomment-448818112 src/hb-machinery.hh | 11 +++++------ @@ -2289,9 +3583,8 @@ Author: Ebrahim Byagowi Date: Wed Dec 19 21:18:30 2018 +0330 [test] Fix test-name-table.cc leak issue - - Spotted it accidentally but wanted to see if is anything serious so - went for fixing it + + Spotted it accidentally but wanted to see if is anything serious so went for fixing it src/test-name-table.cc | 2 ++ 1 file changed, 2 insertions(+) @@ -2318,8 +3611,7 @@ Date: Tue Dec 18 16:49:08 2018 -0500 src/hb-open-type.hh | 18 +- src/hb-ot-cmap-table.hh | 3 +- src/hb-ot-layout-common.hh | 104 ++++-------- - src/hb-ot-layout-gsub-table.hh | 257 - +++++++++++++---------------- + src/hb-ot-layout-gsub-table.hh | 257 +++++++++++++---------------- src/hb-ot-shape-complex-arabic-fallback.hh | 23 +-- 9 files changed, 170 insertions(+), 269 deletions(-) @@ -2352,14 +3644,12 @@ Author: Behdad Esfahbod Date: Mon Dec 17 22:43:00 2018 -0500 Remove unused hb-iter.hh - - The ideas there are all part of hb-array.hh now. To be determined - how we + + The ideas there are all part of hb-array.hh now. To be determined how we want to use generic iterator patterns. src/Makefile.sources | 1 - - src/hb-iter.hh | 146 - --------------------------------------------------- + src/hb-iter.hh | 146 --------------------------------------------------- src/hb-machinery.hh | 1 - 3 files changed, 148 deletions(-) @@ -2368,9 +3658,8 @@ Author: Behdad Esfahbod Date: Mon Dec 17 22:41:04 2018 -0500 [arrays] Minor tweaks to hb_supplier_t - - I think I like to keep this hb_supplier_t thing separately from - hb_array_t. + + I think I like to keep this hb_supplier_t thing separately from hb_array_t. src/hb-array.hh | 5 +++++ 1 file changed, 5 insertions(+) @@ -2387,8 +3676,7 @@ Date: Mon Dec 17 22:36:23 2018 -0500 src/hb-open-type.hh | 4 +- src/hb-ot-cmap-table.hh | 2 +- src/hb-ot-layout-common.hh | 34 ++++----- - src/hb-ot-layout-gsub-table.hh | 108 - ++++++++++++++--------------- + src/hb-ot-layout-gsub-table.hh | 108 ++++++++++++++--------------- src/hb-ot-shape-complex-arabic-fallback.hh | 14 ++-- 8 files changed, 87 insertions(+), 87 deletions(-) @@ -2406,7 +3694,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 20:34:51 2018 -0500 Enable __builtin_* on clang - + We'll see which old clang versions this breaks... src/hb-dsalgs.hh | 6 +++--- @@ -2417,7 +3705,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 20:23:26 2018 -0500 Add hb_addressof() and use it to fix bug after hb_bytes_t merge - + We cannot take address hb_bytes_t direction. We need to use the newly added hb_addressof(), ala std::addressof(). @@ -2430,7 +3718,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 18:27:36 2018 -0500 Enable system extensions in hb.hh - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1491 configure.ac | 1 - @@ -2451,7 +3739,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 17:56:10 2018 -0500 Remove define GNU_SOURCE - + Not needed. We get it in our config.h automatically thanks to AC_USE_SYSTEM_EXTENSIONS. Let's see whose build it breaks... If we end up putting it back, we should add other things from @@ -2485,7 +3773,7 @@ Author: Ebrahim Byagowi Date: Mon Dec 17 21:31:43 2018 +0330 Lower coretext_aat shaper priority (#1488) - + Related to https://github.com/harfbuzz/harfbuzz/issues/1478 src/hb-shaper-list.hh | 8 ++++---- @@ -2539,8 +3827,7 @@ Date: Mon Dec 17 21:31:01 2018 +0330 src/hb-gobject-structs.cc | 2 +- src/hb-icu.cc | 8 +-- src/hb-iter.hh | 15 ++-- - src/hb-machinery.hh | 150 - ++++++++++++++++----------------------- + src/hb-machinery.hh | 150 ++++++++++++++++----------------------- src/hb-map.cc | 4 +- src/hb-map.hh | 24 +++---- src/hb-mutex.hh | 10 +-- @@ -2641,7 +3928,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 00:39:30 2018 -0500 [array] Add cast operator to add const to Type - + In lieu of constructor removed in previous commit. src/hb-array.hh | 1 + @@ -2670,7 +3957,7 @@ Author: Behdad Esfahbod Date: Mon Dec 17 00:09:06 2018 -0500 [array] Return Crap instead of Null if Type is not const - + Ouch! src/hb-array.hh | 2 +- @@ -2701,8 +3988,7 @@ Date: Sun Dec 16 23:57:27 2018 -0500 [array] Organize - src/hb-array.hh | 75 - ++++++++++++++++++++++++++++++++++++--------------------- + src/hb-array.hh | 75 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 27 deletions(-) commit 84c1865821151d83a8798ae11ebba3329a12c560 @@ -2756,7 +4042,7 @@ Author: Behdad Esfahbod Date: Sun Dec 16 23:33:03 2018 -0500 [arrays] Remove unnecessary constructor from Supplier<> - + Looks like operator hb_array_t<> from vector works here. :) src/hb-machinery.hh | 5 ----- @@ -2797,8 +4083,7 @@ Date: Sun Dec 16 20:40:07 2018 -0500 [array] Remove custom hb_bytes_t implementation - src/hb-array.hh | 67 - +++++++++++++++++-------------------------------- + src/hb-array.hh | 67 +++++++++++++++++-------------------------------- src/hb-machinery.hh | 2 +- src/hb-ot-name-table.hh | 8 +++--- src/hb-ot-name.cc | 10 ++++---- @@ -2832,8 +4117,7 @@ Date: Sun Dec 16 20:07:44 2018 -0500 [array] Move hb_array_t and related types to hb-array.hh src/Makefile.sources | 1 + - src/hb-array.hh | 241 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-array.hh | 241 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-dsalgs.hh | 206 ------------------------------------------- src/hb-machinery.hh | 1 + src/hb-vector.hh | 2 +- @@ -2918,8 +4202,7 @@ Date: Sun Dec 16 22:38:10 2018 +0330 src/hb-ot-hmtx-table.hh | 18 +- src/hb-ot-kern-table.hh | 44 ++-- src/hb-ot-layout-base-table.hh | 104 +++++----- - src/hb-ot-layout-common.hh | 425 - ++++++++++++++++++++------------------- + src/hb-ot-layout-common.hh | 425 ++++++++++++++++++++------------------- src/hb-ot-layout-gdef-table.hh | 126 ++++++------ src/hb-ot-layout-gpos-table.hh | 209 +++++++++---------- src/hb-ot-layout-gsub-table.hh | 360 ++++++++++++++++----------------- @@ -3018,8 +4301,7 @@ Date: Thu Dec 13 17:48:42 2018 -0500 [subset] Implement for ClassDef - src/hb-ot-layout-common.hh | 80 - ++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-common.hh | 80 ++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gsub-table.hh | 8 ++--- 2 files changed, 84 insertions(+), 4 deletions(-) @@ -3049,8 +4331,7 @@ Date: Thu Dec 13 15:57:12 2018 -0500 [serialize] Implement for ClassDefFormat2 - src/hb-ot-layout-common.hh | 50 - ++++++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-common.hh | 50 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) commit c8b43cbe316b07507aece4dc769f38226cd706da @@ -3076,23 +4357,20 @@ Author: Michiharu Ariza Date: Wed Dec 12 18:08:15 2018 -0800 [CFF] bad offset in Index (#1476) - + * Update hb-ot-cff-common.hh - + * fix bug - + * bummer fix wasn't hit. refix - + * additional sanity check - + * Added test cases for oss-fuzz issues 11805, 11806 - src/hb-ot-cff-common.hh | 10 - ++++++++-- - ...clusterfuzz-testcase-hb-subset-fuzzer-5643036478930944 | Bin 0 -> - 369 bytes - ...clusterfuzz-testcase-hb-subset-fuzzer-5686186874503168 | Bin 0 -> - 962 bytes + src/hb-ot-cff-common.hh | 10 ++++++++-- + ...clusterfuzz-testcase-hb-subset-fuzzer-5643036478930944 | Bin 0 -> 369 bytes + ...clusterfuzz-testcase-hb-subset-fuzzer-5686186874503168 | Bin 0 -> 962 bytes 3 files changed, 8 insertions(+), 2 deletions(-) commit bcb4ecaf68c7219e89a801352bfc6a682b1581ef @@ -3100,18 +4378,17 @@ Author: Michiharu Ariza Date: Wed Dec 12 17:36:01 2018 -0800 [CFF] check out of range FD index (#1477) - + * add fd index checks to subr subsetter - + also added oss-fuzz test case - + * undid SubrSubsetParam::is_valid - + because already validated by SubrClosures.valid src/hb-subset-cff-common.hh | 10 ++++++++++ - ...lusterfuzz-testcase-hb-subset-fuzzer-5762137968869376 | Bin 0 -> - 2037 bytes + ...lusterfuzz-testcase-hb-subset-fuzzer-5762137968869376 | Bin 0 -> 2037 bytes 2 files changed, 10 insertions(+) commit 3f8e7a98d3cc10fefe65b9638c8abdf3ebe152cb @@ -3119,7 +4396,7 @@ Author: Behdad Esfahbod Date: Wed Dec 12 11:32:57 2018 -0500 [util/hb-subset] Add --layout to keep GDEF/GSUB/GPOS - + Will become default and option removed in the future. util/hb-subset.cc | 1 + @@ -3162,9 +4439,9 @@ Author: Behdad Esfahbod Date: Wed Dec 12 09:44:30 2018 -0500 Revert "Minor fix re sanitize of Lookup subtables" - + This reverts commit 7146718bef81492e13aede0a2801cda1da41ce35. - + Fixing differently. src/hb-ot-layout-common.hh | 4 +--- @@ -3182,8 +4459,7 @@ Date: Wed Dec 12 15:14:37 2018 +0330 src/hb-aat-layout-trak-table.hh | 18 +-- src/hb-aat-layout.cc | 4 +- src/hb-buffer.cc | 48 +++---- - src/hb-directwrite.cc | 297 - +++++++++++++++++++--------------------- + src/hb-directwrite.cc | 297 +++++++++++++++++++--------------------- src/hb-dsalgs.hh | 5 +- src/hb-map.hh | 20 +-- src/hb-ot-cmap-table.hh | 2 +- @@ -3203,7 +4479,7 @@ Author: Ebrahim Byagowi Date: Wed Dec 12 12:44:06 2018 +0330 Merge pull request #1474 from fanc999/master.msvc - + Few fixes for Visual Studio builds commit 7146718bef81492e13aede0a2801cda1da41ce35 @@ -3211,7 +4487,7 @@ Author: Behdad Esfahbod Date: Tue Dec 11 23:44:29 2018 -0500 Minor fix re sanitize of Lookup subtables - + We were dereferencing Null pointers and trying to sanitize them, which is not necessary... @@ -3232,7 +4508,7 @@ Author: Behdad Esfahbod Date: Tue Dec 11 22:53:58 2018 -0500 [subset] Map glyphs during SingleSubst subsetting - + Ha! src/hb-ot-layout-gsub-table.hh | 10 ++++++---- @@ -3271,24 +4547,22 @@ Author: Michiharu Ariza Date: Tue Dec 11 12:21:24 2018 -0800 [CFF] oss-fuzz issue 11690 ASSERT: substr.offset >= opStart (#1461) - + * fix oss-fuzz 11690: substr.offset >= opStart - + detect recursive subroutine call & handle as error - + * fix build failure - + * add minimized test case for oss-fuzz 11690 - + * removed asserts src/hb-cff-interp-common.hh | 9 ++++----- - src/hb-subset-cff-common.hh | 12 - ++++++++++-- + src/hb-subset-cff-common.hh | 12 ++++++++++-- src/hb-subset-cff1.cc | 4 ++-- src/hb-subset-cff2.cc | 4 ++-- - ...testcase-minimized-hb-subset-fuzzer-5750420593442816 | Bin 0 -> - 96091 bytes + ...testcase-minimized-hb-subset-fuzzer-5750420593442816 | Bin 0 -> 96091 bytes 5 files changed, 18 insertions(+), 11 deletions(-) commit 333586245cb37668c8a29af17920474c09667f4b @@ -3319,7 +4593,7 @@ Author: 👻 Date: Tue Dec 11 13:38:05 2018 -0500 [ucdn] Fix header - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1470 src/hb-ucdn/ucdn.h | 4 +--- @@ -3339,7 +4613,7 @@ Author: Chun-wei Fan Date: Wed Dec 12 01:32:01 2018 +0800 test/api: Fix building on pre-C99 compilers - + Ensure variables are declared at the top of the block. test/api/hb-test.h | 3 ++- @@ -3357,9 +4631,8 @@ Author: Chun-wei Fan Date: Wed Dec 12 01:23:53 2018 +0800 CMake: Fix Introspection builds - - We need to add -DHB_AAT_H and -DHB_AAT_H_IN to the flags that - are passed + + We need to add -DHB_AAT_H and -DHB_AAT_H_IN to the flags that are passed to g-ir-scanner, so that introspection builds can proceed normally. CMakeLists.txt | 2 ++ @@ -3389,14 +4662,13 @@ Author: Ebrahim Byagowi Date: Sat Dec 8 10:20:25 2018 +0330 Apply non-controversial parts of ot-style (#1464) - + Things to be used in https://github.com/harfbuzz/harfbuzz/pull/1459 src/hb-aat-fdsc-table.hh | 29 +++++++++++++++++++++++++--- src/hb-aat-layout-common.hh | 1 + src/hb-ot-head-table.hh | 13 +++++++++++++ - src/hb-ot-os2-table.hh | 46 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-os2-table.hh | 46 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-stat-table.hh | 38 ++++++++++++++++++------------------- 5 files changed, 105 insertions(+), 22 deletions(-) @@ -3405,9 +4677,8 @@ Author: Michiharu Ariza Date: Fri Dec 7 20:49:39 2018 -0800 fix for issue #1447 (#1462) - - Added case for OpCode_BaseFontName. This opcode in spec but - practically unused. + + Added case for OpCode_BaseFontName. This opcode in spec but practically unused. Added a comment for default case which can't be hit src/hb-ot-cff1-table.hh | 6 ++++-- @@ -3427,11 +4698,11 @@ Author: Michiharu Ariza Date: Thu Dec 6 13:36:26 2018 -0800 [CFF] Refix oss-fuzz 11714: set_blends (PR #1458) (#1460) - + * pass subarray of stack to set_blends - + * get_subarray to return a value, not ref - + * restored error check (with tweak) src/hb-cff-interp-common.hh | 5 +++++ @@ -3443,7 +4714,7 @@ Author: Behdad Esfahbod Date: Thu Dec 6 10:27:37 2018 -0800 Fix likely check - + Ouch! src/hb-cff-interp-dict-common.hh | 4 ++-- @@ -3483,7 +4754,7 @@ Author: Ebrahim Byagowi Date: Thu Dec 6 10:21:00 2018 +0330 Merge pull request #1458 from harfbuzz/cff-check-blends - + [CFF] oss-fuzz issue 11714: set_blends commit ae087d10c22249f3aec3239e4eac98a728f71f75 @@ -3492,8 +4763,7 @@ Date: Wed Dec 5 21:47:34 2018 -0800 add minimized test case for oss-fuzz issue 11714 - ...-testcase-minimized-hb-subset-fuzzer-5710107829075968 | Bin 0 -> - 3660 bytes + ...-testcase-minimized-hb-subset-fuzzer-5710107829075968 | Bin 0 -> 3660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 1ccbdcf73bbc967f5f94c0bc7f7e869bd87d9fa0 @@ -3518,7 +4788,7 @@ Author: Ebrahim Byagowi Date: Thu Dec 6 08:33:44 2018 +0330 Merge pull request #1457 from harfbuzz/cff-varstore-sanitize - + [CFF] oss-fuzz issue 11713 (CFF2VariationStore::serialize) commit 6727c4b6f0356b08803b4d5cde608ec004e3533f @@ -3527,7 +4797,7 @@ Author: Behdad Esfahbod Date: Wed Dec 5 17:37:21 2018 -0800 Merge pull request #1456 from harfbuzz/cff-subr-sanitize - + [CFF] fix oss-fuzz issue 11691 (BlendArg::set_blends) commit 9d8f3b0dfbf39f5dfa25d52f47e8af6ad318eb17 @@ -3536,8 +4806,7 @@ Date: Wed Dec 5 17:14:51 2018 -0800 add minimized test case for oss-fuzz issue 11713 - ...z-testcase-minimized-hb-subset-fuzzer-5660711141769216 | Bin 0 -> - 383 bytes + ...z-testcase-minimized-hb-subset-fuzzer-5660711141769216 | Bin 0 -> 383 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit c31092ab34641072606f854408eb1bea18ed2507 @@ -3562,8 +4831,7 @@ Date: Wed Dec 5 15:49:11 2018 -0800 add minimized test case for oss-fuzz issue 11691 - ...z-testcase-minimized-hb-shape-fuzzer-5686369209286656 | Bin 0 -> - 2880 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5686369209286656 | Bin 0 -> 2880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit d9dabc00e9278a346e85538212c126da7e610d55 @@ -3572,7 +4840,7 @@ Author: Behdad Esfahbod Date: Wed Dec 5 15:39:34 2018 -0800 Merge pull request #1454 from harfbuzz/cff-fixbcd - + [CFF] fix oss-fuzz issue 11674: parse_bcd commit 81cfd3c775dbc470f57d7fe2775cc068ffa367b6 @@ -3581,7 +4849,7 @@ Author: Behdad Esfahbod Date: Wed Dec 5 15:37:15 2018 -0800 Merge pull request #1455 from harfbuzz/cff-strinc_assert - + [CFF] fix oss-fuzz issue 11675 (ASSERT: count <= str.len) commit 6dcfda92c17a7701479118751a8290246e9a3c05 @@ -3599,13 +4867,11 @@ Author: Michiharu Ariza Date: Wed Dec 5 12:51:18 2018 -0800 fix oss-fuzz issue 11675 (ASSERT: count <= str.len) - + Also added an additional error check to avail () - src/hb-cff-interp-common.hh | 18 - ++++++++++++++++-- - ...stcase-minimized-hb-subset-fuzzer-5768186323009536 | Bin 0 -> - 337 bytes + src/hb-cff-interp-common.hh | 18 ++++++++++++++++-- + ...stcase-minimized-hb-subset-fuzzer-5768186323009536 | Bin 0 -> 337 bytes 2 files changed, 16 insertions(+), 2 deletions(-) commit 010e2ddb384b5a721172fd7466aafec58dbf8063 @@ -3614,8 +4880,7 @@ Date: Wed Dec 5 12:23:58 2018 -0800 minimized test case for oss-fuzz issue 11674 - ...zz-testcase-minimized-hb-subset-fuzzer-5672006905757696 | Bin 0 -> - 73 bytes + ...zz-testcase-minimized-hb-subset-fuzzer-5672006905757696 | Bin 0 -> 73 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 2cb9d4c183afc838ecf2ba0d47814e9eaa6f09c6 @@ -3640,8 +4905,7 @@ Date: Wed Dec 5 15:23:41 2018 +0330 [os2] Make newer table fields accessible (#1452) - src/hb-ot-os2-table.hh | 88 - +++++++++++++++++++++++++++++++++++++------------- + src/hb-ot-os2-table.hh | 88 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 22 deletions(-) commit 5ab086ebb18112ef48bf6c913acc91b2009a9bed @@ -3649,16 +4913,15 @@ Author: Ebrahim Byagowi Date: Wed Dec 5 14:17:37 2018 +0330 [fdsc] Implement the table parsing - + Related to https://github.com/harfbuzz/harfbuzz/issues/1337 - + May used in addition to an API related to STAT. - + Lots of Apple fonts have it. src/Makefile.sources | 1 + - src/hb-aat-fdsc-table.hh | 103 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-fdsc-table.hh | 103 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 1 + 3 files changed, 105 insertions(+) @@ -3667,13 +4930,11 @@ Author: Ebrahim Byagowi Date: Wed Dec 5 13:51:14 2018 +0330 [gasp] Implement the table parsing - - May or may not be used in - https://github.com/harfbuzz/harfbuzz/pull/1432 + + May or may not be used in https://github.com/harfbuzz/harfbuzz/pull/1432 src/Makefile.sources | 1 + - src/hb-ot-gasp-table.hh | 84 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-gasp-table.hh | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 5 +-- 3 files changed, 88 insertions(+), 2 deletions(-) @@ -3683,7 +4944,7 @@ Author: Ebrahim Byagowi Date: Wed Dec 5 13:25:18 2018 +0330 Merge pull request #1449 from harfbuzz/cff-fixcharset - + [CFF] fix for oss-fuzz 11657: Charset overrun commit cf4b7db6b1e01c11d7a8a26d95cf947935a234a7 @@ -3692,7 +4953,7 @@ Author: Ebrahim Byagowi Date: Wed Dec 5 13:23:23 2018 +0330 Merge pull request #1448 from harfbuzz/cff-leak - + [CFF] fix leak: oss-fuzz 11662 commit 620d1ef588c6ce25644891cfe4b9c20fd8a9d1db @@ -3764,8 +5025,7 @@ Date: Tue Dec 4 22:24:38 2018 -0800 check overflow & clamp - src/hb-cff-interp-dict-common.hh | 36 - +++++++++++++++++++++++++++--------- + src/hb-cff-interp-dict-common.hh | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) commit 32cc46c75a5f163f254b7998ed9193d5bbc85e4b @@ -3773,15 +5033,14 @@ Author: Michiharu Ariza Date: Tue Dec 4 21:32:34 2018 -0800 [CFF] fix oss-fuzz issue 11670: NULL dereference (#1450) - + * guard against no subr access - + * code tweak - + * add minimized testcase for oss-fuzz 11670 (Null deference) - src/hb-cff-interp-cs-common.hh | 22 - ++++++++++++++++----- + src/hb-cff-interp-cs-common.hh | 22 ++++++++++++++++----- src/hb-ot-cff-common.hh | 2 +- ...ase-minimized-hb-subset-fuzzer-5672913680728064 | Bin 0 -> 861 bytes 3 files changed, 18 insertions(+), 6 deletions(-) @@ -3792,8 +5051,7 @@ Date: Tue Dec 4 14:17:03 2018 -0800 added minimized testcase for oss-fuzz issue 11657 - ...zz-testcase-minimized-hb-shape-fuzzer-5700264032468992 | Bin 0 -> - 648 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5700264032468992 | Bin 0 -> 648 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit d3d2f32c6e85de1d7fbbb18afef356e09110e61c @@ -3801,7 +5059,7 @@ Author: Michiharu Ariza Date: Tue Dec 4 13:51:26 2018 -0800 fix oss-fuzz 11657: buffer overrun - + Check overrun in Charset1_2::get_glyph src/hb-ot-cff1-table.hh | 10 ++++++---- @@ -3811,8 +5069,7 @@ commit d0a250a7b15f1099c2005bc2427d62e7370dcc33 Author: Ebrahim Byagowi Date: Tue Dec 4 23:42:13 2018 +0330 - Reuse hb_aat_layout_has_* logic in coretext-aat detection logic - (#1442) + Reuse hb_aat_layout_has_* logic in coretext-aat detection logic (#1442) src/hb-coretext.cc | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) @@ -3840,8 +5097,7 @@ Date: Tue Dec 4 10:30:35 2018 -0800 added minimized test case for oss-fuzz issue 11662 - ...testcase-minimized-hb-shape-fuzzer-5175735354916864 | Bin 0 -> - 354461 bytes + ...testcase-minimized-hb-shape-fuzzer-5175735354916864 | Bin 0 -> 354461 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 0b952e6026c8be13d16d97f464034ee477e6282f @@ -3860,7 +5116,7 @@ Author: Ebrahim Byagowi Date: Tue Dec 4 21:30:07 2018 +0330 Merge pull request #1444 from harfbuzz/cff-assert - + removed assert, fixes https://github.com/harfbuzz/harfbuzz/issues/1443 commit 9473463f5c884fcb1de8a7ba7410da2601e6ffa8 @@ -3887,7 +5143,7 @@ Author: Behdad Esfahbod Date: Tue Dec 4 04:14:13 2018 -0500 Merge pull request #1441 from harfbuzz/cff-doublenum - + use double as CFF Number implementation commit c48f53d30901dfc20b7432c2947e66642010dc4e @@ -3906,12 +5162,9 @@ Date: Mon Dec 3 16:18:10 2018 -0800 added minimized test cases - ...zz-testcase-minimized-hb-shape-fuzzer-5647267827023872 | Bin 0 -> - 655 bytes - ...zz-testcase-minimized-hb-shape-fuzzer-5725855502827520 | Bin 0 -> - 655 bytes - ...zz-testcase-minimized-hb-shape-fuzzer-5736657639178240 | Bin 0 -> - 459 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5647267827023872 | Bin 0 -> 655 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5725855502827520 | Bin 0 -> 655 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5736657639178240 | Bin 0 -> 459 bytes 3 files changed, 0 insertions(+), 0 deletions(-) commit 5fff6ab0024547a8ac47723a0047f4b17416d6ce @@ -3941,8 +5194,7 @@ Date: Mon Dec 3 14:48:46 2018 -0800 Number to use double for all types - src/hb-cff-interp-common.hh | 84 - +++++++-------------------------------------- + src/hb-cff-interp-common.hh | 84 +++++++-------------------------------------- 1 file changed, 13 insertions(+), 71 deletions(-) commit 8c05b955eb4aa088b2b5df9b6415863486eaf59c @@ -3951,7 +5203,7 @@ Author: Behdad Esfahbod Date: Mon Dec 3 14:30:51 2018 -0500 Merge pull request #1439 from ebraminio/tracking - + [aat] Expose hb_aat_layout_has_tracking API commit 01f628cf5571b8b58108ab66cfc3e929c9840e31 @@ -3974,7 +5226,7 @@ Author: Behdad Esfahbod Date: Mon Dec 3 10:41:37 2018 -0500 [aat] Expose a couple APIs - + New API: +hb_aat_layout_has_substitution() +hb_aat_layout_has_positioning() @@ -3990,13 +5242,12 @@ Author: Behdad Esfahbod Date: Sun Dec 2 12:38:53 2018 -0500 [aat] Fix division sign fallout - + Happened after 11d2f49af8f53340134c844173f4d8655b00dea3 since now nClasses is unsigned int... src/hb-aat-layout-common.hh | 2 +- - ...zz-testcase-minimized-hb-shape-fuzzer-5768046065483776 | Bin 0 -> - 342 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5768046065483776 | Bin 0 -> 342 bytes 2 files changed, 1 insertion(+), 1 deletion(-) commit 2087f5a2a743380b36399ba8a2b4ff9e93890fcf @@ -4017,8 +5268,7 @@ Date: Sat Dec 1 19:34:18 2018 -0500 CMakeLists.txt | 12 +-- src/Makefile.am | 6 -- - src/Makefile.sources | 231 - ++++++++++++++++++++++++--------------------------- + src/Makefile.sources | 231 ++++++++++++++++++++++++--------------------------- 3 files changed, 111 insertions(+), 138 deletions(-) commit 967a204ee92548163a0d19678a237dcaf3720c20 @@ -4035,7 +5285,7 @@ Author: Behdad Esfahbod Date: Sat Dec 1 13:12:21 2018 -0500 New approach to change BigEndian casts to be int-sized - + Fixes spurious warnings like: Fixes https://github.com/harfbuzz/harfbuzz/issues/1436 @@ -4056,9 +5306,9 @@ Author: Behdad Esfahbod Date: Sat Dec 1 00:14:48 2018 -0500 Revert "Change BigEndian casts to be int-sized" - + This reverts commit eb5ddd32bf4e458ca0af8d5784f8fd46485ad225. - + Broke tests, badly. To be investigated and reenabled. src/hb-open-type.hh | 16 ++++++++-------- @@ -4078,7 +5328,7 @@ Author: Behdad Esfahbod Date: Sat Dec 1 00:03:01 2018 -0500 Change BigEndian casts to be int-sized - + Fixes spurious warnings like: Fixes https://github.com/harfbuzz/harfbuzz/issues/1436 @@ -4116,14 +5366,12 @@ Date: Fri Nov 30 23:04:59 2018 -0500 src/hb-cff2-interp-cs.hh | 76 +++---- src/hb-ot-cff-common.hh | 128 +++++------ src/hb-ot-cff1-table.cc | 4 +- - src/hb-ot-cff1-table.hh | 456 - +++++++++++++++++++-------------------- + src/hb-ot-cff1-table.hh | 456 +++++++++++++++++++-------------------- src/hb-ot-cff2-table.cc | 4 +- src/hb-ot-cff2-table.hh | 216 +++++++++---------- src/hb-subset-cff-common.cc | 76 +++---- src/hb-subset-cff-common.hh | 384 ++++++++++++++++----------------- - src/hb-subset-cff1.cc | 416 - +++++++++++++++++------------------ + src/hb-subset-cff1.cc | 416 +++++++++++++++++------------------ src/hb-subset-cff1.hh | 2 +- src/hb-subset-cff2.cc | 240 ++++++++++----------- src/hb-subset-cff2.hh | 2 +- @@ -4164,8 +5412,7 @@ Date: Fri Nov 30 22:43:22 2018 -0500 Remove generated files that were accidentally added by CFF2 branch gtk-doc.make | 320 -- - m4/libtool.m4 | 8369 - ----------------------------------------------------- + m4/libtool.m4 | 8369 ----------------------------------------------------- m4/ltoptions.m4 | 437 --- m4/ltsugar.m4 | 124 - m4/ltversion.m4 | 23 - @@ -4178,7 +5425,7 @@ Author: Behdad Esfahbod Date: Fri Nov 30 22:40:54 2018 -0500 Merge pull request #1113 from harfbuzz/cff-subset - + CFF/CFF2 subsetter commit 09096aa89f1944dff94a5518bce578eba8989e74 @@ -4186,9 +5433,9 @@ Author: Bruce Mitchener Date: Sat Dec 1 10:22:49 2018 +0700 Use nullptr instead of 0/NULL. (#1435) - + * Use nullptr instead of 0/NULL. - + * Update test-name-table.cc src/hb-debug.hh | 2 +- @@ -4221,7 +5468,7 @@ Author: Behdad Esfahbod Date: Fri Nov 30 21:36:35 2018 -0500 Merge pull request #1433 from harfbuzz/overload-overload - + Fix ambiguous overload errors with old compilers commit fb059082138bf17a5a8616410d9a35f927f9fd85 @@ -4229,14 +5476,14 @@ Author: Behdad Esfahbod Date: Fri Nov 30 20:45:40 2018 -0500 Revert ugly fixes - + Now that we have 6daf45e0, revert cryptic hacks... - + This reverts commit abd81ed4f5cbc5a94171747909bc6b77551cb929. This reverts commit 9c6921c08c905a0cf45ba0182134e6ff910fac51. This reverts commit d39760cabfe4007cefdfc45231e85e93fababac2. This reverts commit fedd8e6c176dea85194693399e50243eb1c117c4. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1374 src/hb-aat-layout-morx-table.hh | 4 ++-- @@ -4253,11 +5500,11 @@ Author: Behdad Esfahbod Date: Fri Nov 30 19:57:12 2018 -0500 Make operator [] take signed int - + The built-in operator takes signed int. So, match it, such that the built-in is never a better or equally-good match to our operator. Fixes "ambiguous overload" errors from gcc 4.2 and VS 2008. - + See https://github.com/harfbuzz/harfbuzz/issues/1374 src/hb-dsalgs.hh | 3 ++- @@ -4326,15 +5573,12 @@ Author: Behdad Esfahbod Date: Fri Nov 30 16:50:30 2018 -0500 One more......... - + I wonder if there's something better to do about these :(. - + In file included from hb-ot-color.cc:31: - hb-ot-color-cpal-table.hh: In member function 'unsigned int - OT::CPAL::get_size() const': - hb-ot-color-cpal-table.hh:118: error: ISO C++ says that these are - ambiguous, even though the worst conversion for the first is better - than the worst conversion for the second: + hb-ot-color-cpal-table.hh: In member function 'unsigned int OT::CPAL::get_size() const': + hb-ot-color-cpal-table.hh:118: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: src/hb-ot-color-cpal-table.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -4344,15 +5588,10 @@ Author: Behdad Esfahbod Date: Fri Nov 30 16:04:52 2018 -0500 One more.... - - hb-ot-vorg-table.hh:96: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-vector.hh:87: note: candidate 1: const Type& hb_vector_t::operator[](unsigned int) const [with Type = - OT::VertOriginMetric, unsigned int PreallocedCount = 8u] - hb-ot-vorg-table.hh:96: note: candidate 2: operator[](const T*, - int) + + hb-ot-vorg-table.hh:96: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:87: note: candidate 1: const Type& hb_vector_t::operator[](unsigned int) const [with Type = OT::VertOriginMetric, unsigned int PreallocedCount = 8u] + hb-ot-vorg-table.hh:96: note: candidate 2: operator[](const T*, int) src/hb-ot-vorg-table.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -4362,19 +5601,13 @@ Author: Behdad Esfahbod Date: Fri Nov 30 15:55:30 2018 -0500 One more... - + Sigh. - - hb-ot-kern-table.hh: In member function 'int - OT::KernSubTableFormat3::get_kerning(hb_codepoint_t, - hb_codepoint_t) const': - hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]' - in 'kernValue[kernIndex[i]]' - hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int) - - hb-dsalgs.hh:574: note: Type& - hb_array_t::operator[](unsigned int) const [with Type = const - OT::IntType] + + hb-ot-kern-table.hh: In member function 'int OT::KernSubTableFormat3::get_kerning(hb_codepoint_t, hb_codepoint_t) const': + hb-ot-kern-table.hh:59: error: ambiguous overload for 'operator[]' in 'kernValue[kernIndex[i]]' + hb-ot-kern-table.hh:59: note: candidates are: operator[](T*, int) + hb-dsalgs.hh:574: note: Type& hb_array_t::operator[](unsigned int) const [with Type = const OT::IntType] src/hb-ot-kern-table.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -4384,10 +5617,8 @@ Author: Behdad Esfahbod Date: Fri Nov 30 15:16:57 2018 -0500 More... - - hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are - ambiguous, even though the worst conversion for the first is better - than the worst conversion for the second: + + hb-ot-layout-gsubgpos.hh:1707: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: ... src/hb-aat-layout-morx-table.hh | 4 ++-- @@ -4400,44 +5631,22 @@ Author: Behdad Esfahbod Date: Fri Nov 30 12:52:21 2018 -0500 More weird fixes - + In file included from hb-ot-name.cc:29: - hb-ot-name-table.hh: In member function 'unsigned int - OT::name::get_size() const': - hb-ot-name-table.hh:157: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-open-type.hh:354: note: candidate 1: const Type& - OT::UnsizedArrayOf::operator[](unsigned int) const [with Type - = OT::NameRecord] - hb-ot-name-table.hh:157: note: candidate 2: operator[](const T*, - int) - hb-ot-name-table.hh: In member function 'void - OT::name::accelerator_t::init(hb_face_t*)': - hb-ot-name-table.hh:196: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-dsalgs.hh:574: note: candidate 1: Type& - hb_array_t::operator[](unsigned int) const [with Type = - const OT::NameRecord] - hb-ot-name-table.hh:196: note: candidate 2: operator[](T*, int) - - hb-ot-name-table.hh:197: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-dsalgs.hh:574: note: candidate 1: Type& - hb_array_t::operator[](unsigned int) const [with Type = - const OT::NameRecord] - hb-ot-name-table.hh:197: note: candidate 2: operator[](T*, int) - - hb-ot-name-table.hh:198: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-dsalgs.hh:574: note: candidate 1: Type& - hb_array_t::operator[](unsigned int) const [with Type = - const OT::NameRecord] - hb-ot-name-table.hh:198: note: candidate 2: operator[](T*, int) - + hb-ot-name-table.hh: In member function 'unsigned int OT::name::get_size() const': + hb-ot-name-table.hh:157: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf::operator[](unsigned int) const [with Type = OT::NameRecord] + hb-ot-name-table.hh:157: note: candidate 2: operator[](const T*, int) + hb-ot-name-table.hh: In member function 'void OT::name::accelerator_t::init(hb_face_t*)': + hb-ot-name-table.hh:196: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t::operator[](unsigned int) const [with Type = const OT::NameRecord] + hb-ot-name-table.hh:196: note: candidate 2: operator[](T*, int) + hb-ot-name-table.hh:197: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t::operator[](unsigned int) const [with Type = const OT::NameRecord] + hb-ot-name-table.hh:197: note: candidate 2: operator[](T*, int) + hb-ot-name-table.hh:198: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-dsalgs.hh:574: note: candidate 1: Type& hb_array_t::operator[](unsigned int) const [with Type = const OT::NameRecord] + hb-ot-name-table.hh:198: note: candidate 2: operator[](T*, int) make[4]: *** [libharfbuzz_la-hb-ot-name.lo] Error 1 make[3]: *** [all-recursive] Error 1 @@ -4456,64 +5665,29 @@ Author: Behdad Esfahbod Date: Fri Nov 30 11:51:26 2018 -0500 Umm. Cryptic, yes - + In file included from hb-face.cc:35: - hb-ot-cmap-table.hh: In member function 'void - OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const': - hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-open-type.hh:354: note: candidate 1: const Type& - OT::UnsizedArrayOf::operator[](unsigned int) const [with Type = - OT::IntType] - hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, - int) - hb-ot-cmap-table.hh: In member function 'void - OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const': - hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, - even though the worst conversion for the first is better than the - worst conversion for the second: - hb-open-type.hh:354: note: candidate 1: const Type& - OT::UnsizedArrayOf::operator[](unsigned int) const [with Type = - OT::IntType] - hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, - int) - hb-face.cc: In function 'hb_blob_t* - _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)': - hb-face.cc:650: error: ISO C++ says that these are ambiguous, even - though the worst conversion for the first is better than the worst - conversion for the second: - hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = - hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount - = 32u] + hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_compiles_assertion_on_line_388() const': + hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf::operator[](unsigned int) const [with Type = OT::IntType] + hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) + hb-ot-cmap-table.hh: In member function 'void OT::CmapSubtableFormat4::_instance_assertion_on_line_388() const': + hb-ot-cmap-table.hh:388: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-open-type.hh:354: note: candidate 1: const Type& OT::UnsizedArrayOf::operator[](unsigned int) const [with Type = OT::IntType] + hb-ot-cmap-table.hh:388: note: candidate 2: operator[](const T*, int) + hb-face.cc: In function 'hb_blob_t* _hb_face_builder_data_reference_blob(hb_face_builder_data_t*)': + hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:650: note: candidate 2: operator[](T*, int) - hb-face.cc:650: error: ISO C++ says that these are ambiguous, even - though the worst conversion for the first is better than the worst - conversion for the second: - hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = - hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount - = 32u] - hb-face.cc:650: note: candidate 2: operator[](const T*, int) - - hb-face.cc:651: error: ISO C++ says that these are ambiguous, even - though the worst conversion for the first is better than the worst - conversion for the second: - hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = - hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount - = 32u] + hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] + hb-face.cc:650: note: candidate 2: operator[](const T*, int) + hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:651: note: candidate 2: operator[](T*, int) - hb-face.cc:651: error: ISO C++ says that these are ambiguous, even - though the worst conversion for the first is better than the worst - conversion for the second: - hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = - hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount - = 32u] - hb-face.cc:651: note: candidate 2: operator[](const T*, int) - + hb-face.cc:651: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] + hb-face.cc:651: note: candidate 2: operator[](const T*, int) src/hb-face.cc | 4 ++-- src/hb-machinery.hh | 4 ++-- @@ -4524,14 +5698,9 @@ Author: Behdad Esfahbod Date: Fri Nov 30 11:51:26 2018 -0500 Umm. Cryptic, yes - - hb-face.cc:650: error: ISO C++ says that these are ambiguous, even - though the worst conversion for the first is better than the worst - conversion for the second: - hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = - hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount - = 32u] + + hb-face.cc:650: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second: + hb-vector.hh:81: note: candidate 1: Type& hb_vector_t::operator[](unsigned int) [with Type = hb_face_builder_data_t::table_entry_t, unsigned int PreallocedCount = 32u] hb-face.cc:650: note: candidate 2: operator[](T*, int) src/hb-face.cc | 4 ++-- @@ -4582,8 +5751,7 @@ Date: Fri Nov 30 00:32:12 2018 -0500 src/Makefile.sources | 1 + src/hb-deprecated.h | 61 +--------------------------- - src/hb-ot-deprecated.h | 106 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-deprecated.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot.h | 1 + 4 files changed, 109 insertions(+), 60 deletions(-) @@ -4611,11 +5779,10 @@ Author: Ebrahim Byagowi Date: Fri Nov 30 00:06:40 2018 +0330 [test][aat] Remove extra --shaper ot - + As run-tests.py already adds it - test/shaping/data/in-house/tests/macos.tests | 64 - ++++++++++++++-------------- + test/shaping/data/in-house/tests/macos.tests | 64 ++++++++++++++-------------- 1 file changed, 32 insertions(+), 32 deletions(-) commit b65645bbafb3f1f9f956df3028cf4479a4bdc265 @@ -4624,8 +5791,7 @@ Date: Thu Nov 29 23:57:50 2018 +0330 [ci] Re-enable llvm-gcc-4.2 bots (#1429) - .circleci/config.yml | 48 - ++++++++++++++++++++++++------------------------ + .circleci/config.yml | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) commit e7bd29ea11bd6301a332b471120a4a2cd8575d09 @@ -4642,7 +5808,7 @@ Author: Behdad Esfahbod Date: Thu Nov 29 15:07:44 2018 -0500 [coretext] Fix compile - + Fingers crossed. src/hb-coretext.cc | 2 +- @@ -4724,7 +5890,7 @@ Author: Behdad Esfahbod Date: Thu Nov 29 14:34:44 2018 -0500 [vector] Make pointer cast explicit - + Too bad this doesn't help MSVC 2008 build, as explicit operators are C++11. @@ -4750,10 +5916,8 @@ Date: Thu Nov 29 12:39:52 2018 -0500 [test/text-rendering-tests] Update from upstream - .../text-rendering-tests/fonts/TestGVAR-Composite-0.ttf | Bin 0 -> - 3136 bytes - .../fonts/TestGVAR-Composite-Missing.ttf | Bin 0 -> - 2984 bytes + .../text-rendering-tests/fonts/TestGVAR-Composite-0.ttf | Bin 0 -> 3136 bytes + .../fonts/TestGVAR-Composite-Missing.ttf | Bin 0 -> 2984 bytes 2 files changed, 0 insertions(+), 0 deletions(-) commit 000d4b128eba58677acdc3b361829ff2f9a257b1 @@ -4761,14 +5925,14 @@ Author: Behdad Esfahbod Date: Thu Nov 29 12:32:47 2018 -0500 Make shaper's override_features() override user features as well - + The override_features is used to override features that are normally discretionary features, but in a specific shaper are for various reasons desired to be bolted on or off, because they've been used for inherent shaping. As such, it makes sense that they also override user features. Ie. if user turned 'liga' on, we don't want Khmer shaping to become broken... Or turn 'clig' off... - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1310 src/hb-ot-shape.cc | 6 +++--- @@ -4779,7 +5943,7 @@ Author: Behdad Esfahbod Date: Thu Nov 29 12:30:14 2018 -0500 [khmer] Move 'clig' to overrides - + Prerequisite for https://github.com/harfbuzz/harfbuzz/issues/1310 src/hb-ot-shape-complex-khmer.cc | 15 +++++++++------ @@ -4790,9 +5954,9 @@ Author: Behdad Esfahbod Date: Thu Nov 29 12:18:14 2018 -0500 Fix "typename outside template" issues - + Nothing an extra template class wouldn't fix... - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1419 src/hb-null.hh | 25 +++++++++++++++++++------ @@ -4829,7 +5993,7 @@ Author: Behdad Esfahbod Date: Thu Nov 29 10:39:18 2018 -0500 Merge pull request #1418 from gvictor/replace_icu_deprecated - + Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT commit e0307de818ad1f70ef96938642bda61d7a62532a @@ -4863,7 +6027,7 @@ Author: Behdad Esfahbod Date: Wed Nov 28 17:21:57 2018 -0500 Merge pull request #1425 from mbutterick/patch-1 - + update simple shaping example (closes #298) commit d3d0f15f7d20bedf7018fb2fb652f92ff4159bd7 @@ -4871,9 +6035,8 @@ Author: Matthew Butterick Date: Wed Nov 28 13:46:12 2018 -0800 update simple shaping example (closes #298) - - add call to `FT_Set_Char_Size`, otherwise default size remains at - `0`, and glyph positions come back as `0` too + + add call to `FT_Set_Char_Size`, otherwise default size remains at `0`, and glyph positions come back as `0` too docs/usermanual-getting-started.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) @@ -4883,9 +6046,8 @@ Author: Ebrahim Byagowi Date: Thu Nov 29 00:55:05 2018 +0330 [test][aat] Update expectency - - It is not visually noticeable but apparently affected by kern format2 - correct implementation. + + It is not visually noticeable but apparently affected by kern format2 correct implementation. I should've checked CoreText result which can't as CircleCI outage. test/shaping/data/in-house/tests/macos.tests | 4 ++-- @@ -4898,8 +6060,7 @@ Date: Thu Nov 29 00:07:00 2018 +0330 [test] Add test for format2 kern (#1423) test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/e39391c77a6321c2ac7a2d644de0396470cd4bfe.ttf | Bin 0 -> - 34116 bytes + .../fonts/e39391c77a6321c2ac7a2d644de0396470cd4bfe.ttf | Bin 0 -> 34116 bytes test/shaping/data/in-house/tests/kern-format2.tests | 3 +++ 3 files changed, 4 insertions(+) @@ -4925,7 +6086,7 @@ Author: Behdad Esfahbod Date: Wed Nov 28 15:06:01 2018 -0500 [kern] Fix kern table Format2 offsetToIndex - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1421 src/hb-aat-layout-kerx-table.hh | 8 ++++++-- @@ -4957,8 +6118,7 @@ Date: Wed Nov 28 20:28:42 2018 +0330 [test][aat] Add a test and make macOS runners faster (#1422) .circleci/config.yml | 15 +++----- - test/shaping/data/in-house/tests/macos.tests | 54 - ++++++++++++++-------------- + test/shaping/data/in-house/tests/macos.tests | 54 ++++++++++++++-------------- 2 files changed, 33 insertions(+), 36 deletions(-) commit 987f4187722a05e3f360b85c66309a351fc5d6ad @@ -4967,7 +6127,7 @@ Author: Behdad Esfahbod Date: Tue Nov 27 17:40:32 2018 -0500 Merge pull request #1398 from Adenilson/bigInt01 - + Optimize harfbuzz big integer conversions commit 4e2a03b6b6e0c0d1c4edea10dc1aae63eeb6c581 @@ -4984,21 +6144,19 @@ Author: Adenilson Cavalcanti Date: Tue Nov 20 14:41:19 2018 -0800 Optimize harfbuzz big integer conversions - - Profiling showed that type conversions were adding considerable - cycles in time + + Profiling showed that type conversions were adding considerable cycles in time spent doing text shaping. - - The idea is to optimize it using native processor instructions to - help Blink + + The idea is to optimize it using native processor instructions to help Blink layout performance. - + Doing further investigation revelead that compilers may not use the proper instruction on ARM 32bits builds (i.e. REV16). - + One way to insure that the generated ASM was ideal for both gcc/clang was using __builtin_bswap16. - + Added bonus is that we no longer need to test for CPU architecture. src/hb-machinery.hh | 4 ++++ @@ -5009,10 +6167,10 @@ Author: Victor Chang Date: Tue Nov 27 11:34:56 2018 +0000 Replace @Deprecated ICU API - USCRIPT_CODE_LIMIT - + Use of the deprecated API USCRIPT_CODE_LIMIT prevents harfbuzz using the ICU4C as a shared library. - + The API has been replaced by u_getIntPropertyMaxValue(UCHAR_SCRIPT) src/hb-icu.cc | 3 ++- @@ -5023,10 +6181,9 @@ Author: Ebrahim Byagowi Date: Mon Nov 26 18:58:39 2018 +0330 [ci] Add .codecov.yml - - Similar to - https://github.com/GoogleChrome/lighthouse/blob/master/.codecov.yml - + + Similar to https://github.com/GoogleChrome/lighthouse/blob/master/.codecov.yml + No strong preference on commenting, feel free to enable it again .codecov.yml | 7 +++++++ @@ -5046,7 +6203,7 @@ Author: Behdad Esfahbod Date: Sun Nov 25 16:51:22 2018 -0500 [aat] Ignore GSUB table of Muthu Foundry if they have morx table - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1410 src/hb-ot-layout-gpos-table.hh | 3 +++ @@ -5116,13 +6273,12 @@ Author: Behdad Esfahbod Date: Sun Nov 25 01:14:40 2018 -0500 [aat.feat] Rework API and implementation - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1346 docs/harfbuzz-docs.xml | 5 +++ docs/harfbuzz-sections.txt | 7 ++-- - src/hb-aat-layout-feat-table.hh | 89 - +++++++++++++++++++++++------------------ + src/hb-aat-layout-feat-table.hh | 89 +++++++++++++++++++++++------------------ src/hb-aat-layout.cc | 80 ++++++++++++++++-------------------- src/hb-aat-layout.h | 32 +++++++++------ test/api/test-aat-layout.c | 58 ++++++++++++++------------- @@ -5169,7 +6325,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 10:46:56 2018 -0500 [AAT.feat] Use lsearch for looking up SettingName's - + They are not sorted. src/hb-aat-layout-feat-table.hh | 18 ++++++------------ @@ -5192,17 +6348,15 @@ Author: Behdad Esfahbod Date: Fri Nov 23 14:05:11 2018 -0500 [aat] Move contents of hb-aat.h to hb-aat-layout.h - + Since it was pages and pages... src/Makefile.sources | 1 + src/hb-aat-layout.cc | 1 - - src/hb-aat-layout.h | 452 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout.h | 452 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.hh | 1 - src/hb-aat-map.hh | 1 - - src/hb-aat.h | 417 - +---------------------------------------------- + src/hb-aat.h | 417 +---------------------------------------------- src/hb.hh | 2 + 7 files changed, 458 insertions(+), 417 deletions(-) @@ -5215,8 +6369,7 @@ Date: Fri Nov 23 12:23:35 2018 -0500 src/hb-aat-layout-feat-table.hh | 2 +- src/hb-aat-layout-morx-table.hh | 4 +- src/hb-aat-layout.cc | 150 ++++++------ - src/hb-aat.h | 502 - ++++++++++++++++++++-------------------- + src/hb-aat.h | 502 ++++++++++++++++++++-------------------- test/api/test-aat-layout.c | 2 +- 5 files changed, 330 insertions(+), 330 deletions(-) @@ -5251,8 +6404,7 @@ Date: Fri Nov 23 12:05:06 2018 +0330 docs/harfbuzz-sections.txt | 6 +-- src/hb-aat-layout-feat-table.hh | 52 ++++++++++++------------ src/hb-aat-layout-morx-table.hh | 2 +- - src/hb-aat-layout.cc | 88 - ++++++++++++++++++++--------------------- + src/hb-aat-layout.cc | 88 ++++++++++++++++++++--------------------- src/hb-aat-layout.hh | 4 +- src/hb-aat-map.cc | 2 +- src/hb-aat-map.hh | 2 +- @@ -5267,8 +6419,7 @@ Date: Fri Nov 23 11:44:53 2018 +0330 [feat] Apply renamings and add documentation docs/harfbuzz-sections.txt | 10 ++++++++++ - src/hb-aat-layout.cc | 44 - ++++++++++++++++++++++++++++++++++++++------ + src/hb-aat-layout.cc | 44 ++++++++++++++++++++++++++++++++++++++------ src/hb-aat.h | 6 +++--- test/api/test-aat-layout.c | 28 ++++++++++++++-------------- 4 files changed, 65 insertions(+), 23 deletions(-) @@ -5292,8 +6443,7 @@ Date: Sat Nov 17 11:30:50 2018 +0330 src/hb-aat-layout-feat-table.hh | 114 ++++--- src/hb-aat-layout.cc | 14 +- - src/hb-aat.h | 673 - +++++++++++++++++----------------------- + src/hb-aat.h | 673 +++++++++++++++++----------------------- test/api/test-aat-layout.c | 88 +++--- 4 files changed, 423 insertions(+), 466 deletions(-) @@ -5308,8 +6458,7 @@ Date: Sat Nov 17 01:07:09 2018 +0330 src/hb-aat-layout-morx-table.hh | 2 +- src/hb-aat-layout.cc | 104 ++++---- src/hb-aat-map.cc | 2 +- - src/hb-aat.h | 533 - ++++++++++++---------------------------- + src/hb-aat.h | 533 ++++++++++++---------------------------- src/hb-ot.h | 1 - test/api/test-aat-layout.c | 84 +++---- 8 files changed, 282 insertions(+), 528 deletions(-) @@ -5322,8 +6471,7 @@ Date: Fri Nov 9 00:50:10 2018 +0330 src/hb-aat-layout-morx-table.hh | 2 +- src/hb-aat-layout.cc | 154 ++++----- - src/hb-aat.h | 697 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-aat.h | 697 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 752 insertions(+), 101 deletions(-) commit fbad794bd2c574363a0c5c5fefabce764496f93c @@ -5335,8 +6483,7 @@ Date: Thu Nov 1 22:24:42 2018 +0330 src/hb-aat-layout-feat-table.hh | 36 +++++++++++++++++++++-------- src/hb-aat-layout.cc | 26 +++++++++++---------- src/hb-aat.h | 23 +++++++++++++++++-- - test/api/test-aat-layout.c | 51 - +++++++++++++++++++++++++++-------------- + test/api/test-aat-layout.c | 51 +++++++++++++++++++++++++++-------------- 4 files changed, 96 insertions(+), 40 deletions(-) commit 7a0471aa356bcd062d31a59bdb19c335249116c7 @@ -5347,8 +6494,7 @@ Date: Thu Nov 1 21:38:54 2018 +0330 src/hb-aat-layout-feat-table.hh | 20 ++--- src/hb-aat-layout-morx-table.hh | 10 +-- - src/hb-aat-layout.cc | 170 - ++++++++++++++++++++-------------------- + src/hb-aat-layout.cc | 170 ++++++++++++++++++++-------------------- src/hb-aat-layout.hh | 6 +- src/hb-aat-map.cc | 2 +- src/hb-aat-map.hh | 4 +- @@ -5415,7 +6561,7 @@ Author: Ebrahim Byagowi Date: Thu Nov 1 13:14:29 2018 +0330 [feat] Expose public API - + * hb_aat_get_feature_settings src/Makefile.sources | 1 + @@ -5427,8 +6573,7 @@ Date: Thu Nov 1 13:14:29 2018 +0330 src/hb-aat-map.hh | 5 ++- src/hb-ot-face.hh | 1 + test/api/Makefile.am | 1 + - test/api/test-aat-layout.c | 89 - +++++++++++++++++++++++++++++++++++++++++ + test/api/test-aat-layout.c | 89 +++++++++++++++++++++++++++++++++++++++++ test/api/test-c.c | 1 + 11 files changed, 278 insertions(+), 9 deletions(-) @@ -5437,7 +6582,7 @@ Author: Behdad Esfahbod Date: Sun Nov 25 00:30:08 2018 -0500 [test] Reorder test suites - + aots is less interesting. Run text-rendering-tests before aots. test/shaping/data/Makefile.am | 2 +- @@ -5484,7 +6629,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 23:38:06 2018 -0500 Add hb_sanitize_with_object_t - + Context manager. src/hb-machinery.hh | 17 +++++++++++++++++ @@ -5506,7 +6651,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 23:12:28 2018 -0500 [aat] Skip terminator in VarSizedBinSearchArray<> - + Fixes shaping with Apple Chancery on 10.13 again. In that font, there was a terminator segment, that was tripping off sanitize(). @@ -5537,9 +6682,9 @@ Author: Behdad Esfahbod Date: Sat Nov 24 22:16:59 2018 -0500 Revert "[aat.morx] Remove set_object() business" - + This reverts commit ae8ed58a6e53441d9ccbf67afd8a00b815cde99e. - + Apparently this broke Apple Chancery from OS X 10.12 :(. Investigating... @@ -5551,7 +6696,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 22:16:53 2018 -0500 Revert "[aat.kerx] Remove kerx subtable boundary enforcement" - + This reverts commit 15905a2a2998f7ddd964f920a4828602235d6b00. src/hb-aat-layout-kerx-table.hh | 21 +++++++++++++++++++++ @@ -5562,7 +6707,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 22:16:47 2018 -0500 Revert "[sanitize] Remove now-unused set_object() machinery" - + This reverts commit bbdb6edb3e1cea4c5b7076c4f6b3e6998ae36dae. src/hb-machinery.hh | 25 ++++++++++++++++++++++++- @@ -5618,8 +6763,7 @@ Date: Sun Nov 25 01:59:54 2018 +0330 test/shaping/data/in-house/Makefile.sources | 3 +-- .../data/in-house/tests/macos-10.12.6.tests | 11 --------- .../data/in-house/tests/macos-10.13.6.tests | 13 ----------- - test/shaping/data/in-house/tests/macos.tests | 26 - ++++++++++++++++++++++ + test/shaping/data/in-house/tests/macos.tests | 26 ++++++++++++++++++++++ 4 files changed, 27 insertions(+), 26 deletions(-) commit bbdb6edb3e1cea4c5b7076c4f6b3e6998ae36dae @@ -5636,7 +6780,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 17:14:39 2018 -0500 [aat.kerx] Remove kerx subtable boundary enforcement - + Have not encountered fonts needing this, but same reasoning as for morx (see previos commit.) @@ -5648,12 +6792,12 @@ Author: Behdad Esfahbod Date: Sat Nov 24 17:11:09 2018 -0500 [aat.morx] Remove set_object() business - + With OS X 10.13 Apple Chancery fails to ligate if we limit each morx sub-chain to its declared length. Perhaps their newer compiler does object-sharing across sub-chains. Anyway, since that's a valid, if unspecified, way to compile tables, remove enforcement. - + Probably do the same with kern/kerx. src/hb-aat-layout-morx-table.hh | 8 -------- @@ -5665,12 +6809,10 @@ Date: Sun Nov 25 01:39:00 2018 +0330 Add 10.13.6 aat fonts tests and bot (#1409) - .circleci/config.yml | 16 - ++++++++++++++-- + .circleci/config.yml | 16 ++++++++++++++-- test/shaping/data/in-house/Makefile.sources | 3 ++- .../in-house/tests/{macos.tests => macos-10.12.6.tests} | 2 -- - test/shaping/data/in-house/tests/macos-10.13.6.tests | 13 - +++++++++++++ + test/shaping/data/in-house/tests/macos-10.13.6.tests | 13 +++++++++++++ 4 files changed, 29 insertions(+), 5 deletions(-) commit b7f7950e8fc4b9e229b466ac2453d57b8da9a5a6 @@ -5688,8 +6830,7 @@ Date: Sat Nov 24 15:49:33 2018 -0500 [tests] Redo test runner logging a bit - test/shaping/run-tests.py | 44 - +++++++++++++++++++++++--------------------- + test/shaping/run-tests.py | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) commit 5020affc3877d39377506245ecaf01a659eef82a @@ -5706,7 +6847,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 15:37:01 2018 -0500 [tests/shaping] Allow comments in test files - + Line should start with "# ". test/shaping/run-tests.py | 17 +++++++++++++++-- @@ -5718,8 +6859,7 @@ Date: Sat Nov 24 15:22:09 2018 -0500 [tests] Rename - test/shaping/data/in-house/Makefile.sources | - 2 +- + test/shaping/data/in-house/Makefile.sources | 2 +- test/shaping/data/in-house/tests/{macos-10.12.tests => macos.tests} | 0 2 files changed, 1 insertion(+), 1 deletion(-) @@ -5728,11 +6868,11 @@ Author: Behdad Esfahbod Date: Sat Nov 24 14:52:34 2018 -0500 [morx/kerx] Fix sanitize regression - + Broke in 8dcc1913a1670ede7b124f7b5b775d7ab8791386 - + If sanitizer is left with another object, it wouldn't work. - + Better fix coming soon. src/hb-aat-layout-kerx-table.hh | 6 +----- @@ -5744,12 +6884,11 @@ Author: Ebrahim Byagowi Date: Sat Nov 24 20:49:21 2018 +0330 [test] Enable more of aots tests (#1408) - + The ones commented out in this change should've be passed :/ a closer look is needed. - test/shaping/data/aots/Makefile.sources | 76 - +++++++++++----------- + test/shaping/data/aots/Makefile.sources | 76 +++++++++++----------- test/shaping/data/aots/hb-aots-tester.cpp | 1 + test/shaping/data/aots/tests/classdef1_empty.tests | 2 +- test/shaping/data/aots/tests/gsub3_1_simple.tests | 2 +- @@ -5761,13 +6900,10 @@ Author: Ebrahim Byagowi Date: Sat Nov 24 20:07:24 2018 +0330 Add Adobe AOTS tests (#1395) - - Annotated OpenType Specification or aots, - https://github.com/adobe-type-tools/aots - provides a set of tests for OpenType specification, this change add - those tests in addition - to modified version of their HarfBuzz test runner for generating - harfbuzz project specific tests. + + Annotated OpenType Specification or aots, https://github.com/adobe-type-tools/aots + provides a set of tests for OpenType specification, this change add those tests in addition + to modified version of their HarfBuzz test runner for generating harfbuzz project specific tests. configure.ac | 1 + test/shaping/CMakeLists.txt | 13 +- @@ -5978,8 +7114,7 @@ Date: Sat Nov 24 20:07:24 2018 +0330 .../fonts/lookupflag_ignore_combination_f1.otf | Bin 0 -> 5408 bytes .../aots/fonts/lookupflag_ignore_ligatures_f1.otf | Bin 0 -> 5320 bytes .../data/aots/fonts/lookupflag_ignore_marks_f1.otf | Bin 0 -> 5288 bytes - test/shaping/data/aots/hb-aots-tester.cpp | 343 - +++++++++++++++++++++ + test/shaping/data/aots/hb-aots-tester.cpp | 343 +++++++++++++++++++++ test/shaping/data/aots/tests/classdef1.tests | 1 + test/shaping/data/aots/tests/classdef1_empty.tests | 1 + .../data/aots/tests/classdef1_multiple.tests | 1 + @@ -6136,7 +7271,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 10:06:13 2018 -0500 [arrays] Improve bfind() interface - + Much more useful now. :) src/hb-dsalgs.hh | 29 +++++++++++++++++++++++++---- @@ -6152,14 +7287,12 @@ Author: Behdad Esfahbod Date: Sat Nov 24 09:49:21 2018 -0500 [fuzzing] Add tests for previous commit - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11526 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11522 - ...zz-testcase-minimized-hb-shape-fuzzer-5634620935110656 | Bin 0 -> - 41 bytes - ...zz-testcase-minimized-hb-shape-fuzzer-5716208469409792 | Bin 0 -> - 243 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5634620935110656 | Bin 0 -> 41 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5716208469409792 | Bin 0 -> 243 bytes 2 files changed, 0 insertions(+), 0 deletions(-) commit 8dcc1913a1670ede7b124f7b5b775d7ab8791386 @@ -6235,8 +7368,7 @@ Date: Sat Nov 24 01:31:00 2018 -0500 [arrays] Port SortedArrayOf.bsearch/bfind to hb_sorted_array_t's src/hb-dsalgs.hh | 9 +++------ - src/hb-open-type.hh | 50 - ++++++++++---------------------------------------- + src/hb-open-type.hh | 50 ++++++++++---------------------------------------- src/hb-vector.hh | 35 ++++++++++------------------------- 3 files changed, 23 insertions(+), 71 deletions(-) @@ -6246,8 +7378,7 @@ Date: Sat Nov 24 01:24:48 2018 -0500 [arrays] Port hb_vector_t.bsearch/bfind to (new) hb_sorted_array_t's - src/hb-dsalgs.hh | 63 - +++++++++++++++++++++++++++++++++++++++++++++++++---- + src/hb-dsalgs.hh | 63 +++++++++++++++++++++++++++++++++++++++++++++++++---- src/hb-open-type.hh | 12 ++++++---- src/hb-vector.hh | 57 +++++++++++++++++++----------------------------- 3 files changed, 89 insertions(+), 43 deletions(-) @@ -6286,7 +7417,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 00:58:44 2018 -0500 [arrays] Update ArrayOf.lsearch() - + Currently unused apparently src/hb-open-type.hh | 17 +++++++++++++---- @@ -6297,7 +7428,7 @@ Author: Behdad Esfahbod Date: Sat Nov 24 00:53:19 2018 -0500 [arrays] Change argument type of cmp called by hb_vector_t.bsearch() - + Towards consolidating all array bsearch/... src/hb-aat-map.hh | 4 ++-- @@ -6310,11 +7441,9 @@ commit 5fdf7b724eb3cb5ac60cd7f90d3250877ad7ca06 Author: Nathan Willis Date: Thu Nov 15 17:40:21 2018 -0600 - Usermanual: clusters chapter; add brief grapheme definition and - clarify monotonous cluster handling. + Usermanual: clusters chapter; add brief grapheme definition and clarify monotonous cluster handling. - docs/usermanual-clusters.xml | 56 - ++++++++++++++++++++++++++++++-------------- + docs/usermanual-clusters.xml | 56 ++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 17 deletions(-) commit 939220e57da613e090d247aa1af2396c28370af4 @@ -6332,8 +7461,7 @@ Date: Mon Nov 12 12:17:06 2018 -0600 Usermanual: expand clusters chapter. - docs/usermanual-clusters.xml | 743 - +++++++++++++++++++++++++++---------------- + docs/usermanual-clusters.xml | 743 +++++++++++++++++++++++++++---------------- 1 file changed, 473 insertions(+), 270 deletions(-) commit 30cb45b3eaacda15cc45435815cae3fd50e87557 @@ -6341,13 +7469,12 @@ Author: Behdad Esfahbod Date: Sat Nov 24 00:35:31 2018 -0500 Change ArrayOf.bsearch() return semantics - + Towards consolidating all array bsearch/... src/hb-aat-layout-kerx-table.hh | 16 +++------------- src/hb-open-file.hh | 12 ++++++++---- - src/hb-open-type.hh | 42 - ++++++++++++++++++++++++++++++++--------- + src/hb-open-type.hh | 42 ++++++++++++++++++++++++++++++++--------- src/hb-ot-cmap-table.hh | 30 ++++++++++++----------------- src/hb-ot-color-svg-table.hh | 3 +-- src/hb-ot-layout-common.hh | 29 +++++++++++----------------- @@ -6477,7 +7604,7 @@ Author: Behdad Esfahbod Date: Fri Nov 23 13:49:34 2018 -0500 Merge pull request #1407 from harfbuzz/at-sign - + Don't canonicalize '@' to '-' in language tags commit 018ba46e4d003a5dd0f6d2d899226129c4ef0c60 @@ -6485,7 +7612,7 @@ Author: David Corbett Date: Fri Nov 23 13:21:22 2018 -0500 Don't canonicalize '@' to '-' in language tags - + Fixes #1406. src/hb-common.cc | 2 +- @@ -6506,9 +7633,9 @@ Author: Behdad Esfahbod Date: Fri Nov 23 11:10:17 2018 -0500 [aat] Disable mark advance zeroing if kern table has state-machines - + Geeza Pro for example, relies on that for fancy mark positioning. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1405 src/hb-aat-layout-kerx-table.hh | 15 +++++++++++++++ @@ -6533,13 +7660,11 @@ Date: Fri Nov 23 15:40:05 2018 +0330 [aat] Add macOS specific tests (#1404) - .circleci/config.yml | 46 - ++++++++++++++-------- + .circleci/config.yml | 46 ++++++++++++++-------- test/shaping/CMakeLists.txt | 2 + test/shaping/data/in-house/Makefile.sources | 1 + test/shaping/data/in-house/tests/macos-10.12.tests | 10 +++++ - test/shaping/run-tests.py | 38 - ++++++++++++++---- + test/shaping/run-tests.py | 38 ++++++++++++++---- 5 files changed, 73 insertions(+), 24 deletions(-) commit 22798e93c414a2655c757a6e41b300f67e04a9a3 @@ -6566,7 +7691,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 22:39:12 2018 -0500 Merge pull request #1291 from harfbuzz/use-reordering - + [use] Fix reordering commit e4a4555d1e40dacdf72452805e9e6b6109627d63 @@ -6593,9 +7718,8 @@ Author: Behdad Esfahbod Date: Thu Nov 22 22:12:36 2018 -0500 [sanitizer] Add reset_object(), make set_object() do bounds-check - - Affects morx/kerx run-time only currently. Will adjust their - sanitize next. + + Affects morx/kerx run-time only currently. Will adjust their sanitize next. src/hb-aat-layout-kerx-table.hh | 1 + src/hb-aat-layout-morx-table.hh | 1 + @@ -6607,13 +7731,12 @@ Author: Behdad Esfahbod Date: Thu Nov 22 22:02:19 2018 -0500 [kerx] Make sure subtables are non-zero-length - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11400 src/hb-aat-layout-kerx-table.hh | 1 + src/hb-aat-layout-morx-table.hh | 2 +- - ...z-testcase-minimized-hb-shape-fuzzer-5722888989048832 | Bin 0 -> - 3608 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5722888989048832 | Bin 0 -> 3608 bytes 3 files changed, 2 insertions(+), 1 deletion(-) commit a9e0bdc35dfcbead7d4b6fa249d60ebedd7d43ca @@ -6621,9 +7744,9 @@ Author: Behdad Esfahbod Date: Thu Nov 22 21:30:04 2018 -0500 [GSUB] Don't flush glyphset during recursion in closure() - + See comment. - + Supercedes https://github.com/harfbuzz/harfbuzz/pull/1401 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11366 @@ -6636,8 +7759,7 @@ Date: Mon Nov 19 13:00:24 2018 -0800 [subset] add fuzzer testcase. - ...z-testcase-minimized-hb-subset-fuzzer-5067936541179904 | Bin 0 -> - 172 bytes + ...z-testcase-minimized-hb-subset-fuzzer-5067936541179904 | Bin 0 -> 172 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit d0e81b2cc85d09d01905c5fc5b3382c25eaa3bb3 @@ -6654,7 +7776,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 18:07:59 2018 -0500 Enforce requiring null_size even if min_size is 0 - + This concludes null-size enforcement changes src/hb-null.hh | 2 +- @@ -6674,7 +7796,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 17:56:51 2018 -0500 [glyf] Don't mark structs UNBOUNDED - + See comments. src/hb-ot-glyf-table.hh | 8 ++++++-- @@ -6685,7 +7807,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 17:53:29 2018 -0500 Mark UnsizedArrayOf<> as UNBOUNDED - + Since min_size is 0, Null() still accepts this type. src/hb-open-type.hh | 3 ++- @@ -6714,9 +7836,8 @@ Author: Behdad Esfahbod Date: Thu Nov 22 16:20:29 2018 -0500 [aat] Zero mark advances if decided so even if there's cross-kerning - - Cross-kerning can only take care of positioning vertically. - It doesn't + + Cross-kerning can only take care of positioning vertically. It doesn't adjust mark advance... src/hb-ot-shape.cc | 2 +- @@ -6727,16 +7848,13 @@ Author: Behdad Esfahbod Date: Thu Nov 22 15:52:29 2018 -0500 [aat] Tweak fallback positioning logic when applying morx - - Such that for Indic-like scripts (eg. Khmer), we don't do any - fallback mark - advance-zeroing / positioning, but we do for Latin, etc. Reuses - preferences + + Such that for Indic-like scripts (eg. Khmer), we don't do any fallback mark + advance-zeroing / positioning, but we do for Latin, etc. Reuses preferences of our script-specific OpenType shapers for those. - + Fixes regression: https://github.com/harfbuzz/harfbuzz/issues/1393 - Which means, fixes again: - https://github.com/harfbuzz/harfbuzz/issues/1264 + Which means, fixes again: https://github.com/harfbuzz/harfbuzz/issues/1264 While not regressing: https://github.com/harfbuzz/harfbuzz/issues/1357 src/hb-ot-shape.cc | 38 +++++++++++++++++++++++--------------- @@ -6757,7 +7875,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 14:45:46 2018 -0500 [myanmar] If there's no GSUB table, pick myanmar shaper - + Needed for morx+kern mark-zeroing interaction. All other scripts work this way. @@ -6769,7 +7887,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 14:41:01 2018 -0500 [myanmar] Remove myanmar_old shaper - + Over time it has become the same as default shaper. So, remove. src/hb-ot-shape-complex-myanmar.cc | 21 --------------------- @@ -6781,9 +7899,8 @@ Author: Behdad Esfahbod Date: Thu Nov 22 01:53:36 2018 -0500 Fix spurious gcc warnings - - ../../src/hb-null.hh:53:39: warning: enum constant in boolean context - [-Wint-in-bool-context] + + ../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context] src/hb-null.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -6793,14 +7910,12 @@ Author: Behdad Esfahbod Date: Thu Nov 22 01:49:12 2018 -0500 More - + This makes more of the gcc spurious warning: - - ../../src/hb-null.hh:53:39: warning: enum constant in boolean context - [-Wint-in-bool-context] - - But not going to let that defeat correct code. Type to switch - to clang + + ../../src/hb-null.hh:53:39: warning: enum constant in boolean context [-Wint-in-bool-context] + + But not going to let that defeat correct code. Type to switch to clang as my main compiler... src/hb-blob.hh | 2 +- @@ -6811,7 +7926,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 01:44:27 2018 -0500 Fix up recent change - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1300 src/hb-null.hh | 12 +++++++++--- @@ -6842,9 +7957,9 @@ Author: Behdad Esfahbod Date: Thu Nov 22 01:18:55 2018 -0500 Disallow taking Null() of unbounded structs - + Not sure I've marked all such structs. To be done as we discover. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1300 src/hb-aat-layout-common.hh | 2 +- @@ -6857,8 +7972,7 @@ commit f2b91d6510face95008151bb0d25837723536f9f Author: Behdad Esfahbod Date: Thu Nov 22 01:10:22 2018 -0500 - Use Type::null_size for our structs in Null(), sizeof() for other - types + Use Type::null_size for our structs in Null(), sizeof() for other types src/hb-null.hh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) @@ -6877,7 +7991,7 @@ Author: Behdad Esfahbod Date: Thu Nov 22 00:39:14 2018 -0500 Fix bots happy again, hopefully - + So, our fallback static_assert cannot be had more than once per line of source. @@ -6889,9 +8003,9 @@ Author: Behdad Esfahbod Date: Thu Nov 22 00:21:49 2018 -0500 Revert alignof() == 1 check - + Bots not happy with using "this" inside assertion... - + This reverts 2656644887e77a9d814bb12374af3c26b42fd935 src/hb-machinery.hh | 12 ++++-------- @@ -6969,7 +8083,7 @@ Author: Behdad Esfahbod Date: Wed Nov 21 17:27:27 2018 -0500 Merge pull request #1400 from harfbuzz/sharada-sandhi-mark - + Test U+111C9 SHARADA SANDHI MARK commit 264439c6c308ac5f01c4ba4faf64daa2d642236a @@ -6978,8 +8092,7 @@ Date: Wed Nov 21 16:33:45 2018 -0500 Test U+111C9 SHARADA SANDHI MARK - .../fonts/86cdd983c4e4c4d7f27dd405d6ceb7d4b9ed3d35.ttf | Bin 0 -> - 968 bytes + .../fonts/86cdd983c4e4c4d7f27dd405d6ceb7d4b9ed3d35.ttf | Bin 0 -> 968 bytes test/shaping/data/in-house/tests/use-syllable.tests | 1 + 2 files changed, 1 insertion(+) @@ -6989,7 +8102,7 @@ Author: Behdad Esfahbod Date: Wed Nov 21 16:12:32 2018 -0500 Merge pull request #1399 from harfbuzz/sharada-sandhi-mark - + Fix USE categories for U+111C9 SHARADA SANDHI MARK commit b89c7fd3dc505a958dd4b6acec0e0f8e57224fd8 @@ -6997,9 +8110,8 @@ Author: Behdad Esfahbod Date: Wed Nov 21 12:32:48 2018 -0500 Allow defining HB_USE_ATEXIT to 0 - - That's better use of that value than requiring extra macro - HB_NO_ATEXIT + + That's better use of that value than requiring extra macro HB_NO_ATEXIT src/hb-common.cc | 10 +++++----- src/hb-ft.cc | 12 ++++++------ @@ -7028,14 +8140,14 @@ Author: Behdad Esfahbod Date: Tue Nov 20 20:40:55 2018 -0500 [var] Deprecated axis enumeration API and add new version - + New version has axis flags. - + New API: +hb_ot_var_axis_info_t +hb_ot_var_find_axis_info() +hb_ot_var_get_axis_infos() - + Deprecated API: -HB_OT_VAR_NO_AXIS_INDEX -hb_ot_var_axis_t @@ -7044,8 +8156,7 @@ Date: Tue Nov 20 20:40:55 2018 -0500 docs/harfbuzz-sections.txt | 14 +++--- src/hb-deprecated.h | 37 +++++++++++++++ - src/hb-ot-var-fvar-table.hh | 112 - ++++++++++++++++++++++++++++++++------------ + src/hb-ot-var-fvar-table.hh | 112 ++++++++++++++++++++++++++++++++------------ src/hb-ot-var.cc | 43 ++++++++++++++--- src/hb-ot-var.h | 61 ++++++++++++------------ test/api/test-ot-face.c | 2 +- @@ -7093,7 +8204,7 @@ Author: Behdad Esfahbod Date: Tue Nov 20 16:29:30 2018 -0500 Merge pull request #1397 from harfbuzz/small-emoji-table - + Shrink the emoji table by merging adjacent ranges commit 82951182799772a642d32195dd87e6f0c116f545 @@ -7103,8 +8214,7 @@ Date: Tue Nov 20 15:41:45 2018 -0500 Shrink the emoji table by merging adjacent ranges src/gen-emoji-table.py | 13 +-- - src/hb-unicode-emoji-table.hh | 189 - ++++-------------------------------------- + src/hb-unicode-emoji-table.hh | 189 ++++-------------------------------------- 2 files changed, 23 insertions(+), 179 deletions(-) commit be1828daaa1e1a72d971aed8d34fff54688d0f41 @@ -7112,7 +8222,7 @@ Author: Behdad Esfahbod Date: Tue Nov 20 11:16:23 2018 -0500 [var] Fix type of coords returned - + Ouch. Wonder how none of the bots caught the float->int truncation. src/hb-ot-var-fvar-table.hh | 2 +- @@ -7174,11 +8284,10 @@ Author: David Corbett Date: Sat Oct 20 15:02:26 2018 -0400 [use] Fix reordering - + Fixes #1235. - src/hb-ot-shape-complex-use.cc | 48 - ++++++++++++++------- + src/hb-ot-shape-complex-use.cc | 48 ++++++++++++++------- src/hb.hh | 2 + .../4afb0e8b9a86bb9bd73a1247de4e33fbe3c1fd93.ttf | Bin 0 -> 1824 bytes test/shaping/data/in-house/tests/use.tests | 3 ++ @@ -7189,12 +8298,11 @@ Author: Behdad Esfahbod Date: Mon Nov 19 14:27:19 2018 -0500 [fvar] Add named-instance API - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1241 docs/harfbuzz-sections.txt | 4 ++++ - src/hb-ot-var-fvar-table.hh | 55 - ++++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-var-fvar-table.hh | 55 ++++++++++++++++++++++++++++++++++++++++++--- src/hb-ot-var.cc | 33 +++++++++++++++++++++++++++ src/hb-ot-var.h | 32 ++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 3 deletions(-) @@ -7241,9 +8349,9 @@ Author: Behdad Esfahbod Date: Mon Nov 19 12:36:56 2018 -0500 [ot-var] Add hb_ot_var_axis_get_flags() - + Part of https://github.com/harfbuzz/harfbuzz/issues/1241 - + New API: +hb_ot_var_axis_flags_t +hb_ot_var_axis_get_flags @@ -7260,9 +8368,8 @@ Author: Behdad Esfahbod Date: Mon Nov 19 11:34:56 2018 -0500 [ot-var] Add flags - - Unfortunate that we don't have room in hb_ot_var_axis_t to expose - flags :(. + + Unfortunate that we don't have room in hb_ot_var_axis_t to expose flags :(. src/hb-ot-var-fvar-table.hh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) @@ -7317,13 +8424,12 @@ Author: Behdad Esfahbod Date: Fri Nov 16 16:48:28 2018 -0800 Revert b4c61130324455bfd42095b01fa14ac901e441f1 - - Was causing more trouble than it solved. We use unsigned for - indexing, + + Was causing more trouble than it solved. We use unsigned for indexing, and it's not helpful to allow that wrapping to negative integers on 32bit machines. The only way we could work around it would have been by accepting int64_t arg, but that's overkill. - + Ignore the MSVC 2008 build issue. We don't support that compiler. src/hb-open-type.hh | 17 ++++------------- @@ -7334,16 +8440,13 @@ Author: Behdad Esfahbod Date: Fri Nov 16 16:41:59 2018 -0800 Detect over/under-flow in UnsizedArray::operator[] - - Was causing bad substitutions in mort table because of - WordOffsetToIndex() - producing negative numbers that were cast to unsigned int and - returned as - large numbers (which was desirable, so they would be rejected), - but then + + Was causing bad substitutions in mort table because of WordOffsetToIndex() + producing negative numbers that were cast to unsigned int and returned as + large numbers (which was desirable, so they would be rejected), but then they were cast to int when passed to this operator and acting as small negative integers, which was bad... - + Detect overflow. Ouch, however, now I see this still fails on 32-bit. Guess I'm going to revert an earlier change. @@ -7355,7 +8458,7 @@ Author: Behdad Esfahbod Date: Fri Nov 16 16:11:02 2018 -0800 [aat] Fix mort shaping - + Ouch! src/hb-aat-layout.cc | 2 +- @@ -7377,11 +8480,11 @@ Author: Behdad Esfahbod Date: Fri Nov 16 15:04:41 2018 -0800 Fix vertical fallback space sign - + Ouch! - + Follow-up to cf203af8a33591c163b63dbdf0fd341bc4606190 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1343 src/hb-ot-shape-fallback.cc | 8 ++++---- @@ -7393,10 +8496,9 @@ Author: Behdad Esfahbod Date: Fri Nov 16 14:46:40 2018 -0800 Don't apply GPOS if applying morx - - That's what Apple does, and it wouldn't degrade our OpenType - performance. - + + That's what Apple does, and it wouldn't degrade our OpenType performance. + Part of https://github.com/harfbuzz/harfbuzz/issues/1348 src/hb-ot-shape.cc | 2 +- @@ -7407,7 +8509,7 @@ Author: Behdad Esfahbod Date: Fri Nov 16 14:45:56 2018 -0800 Prefer morx table if GSUB is empty (no scripts) - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1348 src/hb-ot-shape.cc | 6 +++++- @@ -7534,8 +8636,7 @@ commit ce5da0f36a2ece29c387810a060531df15ad6c7b Author: Behdad Esfahbod Date: Fri Nov 16 02:29:13 2018 -0500 - [shaper] Rewrite shaper data code to be more template-driven than - macro-driven + [shaper] Rewrite shaper data code to be more template-driven than macro-driven src/hb-coretext.cc | 17 +++---- src/hb-directwrite.cc | 9 +--- @@ -7549,8 +8650,7 @@ Date: Fri Nov 16 02:29:13 2018 -0500 src/hb-ot-shape.cc | 5 -- src/hb-shape-plan.cc | 4 +- src/hb-shaper-impl.hh | 9 +--- - src/hb-shaper.hh | 117 - ++++++++++++++++++++++++++++++++--------------- + src/hb-shaper.hh | 117 ++++++++++++++++++++++++++++++++--------------- src/hb-uniscribe.cc | 32 +++++-------- 14 files changed, 127 insertions(+), 147 deletions(-) @@ -7559,7 +8659,7 @@ Author: Behdad Esfahbod Date: Fri Nov 16 02:02:24 2018 -0500 [hdmx] Fix bounds checking - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11351 src/hb-ot-hdmx-table.hh | 11 +++++------ @@ -7579,7 +8679,7 @@ Author: Behdad Esfahbod Date: Fri Nov 16 01:48:26 2018 -0500 [subset] Remove invalid glyphs from glypset to retain - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1388 src/hb-subset-plan.cc | 13 +++++++++++++ @@ -7590,31 +8690,20 @@ Author: Michiharu Ariza Date: Thu Nov 15 15:41:46 2018 -0800 use 2-byte offset instead of 4-byte for local subrs - - more than enough since local subrs immediately follow its - corresponding private dict, as the result 2-byte redunction for each - font dict with local subrs + + more than enough since local subrs immediately follow its corresponding private dict, as the result 2-byte redunction for each font dict with local subrs updated api test expected subset fonts accordingly src/hb-subset-cff-common.hh | 4 ++-- - test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7460 -> - 7456 bytes - test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 6780 -> - 6780 bytes - test/api/fonts/AdobeVFPrototype.ac.otf | Bin 6996 -> - 6996 bytes - .../fonts/SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 2380 -> - 2376 bytes - test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2576 -> - 2572 bytes - test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 1812 -> - 1808 bytes - test/api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 1592 -> - 1592 bytes - test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 1708 -> - 1704 bytes - test/api/fonts/cff1_seac.C0.otf | Bin 1604 -> - 1600 bytes + test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7460 -> 7456 bytes + test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 6780 -> 6780 bytes + test/api/fonts/AdobeVFPrototype.ac.otf | Bin 6996 -> 6996 bytes + .../fonts/SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 2380 -> 2376 bytes + test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2576 -> 2572 bytes + test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 1812 -> 1808 bytes + test/api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 1592 -> 1592 bytes + test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 1708 -> 1704 bytes + test/api/fonts/cff1_seac.C0.otf | Bin 1604 -> 1600 bytes 10 files changed, 2 insertions(+), 2 deletions(-) commit 9d0231cfe7c404da3b5bc360ad76180a7aded62c @@ -7637,8 +8726,7 @@ Date: Thu Nov 15 23:10:56 2018 +0330 src/hb-open-type.hh | 70 ++++++------ src/hb-ot-cmap-table.hh | 182 +++++++++++++++---------------- - src/hb-ot-glyf-table.hh | 242 - ++++++++++++++++++++--------------------- + src/hb-ot-glyf-table.hh | 242 ++++++++++++++++++++--------------------- src/hb-ot-hdmx-table.hh | 20 ++-- src/hb-ot-hmtx-table.hh | 14 +-- src/hb-ot-layout-common.hh | 77 ++++++------- @@ -7726,8 +8814,7 @@ Date: Wed Nov 14 14:49:34 2018 -0500 src/hb-aat-layout.hh | 6 +++--- src/hb-ot-layout.cc | 2 +- src/hb-ot-layout.hh | 2 +- - src/hb-ot-shape.cc | 44 - +++++++++++++++++++++++++++++--------------- + src/hb-ot-shape.cc | 44 +++++++++++++++++++++++++++++--------------- src/hb-ot-shape.hh | 6 +++--- 7 files changed, 43 insertions(+), 29 deletions(-) @@ -7744,8 +8831,7 @@ Date: Wed Nov 14 13:38:03 2018 -0800 Implemented seac for extents & subset along with API tests - gtk-doc.make | 321 - +++++++++++++++++++++++++++++++++++++++- + gtk-doc.make | 321 +++++++++++++++++++++++++++++++++++++++- src/hb-cff-interp-common.hh | 2 +- src/hb-cff-interp-cs-common.hh | 7 + src/hb-cff1-interp-cs.hh | 29 +++- @@ -7768,8 +8854,7 @@ Date: Wed Nov 14 22:13:50 2018 +0330 src/hb-ot-face.hh | 2 + src/hb-ot-font.cc | 4 +- src/hb-ot-hmtx-table.hh | 11 +- - src/hb-ot-stat-table.hh | 280 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-stat-table.hh | 280 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 290 insertions(+), 8 deletions(-) commit 48d16c2ab2b181c733accd4fd9730963e59b6323 @@ -7777,9 +8862,8 @@ Author: Behdad Esfahbod Date: Wed Nov 14 09:56:30 2018 -0500 [hmtx] Fix signedness issue - - Fixes - https://github.com/harfbuzz/harfbuzz/issues/1248#issuecomment-438689499 + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1248#issuecomment-438689499 src/hb-ot-hmtx-table.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) @@ -7799,7 +8883,7 @@ Author: Ebrahim Byagowi Date: Wed Nov 14 08:29:17 2018 +0330 Merge pull request #1383 from punchcutter/master - + Add test for https://github.com/harfbuzz/harfbuzz/issues/1379 commit e543e1a0858bb5d7384d82600a789d40b62d9821 @@ -7808,8 +8892,7 @@ Date: Tue Nov 13 20:44:27 2018 -0800 Add Grantha test - .../fonts/dcf774ca21062e7439f98658b18974ea8b956d0c.ttf | Bin 0 -> - 2568 bytes + .../fonts/dcf774ca21062e7439f98658b18974ea8b956d0c.ttf | Bin 0 -> 2568 bytes test/shaping/data/in-house/tests/use.tests | 1 + 2 files changed, 1 insertion(+) @@ -7817,9 +8900,8 @@ commit 3c3eb5ea9ccf34d33e94f83b9961b3a5e903d196 Author: Behdad Esfahbod Date: Tue Nov 13 21:10:10 2018 -0500 - [aat] Disable fallback mark advance zeroing and positioning if - morx applied - + [aat] Disable fallback mark advance zeroing and positioning if morx applied + Fixes https://github.com/harfbuzz/harfbuzz/issues/1357 src/hb-ot-shape.cc | 4 ++-- @@ -7830,9 +8912,8 @@ Author: Behdad Esfahbod Date: Tue Nov 13 20:48:46 2018 -0500 Don't retry creating again and again in lazy_loader if create failed - - Still does that if get_null() returns nullptr. Our shaper data - objects + + Still does that if get_null() returns nullptr. Our shaper data objects are like that. Shrug. src/hb-machinery.hh | 14 ++++++++++---- @@ -7844,7 +8925,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 19:50:25 2018 -0500 Merge pull request #1382 from punchcutter/master - + Change USE Category for Grantha Virama commit 2092f595c7a4c591cace41cb99d31620fa6d5fa4 @@ -7853,7 +8934,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 19:49:06 2018 -0500 Merge pull request #1380 from kbrow1i/cygwin - + Don't use Win32 API on Cygwin commit c565fc3fb3b14c02e30af28b9d4d4289b0d2e162 @@ -7894,7 +8975,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 11:45:12 2018 -0500 Make atomic types' internal values non-mutable - + This resulted from confusion previously... src/hb-atomic.hh | 10 +++++----- @@ -7917,7 +8998,7 @@ Author: Ken Brown Date: Mon Nov 12 21:05:39 2018 -0500 Don't use Win32 API on Cygwin - + Cygwin is a Posix platform to the extent possible. It should use the Posix API except in special circumstances. @@ -7942,12 +9023,11 @@ Author: Behdad Esfahbod Date: Mon Nov 12 19:26:01 2018 -0500 [shape-plan] Implement fine-grained caching plans with user-features - + Only tag, value, and global-ness of features are considered, not their start/end offsets. - src/hb-shape-plan.cc | 69 - ++++++++++++++++++++++++++++++---------------------- + src/hb-shape-plan.cc | 69 ++++++++++++++++++++++++++++++---------------------- src/hb-shape-plan.hh | 17 ++----------- 2 files changed, 42 insertions(+), 44 deletions(-) @@ -7955,8 +9035,7 @@ commit cc8428756a1b18b0445c2c5fbb38e05453693dad Author: Behdad Esfahbod Date: Mon Nov 12 18:48:10 2018 -0500 - [shape-plan] Cache shape plans with variations based on variation - indices + [shape-plan] Cache shape plans with variations based on variation indices src/hb-aat-map.cc | 4 +--- src/hb-aat-map.hh | 4 +--- @@ -7964,8 +9043,7 @@ Date: Mon Nov 12 18:48:10 2018 -0500 src/hb-ot-map.hh | 6 +++--- src/hb-ot-shape.cc | 13 +++++-------- src/hb-ot-shape.hh | 28 +++++++++++++++++++++++--- - src/hb-shape-plan.cc | 55 - ++++------------------------------------------------ + src/hb-shape-plan.cc | 55 ++++------------------------------------------------ src/hb-shape-plan.hh | 23 ++++++++++++++++++---- 8 files changed, 63 insertions(+), 88 deletions(-) @@ -7983,7 +9061,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 18:05:02 2018 -0500 [shape-plan] Only use shape-plan key to initialize hb_ot_shape_plan_t - + Such that we don't accidentally use info not in the cache key. src/hb-ot-shape.cc | 25 +++++++++++-------------- @@ -8006,8 +9084,7 @@ Date: Mon Nov 12 17:49:15 2018 -0500 [shape-plan] Refactor some more - src/hb-shape-plan.cc | 147 - ++++++++++++++++++++++++++++----------------------- + src/hb-shape-plan.cc | 147 ++++++++++++++++++++++++++++----------------------- src/hb-shape-plan.hh | 15 ++++++ 2 files changed, 95 insertions(+), 67 deletions(-) @@ -8025,11 +9102,10 @@ Author: Behdad Esfahbod Date: Mon Nov 12 17:19:45 2018 -0500 [shape-plan] Turn hb_shape_plan_proposal_t into hb_shape_plan_key_t - + And include it in hb_shape_plan_t itself. - src/hb-shape-plan.cc | 206 - +++++++++++++++++++-------------------------------- + src/hb-shape-plan.cc | 206 +++++++++++++++++++-------------------------------- src/hb-shape-plan.hh | 27 +++---- 2 files changed, 92 insertions(+), 141 deletions(-) @@ -8071,8 +9147,7 @@ Date: Mon Nov 12 14:25:18 2018 -0500 [fuzzing] Add new test - ...zz-testcase-minimized-hb-shape-fuzzer-5754863779053568 | Bin 0 -> - 100 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5754863779053568 | Bin 0 -> 100 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 274f4c726f461f49f54a79557d63bf95d22903cf @@ -8105,7 +9180,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 14:11:29 2018 -0500 [kerx] Fix integer overflow in multiply - + Fixes https://oss-fuzz.com/v2/testcase-detail/5754863779053568 src/hb-aat-layout-kerx-table.hh | 2 +- @@ -8126,9 +9201,9 @@ Author: Behdad Esfahbod Date: Mon Nov 12 13:21:14 2018 -0500 [fuzzing] Remove limited-edition build of libraries - + Use normal, production, shared libraries. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1237 src/Makefile.am | 31 ------------------------------- @@ -8140,12 +9215,11 @@ Author: Behdad Esfahbod Date: Mon Nov 12 13:01:22 2018 -0500 [kerx] Protect against stack underflow - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11367 src/hb-aat-layout-kerx-table.hh | 2 +- - ...uzz-testcase-minimized-hb-shape-fuzzer-5691469793329152 | Bin 0 -> - 69 bytes + ...uzz-testcase-minimized-hb-shape-fuzzer-5691469793329152 | Bin 0 -> 69 bytes 2 files changed, 1 insertion(+), 1 deletion(-) commit 41a8bc7fd9399def8f580b02627a77f3972cc0e9 @@ -8208,10 +9282,9 @@ Author: Behdad Esfahbod Date: Sun Nov 11 22:08:48 2018 -0500 Add variation coords to shape_plan proposal - - This is the root cause of bug worked around in - 19e77e01bc13f44138e1d50533327d314dd0a018. - + + This is the root cause of bug worked around in 19e77e01bc13f44138e1d50533327d314dd0a018. + Still no shape plan caching for variations though. src/hb-shape-plan.cc | 2 ++ @@ -8231,7 +9304,7 @@ Author: Behdad Esfahbod Date: Sun Nov 11 21:32:01 2018 -0500 Embed hb_ot_shape_plan_t into hb_shape_plan_t - + No other shaper will need shape_plan_data, by definition. So, remove abstraction layer and always create hb_ot_shape_plan_t as part of hb_shape_plan_t. @@ -8240,8 +9313,7 @@ Date: Sun Nov 11 21:32:01 2018 -0500 src/hb-directwrite.cc | 21 ---------- src/hb-fallback-shape.cc | 22 ----------- src/hb-graphite2.cc | 22 ----------- - src/hb-ot-shape.cc | 99 - ++++++++++++++++++++++-------------------------- + src/hb-ot-shape.cc | 99 ++++++++++++++++++++++-------------------------- src/hb-ot-shape.hh | 21 +++++----- src/hb-shape-plan.cc | 22 ++++++----- src/hb-shape-plan.hh | 3 +- @@ -8296,11 +9368,10 @@ Author: Behdad Esfahbod Date: Sun Nov 11 16:09:38 2018 -0500 Revert "Declare Null() constexpr" - + This reverts commit 442a72d95ab1fb3a47b486d8d1eb68e909d0ffb8. - - Doesn't make sense. No idea how my local compilers where happy - with it! + + Doesn't make sense. No idea how my local compilers where happy with it! src/hb-null.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -8328,7 +9399,7 @@ Author: Behdad Esfahbod Date: Sun Nov 11 15:48:47 2018 -0500 Don't store to null object - + Ouch :). src/hb-machinery.hh | 9 ++++----- @@ -8349,8 +9420,7 @@ Date: Sun Nov 11 12:54:16 2018 -0500 [hdmx] Renames - src/hb-ot-hdmx-table.hh | 46 - +++++++++++++++++++++++----------------------- + src/hb-ot-hdmx-table.hh | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit da6aa3b0333de3f2169a5cfcb33374e1b2fe346e @@ -8387,7 +9457,7 @@ Author: Behdad Esfahbod Date: Sun Nov 11 00:28:47 2018 -0500 [cmap] Port to hb_blob_ptr_t - + Although didn't need it... src/hb-ot-cmap-table.hh | 7 +++---- @@ -8398,7 +9468,7 @@ Author: Behdad Esfahbod Date: Sun Nov 11 00:26:55 2018 -0500 [color] Port to hb_blob_ptr_t - + Fix hb_blob_ptr_t::get_length () as well. src/hb-blob.hh | 2 +- @@ -8432,7 +9502,7 @@ Author: Behdad Esfahbod Date: Sun Nov 11 00:15:08 2018 -0500 [shape-plan] Make null object all zeros - + To remove custom null object next.. src/hb-shape-plan.cc | 8 ++++---- @@ -8454,10 +9524,10 @@ Author: Behdad Esfahbod Date: Sun Nov 11 00:11:28 2018 -0500 [blob] Change null object memory mode to DUPLICATE - + We never rely on that being equal to readonly. Just not being writable. Maybe not even that given that the object is inert. - + In prep for next commit, using default null pool. src/hb-blob.cc | 2 +- @@ -8468,9 +9538,8 @@ Author: Behdad Esfahbod Date: Sat Nov 10 23:52:15 2018 -0500 Add hb_blob_ptr_t - - Use in a couple of places. Push to bots to see how many unhappy - before + + Use in a couple of places. Push to bots to see how many unhappy before I convert the rest. src/hb-blob.hh | 23 +++++++++++++++++++++++ @@ -8494,13 +9563,12 @@ Author: Behdad Esfahbod Date: Sat Nov 10 21:13:13 2018 -0500 [kerx] Fix Format1 tupleKern sanitization - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11312 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11305 src/hb-aat-layout-kerx-table.hh | 6 +++--- - ...uzz-testcase-minimized-hb-shape-fuzzer-5629524117553152 | Bin 0 -> - 93 bytes + ...uzz-testcase-minimized-hb-shape-fuzzer-5629524117553152 | Bin 0 -> 93 bytes 2 files changed, 3 insertions(+), 3 deletions(-) commit f9e0552debc45afedd86c848484bcd169af62dc2 @@ -8536,9 +9604,9 @@ Author: Behdad Esfahbod Date: Sat Nov 10 19:54:08 2018 -0500 Better fix for MSVC 2008 - + Follow up on b4c61130324455bfd42095b01fa14ac901e441f1 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1374 src/hb-machinery.hh | 8 ++++---- @@ -8560,7 +9628,7 @@ Author: Behdad Esfahbod Date: Sat Nov 10 16:35:39 2018 -0500 Try fixing MSVC 2008 build - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1374 src/hb-open-type.hh | 12 ++++++++++-- @@ -8589,9 +9657,9 @@ Author: Behdad Esfahbod Date: Sat Nov 10 15:54:33 2018 -0500 Revert back hb_bytes_t.cmp() to the scheme it was - + But fix UBSan complaint. - + There's nothing in hb_bytes_t that guarantees lexical ordering, and ordering by length first is much faster. @@ -8612,7 +9680,7 @@ Author: Behdad Esfahbod Date: Sat Nov 10 15:38:48 2018 -0500 Fix hb_bytes_t.cmp() - + Ouch! src/hb-dsalgs.hh | 8 +++++--- @@ -8624,7 +9692,7 @@ Author: Behdad Esfahbod Date: Sat Nov 10 15:35:12 2018 -0500 Merge pull request #1376 from ebraminio/minor - + [colr/feat/trak] minor commit 1d82b4761d0a2e2e0be002e8a6bfe060f7b6dec3 @@ -8643,15 +9711,13 @@ Author: Behdad Esfahbod Date: Sat Nov 10 01:56:37 2018 -0500 [qsort] Fix O(N^2) behavior if all array elements are the same - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11327 - + Reported as https://github.com/noporpoise/sort_r/issues/7 - src/hb-dsalgs.hh | 15 - +++++++++++---- - ...-testcase-minimized-hb-shape-fuzzer-5634443633491968 | Bin 0 -> - 41814 bytes + src/hb-dsalgs.hh | 15 +++++++++++---- + ...-testcase-minimized-hb-shape-fuzzer-5634443633491968 | Bin 0 -> 41814 bytes 2 files changed, 11 insertions(+), 4 deletions(-) commit b308aaccf0773e252880b9b887f3d3d1dec00168 @@ -8695,7 +9761,7 @@ Author: Michiharu Ariza Date: Fri Nov 9 08:59:18 2018 -0800 fixed vstem handling (lack thereof) in check_width - + bug exposed by U+2261 equivalence in SourceCodePro-Regular.otf src/hb-cff1-interp-cs.hh | 5 ++++- @@ -8706,7 +9772,7 @@ Author: Behdad Esfahbod Date: Fri Nov 9 10:01:50 2018 -0500 Fix a few MSVC 2008 warnings - + https://github.com/harfbuzz/harfbuzz/issues/1374 src/hb-set.hh | 4 ++-- @@ -8719,7 +9785,7 @@ Author: Behdad Esfahbod Date: Thu Nov 8 14:42:40 2018 -0500 Merge pull request #1358 from ebraminio/lcar - + Hook AAT's lcar to _get_ligature_carets commit b986fead0aee52d219ce85dd49c9109bfaf31801 @@ -8729,8 +9795,7 @@ Date: Mon Nov 5 12:31:58 2018 +0330 Hook AAT's lcar to _get_ligature_carets src/Makefile.sources | 1 + - src/hb-aat-layout-lcar-table.hh | 92 - +++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-lcar-table.hh | 92 +++++++++++++++++++++++++++++++++++++ src/hb-ot-face.hh | 1 + src/hb-ot-layout-gdef-table.hh | 6 +-- src/hb-ot-layout.cc | 17 ++++--- @@ -8756,8 +9821,7 @@ Date: Thu Nov 8 12:17:09 2018 -0500 test/shaping/data/text-rendering-tests/DISABLED | 1 + test/shaping/data/text-rendering-tests/Makefile.sources | 2 +- - .../data/text-rendering-tests/tests/MORX-31.tests | 16 - ++++++++-------- + .../data/text-rendering-tests/tests/MORX-31.tests | 16 ++++++++-------- 3 files changed, 10 insertions(+), 9 deletions(-) commit b989507fa6b36eb9950001d4e28f3946ffbe75f9 @@ -8791,12 +9855,11 @@ Author: Ebrahim Byagowi Date: Thu Nov 8 19:17:02 2018 +0330 [just] Initial table implementation (#1364) - + A starting point, its sanitization is not tested however src/Makefile.sources | 1 + - src/hb-aat-layout-just-table.hh | 416 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-just-table.hh | 416 ++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 1 + 3 files changed, 418 insertions(+) @@ -8806,8 +9869,7 @@ Date: Thu Nov 8 18:53:14 2018 +0330 [aat] Support Lookup>, needed by just and lcar (#1368) - src/hb-aat-layout-common.hh | 57 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-common.hh | 57 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-open-type.hh | 11 +++++++++ 2 files changed, 68 insertions(+) @@ -8825,7 +9887,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 21:58:04 2018 -0500 [aat] Ignore cross-stream offset of deleted-glyphs - + I think it makes sense to accumulate it, but Ned tells me that's what CoreText does. @@ -8837,10 +9899,9 @@ Author: Michiharu Ariza Date: Wed Nov 7 17:58:45 2018 -0800 fixed ends_in_hint bug - + subr ends in hint itself should be regarded as hint - this flag should propagate to its caller if the call itself is at - the end of the caller + this flag should propagate to its caller if the call itself is at the end of the caller src/hb-subset-cff-common.hh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) @@ -8860,7 +9921,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 18:40:48 2018 -0500 Merge pull request #1362 from harfbuzz/cross-kern - + Vastly improve kern/kerx tables, including cross-stream "kerning" commit b18a56a290bf5330e81019b33f15e6951dd86a8b @@ -8891,11 +9952,10 @@ Author: Behdad Esfahbod Date: Wed Nov 7 18:04:53 2018 -0500 [kern] Implement negative state numbers - + Let the fuzzing bots rip this code apart... - src/hb-aat-layout-common.hh | 90 - ++++++++++++++++++++++++++++++----------- + src/hb-aat-layout-common.hh | 90 ++++++++++++++++++++++++++++++----------- src/hb-aat-layout-kerx-table.hh | 10 ----- 2 files changed, 66 insertions(+), 34 deletions(-) @@ -8904,26 +9964,21 @@ Author: Michiharu Ariza Date: Wed Nov 7 14:48:37 2018 -0800 implented no-desubroutinize with CFF2 along with API test - - replaced AdobeVFPrototype.abc.otf with a hinted (maually) & - subroutinized copy + + replaced AdobeVFPrototype.abc.otf with a hinted (maually) & subroutinized copy replaced expected results as well src/hb-cff-interp-dict-common.hh | 4 +- src/hb-cff2-interp-cs.hh | 16 +- src/hb-ot-cff-common.hh | 22 +-- src/hb-subset-cff-common.hh | 64 +++++--- - src/hb-subset-cff2.cc | 180 - ++++++++++++++++++--- + src/hb-subset-cff2.cc | 180 ++++++++++++++++++--- test/api/fonts/AdobeVFPrototype.abc.nohints.otf | Bin 7800 -> 0 bytes - test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7800 -> - 7460 bytes - test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 7152 -> - 6780 bytes + test/api/fonts/AdobeVFPrototype.abc.otf | Bin 7800 -> 7460 bytes + test/api/fonts/AdobeVFPrototype.ac.nohints.otf | Bin 7152 -> 6780 bytes .../fonts/AdobeVFPrototype.ac.nosubrs.nohints.otf | Bin 0 -> 6844 bytes test/api/fonts/AdobeVFPrototype.ac.nosubrs.otf | Bin 0 -> 7060 bytes - test/api/fonts/AdobeVFPrototype.ac.otf | Bin 7336 -> - 6996 bytes + test/api/fonts/AdobeVFPrototype.ac.otf | Bin 7336 -> 6996 bytes test/api/test-subset-cff2.c | 51 +++++- 12 files changed, 271 insertions(+), 66 deletions(-) @@ -8941,17 +9996,15 @@ Author: Behdad Esfahbod Date: Wed Nov 7 17:19:21 2018 -0500 [aat] Remove deleted-glyhs after applying kerx/kern - + Finally: Fixes https://github.com/harfbuzz/harfbuzz/issues/1356 - + Test case: $ ./hb-shape GeezaPro.ttc -u U+0628,U+064A,U+064E,U+0651,U+0629 [u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656] - - The mark positioning (kern table CrossStream kerning) only works - if deleted - glyph (as result of ligation) is still in stream and pushed through - the + + The mark positioning (kern table CrossStream kerning) only works if deleted + glyph (as result of ligation) is still in stream and pushed through the state machine. src/hb-aat-layout-morx-table.hh | 16 ------- @@ -8960,8 +10013,7 @@ Date: Wed Nov 7 17:19:21 2018 -0500 src/hb-ot-layout-gpos-table.hh | 6 +-- src/hb-ot-layout.cc | 60 +++++++++++++++++++++-- src/hb-ot-layout.hh | 23 +++++---- - src/hb-ot-shape.cc | 102 - ++++++++++++++-------------------------- + src/hb-ot-shape.cc | 102 ++++++++++++++-------------------------- 7 files changed, 142 insertions(+), 107 deletions(-) commit 1909072235e59eb80f9169300279b65779b932a4 @@ -8977,11 +10029,9 @@ commit ca23567f41a2d6389f6fd2483a994cf5aa6aeaf8 Author: Behdad Esfahbod Date: Wed Nov 7 16:19:51 2018 -0500 - Disable fallback mark positioning if kern table has cross-stream - kerning - - Happens even if the cross-stream kerning is for cursive attachment - only. Oh well.. + Disable fallback mark positioning if kern table has cross-stream kerning + + Happens even if the cross-stream kerning is for cursive attachment only. Oh well.. src/hb-ot-layout.cc | 6 ++++++ src/hb-ot-layout.hh | 3 +++ @@ -8994,7 +10044,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 16:07:22 2018 -0500 Don't apply both kerx and kern - + Ouch! src/hb-ot-shape.cc | 2 +- @@ -9035,7 +10085,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 15:44:40 2018 -0500 [kerx] Fix peculiar indexing that was needed previously - + Not needed now that we use GPOS attachment for cursive kerx. src/hb-aat-layout-kerx-table.hh | 20 +++++++------------- @@ -9046,11 +10096,10 @@ Author: Behdad Esfahbod Date: Wed Nov 7 15:40:55 2018 -0500 [GPOS] Only mark unsafe-to-break if kerning happened - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1365 - src/hb-ot-layout-gpos-table.hh | 56 - ++++++++++++++++++++++++------------------ + src/hb-ot-layout-gpos-table.hh | 56 ++++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 24 deletions(-) commit 501a364d9bb6c5828f9d660bae8b6e93b158b275 @@ -9067,12 +10116,11 @@ Author: Behdad Esfahbod Date: Wed Nov 7 14:52:36 2018 -0500 [kerx] Implement CrossStream kerning for non-state-machine subtables - + Untested. src/hb-aat-layout-kerx-table.hh | 12 ++++++------ - src/hb-kern.hh | 43 - +++++++++++++++++++++++++++++------------ + src/hb-kern.hh | 43 +++++++++++++++++++++++++++++------------ src/hb-ot-kern-table.hh | 4 ++-- 3 files changed, 39 insertions(+), 20 deletions(-) @@ -9081,7 +10129,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 14:42:15 2018 -0500 [kerx] Disable backwards-kerning for non-state-machine tables - + That's what the spec says for Backwards flag, only applicable to formats 1 and 4. @@ -9095,8 +10143,7 @@ Date: Wed Nov 7 14:38:29 2018 -0500 [kerx] Use GPOS attachment facilities for CrossStream kerning - src/hb-aat-layout-kerx-table.hh | 51 - ++++++++++++++++++++++++++++------------- + src/hb-aat-layout-kerx-table.hh | 51 ++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 16 deletions(-) commit e10a856eb24ae45e301c3ffa778caa4c0a995bb9 @@ -9105,8 +10152,7 @@ Date: Wed Nov 7 14:11:48 2018 -0500 [kerx] Format - src/hb-aat-layout-kerx-table.hh | 58 - ++++++++++++++++++++--------------------- + src/hb-aat-layout-kerx-table.hh | 58 ++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 30 deletions(-) commit 649cc3ef2773950b0b5884d9d1caf414aac888bf @@ -9135,7 +10181,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 13:51:17 2018 -0500 [kerx] Implement tupleKerning for Format1 - + Untested. src/hb-aat-layout-kerx-table.hh | 7 +++---- @@ -9157,8 +10203,7 @@ Date: Wed Nov 7 13:40:22 2018 -0500 [kern/kerx] Share KernTable, renamed to KerxTable src/hb-aat-layout-kerx-table.hh | 77 ++++++++++++++++++++++-------- - src/hb-ot-kern-table.hh | 103 - ++-------------------------------------- + src/hb-ot-kern-table.hh | 103 ++-------------------------------------- 2 files changed, 61 insertions(+), 119 deletions(-) commit c038f5be6b70b8edffc701dd3e4e3cd08d14e2f0 @@ -9177,8 +10222,7 @@ Date: Wed Nov 7 13:33:23 2018 -0500 [kern/kerx] More towards sharing KernTable src/hb-aat-layout-kerx-table.hh | 48 ++++++++++++++++++--------------- - src/hb-ot-kern-table.hh | 59 - ++++++++++++++++++++++++++++------------- + src/hb-ot-kern-table.hh | 59 ++++++++++++++++++++++++++++------------- 2 files changed, 67 insertions(+), 40 deletions(-) commit 89ec095979bde94bd203ed2c394f6e40629e9e78 @@ -9205,8 +10249,7 @@ Date: Wed Nov 7 12:57:10 2018 -0500 [kern] Move code - src/hb-ot-kern-table.hh | 118 - +++++++++++++++++++++++++----------------------- + src/hb-ot-kern-table.hh | 118 +++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 56 deletions(-) commit 1ff300464a1075b8cd5311970afbbcf4bb3b6f3d @@ -9262,12 +10305,11 @@ Author: Behdad Esfahbod Date: Wed Nov 7 12:19:52 2018 -0500 [kern/kerx] Share Format2 - + This, enables Format2 for kern table, which was disabled before. src/hb-aat-layout-kerx-table.hh | 6 ++++ - src/hb-ot-kern-table.hh | 73 - +---------------------------------------- + src/hb-ot-kern-table.hh | 73 +---------------------------------------- 2 files changed, 7 insertions(+), 72 deletions(-) commit 8faec4e33486616fdc0d690ad80d4a38a73c8182 @@ -9336,8 +10378,7 @@ Date: Wed Nov 7 11:28:36 2018 -0500 [kern/kerx] Share Format1 subtable src/hb-aat-layout-kerx-table.hh | 9 +- - src/hb-ot-kern-table.hh | 187 - +--------------------------------------- + src/hb-ot-kern-table.hh | 187 +--------------------------------------- 2 files changed, 4 insertions(+), 192 deletions(-) commit a244190afa90ac253724a2ff23a3bdf0c507d0e6 @@ -9363,7 +10404,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 11:21:09 2018 -0500 [kern/kerx] Enable crossStream kerning in vertical - + CoreText doesn't, but no reason we shouldn't do. src/hb-aat-layout-kerx-table.hh | 8 ++++---- @@ -9395,8 +10436,7 @@ Date: Wed Nov 7 11:02:04 2018 -0500 [kerx] Towards sharing Format1 - src/hb-aat-layout-kerx-table.hh | 61 - +++++++++++++++++++++++++++++++---------- + src/hb-aat-layout-kerx-table.hh | 61 +++++++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 14 deletions(-) commit e890753ebbf0d20c1c86796837918d530610df3b @@ -9415,8 +10455,7 @@ Date: Wed Nov 7 10:45:25 2018 -0500 [kern/kerx] Share Format0 src/hb-aat-layout-kerx-table.hh | 22 +++++++++++++----- - src/hb-ot-kern-table.hh | 50 - ++++++----------------------------------- + src/hb-ot-kern-table.hh | 50 ++++++----------------------------------- 2 files changed, 23 insertions(+), 49 deletions(-) commit c97dde5d55929df394fbe57c1ba1a725592c6732 @@ -9425,8 +10464,7 @@ Date: Wed Nov 7 10:39:39 2018 -0500 [kern/kerx] Towards merge more - src/hb-aat-layout-kerx-table.hh | 75 - ++++++++++++++++++++++++++++++----------- + src/hb-aat-layout-kerx-table.hh | 75 ++++++++++++++++++++++++++++++----------- src/hb-kern.hh | 33 ------------------ src/hb-ot-kern-table.hh | 7 ++-- 3 files changed, 58 insertions(+), 57 deletions(-) @@ -9449,8 +10487,7 @@ Date: Wed Nov 7 10:25:25 2018 -0500 src/Makefile.sources | 1 + src/hb-aat-layout-kerx-table.hh | 5 +- - src/hb-kern.hh | 153 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-kern.hh | 153 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-kern-table.hh | 115 +----------------------------- src/hb-ot-shape-fallback.cc | 2 +- 5 files changed, 157 insertions(+), 119 deletions(-) @@ -9461,8 +10498,7 @@ Date: Wed Nov 7 10:19:46 2018 -0500 [kerx] Towards sharing subtables with kern - src/hb-aat-layout-kerx-table.hh | 41 - +++++++++++++++++++++++------------------ + src/hb-aat-layout-kerx-table.hh | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) commit befac337ca2c705e2cea60a9a92e40e0dbbc40aa @@ -9470,7 +10506,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 09:53:02 2018 -0500 [kern] Remove Override business - + Not used in any fonts. Not well-specified when mixing kerning with Cross-Stream positioning. @@ -9482,7 +10518,7 @@ Author: Behdad Esfahbod Date: Wed Nov 7 09:16:53 2018 -0500 [post] Return true on truncation - + Client can check that buffer was completely filled out and reallocate. src/hb-ot-post-table.hh | 7 +++---- @@ -9520,14 +10556,14 @@ Author: HinTak Date: Wed Nov 7 13:19:36 2018 +0000 Use non-GRID-fitted values for metrics (#1363) - + * Use non-GRID-fitted values for metrics - + See freetype/src/base/ftobjs.c:ft_recompute_scaled_metrics() and the usage of GRID_FIT_METRICS inside. - + Fixes https://github.com/behdad/harfbuzz/issues/1262 - + * Update hb-ft.cc src/hb-ft.cc | 6 +++--- @@ -9538,9 +10574,9 @@ Author: Behdad Esfahbod Date: Wed Nov 7 00:25:48 2018 -0500 [kern/kerx] Fix cursive joining - + Tested with Waseem TTC: - + $ hb-shape Waseem.ttc جحخج [F1Jeem_R2=3@0,180+479|M1Khah_L2_R2=2@0,682+403|M1Hah_L2_R2=1@0,1184+403|I1Jeem_L2=0@0,1184+744] @@ -9564,8 +10600,7 @@ Date: Tue Nov 6 21:45:40 2018 -0500 [kerx] Adjust CrossStream kern to match 'kern' table - src/hb-aat-layout-kerx-table.hh | 62 - +++++++++++++++++++++++++++++++---------- + src/hb-aat-layout-kerx-table.hh | 62 +++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 14 deletions(-) commit 80a33b9ac351d81793f35a92e0255ffbf5ceb8b9 @@ -9573,9 +10608,8 @@ Author: Behdad Esfahbod Date: Tue Nov 6 21:41:28 2018 -0500 [kern] More tweaks - - Solves a mystery or two. I'm fairly confident this is what CoreText - does now. + + Solves a mystery or two. I'm fairly confident this is what CoreText does now. src/hb-ot-kern-table.hh | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) @@ -9585,7 +10619,7 @@ Author: Behdad Esfahbod Date: Tue Nov 6 21:04:40 2018 -0500 [kern] Adjust some more - + Getting closer. So many open questions still... src/hb-ot-kern-table.hh | 36 ++++++++++++++++++++++-------------- @@ -9614,21 +10648,19 @@ Author: Behdad Esfahbod Date: Tue Nov 6 18:35:58 2018 -0500 [kern] In Format1, adjust how kerning is done - + In a series of kerns in one action, kern all but last glyph forward, - and the last one backward. Seems to better match what CoreText - is doing. - + and the last one backward. Seems to better match what CoreText is doing. + Test cases, with GeezaPro Arabic: - + $ ./hb-shape GeezaPro_10_10.ttc -u U+0631,U+0628 [u0628.beh=1+1415|u0631.reh=0@-202,0+700] - + $ ./hb-shape GeezaPro_10_10.ttc -u U+0628,U+064F [u064f.damma=0@0,-250+-250|u0628.beh=0@250,0+1665] - - In a later change, I'll make kern machine avoid producing negative - kerns. + + In a later change, I'll make kern machine avoid producing negative kerns. src/hb-ot-kern-table.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -9638,9 +10670,9 @@ Author: Behdad Esfahbod Date: Tue Nov 6 17:16:04 2018 -0500 [kern] XXX Negate CrossKerning sign - + Not sure why, but seems to better match GeezaPro Arabic w CoreText. - + Quite possibly I'm doing something very wrong... src/hb-ot-kern-table.hh | 3 ++- @@ -9652,8 +10684,7 @@ Date: Tue Nov 6 14:48:42 2018 -0500 [kern] Implement CrossStream kerning - src/hb-aat-layout-kerx-table.hh | 75 - ++++++++++++++++++++++++++--------------- + src/hb-aat-layout-kerx-table.hh | 75 ++++++++++++++++++++++++++--------------- src/hb-ot-kern-table.hh | 63 ++++++++++++++++++++++++++++------ 2 files changed, 101 insertions(+), 37 deletions(-) @@ -9662,7 +10693,7 @@ Author: Behdad Esfahbod Date: Tue Nov 6 15:23:18 2018 -0500 [kern] Improve Format 2 - + Still disabled. src/hb-aat-layout-common.hh | 20 +++++++++----------- @@ -9738,8 +10769,7 @@ Date: Tue Nov 6 12:07:15 2018 -0500 [kern] Refactor to include header in each subtable type - src/hb-ot-kern-table.hh | 189 - +++++++++++++++++++++++------------------------- + src/hb-ot-kern-table.hh | 189 +++++++++++++++++++++++------------------------- 1 file changed, 91 insertions(+), 98 deletions(-) commit b0da2cd0b9c1346b7cda5997fb799e895e34aace @@ -9765,7 +10795,7 @@ Author: Khaled Hosny Date: Tue Nov 6 18:10:56 2018 +0200 Another missing backlash - + Did this ever work? test/api/Makefile.am | 2 +- @@ -9794,7 +10824,7 @@ Author: Behdad Esfahbod Date: Tue Nov 6 10:49:19 2018 -0500 [util] Don't terminate string after a a 0 in -u - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1361 util/options.cc | 4 +++- @@ -9861,7 +10891,7 @@ Author: Ebrahim Byagowi Date: Tue Nov 6 11:17:14 2018 +0330 Fix link issue of some of the bots - + e.g. https://circleci.com/gh/harfbuzz/harfbuzz/52410 src/hb-ot-layout.cc | 2 +- @@ -9872,7 +10902,7 @@ Author: Ebrahim Byagowi Date: Tue Nov 6 09:16:28 2018 +0330 [mort] Fix table detection logic - + mort really needs some initial tests at least. src/hb-aat-layout.cc | 2 +- @@ -9903,7 +10933,7 @@ Author: Behdad Esfahbod Date: Mon Nov 5 23:26:29 2018 -0500 [ot-layout] Simplify GSUB/GPOS access - + This concludes simplifying table access to face->table.XXXX. src/hb-ot-layout.cc | 31 +++++++++++++------------------ @@ -9975,11 +11005,10 @@ Author: Behdad Esfahbod Date: Mon Nov 5 22:58:43 2018 -0500 [ot-face] Simplify table access - + Yoohoo! - src/hb-aat-layout.cc | 107 - ++++++++++----------------------------------------- + src/hb-aat-layout.cc | 107 ++++++++++----------------------------------------- src/hb-ot-color.cc | 66 ++++++++----------------------- src/hb-ot-layout.cc | 20 ++-------- src/hb-ot-math.cc | 47 ++++++++-------------- @@ -9992,7 +11021,7 @@ Author: Behdad Esfahbod Date: Mon Nov 5 22:39:50 2018 -0500 [ot-face] Include hb-ot-face directly in hb_face_t - + Simplifying access coming next. src/hb-face.cc | 4 ++++ @@ -10040,8 +11069,7 @@ Date: Mon Nov 5 15:03:18 2018 -0500 [fuzzing] Fuzz glyph-id etc in test-ot-face - test/api/test-ot-face.c | 57 - +++++++++++++++++++++-------------------- + test/api/test-ot-face.c | 57 +++++++++++++++++++++-------------------- test/fuzzing/hb-shape-fuzzer.cc | 19 +------------- 2 files changed, 30 insertions(+), 46 deletions(-) @@ -10059,11 +11087,10 @@ Author: Behdad Esfahbod Date: Mon Nov 5 13:45:12 2018 -0500 [cmap] Make null accelerator safe - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1146 - src/hb-ot-cmap-table.hh | 50 - ++++++++++++++++++++++++------------------------- + src/hb-ot-cmap-table.hh | 50 ++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit f6fc5574d3dae177a54b10195e0d1f368a74f768 @@ -10125,12 +11152,9 @@ Date: Mon Nov 5 07:59:08 2018 -0800 Makefile.in | 954 -- aclocal.m4 | 1496 --- ar-lib | 270 - - autom4te.cache/output.0 | 23333 - ---------------------------------------------- - autom4te.cache/output.1 | 23333 - ---------------------------------------------- - autom4te.cache/output.2 | 23333 - ---------------------------------------------- + autom4te.cache/output.0 | 23333 ---------------------------------------------- + autom4te.cache/output.1 | 23333 ---------------------------------------------- + autom4te.cache/output.2 | 23333 ---------------------------------------------- autom4te.cache/requests | 555 -- autom4te.cache/traces.0 | 3823 -------- autom4te.cache/traces.1 | 1229 --- @@ -10142,8 +11166,7 @@ Date: Mon Nov 5 07:59:08 2018 -0800 config.log | 1560 ---- config.status | 2420 ----- config.sub | 1807 ---- - configure | 23333 - ---------------------------------------------- + configure | 23333 ---------------------------------------------- depcomp | 791 -- install-sh | 501 - libtool | 11805 ----------------------- @@ -10184,76 +11207,43 @@ Author: Michiharu Ariza Date: Sun Nov 4 13:12:20 2018 -0800 added desubroutinize full font test profiles & expected fonts - - modified subset_test_suite.py to apply desubroutinize profiles to - CFF only (not to TT) - - ...urceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 3640 -> - 3784 bytes - .../SourceSansPro-Regular.default.61,62,63.otf | Bin 3400 -> - 3496 bytes - .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 3596 -> - 3612 bytes - ...sPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> - 3640 bytes - .../SourceSansPro-Regular.desubroutinize.61,62,63.otf | Bin 0 -> - 3400 bytes - ...eSansPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> - 3596 bytes - ...eSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 3480 -> - 3564 bytes - .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 3276 -> - 3340 bytes - ...ourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 3448 -> - 3464 bytes - ...r.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> - 3480 bytes - ...Pro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 0 -> - 3276 bytes - ...gular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> - 3448 bytes - ...-Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> - 6324 bytes - ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> - 6568 bytes - .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5428 -> - 5500 bytes - ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> - 6780 bytes - .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 5196 -> - 5248 bytes + + modified subset_test_suite.py to apply desubroutinize profiles to CFF only (not to TT) + + ...urceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 3640 -> 3784 bytes + .../SourceSansPro-Regular.default.61,62,63.otf | Bin 3400 -> 3496 bytes + .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 3596 -> 3612 bytes + ...sPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> 3640 bytes + .../SourceSansPro-Regular.desubroutinize.61,62,63.otf | Bin 0 -> 3400 bytes + ...eSansPro-Regular.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> 3596 bytes + ...eSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 3480 -> 3564 bytes + .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 3276 -> 3340 bytes + ...ourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 3448 -> 3464 bytes + ...r.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf | Bin 0 -> 3480 bytes + ...Pro-Regular.drop-hints.desubroutinize.61,62,63.otf | Bin 0 -> 3276 bytes + ...gular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf | Bin 0 -> 3448 bytes + ...-Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 6248 -> 6324 bytes + ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6432 -> 6568 bytes + .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 5428 -> 5500 bytes + ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6552 -> 6780 bytes + .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 5196 -> 5248 bytes ....otf => SourceHanSans-Regular.desubroutinize..otf} | Bin - ...r.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> - 6248 bytes - ...r.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> - 6432 bytes - ...urceHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 0 -> - 5428 bytes - ...r.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> - 6552 bytes - .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 0 -> - 5196 bytes - ...gular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6076 -> - 6132 bytes - ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6180 -> - 6304 bytes - .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5312 -> - 5344 bytes - ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6248 -> - 6472 bytes - .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5088 -> - 5140 bytes + ...r.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6248 bytes + ...r.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6432 bytes + ...urceHanSans-Regular.desubroutinize.61,63,65,6B.otf | Bin 0 -> 5428 bytes + ...r.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6552 bytes + .../SourceHanSans-Regular.desubroutinize.660E.otf | Bin 0 -> 5196 bytes + ...gular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 6076 -> 6132 bytes + ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 6180 -> 6304 bytes + .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 5312 -> 5344 bytes + ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 6248 -> 6472 bytes + .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 5088 -> 5140 bytes ...rceHanSans-Regular.drop-hints.desubroutinize..otf} | Bin - ...s.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> - 6076 bytes - ...s.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> - 6180 bytes - ...-Regular.drop-hints.desubroutinize.61,63,65,6B.otf | Bin 0 -> - 5312 bytes - ...s.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> - 6248 bytes - ...HanSans-Regular.drop-hints.desubroutinize.660E.otf | Bin 0 -> - 5140 bytes + ...s.desubroutinize.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6076 bytes + ...s.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6180 bytes + ...-Regular.drop-hints.desubroutinize.61,63,65,6B.otf | Bin 0 -> 5312 bytes + ...s.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6248 bytes + ...HanSans-Regular.drop-hints.desubroutinize.660E.otf | Bin 0 -> 5140 bytes test/subset/data/profiles/desubroutinize.txt | 1 + .../data/profiles/drop-hints-desubroutinize.txt | 2 ++ test/subset/generate-expected-outputs.py | 1 - @@ -10269,8 +11259,7 @@ Date: Sun Nov 4 12:58:02 2018 -0500 src/hb-aat-layout-ankr-table.hh | 2 ++ src/hb-aat-layout-common.hh | 31 +++++++++--------------------- src/hb-aat-layout-kerx-table.hh | 16 ++++++++-------- - src/hb-aat-layout.cc | 42 - +++++++++++++++++++++++++++++++++++++++-- + src/hb-aat-layout.cc | 42 +++++++++++++++++++++++++++++++++++++++-- src/hb-ot-kern-table.hh | 1 - src/hb-static.cc | 1 - 6 files changed, 59 insertions(+), 34 deletions(-) @@ -10280,7 +11269,7 @@ Author: Behdad Esfahbod Date: Sun Nov 4 02:47:34 2018 -0500 [test] Call test-ot-face.c test from hb-shape-fuzzer - + Should increase coverage... test/api/test-ot-face.c | 28 ++++++++++++++++++---------- @@ -10302,7 +11291,7 @@ Author: Behdad Esfahbod Date: Sun Nov 4 02:25:07 2018 -0500 Clean up buffer->swap_buffers() calls - + That function checks for buffer->successful already. No need to check at call site. @@ -10323,15 +11312,13 @@ Author: Michiharu Ariza Date: Sat Nov 3 22:42:22 2018 -0700 CFF1 no-desubr fixes - - make sure charstring/subrs not ending with endchar/return handled - correctly + + make sure charstring/subrs not ending with endchar/return handled correctly if no local subrs, skip serializing Subrs op in Private misc fixes src/hb-ot-cff-common.hh | 13 +++++++++- - src/hb-subset-cff-common.hh | 59 - +++++++++++++++++++++++---------------------- + src/hb-subset-cff-common.hh | 59 +++++++++++++++++++++++---------------------- src/hb-subset-cff1.cc | 27 +++++++++++++++------ 3 files changed, 62 insertions(+), 37 deletions(-) @@ -10358,9 +11345,9 @@ Author: Behdad Esfahbod Date: Sat Nov 3 21:38:24 2018 -0400 Revert "Add operator char * to the naked array types as well" - + This reverts commit db889c182ee5f54127285bfaab5bc94dafe46bda. - + Was resulting in ambigious overloads... src/hb-dsalgs.hh | 4 +--- @@ -10383,8 +11370,7 @@ Date: Sat Nov 3 20:50:56 2018 -0400 [test] Add test for empty face test/api/Makefile.am | 1 + - test/api/test-ot-face.c | 94 - +++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-ot-face.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) commit 1da4de7e7b71dfde734cb77ec6acb31f574585f2 @@ -10392,9 +11378,8 @@ Author: Michiharu Ariza Date: Sat Nov 3 15:41:29 2018 -0700 fix for subset fuzzer failure - - A called subr must be freshly parsed or completely parsed. otherwise - the prevoius parse must have terminated prematurely + + A called subr must be freshly parsed or completely parsed. otherwise the prevoius parse must have terminated prematurely src/hb-subset-cff1.cc | 3 +++ 1 file changed, 3 insertions(+) @@ -10404,9 +11389,9 @@ Author: Behdad Esfahbod Date: Sat Nov 3 16:15:30 2018 -0400 Fix null accelerator's - + Fixes all except for cmap. To be done separately. - + Part of https://github.com/harfbuzz/harfbuzz/issues/1146 src/hb-ot-color-cbdt-table.hh | 10 ++-------- @@ -10452,7 +11437,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 15:49:37 2018 -0400 [blob] Allow null parent in create_sub_blob() - + Like font and unicode. src/hb-blob.cc | 2 +- @@ -10463,7 +11448,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 15:24:14 2018 -0400 Add hb_nonnull_ptr_t - + Towards fixing https://github.com/harfbuzz/harfbuzz/issues/1146 src/hb-null.hh | 28 ++++++++++++++++++++++++++++ @@ -10474,7 +11459,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 15:14:57 2018 -0400 [kern] Third try fix access violation in Format3 - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245 src/hb-ot-kern-table.hh | 1 - @@ -10485,7 +11470,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 15:06:45 2018 -0400 [kern] Really fix access violation in Format3 - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245 src/hb-ot-kern-table.hh | 2 +- @@ -10509,7 +11494,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 14:58:54 2018 -0400 [kern] Fix access violation in Format3 - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11245 src/hb-ot-kern-table.hh | 6 +++++- @@ -10520,7 +11505,7 @@ Author: Behdad Esfahbod Date: Sat Nov 3 14:51:38 2018 -0400 Port objects to use header.writable instead of immutable - + Saves 4 or 8 bytes per object on 64bit archs. src/hb-blob.cc | 12 ++++-------- @@ -10550,8 +11535,7 @@ Date: Sat Nov 3 22:28:30 2018 +0330 [BASE] Improvements (#1347) - src/hb-ot-layout-base-table.hh | 610 - ++++++++++++++++++----------------------- + src/hb-ot-layout-base-table.hh | 610 ++++++++++++++++++----------------------- src/hb-ot-layout.cc | 65 ++++- src/hb-ot-layout.h | 16 -- test/api/Makefile.am | 1 + @@ -10565,8 +11549,7 @@ Date: Sat Nov 3 13:03:36 2018 +0330 [fuzz] A new testcase - ...uzz-testcase-minimized-hb-shape-fuzzer-5735679418433536 | Bin 0 -> - 36 bytes + ...uzz-testcase-minimized-hb-shape-fuzzer-5735679418433536 | Bin 0 -> 36 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 34b06d994a79124963d2a7432d0ec945e72bfdbd @@ -10577,8 +11560,7 @@ Date: Fri Nov 2 16:40:20 2018 -0700 src/hb-ot-cff-common.hh | 2 +- src/hb-subset-cff-common.cc | 6 +++--- - test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 2576 -> - 3892 bytes + test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 2576 -> 3892 bytes 3 files changed, 4 insertions(+), 4 deletions(-) commit 481fdfdc23f557400ad3aceeceeab07add78f005 @@ -10586,8 +11568,7 @@ Merge: 1bc710a8 2840a104 Author: Michiharu Ariza Date: Fri Nov 2 15:28:09 2018 -0700 - Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz - into cff-subset + Merge branch 'cff-subset' of https://github.com/harfbuzz/harfbuzz into cff-subset commit 1bc710a8c94fbe08ca3a3e535c7b6597a57883df Author: Michiharu Ariza @@ -10597,26 +11578,19 @@ Date: Fri Nov 2 15:28:01 2018 -0700 src/hb-cff1-interp-cs.hh | 7 -- src/hb-ot-cff-common.hh | 56 ++++++---- - src/hb-subset-cff-common.hh | 100 - +++++++++-------- + src/hb-subset-cff-common.hh | 100 +++++++++-------- src/hb-subset-cff1.cc | 53 ++++----- - .../fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 3892 -> - 2576 bytes + .../fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 3892 -> 2576 bytes .../SourceHanSans-Regular.41,4C2E.nohints.otf | Bin 0 -> 2380 bytes ...urceHanSans-Regular.41,4C2E.nosubrs.nohints.otf | Bin 0 -> 2360 bytes .../SourceHanSans-Regular.41,4C2E.nosubrs.otf | Bin 0 -> 2548 bytes - test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2548 -> - 2576 bytes - test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 3412 -> - 1812 bytes - .../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 3228 -> - 1592 bytes + test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 2548 -> 2576 bytes + test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 3412 -> 1812 bytes + .../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 3228 -> 1592 bytes .../SourceSansPro-Regular.ac.nosubrs.nohints.otf | Bin 0 -> 1540 bytes .../api/fonts/SourceSansPro-Regular.ac.nosubrs.otf | Bin 0 -> 1632 bytes - test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 3332 -> - 1708 bytes - test/api/test-subset-cff1.c | 122 - +++++++++++++++++++++ + test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 3332 -> 1708 bytes + test/api/test-subset-cff1.c | 122 +++++++++++++++++++++ 15 files changed, 232 insertions(+), 106 deletions(-) commit 2c68f34bddbe506d0b22948562f2f59b9a5b6050 @@ -10624,7 +11598,7 @@ Author: Khaled Hosny Date: Fri Nov 2 23:06:00 2018 +0200 [os2] Capitalize table tag and struct - + Other tables follow the case of the OT tag, except this one. src/hb-ot-hmtx-table.hh | 6 +++--- @@ -10637,14 +11611,13 @@ Author: Behdad Esfahbod Date: Fri Nov 2 14:47:42 2018 -0400 [kern] Implement Format1 - + Also, implement backwards kerning for Format1 in kern and kerx. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1350 src/hb-aat-layout-kerx-table.hh | 11 +++- - src/hb-ot-kern-table.hh | 127 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-kern-table.hh | 127 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 2 deletions(-) commit 46b3885c1a8ea3b85efbdd1704edcee385797c5d @@ -10670,7 +11643,7 @@ Author: Behdad Esfahbod Date: Fri Nov 2 13:57:41 2018 -0400 [kern] Minor - + We like check_struct() more. src/hb-ot-kern-table.hh | 5 +++-- @@ -10681,7 +11654,7 @@ Author: Behdad Esfahbod Date: Fri Nov 2 13:47:33 2018 -0400 Remove pointer cast operators from ArrayOf<> - + ArrayOf<>, unlike UnsizedArrayOf<>, has data before the array. This was confusing. Remove. @@ -10703,8 +11676,7 @@ Date: Fri Nov 2 13:23:54 2018 -0400 [kern] Push apply loop to each subtable - src/hb-ot-kern-table.hh | 153 - ++++++++++++++++++++++++++++++++++++++---------- + src/hb-ot-kern-table.hh | 153 ++++++++++++++++++++++++++++++++++++++---------- src/hb-ot-layout.cc | 28 ++++++--- src/hb-ot-layout.hh | 8 ++- src/hb-ot-shape.cc | 2 +- @@ -10715,12 +11687,11 @@ Author: Behdad Esfahbod Date: Fri Nov 2 12:47:55 2018 -0400 [kern] Remove accelerator - + It wasn't doing anything. src/hb-ot-face.hh | 2 +- - src/hb-ot-kern-table.hh | 55 - ++++++++++++++----------------------------------- + src/hb-ot-kern-table.hh | 55 ++++++++++++++----------------------------------- src/hb-ot-layout.cc | 4 ++-- 3 files changed, 18 insertions(+), 43 deletions(-) @@ -10758,11 +11729,10 @@ Author: Behdad Esfahbod Date: Fri Nov 2 11:56:55 2018 -0400 [kern] Implement Format3 - + Untested. - src/hb-ot-kern-table.hh | 51 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-kern-table.hh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit c6ef5dbd5c40cc8934756456221e080012a82530 @@ -10819,7 +11789,7 @@ Author: Michiharu Ariza Date: Thu Nov 1 17:25:23 2018 -0700 added hb_subset_input_set_desubroutinize API - + hooked up with CFF1 subroutinizer a renaming @@ -10949,7 +11919,7 @@ Author: Michiharu Ariza Date: Wed Oct 31 22:30:34 2018 -0700 CFF1 no-desubroutinize + no-hinting - + no-desubroutinize option is disabled for now code cleanup (esp. CFF1 width handling) bug fixes & renaming @@ -10962,8 +11932,7 @@ Date: Wed Oct 31 22:30:34 2018 -0700 src/hb-ot-cff-common.hh | 85 ++--- src/hb-ot-cff1-table.hh | 20 +- src/hb-ot-cff2-table.hh | 25 +- - src/hb-subset-cff-common.hh | 702 - ++++++++++++++++++++++++++++++++++++--- + src/hb-subset-cff-common.hh | 702 ++++++++++++++++++++++++++++++++++++--- src/hb-subset-cff1.cc | 242 +++++++++++--- src/hb-subset-cff2.cc | 45 +-- src/hb-subset-input.hh | 1 + @@ -10978,7 +11947,7 @@ Author: Behdad Esfahbod Date: Wed Oct 31 19:05:53 2018 -0700 [aat] Implement 'aalt' mapping - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1160 src/hb-aat-map.cc | 8 ++++++++ @@ -10989,7 +11958,7 @@ Author: Behdad Esfahbod Date: Wed Oct 31 19:00:11 2018 -0700 [aat] Add 'afrc' feature mapping - + https://github.com/harfbuzz/harfbuzz/issues/1342#issuecomment-434829028 src/hb-aat-layout.cc | 1 + @@ -11000,7 +11969,7 @@ Author: Behdad Esfahbod Date: Wed Oct 31 18:51:45 2018 -0700 [aat] Fallback to old style "Letter Case" small caps - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1342 src/hb-aat-layout-morx-table.hh | 8 ++++++++ @@ -11020,11 +11989,10 @@ Author: Behdad Esfahbod Date: Wed Oct 31 18:21:48 2018 -0700 Implement space fallback in vertical direction - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1343 - src/hb-ot-shape-fallback.cc | 36 - +++++++++++++++++++-------- + src/hb-ot-shape-fallback.cc | 36 +++++++++++++++++++-------- test/shaping/data/in-house/tests/spaces.tests | 17 +++++++++++++ 2 files changed, 42 insertions(+), 11 deletions(-) @@ -11089,7 +12057,7 @@ Author: Behdad Esfahbod Date: Wed Oct 31 13:19:42 2018 -0700 Improve blob->as<> - + It's true that blob->as<> should only be called on null or sanitized data. But this change is safe, so keep it. @@ -11102,7 +12070,7 @@ Author: Behdad Esfahbod Date: Wed Oct 31 10:42:49 2018 -0700 [set] Warning fix with gcc 8.1 - + https://github.com/harfbuzz/harfbuzz/pull/1334 src/hb-dsalgs.hh | 6 ++++-- @@ -11113,11 +12081,9 @@ commit 850a7af3a419c6c4ab92bff59991758a2951d41f Author: Ebrahim Byagowi Date: Wed Oct 31 14:20:23 2018 +0330 - [ot-color-test] Remove the non-working exact strike size storing - (#1339) + [ot-color-test] Remove the non-working exact strike size storing (#1339) - src/test-ot-color.cc | 135 - +++++++++++++++++++++++---------------------------- + src/test-ot-color.cc | 135 +++++++++++++++++++++++---------------------------- 1 file changed, 62 insertions(+), 73 deletions(-) commit 2e639c47c9d35ff7dc4dde21f744f9ee695a27f3 @@ -11143,10 +12109,10 @@ Author: Behdad Esfahbod Date: Wed Oct 31 01:16:33 2018 -0700 [mort] Make ligatures work - + ./hb-shape Apple_Chancery_10_12.ttf "Th th ll te to tr fr fu fj" [T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098] - + Part of https://github.com/harfbuzz/harfbuzz/issues/1331 src/hb-aat-layout-morx-table.hh | 25 +++++++++++++++++-------- @@ -11158,8 +12124,7 @@ Date: Wed Oct 31 00:36:03 2018 -0700 [mort] More Ligature work - src/hb-aat-layout-morx-table.hh | 54 - ++++++++++++++++++++++++++++++----------- + src/hb-aat-layout-morx-table.hh | 54 ++++++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 14 deletions(-) commit 431c6e496be56e441ee4b9b705f40a1246bdd0d6 @@ -11168,8 +12133,7 @@ Date: Wed Oct 31 00:15:00 2018 -0700 [mort] Some Ligature work - src/hb-aat-layout-morx-table.hh | 38 - +++++++++++++++++++++++++++++++------- + src/hb-aat-layout-morx-table.hh | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) commit 28b68cffe4e5ebf82217ebf439f428431d672af3 @@ -11178,8 +12142,7 @@ Date: Tue Oct 30 23:33:30 2018 -0700 [mort] Implement / adjust Contextual substitution - src/hb-aat-layout-morx-table.hh | 70 - ++++++++++++++++++++++++++++++----------- + src/hb-aat-layout-morx-table.hh | 70 ++++++++++++++++++++++++++++++----------- src/hb-open-type.hh | 7 +++++ 2 files changed, 59 insertions(+), 18 deletions(-) @@ -11234,8 +12197,7 @@ Date: Tue Oct 30 19:42:21 2018 -0700 [mort] More massaging towards mort - src/hb-aat-layout-morx-table.hh | 53 - +++++++++++++++++++++-------------------- + src/hb-aat-layout-morx-table.hh | 53 +++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 26 deletions(-) commit 2d9467340b1498ccc0cd47bf915b84ab12dfa025 @@ -11252,13 +12214,12 @@ Author: Behdad Esfahbod Date: Tue Oct 30 19:26:16 2018 -0700 [mort] Make it compile / hook it up - + Untested. src/hb-aat-layout-common.hh | 11 +++++----- src/hb-aat-layout-morx-table.hh | 2 +- - src/hb-aat-layout.cc | 47 - ++++++++++++++++++++++++++--------------- + src/hb-aat-layout.cc | 47 ++++++++++++++++++++++++++--------------- 3 files changed, 36 insertions(+), 24 deletions(-) commit 933babdc075c27fbcc1b726c3c9b2aa67338c6ad @@ -11275,16 +12236,14 @@ Author: Ebrahim Byagowi Date: Tue Oct 30 18:41:34 2018 +0330 [mort] Bring back mort generalizations - - Started by reverting - https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5 - + + Started by reverting https://github.com/harfbuzz/harfbuzz/commit/1f1c85a5 + Just a starting point, if we agree even mort can come back. src/hb-aat-layout-common.hh | 76 +++++++++++++++++++---- src/hb-aat-layout-kerx-table.hh | 17 ++--- - src/hb-aat-layout-morx-table.hh | 133 - ++++++++++++++++++++++++---------------- + src/hb-aat-layout-morx-table.hh | 133 ++++++++++++++++++++++++---------------- src/hb-aat-layout.cc | 16 ++++- src/hb-ot-face.hh | 1 + 5 files changed, 171 insertions(+), 72 deletions(-) @@ -11294,7 +12253,7 @@ Author: Behdad Esfahbod Date: Tue Oct 30 19:16:00 2018 -0700 Fix build - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1338 src/test-ot-color.cc | 2 +- @@ -11315,8 +12274,7 @@ Date: Tue Oct 30 15:52:26 2018 -0700 2.1.0 - NEWS | 81 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + NEWS | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ RELEASING.md | 3 +- configure.ac | 2 +- docs/harfbuzz-docs.xml | 1 + @@ -11338,8 +12296,7 @@ commit 0e1ad5a075c6858ca60bad0e2da58b5256e15815 Author: Garret Rieger Date: Tue Oct 30 11:29:58 2018 -0700 - [subset] Limit the number of scripts and langsys' that should be - checked when collecting features. + [subset] Limit the number of scripts and langsys' that should be checked when collecting features. src/hb-ot-layout-common.hh | 8 ++++++++ src/hb-ot-layout.cc | 11 ++++++++++- @@ -11350,7 +12307,7 @@ Author: Behdad Esfahbod Date: Tue Oct 30 14:04:09 2018 -0700 [name] Rename hb_name_id_t to hb_ot_name_id_t - + https://github.com/harfbuzz/harfbuzz/pull/1254 docs/harfbuzz-sections.txt | 3 +- @@ -11361,8 +12318,7 @@ Date: Tue Oct 30 14:04:09 2018 -0700 src/hb-ot-layout.h | 28 ++++++------- src/hb-ot-name-table.hh | 6 +-- src/hb-ot-name.cc | 38 ++++++++--------- - src/hb-ot-name.h | 98 - +++++++++++++++++++++---------------------- + src/hb-ot-name.h | 98 +++++++++++++++++++++---------------------- test/api/test-ot-color.c | 30 ++++++------- test/api/test-ot-name.c | 8 ++-- 11 files changed, 139 insertions(+), 138 deletions(-) @@ -11382,7 +12338,7 @@ Author: Behdad Esfahbod Date: Tue Oct 30 13:16:07 2018 -0700 [CBDT] Implement Format18 get_extens - + Part of https://github.com/harfbuzz/harfbuzz/issues/1327 src/hb-ot-color-cbdt-table.hh | 10 +++++++++- @@ -11394,16 +12350,14 @@ Date: Tue Oct 30 13:14:56 2018 -0700 [CBDT] Bound checks in reference_png - src/hb-ot-color-cbdt-table.hh | 57 - ++++++++++++++++++++++++++----------------- + src/hb-ot-color-cbdt-table.hh | 57 ++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 23 deletions(-) commit f236f790884d7b5c7afb73768724c360d4ea5212 Author: Nathan Willis Date: Tue Oct 30 11:24:56 2018 -0500 - Docs Makefile: sync SGML list to harfbuzz-docs.xml include - list. Hopefully fixes distcheck failure. + Docs Makefile: sync SGML list to harfbuzz-docs.xml include list. Hopefully fixes distcheck failure. docs/Makefile.am | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) @@ -11419,8 +12373,7 @@ Date: Mon Oct 29 17:10:53 2018 -0500 docs/usermanual-fonts-and-faces.xml | 8 +++++++- docs/usermanual-getting-started.xml | 6 ++++++ docs/usermanual-glyph-information.xml | 8 +++++++- - docs/usermanual-install-harfbuzz.xml | 20 - +++++++++++++++++--- + docs/usermanual-install-harfbuzz.xml | 20 +++++++++++++++++--- docs/usermanual-opentype-features.xml | 8 +++++++- docs/usermanual-shaping-concepts.xml | 6 ++++++ docs/usermanual-what-is-harfbuzz.xml | 12 +++++++----- @@ -11430,8 +12383,7 @@ commit e110032b914db9f417cc152b2beb51cda0a91dd7 Author: Nathan Willis Date: Mon Oct 29 16:42:59 2018 -0500 - Usermanual: update DTD in chapter XML to avoid HTML entity parsing - errors. + Usermanual: update DTD in chapter XML to avoid HTML entity parsing errors. docs/usermanual-what-is-harfbuzz.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) @@ -11452,7 +12404,7 @@ Author: Khaled Hosny Date: Sat Oct 20 16:12:45 2018 +0100 Minor; rewording unsafe-to-break note. - + Co-Authored-By: n8willis docs/usermanual-getting-started.xml | 2 +- @@ -11463,7 +12415,7 @@ Author: Khaled Hosny Date: Sat Oct 20 15:46:04 2018 +0100 Trivial; typo. - + Co-Authored-By: n8willis docs/usermanual-what-is-harfbuzz.xml | 2 +- @@ -11474,7 +12426,7 @@ Author: Khaled Hosny Date: Sat Oct 20 15:45:24 2018 +0100 Minor; simplify example code - + Co-Authored-By: n8willis docs/usermanual-getting-started.xml | 4 +++- @@ -11485,7 +12437,7 @@ Author: Khaled Hosny Date: Sat Oct 20 15:44:51 2018 +0100 Minor: simplify example code - + Co-Authored-By: n8willis docs/usermanual-getting-started.xml | 2 +- @@ -11496,7 +12448,7 @@ Author: Khaled Hosny Date: Sat Oct 20 15:41:00 2018 +0100 Minor; drop 'OpenType' from sentence - + Co-Authored-By: n8willis docs/usermanual-what-is-harfbuzz.xml | 2 +- @@ -11516,7 +12468,7 @@ Author: Khaled Hosny Date: Sat Oct 20 15:00:52 2018 +0100 Use 'glyphs' instead of 'text' - + Co-Authored-By: n8willis docs/harfbuzz-docs.xml | 2 +- @@ -11537,21 +12489,17 @@ Date: Tue Oct 16 17:48:15 2018 -0500 Docs: rename Hello HarfBuzz to Getting Started. - docs/harfbuzz-docs.xml | - 2 +- - docs/{usermanual-hello-harfbuzz.xml => usermanual-getting-started.xml} - | 0 + docs/harfbuzz-docs.xml | 2 +- + docs/{usermanual-hello-harfbuzz.xml => usermanual-getting-started.xml} | 0 2 files changed, 1 insertion(+), 1 deletion(-) commit 9e7efa3f47557a77852a15d89619787fd9933ed1 Author: Nathan Willis Date: Tue Oct 16 17:46:03 2018 -0500 - Docs: usermanual, add API Overview to Hello HarfBuzz chapter. Start - Terminology section. + Docs: usermanual, add API Overview to Hello HarfBuzz chapter. Start Terminology section. - docs/usermanual-hello-harfbuzz.xml | 309 - +++++++++++++++++++++++++------------ + docs/usermanual-hello-harfbuzz.xml | 309 +++++++++++++++++++++++++------------ 1 file changed, 212 insertions(+), 97 deletions(-) commit 3a27e8fb97f716c17b03e3a4a634a4900bcb6045 @@ -11561,8 +12509,7 @@ Date: Fri Oct 12 18:23:26 2018 -0500 Docs: usermanual, add Shaping Concepts chapter. docs/harfbuzz-docs.xml | 5 +- - docs/usermanual-shaping-concepts.xml | 368 - +++++++++++++++++++++++++++++++++++ + docs/usermanual-shaping-concepts.xml | 368 +++++++++++++++++++++++++++++++++++ 2 files changed, 371 insertions(+), 2 deletions(-) commit 9aa865dcc68ec207741e07ba3f7aacf4ac750c1c @@ -11578,11 +12525,9 @@ commit 443f87213272be5ae0579dce4749b2036dfe3815 Author: Nathan Willis Date: Thu Oct 11 15:40:08 2018 -0500 - Docs: move harfbuzz-ng-vs-old discussion down below the TOC; put - in note. + Docs: move harfbuzz-ng-vs-old discussion down below the TOC; put in note. - docs/harfbuzz-docs.xml | 63 - ++++++++++++++++++++++++++++++++++---------------- + docs/harfbuzz-docs.xml | 63 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 20 deletions(-) commit 792af5d254fddcdc4292dffb76b81d65754e65a9 @@ -11591,30 +12536,25 @@ Date: Thu Oct 11 14:05:59 2018 -0500 Docs: flesh out config options in Usermanual:Install chapter. - docs/usermanual-install-harfbuzz.xml | 108 - +++++++++++++++++++++++++++-------- + docs/usermanual-install-harfbuzz.xml | 108 +++++++++++++++++++++++++++-------- 1 file changed, 85 insertions(+), 23 deletions(-) commit 325e2745cfa55f9ef114ee8eeaf7bd8176743822 Author: Nathan Willis Date: Wed Oct 10 17:01:21 2018 -0500 - Docs: add basic config-options section to Usermanual Installation - chapter. + Docs: add basic config-options section to Usermanual Installation chapter. - docs/usermanual-install-harfbuzz.xml | 132 - ++++++++++++++++++++++++++++++++++- + docs/usermanual-install-harfbuzz.xml | 132 ++++++++++++++++++++++++++++++++++- 1 file changed, 131 insertions(+), 1 deletion(-) commit 97c1c46cd2241d77b531a582dd1a2432af976357 Author: Nathan Willis Date: Wed Oct 10 16:38:22 2018 -0500 - Docs: update and linearize build instructions; add installation - overview material. + Docs: update and linearize build instructions; add installation overview material. - docs/usermanual-install-harfbuzz.xml | 229 - ++++++++++++++++++++++++++++------- + docs/usermanual-install-harfbuzz.xml | 229 ++++++++++++++++++++++++++++------- 1 file changed, 188 insertions(+), 41 deletions(-) commit 088755f9e654d2ec638dce0c68d523084b9eaf5a @@ -11623,8 +12563,7 @@ Date: Wed Oct 10 16:37:29 2018 -0500 Docs: update usermanual What Is HarfBuzz material. - docs/usermanual-what-is-harfbuzz.xml | 220 - +++++++++++++++++++++++++++-------- + docs/usermanual-what-is-harfbuzz.xml | 220 +++++++++++++++++++++++++++-------- 1 file changed, 172 insertions(+), 48 deletions(-) commit 0956ab41851d30f50c39c28730cf30ea0bbc5466 @@ -11633,10 +12572,8 @@ Date: Fri Sep 28 17:15:59 2018 -0500 Docs: Move What-HarfBuzz-doesnt-do to Usermanual-what-is-HarfBuzz. - docs/usermanual-hello-harfbuzz.xml | 98 - +++------------------------------ - docs/usermanual-what-is-harfbuzz.xml | 101 - +++++++++++++++++++++++++++++++++-- + docs/usermanual-hello-harfbuzz.xml | 98 +++------------------------------ + docs/usermanual-what-is-harfbuzz.xml | 101 +++++++++++++++++++++++++++++++++-- 2 files changed, 104 insertions(+), 95 deletions(-) commit fd270beedb331c4685e918f5a3ef5789a23ffaeb @@ -11645,8 +12582,7 @@ Date: Fri Sep 28 16:36:38 2018 -0500 Docs: Usermanual- What is HarfBuzz; add intro to shaping concepts. - docs/usermanual-what-is-harfbuzz.xml | 51 - ++++++++++++++++++++++++++++++++++++ + docs/usermanual-what-is-harfbuzz.xml | 51 ++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit d9fd92721002726c4aeaae9cc3a519a41f694e48 @@ -11655,8 +12591,7 @@ Date: Fri Sep 28 16:07:37 2018 -0500 Docs: update Usermanual-What Is HarfBuzz. - docs/usermanual-what-is-harfbuzz.xml | 199 - +++++++++++++++++++++++------------ + docs/usermanual-what-is-harfbuzz.xml | 199 +++++++++++++++++++++++------------ 1 file changed, 130 insertions(+), 69 deletions(-) commit 0af3d176a64c0a57c7acb2a64ce8b9d08f449241 @@ -11664,12 +12599,11 @@ Author: Khaled Hosny Date: Tue Oct 30 17:05:28 2018 +0200 [sbix] Fix memory leak in early return - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11210 src/hb-ot-color-sbix-table.hh | 3 +++ - ...zz-testcase-minimized-hb-shape-fuzzer-5768601332613120 | Bin 0 -> - 108 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5768601332613120 | Bin 0 -> 108 bytes 2 files changed, 3 insertions(+) commit edaa768253cfeb97d614537253f90d47aa93ff6f @@ -11737,7 +12671,7 @@ Author: Behdad Esfahbod Date: Tue Oct 30 00:51:43 2018 -0700 [test/shaping] Spawn one hb-shape per test file - + Speeds up runnings in-house tests from over 20s to 2s. test/shaping/run-tests.py | 32 ++++++++++++-------------------- @@ -11786,9 +12720,8 @@ Author: Behdad Esfahbod Date: Mon Oct 29 23:21:14 2018 -0700 [set/map] Fix uninitialized memory - - I keep forgetting that primitive types are NOT initialized during - construction. :| + + I keep forgetting that primitive types are NOT initialized during construction. :| src/hb-map.hh | 4 ++-- src/hb-object.hh | 1 + @@ -11849,7 +12782,7 @@ Author: Behdad Esfahbod Date: Mon Oct 29 18:05:25 2018 -0700 Remove a few unnecessary hb_auto_t<>'s - + See a85641446c30247c4e948263f0f8c1147ed4efb9 src/hb-coretext.cc | 8 ++++---- @@ -11867,9 +12800,9 @@ Author: Behdad Esfahbod Date: Mon Oct 29 17:37:41 2018 -0700 [set/map/vector] Make constructable, but not copy or assignable - + Disable copy/assign on them, as they shouldn't. - + Make constructor / destructor call init_shallow/fini_shallow, and make those idempotent. So, these three can be constructed on stack now and no init/fini call is needed. As such, @@ -11896,7 +12829,7 @@ Author: Behdad Esfahbod Date: Mon Oct 29 15:58:44 2018 -0700 Remove HB_DISALLOW_COPY_AND_ASSIGN from hb_ot_shape_planner_t - + It was arbitrary that this struct had it and not dozens of others. src/hb-ot-shape.hh | 3 --- @@ -11916,7 +12849,7 @@ Author: Behdad Esfahbod Date: Mon Oct 29 15:16:52 2018 -0700 Try fixing older bots - + Older C++ doesn't allow struct-with-constructor in union. src/hb.hh | 13 ++++++++++++- @@ -11936,12 +12869,12 @@ Author: Behdad Esfahbod Date: Mon Oct 29 14:45:44 2018 -0700 Remove ASSERT_POD - + Newer compilers / language allows structs with constructor in union. So, this was not actually testing anything. Indeed, the recent change in DISALLOW_COPY *is* making some of our types non-POD. That broke some bots. - + Just remove this since it wasn't doing much, and I'd rather have DISALLOW_COPY. @@ -11962,8 +12895,7 @@ Date: Mon Oct 29 14:45:44 2018 -0700 src/hb-subset-input.hh | 1 - src/hb-subset-plan.hh | 1 - src/hb-unicode.hh | 1 - - src/hb.hh | 26 - -------------------------- + src/hb.hh | 26 -------------------------- 18 files changed, 2 insertions(+), 60 deletions(-) commit 6f0454e176efdb8b99c8aa59b5ad765ca455b8d6 @@ -11980,14 +12912,12 @@ Author: Behdad Esfahbod Date: Mon Oct 29 11:25:35 2018 -0700 Make Array types uncopyable-unassignable - + Finally! Catches hard-to-find errors like this: - - - const SortedArrayOf docs = - this+svgDocEntries; - + const SortedArrayOf &docs = - this+svgDocEntries; - + + - const SortedArrayOf docs = this+svgDocEntries; + + const SortedArrayOf &docs = this+svgDocEntries; + We implement this for our array types. This, in turn, trickles down into all types that embed the arrays. So, as long as we define all open-ended structs in terms of Array types (all can be done using @@ -12043,9 +12973,8 @@ Author: Ebrahim Byagowi Date: Mon Oct 29 12:34:33 2018 +0330 Merge pull request #1326 from ebraminio/test-ot-color - - Revive and rename dump-emoji to test-ot-color but use public APIs - instead + + Revive and rename dump-emoji to test-ot-color but use public APIs instead commit 9c692e5b8d195d8e82538594d89865c609d708f3 Author: Ebrahim Byagowi @@ -12054,8 +12983,7 @@ Date: Mon Oct 29 11:36:11 2018 +0330 [test-ot-color] Use public APIs on the tool src/Makefile.am | 9 +++ - src/test-ot-color.cc | 184 - +++++++++++++++++++++++++++++---------------------- + src/test-ot-color.cc | 184 +++++++++++++++++++++++++++++---------------------- 2 files changed, 113 insertions(+), 80 deletions(-) commit fb525f8943b43fe241424c93461bee2b94af28e3 @@ -12073,8 +13001,7 @@ Date: Mon Oct 29 09:40:39 2018 +0330 Revive dump-emoji - src/dump-emoji.cc | 322 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/dump-emoji.cc | 322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 322 insertions(+) commit f10252b4b637b4aa0b74bb75963ae1e1a41b5b9f @@ -12138,8 +13065,7 @@ Date: Sun Oct 28 23:01:57 2018 -0700 [cbdt] Refactor get_strike() - src/hb-ot-color-cbdt-table.hh | 39 - ++++++++++++++++----------------------- + src/hb-ot-color-cbdt-table.hh | 39 ++++++++++++++++----------------------- src/hb-ot-color.cc | 2 +- 2 files changed, 17 insertions(+), 24 deletions(-) @@ -12272,7 +13198,7 @@ Author: Behdad Esfahbod Date: Sun Oct 28 15:44:40 2018 -0700 [sbix] Simplify ppem access - + If struct members are simple and needed publicly, we make them public. src/hb-ot-color-sbix-table.hh | 10 ++++------ @@ -12310,9 +13236,8 @@ Author: Behdad Esfahbod Date: Sun Oct 28 15:33:12 2018 -0700 [sbix] Check glyph id before looking into unsafe array - - That 'Z' at end of imageOffsetsZ is a reminder that you should - check... + + That 'Z' at end of imageOffsetsZ is a reminder that you should check... src/hb-ot-color-sbix-table.hh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) @@ -12341,8 +13266,7 @@ Date: Sun Oct 28 15:20:33 2018 -0700 [color] Remove more dump-emoji cruft - src/hb-ot-color-cbdt-table.hh | 53 - ------------------------------------------- + src/hb-ot-color-cbdt-table.hh | 53 ------------------------------------------- src/hb-ot-color-sbix-table.hh | 13 ----------- 2 files changed, 66 deletions(-) @@ -12353,8 +13277,7 @@ Date: Sun Oct 28 15:18:55 2018 -0700 Remove dump-emoji src/Makefile.am | 9 -- - src/dump-emoji.cc | 322 - ------------------------------------------ + src/dump-emoji.cc | 322 ------------------------------------------ src/hb-ot-color-sbix-table.hh | 4 +- 3 files changed, 3 insertions(+), 332 deletions(-) @@ -12438,8 +13361,7 @@ Date: Sun Oct 28 14:51:18 2018 -0700 [sbix] Select best strike based on ppem - src/hb-ot-color-sbix-table.hh | 50 - ++++++++++++++++++++++++------------------- + src/hb-ot-color-sbix-table.hh | 50 ++++++++++++++++++++++++------------------- src/hb-ot-color.cc | 3 +-- src/hb-ot-font.cc | 2 +- 3 files changed, 30 insertions(+), 25 deletions(-) @@ -12509,8 +13431,7 @@ Date: Sun Oct 28 23:19:04 2018 +0330 [ot-color] Preparation for setting PNG width/height in extents src/dump-emoji.cc | 7 +++--- - src/hb-ot-color-sbix-table.hh | 52 - +++++++++++++++++++++++++++++++++++-------- + src/hb-ot-color-sbix-table.hh | 52 +++++++++++++++++++++++++++++++++++-------- src/hb-ot-color.cc | 14 +++++------- src/hb-ot-font.cc | 7 +++++- 4 files changed, 59 insertions(+), 21 deletions(-) @@ -12570,7 +13491,7 @@ Author: Behdad Esfahbod Date: Sun Oct 28 08:26:30 2018 -0700 [name] Change hb_name_id_t back to unsigned int - + https://github.com/harfbuzz/harfbuzz/commit/d941f66c75fe26f909b1ba248535cc372bbde851#commitcomment-31076011 docs/harfbuzz-sections.txt | 2 -- @@ -12597,7 +13518,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 18:36:24 2018 -0700 [name] Make sure hb_name_id_t is int-sized - + https://github.com/harfbuzz/harfbuzz/commit/d941f66c75fe26f909b1ba248535cc372bbde851#commitcomment-31068905 src/hb-ot-name.h | 4 +++- @@ -12609,8 +13530,7 @@ Date: Sat Oct 27 05:07:54 2018 -0700 [docs] Divide reference API into three chapters - docs/harfbuzz-docs.xml | 213 - +++++++++++++------------------------------------ + docs/harfbuzz-docs.xml | 213 +++++++++++++------------------------------------ 1 file changed, 56 insertions(+), 157 deletions(-) commit 1d40d72f291ed5e11850f8bd51a8562b57de1997 @@ -12642,7 +13562,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 04:50:38 2018 -0700 [docs] Change section titles again - + I think I like the uniform "hb-*" more. src/hb-blob.cc | 2 +- @@ -12675,7 +13595,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 04:28:40 2018 -0700 [docs] Rename section titles to object names - + More useful. src/hb-blob.cc | 2 +- @@ -12709,8 +13629,7 @@ Date: Sat Oct 27 04:21:20 2018 -0700 src/Makefile.sources | 1 - src/hb-graphite2.cc | 2 +- src/hb-ot-layout.h | 42 ++++++++++++++++++++++++- - src/hb-ot-tag.h | 78 - ---------------------------------------------- + src/hb-ot-tag.h | 78 ---------------------------------------------- src/hb-ot.h | 1 - src/hb-uniscribe.cc | 2 +- 8 files changed, 51 insertions(+), 96 deletions(-) @@ -12722,8 +13641,7 @@ Date: Sat Oct 27 04:07:33 2018 -0700 [docs] Fill in some sections docs/harfbuzz-docs.xml | 20 ++++++-------- - docs/harfbuzz-sections.txt | 65 - +++++++++++++++++++--------------------------- + docs/harfbuzz-sections.txt | 65 +++++++++++++++++++--------------------------- src/hb-blob.cc | 13 ++++++++++ src/hb-buffer.cc | 3 ++- src/hb-common.cc | 23 ++++++++++++++++ @@ -12750,7 +13668,7 @@ Author: Ebrahim Byagowi Date: Sat Oct 27 15:04:43 2018 +0330 Merge pull request #1318 from ebraminio/png - + Add a non-hooked _png _svg get emoji blob commit 8180c37df0a856dbc3564c0aefd8b2acab8baf8a @@ -12770,8 +13688,7 @@ commit 9aa6279a2d64ab8057b0d7acbcc77044442c6d0e Author: Ebrahim Byagowi Date: Sat Oct 27 14:24:58 2018 +0330 - [ot-color/png] Try to get image blob from sbix first options.aat - is set + [ot-color/png] Try to get image blob from sbix first options.aat is set src/hb-ot-color.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) @@ -12791,7 +13708,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 03:18:45 2018 -0700 [docs] Fix hb_name_id_t - + Yep, was not recognized without this patch! src/hb-ot-name.h | 2 +- @@ -12803,8 +13720,7 @@ Date: Sat Oct 27 13:32:14 2018 +0330 [ot-color/png] Implement CBDT part - src/hb-ot-color-cbdt-table.hh | 56 - +++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-color-cbdt-table.hh | 56 +++++++++++++++++++++++++++++++++++++++---- src/hb-ot-color.cc | 19 ++------------- src/hb-ot-color.h | 4 ++++ test/api/test-ot-color.c | 25 ++++++++++++++++--- @@ -12824,9 +13740,9 @@ Author: Behdad Esfahbod Date: Sat Oct 27 02:55:52 2018 -0700 [name] Make hb_name_id_t be the enum - + This is like hb_script_t. - + We had this exposed as unsigned int since 2.0.0 release in two APIs, as well as hb_ot_layout_get_size_params() from earlier. But since no one uses those (right?!), let's just fix this now. @@ -12845,7 +13761,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 02:49:32 2018 -0700 [name] Move HB_NAME_ID_INVALID into the enum - + Don't know how to document anonymous enum members. src/hb-ot-name.h | 6 +++--- @@ -12857,8 +13773,7 @@ Date: Sat Oct 27 02:45:57 2018 -0700 [name] Move around - src/hb-ot-name.h | 74 - ++++++++++++++++++++++++++++---------------------------- + src/hb-ot-name.h | 74 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit 3b7e5f131383956e19642d28c938f1bc0d16295f @@ -12866,9 +13781,8 @@ Author: Behdad Esfahbod Date: Sat Oct 27 02:39:20 2018 -0700 [name] Rename hb_ot_name_get_names() to hb_ot_name_list_names() - - And swap return value positions, so can be annotated for - gobject-introspectin. + + And swap return value positions, so can be annotated for gobject-introspectin. docs/harfbuzz-sections.txt | 2 +- src/hb-ot-name.cc | 17 ++++++++--------- @@ -12885,8 +13799,7 @@ Date: Sat Oct 27 02:35:06 2018 -0700 src/hb-common.h | 30 +++++++++++++++++++++++++- src/hb-ot-color.cc | 16 +++++++------- src/hb-ot-layout.cc | 2 +- - src/hb-ot-name.cc | 61 - ++++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-name.cc | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++- src/hb-ot-name.h | 15 +++++++++++++ 5 files changed, 113 insertions(+), 11 deletions(-) @@ -12914,7 +13827,7 @@ Author: Ebrahim Byagowi Date: Sat Oct 27 12:15:25 2018 +0330 [sbix] Set num_glyphs on accelerator - + dump-emoji was broken without it src/hb-ot-color-sbix-table.hh | 1 + @@ -12949,8 +13862,7 @@ Date: Fri Oct 26 23:55:11 2018 +0330 docs/harfbuzz-sections.txt | 2 + src/dump-emoji.cc | 5 ++- src/hb-ot-color-cbdt-table.hh | 27 ++++++++---- - src/hb-ot-color-sbix-table.hh | 98 - +++++++++++++++++++++++++++++++++++++------ + src/hb-ot-color-sbix-table.hh | 98 +++++++++++++++++++++++++++++++++++++------ src/hb-ot-color.cc | 64 ++++++++++++++++++++++++++++ src/hb-ot-color.h | 9 ++++ test/api/test-ot-color.c | 32 ++++++++++++++ @@ -12961,7 +13873,7 @@ Author: Behdad Esfahbod Date: Sat Oct 27 00:06:48 2018 -0700 Remove stale comment - + Ugliness was fixed in 30eab97a0072fbc22d353082249e0e6e546cd86b But yeah, my smell detector was working. Ugliness was buggy. @@ -12974,8 +13886,7 @@ Date: Fri Oct 26 22:09:17 2018 -0700 [docs] Hook up new symbols - docs/harfbuzz-docs.xml | 46 - +++++++++++++++++++++++++++++++++++++++++----- + docs/harfbuzz-docs.xml | 46 +++++++++++++++++++++++++++++++++++++++++----- docs/harfbuzz-sections.txt | 21 +++++++++++++++++++++ src/hb-ot-color.cc | 2 +- 3 files changed, 63 insertions(+), 6 deletions(-) @@ -12985,7 +13896,7 @@ Author: Behdad Esfahbod Date: Fri Oct 26 22:02:17 2018 -0700 [morx] Fix merge_cluster to end at last ligature component - + Don't assume current position was a component in the ligature. src/hb-aat-layout-morx-table.hh | 3 ++- @@ -12996,9 +13907,9 @@ Author: Behdad Esfahbod Date: Fri Oct 26 21:59:20 2018 -0700 [morx] Fix bailing out ligation at end-of-text - + Check was after a move_to, which wouldn't work. - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11147 src/hb-aat-layout-morx-table.hh | 5 +++-- @@ -13009,9 +13920,9 @@ Author: Behdad Esfahbod Date: Fri Oct 26 21:54:07 2018 -0700 Fix invalid memory read - + Buffer might be relocated inside replace_glyphs(). - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=895117 src/hb-ot-shape-normalize.cc | 3 ++- @@ -13022,7 +13933,7 @@ Author: Behdad Esfahbod Date: Fri Oct 26 21:21:18 2018 -0700 [indic] Fix infinite loop - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=863044 src/hb-ot-shape-complex-indic.cc | 2 +- @@ -13033,11 +13944,11 @@ Author: Behdad Esfahbod Date: Fri Oct 26 21:01:11 2018 -0700 Fix bunch of unused parameter warnings - + Show up with gcc -O0. - + There's a few more but those are functions that need to be filled in. - + Maybe this is a lost battle... src/gen-vowel-constraints.py | 4 ++-- @@ -13045,8 +13956,7 @@ Date: Fri Oct 26 21:01:11 2018 -0700 src/hb-aat-layout-kerx-table.hh | 4 ++-- src/hb-aat-layout-morx-table.hh | 10 +++++----- src/hb-face.cc | 2 +- - src/hb-font.cc | 29 - ++++++++++++++-------------- + src/hb-font.cc | 29 ++++++++++++++-------------- src/hb-graphite2.cc | 9 ++++++--- src/hb-machinery.hh | 4 ++-- src/hb-ot-color-cbdt-table.hh | 2 +- @@ -13086,7 +13996,7 @@ Author: Behdad Esfahbod Date: Fri Oct 26 20:31:14 2018 -0700 [fuzzing] Remove HB_NDEBUG - + Not sure why it ever was added. src/Makefile.am | 1 - @@ -13098,8 +14008,7 @@ Date: Fri Oct 26 16:23:50 2018 -0700 [fuzzing] Add more test - ...z-testcase-minimized-harfbuzz_fuzzer-5659690013556736 | Bin 0 -> - 2732 bytes + ...z-testcase-minimized-harfbuzz_fuzzer-5659690013556736 | Bin 0 -> 2732 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit c965eeadbc71943f2336a20dc16ac691c805b90e @@ -13126,8 +14035,7 @@ Date: Wed Oct 24 13:20:19 2018 -0700 [name] Fill out most missing language codes - src/hb-ot-name-language.cc | 114 - +++++++++++++++++++++++---------------------- + src/hb-ot-name-language.cc | 114 +++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 56 deletions(-) commit 622b014faf7bbe7a97f9aff959c434d1664c10d0 @@ -13176,8 +14084,7 @@ Date: Tue Oct 23 23:16:06 2018 -0700 [name] Do record sanitization at run-time - src/hb-dsalgs.hh | 62 - +++++++++++++++++++++++++++---------------------- + src/hb-dsalgs.hh | 62 +++++++++++++++++++++++++++---------------------- src/hb-ot-name-table.hh | 22 +++++++++++------- src/hb-ot-name.cc | 2 +- 3 files changed, 49 insertions(+), 37 deletions(-) @@ -13198,8 +14105,7 @@ Date: Tue Oct 23 22:45:45 2018 -0700 [name] Add src/test-name-table tool to show all font names src/Makefile.am | 17 ++++++++----- - src/test-name-table.cc | 67 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/test-name-table.cc | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 6 deletions(-) commit 7007bd9dff9f8eef3263f1b39327552ff1ebae3f @@ -13208,8 +14114,7 @@ Date: Tue Oct 23 22:44:36 2018 -0700 [name] Rebuild language list, include missing entries - src/hb-ot-name-language.cc | 634 - ++++++++++++++++++++++++++------------------- + src/hb-ot-name-language.cc | 634 ++++++++++++++++++++++++++------------------- 1 file changed, 370 insertions(+), 264 deletions(-) commit 68f172101c1228a7d669d71da1d0eeb96a10565e @@ -13237,8 +14142,7 @@ Date: Tue Oct 23 22:00:19 2018 -0700 [name] Add language mapping src/Makefile.sources | 2 + - src/hb-ot-name-language.cc | 349 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-name-language.cc | 349 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-name-language.hh | 40 ++++++ src/hb-ot-name-table.hh | 21 ++- 4 files changed, 399 insertions(+), 13 deletions(-) @@ -13266,13 +14170,12 @@ Author: Behdad Esfahbod Date: Tue Oct 23 20:51:53 2018 -0700 [name] Hook things up - + Accept Mac Latin name entries as ASCII as well. src/hb-ot-name-table.hh | 24 +++++++++++++++------ src/hb-ot-name.cc | 8 +++++-- - src/hb-utf.hh | 55 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-utf.hh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 8 deletions(-) commit 69f5da0629f1e5a307fc49fe58490aa92d1bd0e2 @@ -13280,14 +14183,12 @@ Author: Behdad Esfahbod Date: Tue Oct 23 20:30:40 2018 -0700 [name] More - - It assumes all names are encoded in UTF16-BE. Other than that, - and not + + It assumes all names are encoded in UTF16-BE. Other than that, and not listing languages correctly, it's *supposed* to work. src/hb-dsalgs.hh | 21 +++++++++++++++++++++ - src/hb-ot-name-table.hh | 37 - ++++++++++++++++++++++++++++++------- + src/hb-ot-name-table.hh | 37 ++++++++++++++++++++++++++++++------- src/hb-ot-name.cc | 12 ++++++++---- src/hb-ot-os2-unicode-ranges.hh | 10 +++++----- src/hb-unicode.cc | 8 ++++---- @@ -13311,8 +14212,7 @@ Date: Tue Oct 23 20:04:05 2018 -0700 src/hb-ot-name.cc | 84 ++++++++++++++++++++++++++++++++++++------ src/hb-ot-name.h | 10 ++--- - src/hb-utf.hh | 107 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-utf.hh | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 182 insertions(+), 19 deletions(-) commit 84811a06a26508effe9f4a9eaf1be15297ecf0cb @@ -13350,8 +14250,7 @@ Date: Tue Oct 16 19:04:48 2018 -0700 [utf] Add UTF16-BE and UTF32-BE src/hb-buffer.cc | 4 +-- - src/hb-utf.hh | 80 - ++++++++++++++++++++++++++++++++------------------------ + src/hb-utf.hh | 80 ++++++++++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 36 deletions(-) commit a826a8730f21ae996ae8f4d12c44dc18b9e8e933 @@ -13437,8 +14336,7 @@ Date: Mon Oct 15 22:42:04 2018 -0700 [name] Finish accelerator sorting - src/hb-ot-name-table.hh | 61 - +++++++++++++++++++++++++++++++++++++++++-------- + src/hb-ot-name-table.hh | 61 +++++++++++++++++++++++++++++++++++++++++-------- src/hb-ot-name.h | 3 ++- 2 files changed, 53 insertions(+), 11 deletions(-) @@ -13450,8 +14348,7 @@ Date: Mon Oct 15 22:22:50 2018 -0700 src/hb-ot-face.cc | 1 + src/hb-ot-face.hh | 7 +++--- - src/hb-ot-name-table.hh | 60 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-name-table.hh | 60 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-name.h | 3 +++ 4 files changed, 68 insertions(+), 3 deletions(-) @@ -13469,13 +14366,12 @@ Author: Behdad Esfahbod Date: Fri Oct 26 15:40:12 2018 -0700 [indic/khmer/myanmar/use] Clarify clear_syllable - + No logic change. src/hb-ot-shape-complex-indic.cc | 3 ++- src/hb-ot-shape-complex-khmer.cc | 4 +--- - src/hb-ot-shape-complex-myanmar.cc | 40 - ++++++++++++++++++-------------------- + src/hb-ot-shape-complex-myanmar.cc | 40 ++++++++++++++++++-------------------- src/hb-ot-shape-complex-use.cc | 22 +++++++++++++++------ 4 files changed, 38 insertions(+), 31 deletions(-) @@ -13485,8 +14381,7 @@ Date: Fri Oct 26 12:14:30 2018 +0330 [fuzz] Add a new testcase - ...z-testcase-minimized-hb-shape-fuzzer-5658272078495744 | Bin 0 -> - 2252 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5658272078495744 | Bin 0 -> 2252 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 30f18039b3c0e5748101f8934ae82aebfc5a83f7 @@ -13508,8 +14403,7 @@ Date: Thu Oct 25 22:39:58 2018 +0330 [svg] Collapse SVGDocumentIndex into SVG - src/hb-ot-color-svg-table.hh | 54 - +++++++++++++++----------------------------- + src/hb-ot-color-svg-table.hh | 54 +++++++++++++++----------------------------- src/hb-ot-color.cc | 2 +- test/api/test-ot-color.c | 2 +- 3 files changed, 20 insertions(+), 38 deletions(-) @@ -13521,8 +14415,7 @@ Date: Thu Oct 25 21:52:35 2018 +0330 [svg] Hide start_glyph and end_glyph from API src/dump-emoji.cc | 21 ++++++++------------- - src/hb-ot-color-svg-table.hh | 42 - ++++++++++++------------------------------ + src/hb-ot-color-svg-table.hh | 42 ++++++++++++------------------------------ src/hb-ot-color.cc | 9 ++------- src/hb-ot-color.h | 5 +---- test/api/test-ot-color.c | 11 ++--------- @@ -13533,15 +14426,14 @@ Author: Ebrahim Byagowi Date: Tue Oct 23 18:00:48 2018 +0330 [svg] Add public API - + * hb_ot_color_has_svg * hb_ot_color_glyph_svg_create_blob src/dump-emoji.cc | 51 +++++++++++++++---------- src/hb-open-type.hh | 1 - src/hb-ot-color-sbix-table.hh | 2 + - src/hb-ot-color-svg-table.hh | 86 - ++++++++++++++++++++++++++++++++----------- + src/hb-ot-color-svg-table.hh | 86 ++++++++++++++++++++++++++++++++----------- src/hb-ot-color.cc | 53 ++++++++++++++++++++++---- src/hb-ot-color.h | 13 +++++++ src/hb-ot-face.cc | 2 + @@ -13555,7 +14447,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 22:25:29 2018 -0700 [layout] Try to speed up collect_lookups some more - + Barely made a dent :(. src/hb-ot-layout-common.hh | 2 ++ @@ -13567,12 +14459,11 @@ Author: Behdad Esfahbod Date: Thu Oct 25 21:42:19 2018 -0700 [layout] Memoize collect_features - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1317 Fixes https://oss-fuzz.com/v2/testcase-detail/6543700493598720 - src/hb-ot-layout.cc | 55 - ++++++++++++++++++++++++++++++++++++++++++++++------- + src/hb-ot-layout.cc | 55 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 7 deletions(-) commit 84098b1639775aea5bf3f5d91fa6e657b612ce3a @@ -13589,11 +14480,10 @@ Author: Behdad Esfahbod Date: Thu Oct 25 21:26:08 2018 -0700 [layout] Add hb_collect_features_context_t - + Towards https://github.com/harfbuzz/harfbuzz/pull/1317 - src/hb-ot-layout.cc | 66 - +++++++++++++++++++++++++++++------------------------ + src/hb-ot-layout.cc | 66 +++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 30 deletions(-) commit c237cdfcc74d33f77b2399b4d08228c2fcf50df5 @@ -13611,8 +14501,7 @@ Date: Thu Oct 25 20:58:34 2018 -0700 [layout] More prep work to memoize collect_features() work - src/hb-ot-layout.cc | 62 - ++++++++++++++++++++--------------------------------- + src/hb-ot-layout.cc | 62 ++++++++++++++++++++--------------------------------- 1 file changed, 23 insertions(+), 39 deletions(-) commit e8e67503ff0a50eb10ad410d6a76a282ea494cf4 @@ -13620,12 +14509,11 @@ Author: Behdad Esfahbod Date: Thu Oct 25 20:48:20 2018 -0700 [lookup] More prep work for memoizing collect_features - + https://github.com/harfbuzz/harfbuzz/pull/1317 src/hb-ot-layout-common.hh | 2 ++ - src/hb-ot-layout.cc | 83 - +++++++++++++++++++++------------------------- + src/hb-ot-layout.cc | 83 +++++++++++++++++++++------------------------- 2 files changed, 40 insertions(+), 45 deletions(-) commit 96828b97a8fc2c50721ce040bdde63c462908791 @@ -13633,7 +14521,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 20:34:29 2018 -0700 [layout] Minor - + We were returning the accelerator's lookup count. Returns table's. They are the same except for OOM cases. Just shorter code. @@ -13645,7 +14533,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 20:32:05 2018 -0700 [layout] Fold one function inline - + Preparation for fixing https://github.com/harfbuzz/harfbuzz/pull/1317 src/hb-ot-layout.cc | 22 +++------------------- @@ -13656,9 +14544,9 @@ Author: Behdad Esfahbod Date: Thu Oct 25 17:41:26 2018 -0700 [morx] Use deleted-glyph, instead of actual deletion, in Ligation - + Closer to what CoreText does. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1302 src/hb-aat-layout-morx-table.hh | 3 +-- @@ -13687,7 +14575,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 17:29:32 2018 -0700 [aat] Start adding support for DELETED-GLYPH - + https://github.com/harfbuzz/harfbuzz/issues/1302 src/hb-aat-layout-common.hh | 2 ++ @@ -13698,7 +14586,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 16:50:38 2018 -0700 [vector] Make it act more like pointer - + Add pointer cast operator and plus operator. src/hb-coretext.cc | 2 +- @@ -13724,7 +14612,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 16:35:36 2018 -0700 [set] Make array access more explicit - + Follow up on 94e421abbfc7ede9aaf3c8d86bb0ff9992ea3123 src/hb-set.hh | 4 +++- @@ -13753,11 +14641,10 @@ Author: Michiharu Ariza Date: Thu Oct 25 13:40:40 2018 -0700 dropped support of legacy CFF CharString ops - + along with test & font - src/hb-cff1-interp-cs.hh | 135 - +------------------------------------- + src/hb-cff1-interp-cs.hh | 135 +------------------------------------- test/api/fonts/cff1_legacyops.otf | Bin 3104 -> 0 bytes test/api/test-ot-extents-cff.c | 23 ------- 3 files changed, 1 insertion(+), 157 deletions(-) @@ -13776,7 +14663,7 @@ Author: Behdad Esfahbod Date: Thu Oct 25 13:23:33 2018 -0700 [test] Rename some fonts - + If we have duplicae font files in different directories, that would break the oss-fuzz build currently. So, rename some to avoid name class with text-rendering-test. Would be better to find @@ -13787,8 +14674,7 @@ Date: Thu Oct 25 13:23:33 2018 -0700 .../data/in-house/fonts/{TestTTC.ttc => TTC.ttc} | Bin test/shaping/data/in-house/fonts/TestDFONT.dfont | Bin 3505 -> 0 bytes test/shaping/data/in-house/tests/aat-morx.tests | 2 +- - test/shaping/data/in-house/tests/aat-trak.tests | 22 - ++++++++++----------- + test/shaping/data/in-house/tests/aat-trak.tests | 22 ++++++++++----------- test/shaping/data/in-house/tests/collections.tests | 12 +++++------ 7 files changed, 18 insertions(+), 18 deletions(-) @@ -13797,9 +14683,9 @@ Author: Behdad Esfahbod Date: Thu Oct 25 13:19:34 2018 -0700 Fix possible overflow in bsearch impls - + From bungeman. - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1314 src/hb-dsalgs.hh | 2 +- @@ -13821,14 +14707,11 @@ Author: Ben Wagner Date: Thu Oct 25 13:44:27 2018 -0400 Remove some use of Crap in hb-set. - - When hb_set_t::page_for_insert needs to insert at the end of the - page_map + + When hb_set_t::page_for_insert needs to insert at the end of the page_map it ends up evaluating '&page_map[i + 1]' which has hb_vector return an - lvalue of a Crap so that nothing can be moved to its address. This - turns - into issues with ThreadSanitizer on Crap when two threads modify - different + lvalue of a Crap so that nothing can be moved to its address. This turns + into issues with ThreadSanitizer on Crap when two threads modify different hb_set_t instances. This can be avoided by using '&page_map[i] + 1' instead. @@ -13836,8 +14719,7 @@ Date: Thu Oct 25 13:44:27 2018 -0400 1 file changed, 1 insertion(+), 1 deletion(-) commit 2798ac1c28edc4ba6f2283784d1027393f588f8c -Author: azure-pipelines[bot] - +Author: azure-pipelines[bot] Date: Thu Oct 25 15:22:54 2018 +0000 Set up CI with Azure Pipelines @@ -13850,7 +14732,7 @@ Author: Khaled Hosny Date: Thu Oct 25 01:55:10 2018 +0200 [appveyor] Drop Cygwin builds again - + They are so slow and we had only a couple of Cygwin build failure reported in ~5 years. @@ -13862,7 +14744,7 @@ Author: Khaled Hosny Date: Wed Oct 24 22:58:22 2018 +0200 [appveyor] Limit make to three jobs - + https://github.com/harfbuzz/harfbuzz/pull/1309#issuecomment-432778270 appveyor.yml | 4 ++-- @@ -13873,7 +14755,7 @@ Author: Behdad Esfahbod Date: Wed Oct 24 16:46:07 2018 -0700 [vowel-constraints] Reset continuation on all dottedcircles - + One of the was missed before. Not intentional. src/gen-vowel-constraints.py | 9 +++++++-- @@ -13894,9 +14776,8 @@ Author: Khaled Hosny Date: Wed Oct 24 11:23:21 2018 +0200 [appveyor] Do not update msys2 - - Looks like AppVeyor has new enough packages for our needs. Cuts - CI build + + Looks like AppVeyor has new enough packages for our needs. Cuts CI build time by 5 minutes. appveyor.yml | 5 ++--- @@ -13925,11 +14806,11 @@ Author: Behdad Esfahbod Date: Tue Oct 23 17:00:49 2018 -0700 [ot-font] Fix sign of ascent/descent - + Some fonts, like msmincho, have positive number as descent in vhea table. That's wrong. Just enforce sign on ascent/descent when reading both horizontal and vertical metrics. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1248 src/hb-ot-hmtx-table.hh | 8 ++++---- @@ -13940,15 +14821,14 @@ Author: Behdad Esfahbod Date: Tue Oct 23 16:46:10 2018 -0700 [morx] Fix cluster-merging when ligating - + Only merge when actual ligature happened. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1305 src/hb-aat-layout-morx-table.hh | 7 ++++--- test/shaping/data/in-house/Makefile.sources | 1 + - test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf | Bin 0 -> - 2660 bytes + test/shaping/data/in-house/fonts/TestMORXTwentyeight.ttf | Bin 0 -> 2660 bytes test/shaping/data/in-house/tests/aat-morx.tests | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) @@ -13980,8 +14860,7 @@ Date: Tue Oct 23 14:31:51 2018 -0700 [aat] Fix up previous commit and add files src/hb-aat-map.cc | 62 +++++++++++++++++++++++++++++++ - src/hb-aat-map.hh | 106 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-map.hh | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-map.cc | 1 + src/hb-ot-shape.cc | 15 ++++++-- 4 files changed, 181 insertions(+), 3 deletions(-) @@ -13991,20 +14870,20 @@ Author: Behdad Esfahbod Date: Tue Oct 23 14:14:03 2018 -0700 [aat] Allow enabling/disabling features - + Only works at entire-buffer range, not sub-ranges. - + Test with: - + $ hb-shape Zapfino.dfont Zapfino [Z_a_p_f_i_n_o=0+2333] - + $ hb-shape Zapfino.dfont Zapfino --features=-dlig [Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|o=6+250] - + $ hb-shape Zapfino.dfont Zapfino --features=+dlig [Z_a_p_f_i_n_o=0+2333] - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1303 src/Makefile.sources | 2 ++ @@ -14055,7 +14934,7 @@ Author: Behdad Esfahbod Date: Tue Oct 23 03:10:56 2018 -0700 [trak] Allow disabling tracking for ranges of text - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1303 src/hb-aat-layout-trak-table.hh | 4 ++++ @@ -14078,9 +14957,8 @@ Author: Ebrahim Byagowi Date: Tue Oct 23 00:52:05 2018 +0330 Make tracking optout possible using 'trak' ot feature - - So '--features=-trak' or 'font-feature-settings: 'trak' 0;' - can prevent + + So '--features=-trak' or 'font-feature-settings: 'trak' 0;' can prevent applying of tracking if used. src/hb-ot-shape.cc | 10 +++++++--- @@ -14092,7 +14970,7 @@ Author: Behdad Esfahbod Date: Tue Oct 23 02:51:42 2018 -0700 Touch up on previous commit - + https://github.com/harfbuzz/harfbuzz/pull/1273 src/HBIndicVowelConstraints.txt | 97 ++++++ @@ -14101,10 +14979,8 @@ Date: Tue Oct 23 02:51:42 2018 -0700 src/gen-vowel-constraints.py | 124 ++------ src/hb-ot-shape-complex-indic.cc | 10 +- src/hb-ot-shape-complex-use.cc | 11 +- - src/hb-ot-shape-complex-vowel-constraints.cc | 433 - ++++++++++++++++++++++++++ - src/hb-ot-shape-complex-vowel-constraints.hh | 447 - ++------------------------- + src/hb-ot-shape-complex-vowel-constraints.cc | 433 ++++++++++++++++++++++++++ + src/hb-ot-shape-complex-vowel-constraints.hh | 447 ++------------------------- 8 files changed, 606 insertions(+), 523 deletions(-) commit 205737acdc268b1c90cf00bde2d2038519a8bf48 @@ -14118,8 +14994,7 @@ Date: Fri Oct 12 16:54:54 2018 -0400 src/gen-vowel-constraints.py | 286 ++++++++++++++ src/hb-ot-shape-complex-indic.cc | 272 +------------ src/hb-ot-shape-complex-use.cc | 3 +- - src/hb-ot-shape-complex-vowel-constraints.hh | 434 - +++++++++++++++++++++ + src/hb-ot-shape-complex-vowel-constraints.hh | 434 +++++++++++++++++++++ test/shaping/README.md | 4 +- .../46669c8860cbfea13562a6ca0d83130ee571137b.ttf | Bin 0 -> 7184 bytes .../in-house/tests/use-vowel-letter-spoofing.tests | 94 +++++ @@ -14130,17 +15005,15 @@ Author: Behdad Esfahbod Date: Tue Oct 23 02:19:32 2018 -0700 [VORG] Hook up to hb-ot-font's v_origin - + Fixes https://github.com/harfbuzz/harfbuzz/issues/544 - + Test added with NotoSansCJK, eg. with U+FF38. src/hb-ot-face.cc | 1 - - src/hb-ot-font.cc | 11 - +++++++++-- + src/hb-ot-font.cc | 11 +++++++++-- src/hb-ot-vorg-table.hh | 6 ++++-- - .../fonts/4cbbc461be066fccc611dcc634af6e8cb2705537.ttf | Bin 0 -> - 2808 bytes + .../fonts/4cbbc461be066fccc611dcc634af6e8cb2705537.ttf | Bin 0 -> 2808 bytes test/shaping/data/in-house/tests/vertical.tests | 1 + 5 files changed, 14 insertions(+), 5 deletions(-) @@ -14149,7 +15022,7 @@ Author: Behdad Esfahbod Date: Tue Oct 23 02:09:42 2018 -0700 [VORG] Add get_y_origin() - + Unhooked. src/hb-ot-vorg-table.hh | 16 ++++++++++++++-- @@ -14160,14 +15033,13 @@ Author: Behdad Esfahbod Date: Tue Oct 23 01:58:59 2018 -0700 [VORG] Add VORG table - + Cherry-picked from cff-subset branch. src/Makefile.sources | 1 + src/hb-ot-face.cc | 1 + src/hb-ot-face.hh | 1 + - src/hb-ot-vorg-table.hh | 168 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-vorg-table.hh | 168 ++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 171 insertions(+) commit 531f9822b2e8a60f03c43d6f86ef9ed32c951f0e @@ -14195,8 +15067,7 @@ Date: Mon Oct 22 23:41:47 2018 -0700 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/Makefile.sources | 2 +- - .../data/text-rendering-tests/fonts/TestTRAKOne.ttf | Bin 0 -> - 1752 bytes + .../data/text-rendering-tests/fonts/TestTRAKOne.ttf | Bin 0 -> 1752 bytes 2 files changed, 1 insertion(+), 1 deletion(-) commit 792071de4075cb9af0793f0d7c70da0780923bb6 @@ -14204,16 +15075,15 @@ Author: Behdad Esfahbod Date: Mon Oct 22 23:38:34 2018 -0700 [morx] Leave ligature on stack after ligating - + Test with Apple Color Emoji.ttf of ~66MB and following sequence: - - ./hb-shape Apple\ Color\ Emoji-old.ttf --font-funcs=ot -u - U+1F468,200d,U+1F469,200d,U+1F467,200d,1f466 - + + ./hb-shape Apple\ Color\ Emoji-old.ttf --font-funcs=ot -u U+1F468,200d,U+1F469,200d,U+1F467,200d,1f466 + Should form full family if matching works correctly. It first makes family of three, then makes family of four out of that and the last two characters. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1292 src/hb-aat-layout-morx-table.hh | 1 - @@ -14224,18 +15094,16 @@ Author: Ebrahim Byagowi Date: Tue Oct 23 09:23:48 2018 +0330 [ci] Disable llvm-gcc - - #define Null(Type) Null::value>::value>() - + + #define Null(Type) Null::value>::value>() + raises: hb-blob.cc: In function 'hb_blob_t* hb_blob_get_empty()': hb-blob.cc:194: error: using 'typename' outside of template hb-blob.cc:194: error: using 'typename' outside of template - - Removing "typename"s fixes the issue but makes newer compiler fail - apparently. - + + Removing "typename"s fixes the issue but makes newer compiler fail apparently. + Probably downstream can patch that locally till we get a solution. .circleci/config.yml | 4 ++-- @@ -14256,7 +15124,7 @@ Author: Behdad Esfahbod Date: Mon Oct 22 21:33:18 2018 -0700 Add hb_array<>() specialization for UnsizedArrayOf - + Related https://github.com/harfbuzz/harfbuzz/issues/1301 src/hb-aat-layout-trak-table.hh | 2 +- @@ -14270,9 +15138,9 @@ Author: Behdad Esfahbod Date: Mon Oct 22 21:27:45 2018 -0700 Add hb_array<>() - + Simplifies transient object creation. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1301 src/hb-aat-layout-trak-table.hh | 2 +- @@ -14286,7 +15154,7 @@ Author: Behdad Esfahbod Date: Mon Oct 22 21:22:25 2018 -0700 [color] Use Index for colorIdx - + Doesn't matter, but matches the description. src/hb-ot-color-colr-table.hh | 2 +- @@ -14297,11 +15165,10 @@ Author: Behdad Esfahbod Date: Mon Oct 22 21:18:27 2018 -0700 Remove const and references when binding Null() - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1299 - - Removes anomaly I was seeing in cpal table trying to use implicit - Null(NameID). + + Removes anomaly I was seeing in cpal table trying to use implicit Null(NameID). src/hb-atomic.hh | 5 +---- src/hb-common.cc | 2 +- @@ -14318,10 +15185,9 @@ Author: Behdad Esfahbod Date: Mon Oct 22 18:20:57 2018 -0700 [color] Add HB_COLOR - + Normally I would have added to_string / from_string like other types - have. But since we don't use hb_color_t much, I'm not going to - do that. + have. But since we don't use hb_color_t much, I'm not going to do that. Although, if we did, we could use it in hb-view to parse colors... src/hb-common.h | 14 +++++++++----- @@ -14332,11 +15198,10 @@ Author: Behdad Esfahbod Date: Mon Oct 22 16:55:12 2018 -0700 [color] Finish reviewing / revamping CPAL - + Now to hb_color_t. - src/hb-ot-color-cpal-table.hh | 52 - ++++++++++++++++++++++--------------------- + src/hb-ot-color-cpal-table.hh | 52 ++++++++++++++++++++++--------------------- src/hb-ot-color.cc | 33 +++++---------------------- src/hb-ot-color.h | 10 ++++----- 3 files changed, 38 insertions(+), 57 deletions(-) @@ -14365,8 +15230,7 @@ Date: Mon Oct 22 16:30:30 2018 -0700 [color] Rely on CPALV1Tail Null object - src/hb-ot-color-cpal-table.hh | 39 - ++++++++++++++------------------------- + src/hb-ot-color-cpal-table.hh | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) commit d7865107ea4664e04c03a1d79678cdcadc0d5ea5 @@ -14374,7 +15238,7 @@ Author: Behdad Esfahbod Date: Mon Oct 22 16:18:34 2018 -0700 Remove const from hb_array_t details - + Will come in through if desired. src/hb-aat-layout-trak-table.hh | 6 +++--- @@ -14387,14 +15251,13 @@ Author: Behdad Esfahbod Date: Mon Oct 22 16:16:21 2018 -0700 [color] Use hb_array_t in CPAL - + Doesn't work though, ouch :(. Need to figure out if it's unreasonable to expect Null(T) inside hb_array_t to see the later specialization of Null for NameID. src/hb-open-type.hh | 3 ++- - src/hb-ot-color-cpal-table.hh | 47 - ++++++++++++++++++++++--------------------- + src/hb-ot-color-cpal-table.hh | 47 ++++++++++++++++++++++--------------------- src/hb-static.cc | 1 + 3 files changed, 27 insertions(+), 24 deletions(-) @@ -14403,7 +15266,7 @@ Author: Behdad Esfahbod Date: Mon Oct 22 14:54:55 2018 -0700 [color] Check for null CPAL arrays - + We cannot use a nullable offset here though. src/hb-ot-color-cpal-table.hh | 12 ++++++------ @@ -14415,8 +15278,7 @@ Date: Mon Oct 22 14:51:40 2018 -0700 [color] More CPAL rename - src/hb-ot-color-cpal-table.hh | 104 - +++++++++++++++++++++--------------------- + src/hb-ot-color-cpal-table.hh | 104 +++++++++++++++++++++--------------------- src/hb-ot-color.cc | 6 +-- 2 files changed, 54 insertions(+), 56 deletions(-) @@ -14489,8 +15351,7 @@ Date: Mon Oct 22 13:02:04 2018 -0700 src/hb-ot-color.cc | 81 ++++++++++++++--------------- src/hb-ot-color.h | 26 +++++----- - test/api/test-ot-color.c | 130 - +++++++++++++++++++++++------------------------ + test/api/test-ot-color.c | 130 +++++++++++++++++++++++------------------------ 3 files changed, 117 insertions(+), 120 deletions(-) commit 3bf91bd2690cda34a7687ed5465dc4bb0672f2b6 @@ -14498,21 +15359,17 @@ Author: Behdad Esfahbod Date: Mon Oct 22 12:40:38 2018 -0700 [color] Rewrite colr access - - COLR table has one function: return layers for a glyph, and we - expose exactly - that, so should just wire it through. Also use sub_array() for - verifiable + + COLR table has one function: return layers for a glyph, and we expose exactly + that, so should just wire it through. Also use sub_array() for verifiable safety. - - Also, BaseGlyphRecord's null object is enough. We don't need to - special-case + + Also, BaseGlyphRecord's null object is enough. We don't need to special-case the not-found. src/hb-dsalgs.hh | 11 +++++++++ src/hb-open-type.hh | 2 +- - src/hb-ot-color-colr-table.hh | 53 - +++++++++++++++++++++++-------------------- + src/hb-ot-color-colr-table.hh | 53 +++++++++++++++++++++++-------------------- src/hb-ot-color.cc | 19 +--------------- 4 files changed, 41 insertions(+), 44 deletions(-) @@ -14521,7 +15378,7 @@ Author: Behdad Esfahbod Date: Mon Oct 22 10:29:01 2018 -0700 [colr] Add hb_ot_color_layer_t - + We never return parallel arrays from functions. That's inconvenient and hard to bind. @@ -14535,13 +15392,12 @@ Author: Behdad Esfahbod Date: Sun Oct 21 19:23:11 2018 -0700 [color] Rename / reorder a bit - + Implement has_data() for realz. src/hb-ot-color-colr-table.hh | 2 ++ src/hb-ot-color-cpal-table.hh | 2 ++ - src/hb-ot-color.cc | 78 - ++++++++++++++++++++++++------------------- + src/hb-ot-color.cc | 78 ++++++++++++++++++++++++------------------- src/hb-ot-color.h | 33 ++++++++++++------ test/api/test-ot-color.c | 30 ++++++++--------- 5 files changed, 85 insertions(+), 60 deletions(-) @@ -14568,7 +15424,7 @@ Author: Behdad Esfahbod Date: Sun Oct 21 19:02:47 2018 -0700 [color] Rename "gid" to "glyph" - + We don't expose "gid" in API. src/hb-ot-color.cc | 12 ++++++------ @@ -14613,7 +15469,7 @@ Author: Behdad Esfahbod Date: Sun Oct 21 17:42:51 2018 -0700 [colr] Move compare function into a static - + Not sure if MSVC would be unhappy about this. src/hb-ot-color-colr-table.hh | 16 ++++++++-------- @@ -14633,7 +15489,7 @@ Author: Behdad Esfahbod Date: Sun Oct 21 17:39:39 2018 -0700 [colr] Move sanitize() to right place - + Sanitize always comes just before data member definitions, so it's easy to cross-check. @@ -14645,7 +15501,7 @@ Author: Behdad Esfahbod Date: Sun Oct 21 17:39:00 2018 -0700 [colr] Touch up a bit - + When a struct is plain old data with no references, etc, it's okay to mark its members public. @@ -14701,8 +15557,7 @@ Date: Sun Oct 21 09:44:16 2018 +0330 [CPAL] Add palette entry and enable palette flag API src/hb-ot-color-cpal-table.hh | 66 +++++++++++++++---------- - src/hb-ot-color.cc | 109 - ++++++++++++++++++++++++------------------ + src/hb-ot-color.cc | 109 ++++++++++++++++++++++++------------------ src/hb-ot-color.h | 23 +++++++++ test/api/test-ot-color.c | 35 ++++++++++++-- 4 files changed, 158 insertions(+), 75 deletions(-) @@ -14728,8 +15583,7 @@ Date: Sun Oct 21 08:26:40 2018 +0330 src/dump-emoji.cc | 26 ++++---- src/hb-common.h | 12 ++++ src/hb-ot-color-cpal-table.hh | 37 +++++------- - src/hb-ot-color.cc | 136 - +++++++++++++++++++++++++----------------- + src/hb-ot-color.cc | 136 +++++++++++++++++++++++++----------------- src/hb-ot-color.h | 38 +++--------- test/api/test-ot-color.c | 101 +++++++++++++++---------------- 6 files changed, 179 insertions(+), 171 deletions(-) @@ -14781,8 +15635,7 @@ Date: Fri Oct 19 17:44:06 2018 +0330 Make ot-color tests pass - test/api/test-ot-color.c | 52 - ++++++++++++++++++++++++------------------------ + test/api/test-ot-color.c | 52 ++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 26 deletions(-) commit d4e928b1421c154adbda9b6e1f2cf804b21654cb @@ -14792,8 +15645,7 @@ Date: Tue May 1 17:16:46 2018 +0200 [color] Minimal API for COLR/CPAL src/Makefile.sources | 1 + - src/dump-emoji.cc | 114 - +++++++++++---------- + src/dump-emoji.cc | 114 +++++++++++---------- src/hb-ot-color-colr-table.hh | 12 +-- src/hb-ot-color-cpal-table.hh | 51 +++------ src/hb-ot-color.cc | 87 +++++++++++----- @@ -14811,8 +15663,7 @@ Date: Mon Oct 22 10:51:37 2018 +0330 [fuzz] Add a found hb-subset testcase - ...z-testcase-minimized-hb-subset-fuzzer-5725847365877760 | Bin 0 -> - 880 bytes + ...z-testcase-minimized-hb-subset-fuzzer-5725847365877760 | Bin 0 -> 880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 0ecddad7c5948ecd7879bc7507f8a7a2d99eee86 @@ -14829,13 +15680,12 @@ Author: Ebrahim Byagowi Date: Sun Oct 21 11:37:38 2018 +0330 [fuzz] Add more testcases - + Fixed already but better to have anyway. - + One didn't have minimized but it was only 164 B, so - ...uzz-testcase-minimized-hb-shape-fuzzer-5706010589659136 | Bin 0 -> - 52 bytes + ...uzz-testcase-minimized-hb-shape-fuzzer-5706010589659136 | Bin 0 -> 52 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 4fa94a3e39c21bc1dcdbbd5bda99bff1e1490b0e @@ -14844,7 +15694,7 @@ Author: Ebrahim Byagowi Date: Sun Oct 21 11:36:41 2018 +0330 Merge pull request #1290 from ebraminio/testopenfont - + [test] Unify font file opening across the tests commit c110878cb61f5df99e9d97dda253f2987ddce58e @@ -14874,8 +15724,7 @@ Date: Sat Oct 20 20:39:56 2018 -0700 [fuzzing] Add more font - .../clusterfuzz-testcase-hb-shape-fuzzer-5097734906839040 | Bin 0 -> - 164 bytes + .../clusterfuzz-testcase-hb-shape-fuzzer-5097734906839040 | Bin 0 -> 164 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 1e39833ba8547c90a0a4ed7f265a6c4bc8eb8fe1 @@ -14910,7 +15759,7 @@ Author: Behdad Esfahbod Date: Sat Oct 20 16:49:16 2018 -0700 [docs] Fix warning - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1260 src/hb-deprecated.h | 6 ------ @@ -14923,8 +15772,7 @@ Date: Sat Oct 20 14:56:28 2018 -0700 [kerx] Implement tuple-kerning in Format0 - src/hb-aat-layout-kerx-table.hh | 44 - ++++++++++++++++++++++++++++------------- + src/hb-aat-layout-kerx-table.hh | 44 ++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 14 deletions(-) commit 0a3b7a0fb0734a66926dfda5d95d3cacea8890ce @@ -14952,7 +15800,7 @@ Author: Behdad Esfahbod Date: Sat Oct 20 12:09:41 2018 -0700 [kerx] Fix sanitize of KerxSubtableFormat2::array read - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11033 src/hb-aat-layout-kerx-table.hh | 5 +++-- @@ -14963,7 +15811,7 @@ Author: Behdad Esfahbod Date: Sat Oct 20 12:04:51 2018 -0700 [aat] Fix LookupFormat10 sanitize - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11060 src/hb-aat-layout-common.hh | 2 +- @@ -14983,7 +15831,7 @@ Author: Ebrahim Byagowi Date: Sat Oct 20 21:13:25 2018 +0330 [TODO] Remove BCP 47 language handling item - + Closes https://github.com/harfbuzz/harfbuzz/issues/1286 TODO | 2 -- @@ -14995,10 +15843,8 @@ Date: Sat Oct 20 12:20:30 2018 +0330 [fuzzing] Add new testcases - .../clusterfuzz-testcase-hb-shape-fuzzer-5688420752424960 | Bin 0 -> - 163 bytes - ...zz-testcase-minimized-hb-shape-fuzzer-5688420752424960 | Bin 0 -> - 69 bytes + .../clusterfuzz-testcase-hb-shape-fuzzer-5688420752424960 | Bin 0 -> 163 bytes + ...zz-testcase-minimized-hb-shape-fuzzer-5688420752424960 | Bin 0 -> 69 bytes 2 files changed, 0 insertions(+), 0 deletions(-) commit 1e55e21dea78aaaddc0715e7df96fd198ec8f78a @@ -15007,7 +15853,7 @@ Author: Ebrahim Byagowi Date: Sat Oct 20 07:45:46 2018 +0330 Merge pull request #1283 from khaledhosny/cygwin - + Cygwin fixes and CI build commit 964ae32aac793540a49c44efab878592394d48db @@ -15075,7 +15921,7 @@ Author: Behdad Esfahbod Date: Fri Oct 19 19:12:33 2018 -0700 [font] Fix parallel funcs passing to eachover in infinite-loop - + Fixes test just added. src/hb-font.cc | 20 +++++++++++++------- @@ -15087,11 +15933,10 @@ Author: Behdad Esfahbod Date: Fri Oct 19 19:01:01 2018 -0700 [font] Add failing test amongst font-func parallels infinite-looping - + Reported by Nona while updating Android to HarfBuzz 2.0.0. - test/api/test-font.c | 64 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-font.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit d084719ff5a9e0e363bf352037f85b884bff11a7 @@ -15099,7 +15944,7 @@ Author: Khaled Hosny Date: Sat Oct 20 00:18:36 2018 +0200 Add Cygwin CI build - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1274 appveyor.yml | 15 +++++++++++++++ @@ -15110,12 +15955,11 @@ Author: Behdad Esfahbod Date: Fri Oct 19 16:06:54 2018 -0700 [kerx] Implement variation-kerning tables (without the variation part) - + SFSNDisplay uses these. We just apply the default kern without variations right now. But at least makes the default kern work. - src/hb-aat-layout-kerx-table.hh | 37 - +++++++++++++++++++++++++++++-------- + src/hb-aat-layout-kerx-table.hh | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) commit f7c0b4319c6f82f1e0020a0029469d8953a7a161 @@ -15125,8 +15969,7 @@ Date: Fri Oct 19 15:23:49 2018 -0700 [aat] Implement LookupFormat10 src/hb-aat-layout-ankr-table.hh | 6 +++-- - src/hb-aat-layout-common.hh | 55 - ++++++++++++++++++++++++++++++++++++++--- + src/hb-aat-layout-common.hh | 55 ++++++++++++++++++++++++++++++++++++++--- src/hb-machinery.hh | 4 +++ src/hb-open-type.hh | 3 +++ 4 files changed, 63 insertions(+), 5 deletions(-) @@ -15136,7 +15979,7 @@ Author: Khaled Hosny Date: Fri Oct 19 22:21:39 2018 +0200 Use g_strdup instead of strdup - + Cygwin does not seem to have strdup. util/options.hh | 2 +- @@ -15147,7 +15990,7 @@ Author: Khaled Hosny Date: Fri Oct 19 22:04:56 2018 +0200 Use O_BINARY instead of _O_BINARY - + Cygwin does not seem to have the later src/hb-blob.cc | 6 +++--- @@ -15167,7 +16010,7 @@ Author: Behdad Esfahbod Date: Fri Oct 19 11:15:35 2018 -0700 [RELEASING] Post-mortem - + Re https://github.com/harfbuzz/harfbuzz/issues/1271 RELEASING.md | 5 ++++- @@ -15196,7 +16039,7 @@ Author: Ebrahim Byagowi Date: Fri Oct 19 12:05:26 2018 +0330 Fix hb_map_is_empty logic - + This needs reviewing src/hb-map.hh | 2 +- @@ -15211,8 +16054,7 @@ Date: Fri Oct 19 12:04:47 2018 +0330 src/Makefile.am | 2 +- test/api/Makefile.am | 6 ++- - test/api/test-map.c | 114 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-map.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 2 deletions(-) commit 8a5eba711069285e8d8b6d682eea0090256527bb @@ -15257,10 +16099,9 @@ Author: Ebrahim Byagowi Date: Fri Oct 19 18:46:41 2018 +0330 [ci] Run valgrind on test/api - + run-shape-fuzzer-tests.py automatically runs valgrind if see available - but test/api runs it by request, we probably should normalize the - approaches + but test/api runs it by request, we probably should normalize the approaches later .circleci/config.yml | 6 +++++- @@ -15305,8 +16146,7 @@ Date: Fri Oct 19 09:24:21 2018 +0330 Enable valgrind and dedicate a bot to it .circleci/config.yml | 13 +++++++++++++ - test/fuzzing/run-shape-fuzzer-tests.py | 31 - +++++++++++++++++++++++++++++++ + test/fuzzing/run-shape-fuzzer-tests.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit bccd09d6c7baa99fdaccb8c5b3ff7e1834edd3bf @@ -15315,8 +16155,7 @@ Date: Fri Oct 19 09:06:42 2018 +0330 Minor, tweak spaces on hb-shape-fuzzer.cc - test/fuzzing/hb-shape-fuzzer.cc | 42 - ++++++++++++++++++++--------------------- + test/fuzzing/hb-shape-fuzzer.cc | 42 ++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit fbf665b307c8cc9f16f5897671bfdd8719a195b5 @@ -15325,32 +16164,19 @@ Date: Fri Oct 19 08:09:53 2018 +0330 [fuzz] Add more found cases (#1275) - ...clusterfuzz-testcase-hb-shape-fuzzer-5728971283496960 | Bin 0 -> - 101 bytes - ...terfuzz-testcase-minimized-hb-fuzzer-5713868010553344 | Bin 0 -> - 370 bytes - ...terfuzz-testcase-minimized-hb-fuzzer-6278851874258944 | Bin 0 -> - 598 bytes - ...z-testcase-minimized-hb-shape-fuzzer-5649959857160192 | Bin 0 -> - 3608 bytes - ...z-testcase-minimized-hb-shape-fuzzer-5664873493561344 | Bin 0 -> - 400 bytes - ...z-testcase-minimized-hb-shape-fuzzer-5762953198960640 | Bin 0 -> - 62 bytes - ...z-testcase-minimized-hb-shape-fuzzer-5764636557705216 | Bin 0 -> - 2184 bytes - ...-testcase-minimized-hb-subset-fuzzer-5690658895953920 | Bin 0 -> - 2735 bytes - ...-testcase-minimized-hb-subset-fuzzer-5695279609675776 | Bin 0 -> - 135 bytes - ...-testcase-minimized-hb-subset-fuzzer-5718215406125056 | Bin 0 -> - 107 bytes - ...-testcase-minimized-hb-subset-fuzzer-5743250149736448 | Bin 0 -> - 103 bytes - ...-testcase-minimized-hb-subset-fuzzer-5765071062958080 | Bin 0 -> - 329 bytes - ...ized-hb-subset-get-codepoints-fuzzer-5930139383758848 | Bin 0 -> - 9410 bytes + ...clusterfuzz-testcase-hb-shape-fuzzer-5728971283496960 | Bin 0 -> 101 bytes + ...terfuzz-testcase-minimized-hb-fuzzer-5713868010553344 | Bin 0 -> 370 bytes + ...terfuzz-testcase-minimized-hb-fuzzer-6278851874258944 | Bin 0 -> 598 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5649959857160192 | Bin 0 -> 3608 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5664873493561344 | Bin 0 -> 400 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5762953198960640 | Bin 0 -> 62 bytes + ...z-testcase-minimized-hb-shape-fuzzer-5764636557705216 | Bin 0 -> 2184 bytes + ...-testcase-minimized-hb-subset-fuzzer-5690658895953920 | Bin 0 -> 2735 bytes + ...-testcase-minimized-hb-subset-fuzzer-5695279609675776 | Bin 0 -> 135 bytes + ...-testcase-minimized-hb-subset-fuzzer-5718215406125056 | Bin 0 -> 107 bytes + ...-testcase-minimized-hb-subset-fuzzer-5743250149736448 | Bin 0 -> 103 bytes + ...-testcase-minimized-hb-subset-fuzzer-5765071062958080 | Bin 0 -> 329 bytes + ...ized-hb-subset-get-codepoints-fuzzer-5930139383758848 | Bin 0 -> 9410 bytes 13 files changed, 0 insertions(+), 0 deletions(-) commit 51fba41cc958ded3afc6c1e738895b0a81993e18 @@ -15375,12 +16201,11 @@ Author: Michiharu Ariza Date: Thu Oct 18 13:04:21 2018 -0700 implement flex ops for glyph extents/subset - + also removed unused CSInterpEnv::move_[xy]_with_arg fixed bug a width being left over on argStack with CFF1 - src/hb-cff-interp-cs-common.hh | 157 - +++++++++++++++++++++++++++++++++++------ + src/hb-cff-interp-cs-common.hh | 157 +++++++++++++++++++++++++++++++++++------ src/hb-cff1-interp-cs.hh | 1 + src/hb-subset-cff1.cc | 4 -- src/hb-subset-cff2.cc | 4 -- @@ -15392,8 +16217,7 @@ Date: Thu Oct 18 05:58:17 2018 -0700 2.0.0 - NEWS | 68 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + NEWS | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- src/hb-buffer.cc | 4 ++-- src/hb-common.h | 4 ++-- @@ -15421,21 +16245,18 @@ Author: Ebrahim Byagowi Date: Thu Oct 18 11:06:37 2018 +0330 [ubsan] Use unsigned int instead enum where needed (#1270) - + Actually the check is right, - + On -myanmar.hh, on that particular switch, OT_C is indic_category_t - but OT_D is myanmar_category_t so we are mixing the types in one - variable. - - And on -arabic.cc, step can goes one number higher than step_t enum - in the + but OT_D is myanmar_category_t so we are mixing the types in one variable. + + And on -arabic.cc, step can goes one number higher than step_t enum in the loop so we are actually using it as an unsinged int. .circleci/config.yml | 2 +- src/hb-ot-shape-complex-arabic.cc | 4 ++-- - src/hb-ot-shape-complex-myanmar.hh | 48 - +++++++++++++++++++------------------- + src/hb-ot-shape-complex-myanmar.hh | 48 +++++++++++++++++++------------------- 3 files changed, 27 insertions(+), 27 deletions(-) commit 64df6b0b0f9d221e14811084f2412a01cf4deb46 @@ -15452,7 +16273,7 @@ Author: Behdad Esfahbod Date: Wed Oct 17 23:06:53 2018 -0700 More warning fix - + Okay, let's see if the gods are happy now... src/hb-static.cc | 2 +- @@ -15499,7 +16320,7 @@ Author: Behdad Esfahbod Date: Wed Oct 17 22:34:16 2018 -0700 [aat] Fix sanitize slowdown - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=11034 src/hb-aat-layout-common.hh | 4 ++++ @@ -15511,15 +16332,12 @@ Author: Behdad Esfahbod Date: Wed Oct 17 21:52:14 2018 -0700 Revert "[test] Remove not-fixed yet testcases (#1268)" - + This reverts commit 191eef823fe95355425621f8e002dfe7fe632383. - ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 0 -> - 122 bytes - ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 0 -> - 1420 bytes - ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> - 267731 bytes + ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 0 -> 122 bytes + ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 0 -> 1420 bytes + ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> 267731 bytes 3 files changed, 0 insertions(+), 0 deletions(-) commit af99b20dfddbca75e68f84c5aa465a54728990a6 @@ -15527,7 +16345,7 @@ Author: Ebrahim Byagowi Date: Thu Oct 18 08:35:20 2018 +0330 [ci/ubsan] Disable enum sanitization - + Behdad apparently not interested on them .circleci/config.yml | 2 +- @@ -15538,7 +16356,7 @@ Author: Behdad Esfahbod Date: Wed Oct 17 21:41:25 2018 -0700 [aat] Another try at fixing Lookup null objects... - + Ugly as hell, and don't even understand why some bits are needed. But the logic is sound. @@ -15551,17 +16369,14 @@ Author: Ebrahim Byagowi Date: Thu Oct 18 08:04:18 2018 +0330 [test] Remove not-fixed yet testcases (#1268) - + I added them but now that I think, it is a bad idea to have them as fuzzing bots will find good seeds to tweak in order to find easy new testcases which causes duplicated issues. - ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 122 -> - 0 bytes - ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 1420 -> - 0 bytes - ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 267731 -> - 0 bytes + ...rfuzz-testcase-minimized-hb-fuzzer-4548492505645056 | Bin 122 -> 0 bytes + ...rfuzz-testcase-minimized-hb-fuzzer-6210176798425088 | Bin 1420 -> 0 bytes + ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 267731 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) commit 392e1f4ddd7eb649e1a71755b9bcf6431739f98f @@ -15570,8 +16385,7 @@ Date: Thu Oct 18 07:42:20 2018 +0330 [test/shape-fuzzer] fail on timeout and ubsan errors (#1267) - test/fuzzing/run-shape-fuzzer-tests.py | 38 - ++++++++++++++++++++++++++++++---- + test/fuzzing/run-shape-fuzzer-tests.py | 38 ++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) commit eeddda3ec6c28b411d33c74938ec6198c7f6888d @@ -15579,7 +16393,7 @@ Author: Ebrahim Byagowi Date: Thu Oct 18 07:38:47 2018 +0330 [util] Better file-not-found error from hb-shape / hb-view - + fixes #1266 util/options.cc | 2 +- @@ -15591,10 +16405,8 @@ Date: Thu Oct 18 06:36:48 2018 +0330 [fuzz] Add more new testcases - ...testcase-minimized-hb-shape-fuzzer-5718464350650368 | Bin 0 -> - 41 bytes - ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> - 267731 bytes + ...testcase-minimized-hb-shape-fuzzer-5718464350650368 | Bin 0 -> 41 bytes + ...testcase-minimized-hb-shape-fuzzer-5738888765636608 | Bin 0 -> 267731 bytes 2 files changed, 0 insertions(+), 0 deletions(-) commit fd282eb3285e6d20f77e8a3a7237b677433ccbb4 @@ -15603,8 +16415,7 @@ Date: Thu Oct 18 06:33:39 2018 +0330 [fuzz] Add a new testcase - .../clusterfuzz-testcase-hb-shape-fuzzer-5634395566768128 | Bin 0 -> - 106 bytes + .../clusterfuzz-testcase-hb-shape-fuzzer-5634395566768128 | Bin 0 -> 106 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 9d42d70269b879e67f3c7724beab8e4cdbfc877a @@ -15612,20 +16423,19 @@ Author: Behdad Esfahbod Date: Wed Oct 17 17:55:47 2018 -0700 [trak] Fix calc - + We were getting the first track record always. Ie. this line: - + if (trackTable[i].get_track_value () == 0.f) { - trackTableEntry = &trackTable[0]; + trackTableEntry = &trackTable[i]; break; } - + The rest is cleanup. - - Fixes https://github.com/harfbuzz/harfbuzz/issues/1263 for the - most part. + + Fixes https://github.com/harfbuzz/harfbuzz/issues/1263 for the most part. src/hb-aat-layout-trak-table.hh | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) @@ -15636,22 +16446,14 @@ Date: Wed Oct 17 15:04:35 2018 -0700 [fuzzing] Move fuzzing fonts from api/ here - ...estcase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 1228 -> - 0 bytes - ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 160249 -> - 0 bytes - ...estcase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 313 -> - 0 bytes - ...estcase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 1298 -> - 0 bytes - ...estcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 72435 -> - 0 bytes - ...estcase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 15229 -> - 0 bytes - ...ed-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 109 -> - 0 bytes - ...ed-hb-subset-get-codepoints-fuzzer-6136125075750912 | Bin 65816 -> - 0 bytes + ...estcase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 1228 -> 0 bytes + ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 160249 -> 0 bytes + ...estcase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 313 -> 0 bytes + ...estcase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 1298 -> 0 bytes + ...estcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 72435 -> 0 bytes + ...estcase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 15229 -> 0 bytes + ...ed-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 109 -> 0 bytes + ...ed-hb-subset-get-codepoints-fuzzer-6136125075750912 | Bin 65816 -> 0 bytes test/api/test-subset-glyf.c | 2 +- test/api/test-subset-hdmx.c | 4 ++-- test/api/test-subset-hmtx.c | 2 +- @@ -15676,9 +16478,8 @@ Author: Behdad Esfahbod Date: Tue Oct 16 18:35:03 2018 -0700 [buffer] Add an assert - - See if it helps debugging - https://bugs.chromium.org/p/chromium/issues/detail?id=895117 + + See if it helps debugging https://bugs.chromium.org/p/chromium/issues/detail?id=895117 src/hb-buffer.cc | 2 ++ 1 file changed, 2 insertions(+) @@ -15688,11 +16489,10 @@ Author: Behdad Esfahbod Date: Tue Oct 16 18:28:55 2018 -0700 [fuzzing] Delete blink fuzzed data - + These are text, not font. - ...minimized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 88 -> - 0 bytes + ...minimized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 88 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 25fe7e7e1031401d38db1efed360cd75ea7910b9 @@ -15709,12 +16509,10 @@ Author: HinTak Date: Wed Oct 17 00:54:39 2018 +0100 "allow-none" annotation for "out" parameters - + Fixes the following warnings: - hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation: - only valid for pointer types and out parameters - hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation: - only valid for pointer types and out parameters + hb-ot-tag.cc:330: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters + hb-ot-tag.cc:334: Warning: HarfBuzz: invalid "allow-none" annotation: only valid for pointer types and out parameters src/hb-ot-tag.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -15733,7 +16531,7 @@ Author: HinTak Date: Wed Oct 17 00:36:04 2018 +0100 typo in gobject annotation - "in/out" should be "inout" - + "in/out" should be "inout" src/hb-ot-layout.cc | 2 +- @@ -15744,14 +16542,13 @@ Author: Behdad Esfahbod Date: Tue Oct 16 16:39:29 2018 -0700 [fuzzing] Run tests against fuzzing fonts - + Some disable. test/fuzzing/run-shape-fuzzer-tests.py | 12 ++-- test/fuzzing/run-subset-fuzzer-tests.py | 35 ++++++----- test/shaping/data/in-house/Makefile.sources | 1 - - test/shaping/data/in-house/tests/fuzzed.tests | 84 - --------------------------- + test/shaping/data/in-house/tests/fuzzed.tests | 84 --------------------------- 4 files changed, 24 insertions(+), 108 deletions(-) commit 7b37705fb579a39334be0618c6215c1b887bf9fc @@ -15800,8 +16597,7 @@ Date: Tue Oct 16 16:32:26 2018 -0700 .../fonts/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin .../fonts/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin .../fonts/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin - test/shaping/data/in-house/tests/fuzzed.tests | 16 - ---------------- + test/shaping/data/in-house/tests/fuzzed.tests | 16 ---------------- 17 files changed, 16 deletions(-) commit 1487173dcf4137fb210b15d9a869aa1f0c626d15 @@ -15810,20 +16606,13 @@ Date: Tue Oct 16 16:30:38 2018 -0700 [fuzzing] Delete duplicate fonts - .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 1048576 -> - 0 bytes - .../243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 225 -> - 0 bytes - .../9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 4545 -> - 0 bytes - .../b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 3301 -> - 0 bytes - .../bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 204 -> - 0 bytes - .../dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 2786 -> - 0 bytes - .../ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 1152 -> - 0 bytes + .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 1048576 -> 0 bytes + .../243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 225 -> 0 bytes + .../9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 4545 -> 0 bytes + .../b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 3301 -> 0 bytes + .../bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 204 -> 0 bytes + .../dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 2786 -> 0 bytes + .../ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 1152 -> 0 bytes test/shaping/data/in-house/tests/fuzzed.tests | 7 ------- 8 files changed, 7 deletions(-) @@ -15841,7 +16630,7 @@ Author: Behdad Esfahbod Date: Tue Oct 16 16:24:03 2018 -0700 [gpos] Protect mark attachment against out-of-bounds - + Not sure how can happen, but does... src/hb-ot-layout-gpos-table.hh | 14 ++++++++++---- @@ -15853,12 +16642,9 @@ Date: Tue Oct 16 16:18:32 2018 -0700 [fuzzing] Add more tests - .../fuzzing/fonts/clusterfuzz-testcase-6107935408390144 | Bin 0 -> - 16800 bytes - ...-testcase-minimized-harfbuzz_fuzzer-5973566991106048 | Bin 0 -> - 4047 bytes - ...-testcase-minimized-hb-shape-fuzzer-5633985665826816 | Bin 0 -> - 73 bytes + .../fuzzing/fonts/clusterfuzz-testcase-6107935408390144 | Bin 0 -> 16800 bytes + ...-testcase-minimized-harfbuzz_fuzzer-5973566991106048 | Bin 0 -> 4047 bytes + ...-testcase-minimized-hb-shape-fuzzer-5633985665826816 | Bin 0 -> 73 bytes 3 files changed, 0 insertions(+), 0 deletions(-) commit 12cbe195ae65656dbc9e32b4d50696bc4223136b @@ -15875,9 +16661,9 @@ Author: Behdad Esfahbod Date: Tue Oct 16 15:40:44 2018 -0700 [aat] Make sure Lookup offset is never nulled - + It has unbounded size... - + Fixes https://oss-fuzz.com/v2/testcase-detail/5718889451749376 src/hb-aat-layout-ankr-table.hh | 2 +- @@ -15911,21 +16697,14 @@ Date: Tue Oct 16 15:16:20 2018 -0700 [fuzzing] Add more clusterfuzz tests I had lying around - .../fonts/clusterfuzz-testcase-5517117891805184 | Bin 0 -> - 178 bytes - ...sterfuzz-testcase-hb-shape-fuzzer-5746142327865344 | Bin 0 -> - 219 bytes - ...sterfuzz-testcase-hb-shape-fuzzer-5750379279548416 | Bin 0 -> - 317 bytes - .../clusterfuzz-testcase-minimized-4884742786777088 | Bin 0 -> - 393 bytes + .../fonts/clusterfuzz-testcase-5517117891805184 | Bin 0 -> 178 bytes + ...sterfuzz-testcase-hb-shape-fuzzer-5746142327865344 | Bin 0 -> 219 bytes + ...sterfuzz-testcase-hb-shape-fuzzer-5750379279548416 | Bin 0 -> 317 bytes + .../clusterfuzz-testcase-minimized-4884742786777088 | Bin 0 -> 393 bytes .../clusterfuzz-testcase-minimized-5255344882188288 | Bin 0 -> 65 bytes - .../clusterfuzz-testcase-minimized-5720051798769664 | Bin 0 -> - 1048576 bytes - .../clusterfuzz-testcase-minimized-5924299061854208 | Bin 0 -> - 2786 bytes - .../clusterfuzz-testcase-minimized-6460279560863744 | Bin 0 -> - 589 bytes + .../clusterfuzz-testcase-minimized-5720051798769664 | Bin 0 -> 1048576 bytes + .../clusterfuzz-testcase-minimized-5924299061854208 | Bin 0 -> 2786 bytes + .../clusterfuzz-testcase-minimized-6460279560863744 | Bin 0 -> 589 bytes ...ized-blink_harfbuzz_shaper_fuzzer-5099655095123968 | Bin 0 -> 88 bytes ...estcase-minimized-hb-shape-fuzzer-5650286710882304 | Bin 0 -> 76 bytes ...stcase-minimized-hb-shape-fuzzer-5672261407735808} | Bin @@ -15939,10 +16718,8 @@ Date: Wed Oct 17 01:42:04 2018 +0330 test/fuzzing/Makefile.am | 1 + ...clusterfuzz-testcase-hb-fuzzer-4666056377368576 | Bin 0 -> 1152 bytes - ...clusterfuzz-testcase-hb-fuzzer-5662671558934528 | Bin 0 -> 242272 - bytes - ...clusterfuzz-testcase-hb-fuzzer-6243458541944832 | Bin 0 -> 370187 - bytes + ...clusterfuzz-testcase-hb-fuzzer-5662671558934528 | Bin 0 -> 242272 bytes + ...clusterfuzz-testcase-hb-fuzzer-6243458541944832 | Bin 0 -> 370187 bytes ...clusterfuzz-testcase-hb-fuzzer-6303297511096320 | Bin 0 -> 4545 bytes ...clusterfuzz-testcase-hb-fuzzer-6696647723581440 | Bin 0 -> 3266 bytes ...z-testcase-minimized-hb-fuzzer-4523479581851648 | Bin 0 -> 322 bytes @@ -15955,8 +16732,7 @@ Date: Wed Oct 17 01:42:04 2018 +0330 ...z-testcase-minimized-hb-fuzzer-4827735151083520 | Bin 0 -> 1384 bytes ...z-testcase-minimized-hb-fuzzer-4841745322868736 | Bin 0 -> 660 bytes ...z-testcase-minimized-hb-fuzzer-4884742786777088 | Bin 0 -> 393 bytes - ...z-testcase-minimized-hb-fuzzer-5216838347653120 | Bin 0 -> 157600 - bytes + ...z-testcase-minimized-hb-fuzzer-5216838347653120 | Bin 0 -> 157600 bytes ...z-testcase-minimized-hb-fuzzer-5255344882188288 | Bin 0 -> 65 bytes ...z-testcase-minimized-hb-fuzzer-5294584596791296 | Bin 0 -> 1602 bytes ...z-testcase-minimized-hb-fuzzer-5303930168803328 | Bin 0 -> 7321 bytes @@ -15966,8 +16742,7 @@ Date: Wed Oct 17 01:42:04 2018 +0330 ...z-testcase-minimized-hb-fuzzer-5617496443846656 | Bin 0 -> 195 bytes ...z-testcase-minimized-hb-fuzzer-5672141338968064 | Bin 0 -> 176 bytes ...z-testcase-minimized-hb-fuzzer-5700697074958336 | Bin 0 -> 878 bytes - ...z-testcase-minimized-hb-fuzzer-5720051798769664 | Bin 0 -> 1048576 - bytes + ...z-testcase-minimized-hb-fuzzer-5720051798769664 | Bin 0 -> 1048576 bytes ...z-testcase-minimized-hb-fuzzer-5924299061854208 | Bin 0 -> 2786 bytes ...z-testcase-minimized-hb-fuzzer-6023178755244032 | Bin 0 -> 2261 bytes ...z-testcase-minimized-hb-fuzzer-6111685556305920 | Bin 0 -> 586 bytes @@ -16004,26 +16779,20 @@ Date: Wed Oct 17 01:42:04 2018 +0330 ...case-minimized-hb-shape-fuzzer-5740171484463104 | Bin 0 -> 186 bytes ...case-minimized-hb-shape-fuzzer-5750379279548416 | Bin 0 -> 219 bytes ...case-minimized-hb-shape-fuzzer-5762490181353472 | Bin 0 -> 101 bytes - ...ase-minimized-hb-subset-fuzzer-5359635656605696 | Bin 0 -> 393270 - bytes + ...ase-minimized-hb-subset-fuzzer-5359635656605696 | Bin 0 -> 393270 bytes ...ase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 0 -> 1228 bytes - ...ase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249 - bytes + ...ase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249 bytes ...ase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 0 -> 313 bytes ...ase-minimized-hb-subset-fuzzer-5629878397829120 | Bin 0 -> 3746 bytes ...ase-minimized-hb-subset-fuzzer-5651059347816448 | Bin 0 -> 2648 bytes - ...ase-minimized-hb-subset-fuzzer-5669437462544384 | Bin 0 -> 284427 - bytes + ...ase-minimized-hb-subset-fuzzer-5669437462544384 | Bin 0 -> 284427 bytes ...ase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 0 -> 1298 bytes ...ase-minimized-hb-subset-fuzzer-5696607199166464 | Bin 0 -> 28 bytes - ...ase-minimized-hb-subset-fuzzer-5711951464759296 | Bin 0 -> 284521 - bytes - ...ase-minimized-hb-subset-fuzzer-5747265633779712 | Bin 0 -> 177090 - bytes + ...ase-minimized-hb-subset-fuzzer-5711951464759296 | Bin 0 -> 284521 bytes + ...ase-minimized-hb-subset-fuzzer-5747265633779712 | Bin 0 -> 177090 bytes ...ase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 -> 72435 bytes ...ase-minimized-hb-subset-fuzzer-5758598970343424 | Bin 0 -> 64 bytes - ...ase-minimized-hb-subset-fuzzer-6543700493598720 | Bin 0 -> 138425 - bytes + ...ase-minimized-hb-subset-fuzzer-6543700493598720 | Bin 0 -> 138425 bytes ...ase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 0 -> 15229 bytes ...b-subset-get-codepoints-fuzzer-5203067375976448 | Bin 0 -> 16310 bytes ...b-subset-get-codepoints-fuzzer-5630904853069824 | Bin 0 -> 580 bytes @@ -16033,8 +16802,7 @@ Date: Wed Oct 17 01:42:04 2018 +0330 ...b-subset-get-codepoints-fuzzer-6136125075750912 | Bin 0 -> 65816 bytes ...b-subset-get-codepoints-fuzzer-6394290358976512 | Bin 0 -> 1868 bytes test/fuzzing/run-shape-fuzzer-tests.py | 4 + - test/shaping/data/in-house/tests/fuzzed.tests | 84 - +++++++++++++++++++++ + test/shaping/data/in-house/tests/fuzzed.tests | 84 +++++++++++++++++++++ 87 files changed, 89 insertions(+) commit 2137582c9696b6e38d70b4a0d4199b315c9fd4ce @@ -16042,13 +16810,11 @@ Author: Behdad Esfahbod Date: Tue Oct 16 14:46:07 2018 -0700 [morx] Reword ligation - - Still fails MORX-41. Am talking to Sascha to better understand - what CoreText + + Still fails MORX-41. Am talking to Sascha to better understand what CoreText is doing. - src/hb-aat-layout-morx-table.hh | 25 - ++++++++++++---------- + src/hb-aat-layout-morx-table.hh | 25 ++++++++++++---------- test/shaping/data/text-rendering-tests/DISABLED | 2 ++ .../data/text-rendering-tests/Makefile.sources | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) @@ -16069,8 +16835,7 @@ Date: Tue Oct 16 13:39:54 2018 -0700 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/Makefile.sources | 1 + - .../text-rendering-tests/fonts/TestMORXFourtyone.ttf | Bin 0 -> - 2248 bytes + .../text-rendering-tests/fonts/TestMORXFourtyone.ttf | Bin 0 -> 2248 bytes .../data/text-rendering-tests/tests/MORX-41.tests | 4 ++++ 3 files changed, 5 insertions(+) @@ -16079,10 +16844,10 @@ Author: Behdad Esfahbod Date: Tue Oct 16 13:32:52 2018 -0700 Revert "[vector] Simplify Sort" and "More of the same" - + This reverts commit de0b9a466490c2c13d6ec6f59d5122b0a87d3180. This reverts commit 921f0e6ec722940a1e37660e1291aa69f9f39db8. - + Annnnd, revert. MSVC doesn't like it. src/hb-vector.hh | 11 ++++++++--- @@ -16093,7 +16858,7 @@ Author: Behdad Esfahbod Date: Tue Oct 16 13:24:29 2018 -0700 [kern] Scale kern pairs before applying - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1255 Fixes https://github.com/harfbuzz/harfbuzz/issues/1252 @@ -16115,7 +16880,7 @@ Author: Behdad Esfahbod Date: Mon Oct 15 22:19:17 2018 -0700 [vector] Simplify sort - + Hopefully this fits fine with SFINAE with all our compilers. src/hb-vector.hh | 7 +------ @@ -16130,8 +16895,7 @@ Date: Tue Oct 16 14:17:21 2018 +0330 test/api/CMakeLists.txt | 2 +- test/api/Makefile.am | 2 +- test/api/test-multithread.c | 6 ++- - test/api/{test-ot-nameid.c => test-ot-name.c} | 58 - ++++++++++++++------------- + test/api/{test-ot-nameid.c => test-ot-name.c} | 58 ++++++++++++++------------- 4 files changed, 36 insertions(+), 32 deletions(-) commit 42b75dc3a701b13665115e2a234bfa5dedafef3f @@ -16148,7 +16912,7 @@ Author: Behdad Esfahbod Date: Mon Oct 15 21:16:58 2018 -0700 [kerx] Fix Format6 sanitize - + Fixes https://oss-fuzz.com/v2/testcase-detail/5650286710882304 src/hb-aat-layout-kerx-table.hh | 21 +++++++++++---------- @@ -16159,7 +16923,7 @@ Author: Behdad Esfahbod Date: Mon Oct 15 19:46:45 2018 -0700 [CBDT] Fix more offsetting - + Fixes https://oss-fuzz.com/v2/testcase-detail/5750379279548416 src/hb-ot-color-cbdt-table.hh | 7 ++++--- @@ -16186,7 +16950,7 @@ Author: Behdad Esfahbod Date: Mon Oct 15 11:15:54 2018 -0700 [morx] Another end-of-text corner case - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10990 src/hb-aat-layout-morx-table.hh | 2 ++ @@ -16233,12 +16997,11 @@ Author: Behdad Esfahbod Date: Mon Oct 15 01:09:05 2018 -0700 [ot-font] Implement TrueType v_origin - + Fixes https://github.com/harfbuzz/harfbuzz/issues/537 src/hb-ot-font.cc | 31 +++++++++++++++++- - src/hb-ot-hmtx-table.hh | 43 - ++++++++++++++++--------- + src/hb-ot-hmtx-table.hh | 43 ++++++++++++++++--------- test/shaping/data/in-house/tests/vertical.tests | 2 +- 3 files changed, 59 insertions(+), 17 deletions(-) @@ -16256,9 +17019,9 @@ Author: Behdad Esfahbod Date: Sun Oct 14 21:32:09 2018 -0700 [CBDT] Fix more offsetting issues - + Fixes https://github.com/harfbuzz/harfbuzz/issues/960 - + dump-emoji still segfaults. Needs debugging. src/hb-ot-color-cbdt-table.hh | 28 +++++++++++++++------------- @@ -16269,7 +17032,7 @@ Author: Behdad Esfahbod Date: Sun Oct 14 21:08:42 2018 -0700 [CBDT] Fix offset handling - + Fixes https://github.com/harfbuzz/harfbuzz/issues/960 src/hb-ot-color-cbdt-table.hh | 2 +- @@ -16298,7 +17061,7 @@ Author: Behdad Esfahbod Date: Sun Oct 14 19:39:31 2018 -0700 [morx] Handle end-of-text conditions in Insertion - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955 src/hb-aat-layout-morx-table.hh | 8 ++++---- @@ -16309,7 +17072,7 @@ Author: Behdad Esfahbod Date: Sun Oct 14 19:36:46 2018 -0700 [buffer] Fix output_glyph at end of buffer - + Part of https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10955 src/hb-buffer.hh | 5 ++++- @@ -16338,7 +17101,7 @@ Author: Behdad Esfahbod Date: Sun Oct 14 15:20:50 2018 -0700 Ignore signed-integer-overflow while kerning - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1247 src/hb-ot-kern-table.hh | 1 + @@ -16350,7 +17113,7 @@ Author: Behdad Esfahbod Date: Sun Oct 14 14:56:32 2018 -0700 [kerx] Fix Format1 sanitize - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10948 src/hb-aat-layout-kerx-table.hh | 10 +++++----- @@ -16391,8 +17154,7 @@ Date: Sat Oct 13 19:03:33 2018 -0400 [aat] Finish off massaging table - src/hb-aat-layout.cc | 163 - +++++++++++++++++++++++++-------------------------- + src/hb-aat-layout.cc | 163 +++++++++++++++++++++++++-------------------------- 1 file changed, 81 insertions(+), 82 deletions(-) commit e0c5e0d91bbc0c8b2bb547ba5cb118989affc617 @@ -16400,14 +17162,12 @@ Author: Behdad Esfahbod Date: Sat Oct 13 18:37:14 2018 -0400 [aat] WIP remove feature mapping here from hb-coretext - - Need to map enum values to numerics since we don't have CoreText - headers. + + Need to map enum values to numerics since we don't have CoreText headers. src/hb-aat-layout.cc | 94 +++++++++++++++++++++++++ src/hb-aat-layout.hh | 22 ++++++ - src/hb-coretext.cc | 189 - +-------------------------------------------------- + src/hb-coretext.cc | 189 +-------------------------------------------------- 3 files changed, 117 insertions(+), 188 deletions(-) commit cb057749131826dd89bc3b92527116a974ae3bbe @@ -16433,9 +17193,8 @@ Author: Behdad Esfahbod Date: Sat Oct 13 13:36:27 2018 -0400 [kerx] Fix-up previous commit - - A "&" was missing. Go back to using pointers that are less - error-prone. + + A "&" was missing. Go back to using pointers that are less error-prone. src/hb-aat-layout-kerx-table.hh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) @@ -16462,8 +17221,7 @@ commit c4502833b711a76cce1af0c5bf075692b965c991 Author: Behdad Esfahbod Date: Sat Oct 13 11:48:49 2018 -0400 - [kerx] Use sanitizer.get_num_glyphs() instead of - face->get_num_glyphs() + [kerx] Use sanitizer.get_num_glyphs() instead of face->get_num_glyphs() src/hb-aat-layout-kerx-table.hh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) @@ -16482,10 +17240,10 @@ Author: Behdad Esfahbod Date: Sat Oct 13 09:47:51 2018 -0400 [hangul] Fix use-after-free issue - + out_info might have moved since we copied it's position into local info var. - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=894937 src/hb-ot-shape-complex-hangul.cc | 16 +++++++++------- @@ -16501,8 +17259,7 @@ Date: Sat Oct 13 14:00:05 2018 +0330 src/hb-ot-cmap-table.hh | 4 +- src/hb-ot-layout-common.hh | 4 +- src/hb-ot-layout-gsubgpos.hh | 8 +-- - src/hb-ot-layout.cc | 127 - +++++++++++++++++++------------------------ + src/hb-ot-layout.cc | 127 +++++++++++++++++++------------------------ src/hb-ot-layout.h | 25 +++++---- src/hb-ot-math-table.hh | 8 +-- src/hb-ot-name.h | 1 - @@ -16514,7 +17271,7 @@ Author: Michiharu Ariza Date: Fri Oct 12 14:14:21 2018 -0700 from encode_int removed assert hit by fuzzer - + clamp the value instead src/hb-subset-cff-common.hh | 5 ++++- @@ -16525,7 +17282,7 @@ Author: Behdad Esfahbod Date: Fri Oct 12 16:05:56 2018 -0400 Touch up new API - + New API: +hb_ot_layout_feature_get_name_ids() +hb_ot_layout_feature_get_characters() @@ -16540,9 +17297,9 @@ Author: Behdad Esfahbod Date: Fri Oct 12 15:52:31 2018 -0400 Add hb-ot-name.h - + Actual name-fetching API to come later. - + New API: hb_name_id_t HB_NAME_ID_INVALID @@ -16550,8 +17307,7 @@ Date: Fri Oct 12 15:52:31 2018 -0400 src/Makefile.sources | 1 + src/hb-ot-layout-common.hh | 2 +- src/hb-ot-layout.h | 12 ++--------- - src/hb-ot-name.h | 54 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-name.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot.h | 1 + 5 files changed, 59 insertions(+), 11 deletions(-) @@ -16560,20 +17316,17 @@ Author: Ebrahim Byagowi Date: Fri Oct 12 03:00:59 2018 +0330 Add two APIs for getting stylistic set labels - + * hb_ot_layout_feature_get_characters * hb_ot_layout_feature_get_name_ids - - However HarfBuzz currently doesn't expose an API for retrieving - the actual - information associated with NameId from the `name` table and that - should be + + However HarfBuzz currently doesn't expose an API for retrieving the actual + information associated with NameId from the `name` table and that should be done separately. docs/harfbuzz-sections.txt | 2 + src/hb-ot-layout-common.hh | 14 +++++ - src/hb-ot-layout.cc | 133 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 133 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 29 ++++++++++ test/api/CMakeLists.txt | 2 + test/api/Makefile.am | 1 + @@ -16586,13 +17339,11 @@ Author: Behdad Esfahbod Date: Thu Oct 11 21:37:45 2018 -0400 [sanitize] Reorder condition to silence bogus gcc warning - + Was givin a dozen of: - - ../../src/hb-machinery.hh: In member function ‘bool - AAT::ankr::sanitize(hb_sanitize_context_t*) const’: - ../../src/hb-machinery.hh:307:23: warning: missed loop optimization, - the loop counter may overflow [-Wunsafe-loop-optimizations] + + ../../src/hb-machinery.hh: In member function ‘bool AAT::ankr::sanitize(hb_sanitize_context_t*) const’: + ../../src/hb-machinery.hh:307:23: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations] bool ok = --this->max_ops > 0 && ~~~~~~~~~~~~~~~~~~~~~~ this->start <= p && @@ -16601,9 +17352,8 @@ Date: Thu Oct 11 21:37:45 2018 -0400 ~~~~~~~~~~~~~~~^~ (unsigned int) (this->end - p) >= len; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - I believe those are bogus, but this silences them and does not - introduce + + I believe those are bogus, but this silences them and does not introduce logic issues I believe. src/hb-machinery.hh | 6 +++--- @@ -16634,7 +17384,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 21:18:20 2018 -0400 Always compile deprecated symbols - + We haven't been keeping this updated. So, while we don't expose the symbols in the headers if HB_DISABLE_DEPRECATED is defined, we still always build them. @@ -16654,11 +17404,10 @@ Author: Michiharu Ariza Date: Fri Oct 12 02:16:07 2018 -0700 overhauled error handling in CFF interpreter - + minimized "if (error) return false" idiom - src/hb-cff-interp-common.hh | 138 - +++++++++++++++++++++++---------------- + src/hb-cff-interp-common.hh | 138 +++++++++++++++++++++++---------------- src/hb-cff-interp-cs-common.hh | 43 ++++++------ src/hb-cff-interp-dict-common.hh | 72 +++++++++++--------- src/hb-cff1-interp-cs.hh | 72 +++++++++++--------- @@ -16690,14 +17439,13 @@ Author: Behdad Esfahbod Date: Thu Oct 11 20:45:00 2018 -0400 Attach CursivePositioning backwards, not forward - + This is how Uniscribe does it. So, adjust. This is only relevant to fonts that apply cursive positioning from a contextual lookup. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1181 - src/hb-ot-layout-gpos-table.hh | 20 - ++++++++++---------- + src/hb-ot-layout-gpos-table.hh | 20 ++++++++++---------- .../9fc3e6960b3520e5304033ef5fd540285f72f14d.ttf | Bin 0 -> 2380 bytes .../data/in-house/tests/cursive-positioning.tests | 1 + 3 files changed, 11 insertions(+), 10 deletions(-) @@ -16707,14 +17455,13 @@ Author: Behdad Esfahbod Date: Thu Oct 11 20:20:00 2018 -0400 [myanmar] Implement Zawgyi shaper - + Enabled if script tag 'Qaag' is passed to HarfBuzz. Disables mark advance-zeroing and fallback mark-positioning. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1162 - src/hb-ot-shape-complex-myanmar.cc | 22 - +++++++++++++++++++++ + src/hb-ot-shape-complex-myanmar.cc | 22 +++++++++++++++++++++ src/hb-ot-shape-complex.hh | 5 +++++ src/hb.hh | 8 ++++++++ test/shaping/data/in-house/Makefile.sources | 1 + @@ -16756,8 +17503,7 @@ Date: Thu Oct 11 19:24:52 2018 -0400 [test] Add test for USE indic3 test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/3c96e7a303c58475a8c750bf4289bbe73784f37d.ttf | Bin 0 -> - 3364 bytes + .../fonts/3c96e7a303c58475a8c750bf4289bbe73784f37d.ttf | Bin 0 -> 3364 bytes test/shaping/data/in-house/tests/use-indic3.tests | 1 + 3 files changed, 2 insertions(+) @@ -16775,7 +17521,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 17:51:21 2018 -0400 Pass indic3 tags to USE shaper - + Fixes https://github.com/harfbuzz/harfbuzz/issues/539 src/hb-ot-shape-complex.hh | 6 ++++-- @@ -16809,8 +17555,7 @@ Date: Thu Oct 11 17:08:12 2018 -0400 test/fuzzing/Makefile.am | 16 ---------------- test/fuzzing/hb-subset-fuzzer.cc | 5 +++++ - test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 23 - ----------------------- + test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 23 ----------------------- 3 files changed, 5 insertions(+), 39 deletions(-) commit 2c824d3644e16643c2bbe85fb88f9fb6fed53ce7 @@ -16818,12 +17563,11 @@ Author: Behdad Esfahbod Date: Thu Oct 11 16:41:01 2018 -0400 [aat] Fix two wrongs that made a right before! - + Unfortunately our static asserts (DEFINE_SIZE_STATIC) don't actually fail when used in templates, thanks to SFINAE. Le sighs. - - Probably fixes - https://oss-fuzz.com/v2/testcase-detail/5740171484463104 + + Probably fixes https://oss-fuzz.com/v2/testcase-detail/5740171484463104 src/hb-aat-layout-common.hh | 4 ++-- src/hb-open-type.hh | 2 +- @@ -16834,7 +17578,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 15:56:17 2018 -0400 [aat] Fix mul overflow - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=10897 src/hb-aat-layout-common.hh | 11 ++++++++--- @@ -16856,7 +17600,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 15:14:18 2018 -0400 [arabic] Update to latest UTR#53 - + From Lorna Evans: "That was a new character added to Unicode 11.0" src/hb-ot-shape-complex-arabic.cc | 1 + @@ -16868,8 +17612,7 @@ Date: Thu Oct 11 15:03:21 2018 -0400 [test] Fix use of deprecated symbols - test/api/test-ot-tag.c | 60 - ++++++++++++++++++++++++++++++++++++++------------ + test/api/test-ot-tag.c | 60 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 14 deletions(-) commit ca37172ee3908bac12cc3d97768b95ae571530d2 @@ -16904,9 +17647,8 @@ Author: Behdad Esfahbod Date: Thu Oct 11 14:25:48 2018 -0400 [graphite] Fix deva/dev2 resolution - - See - https://github.com/harfbuzz/harfbuzz/pull/730#issuecomment-428277800 + + See https://github.com/harfbuzz/harfbuzz/pull/730#issuecomment-428277800 src/hb-graphite2.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -16916,13 +17658,12 @@ Author: Behdad Esfahbod Date: Thu Oct 11 14:16:55 2018 -0400 Add doc stubs for recently added API - - Thanks to David Corbett who revamped our script and language - processing + + Thanks to David Corbett who revamped our script and language processing and implemented full BCP 47 support. - + https://github.com/harfbuzz/harfbuzz/pull/730 - + New API: +hb_ot_layout_table_select_script() +hb_ot_layout_script_select_language() @@ -16930,7 +17671,7 @@ Date: Thu Oct 11 14:16:55 2018 -0400 +HB_OT_MAX_TAGS_PER_LANGUAGE +hb_ot_tags_from_script_and_language() +hb_ot_tags_to_script_and_language() - + Deprecated API: -hb_ot_layout_table_choose_script() -hb_ot_layout_script_find_language() @@ -16958,9 +17699,8 @@ Author: David Corbett Date: Mon Sep 10 13:15:00 2018 -0400 Increase HB_OT_MAX_TAGS_PER_SCRIPT to 3 - - No script has 3 tags yet, but the plan is for the Indic scripts - to each + + No script has 3 tags yet, but the plan is for the Indic scripts to each get a third tag someday. src/hb-ot-tag.h | 2 +- @@ -16984,8 +17724,7 @@ Date: Mon Jul 23 21:19:23 2018 -0400 docs/harfbuzz-sections.txt | 3 +- src/hb-ot-map.cc | 2 +- - src/hb-ot-tag.cc | 75 - ++++++++++++++++++++++++++++++++++++++++------ + src/hb-ot-tag.cc | 75 ++++++++++++++++++++++++++++++++++++++++------ src/hb-ot-tag.h | 18 +++++++---- test/api/test-ot-tag.c | 33 ++++++++++++++++++-- 5 files changed, 112 insertions(+), 19 deletions(-) @@ -16995,14 +17734,12 @@ Author: David Corbett Date: Thu Jul 19 13:48:07 2018 -0400 Switch on the first char of a complex language tag - - This results in a tenfold speed-up for the common case of tags - that are + + This results in a tenfold speed-up for the common case of tags that are not complex, in the sense of `hb_ot_tags_from_complex_language`. src/gen-tag-table.py | 171 ++++-- - src/hb-ot-tag-table.hh | 1580 - ++++++++++++++++++++++++------------------------ + src/hb-ot-tag-table.hh | 1580 ++++++++++++++++++++++++------------------------ 2 files changed, 922 insertions(+), 829 deletions(-) commit a754d44195021603306af2a296d06187eda95409 @@ -17010,19 +17747,16 @@ Author: David Corbett Date: Mon Jul 16 21:14:48 2018 -0400 Map Quechua languages to closest ones with tags - + OpenType only officially maps four ISO 639 codes to Quechua languages, - but prior versions of HarfBuzz also mapped qu to 'QUZ '. Because qu - is a + but prior versions of HarfBuzz also mapped qu to 'QUZ '. Because qu is a macrolanguage, the mapping now applies to all individual Quechua - languages. OpenType calls 'QUZ ' "Quechua", but it really corresponds - to + languages. OpenType calls 'QUZ ' "Quechua", but it really corresponds to Cusco Quechua, so the individual Quechua languages should not all necessarily be mapped to it. src/gen-tag-table.py | 32 ++++++++++++++++++++++++++ - src/hb-ot-tag-table.hh | 62 - +++++++++++++++++++++++++++----------------------- + src/hb-ot-tag-table.hh | 62 +++++++++++++++++++++++++++----------------------- 2 files changed, 65 insertions(+), 29 deletions(-) commit 65d01f77552a5102ee114d9917fd2ecf091a35c3 @@ -17030,16 +17764,13 @@ Author: David Corbett Date: Thu Jan 18 16:33:39 2018 -0500 Test deprecated tag fallback in a font - + The font supports the deprecated tag 'DHV ' instead of 'DIV '. dv is mapped to 'DIV ' and 'DHV ', in that order. The test specifies - `--language=dv`, demonstrating that if a font does not support - the first - OpenType tag mapped to a BCP 47 tag, it will fall back to the - next tag. + `--language=dv`, demonstrating that if a font does not support the first + OpenType tag mapped to a BCP 47 tag, it will fall back to the next tag. - .../fonts/d3129450fafe5e5c98cfc25a4e71809b1b4d2855.ttf | Bin 0 -> - 956 bytes + .../fonts/d3129450fafe5e5c98cfc25a4e71809b1b4d2855.ttf | Bin 0 -> 956 bytes test/shaping/data/in-house/tests/language-tags.tests | 1 + 2 files changed, 1 insertion(+) @@ -17048,12 +17779,11 @@ Author: David Corbett Date: Sat Jan 20 15:53:09 2018 -0500 Match extlang subtags - + If the second subtag of a BCP 47 tag is three letters long, it denotes - an extended language. The tag converter ignores the language - subtag and + an extended language. The tag converter ignores the language subtag and uses the extended language instead. - + There are some grandfathered exceptions, which are handled earlier. src/gen-tag-table.py | 2 +- @@ -17067,57 +17797,46 @@ Author: David Corbett Date: Fri Dec 8 22:45:52 2017 -0500 Autogenerate the BCP 47 to OpenType mappings - - The new script, gen-tag-table.py, generates `ot_languages` - automatically + + The new script, gen-tag-table.py, generates `ot_languages` automatically from the [OpenType language system tag registry][ot] and the [IANA Language Subtag Registry][bcp47] with some manual modifications. If an OpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's individual languages are mapped to the same OpenType tag, except for individual languages with their own OpenType mappings. Deprecated BCP 47 tags are canonicalized. - - [ot]: - https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags - [bcp47]: - https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry - + + [ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags + [bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry + Some OpenType tags correspond to multiple ISO 639 codes. The mapping - from ISO 639 codes lists OpenType tags in priority order, such - that more + from ISO 639 codes lists OpenType tags in priority order, such that more specific or more likely tags appear first. - - Some OpenType tags have no corresponding ISO 639 code in the - registry so - their mappings use BCP 47 subtags besides the language. For example, - any - BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and - 'IPPH' + + Some OpenType tags have no corresponding ISO 639 code in the registry so + their mappings use BCP 47 subtags besides the language. For example, any + BCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH' is mapped back to und-fonipa. - - Other OpenType tags have no corresponding ISO 639 code because it - is not + + Other OpenType tags have no corresponding ISO 639 code because it is not clear what they are for. HarfBuzz just ignores these tags. - + One such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means zh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei with the script tag 'hani', implying that it is not a romanization scheme after all. It would be simple enough to add this mapping to gen-tag-table.py once a definitive mapping is determined. - + The manual modifications are mainly either obvious mappings that the OpenType registry omits or mappings for compatibility with previous versions of HarfBuzz. Some of the old mappings were discarded, though, for homophonous language names. For example, OpenType maps 'KUI ' to kxu; previous versions of HarfBuzz also mapped it to kvd, because kvd and kxu both happen to be called "Kui". - - gen-tag-table.py also generates a function to convert multi-subtag - tags - like el-polyton and zh-HK to OpenType tags, replacing - `ot_languages_zh` - and the hard-coded list of special cases in - `hb_ot_tags_from_language`. + + gen-tag-table.py also generates a function to convert multi-subtag tags + like el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh` + and the hard-coded list of special cases in `hb_ot_tags_from_language`. It also generates a function to convert OpenType tags to BCP 47, replacing the hard-coded list of special cases in `hb_ot_tag_to_language`. @@ -17125,8 +17844,7 @@ Date: Fri Dec 8 22:45:52 2017 -0500 src/Makefile.am | 9 +- src/Makefile.sources | 1 + src/gen-tag-table.py | 1013 ++++++++++++++++++++++++ - src/hb-ot-tag-table.hh | 1997 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-tag-table.hh | 1997 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-tag.cc | 842 +------------------- src/hb-ot-tag.h | 2 +- test/api/test-ot-tag.c | 66 +- @@ -17137,13 +17855,13 @@ Author: David Corbett Date: Fri Dec 29 20:19:05 2017 +0800 Deprecate obsolete functions - + `hb_ot_tags` replaces `hb_ot_tags_from_script` and `hb_ot_tag_from_language`. - + `hb_ot_layout_table_select_script` replaces `hb_ot_layout_table_choose_script`. - + `hb_ot_layout_script_select_language` replaces `hb_ot_layout_script_find_language`. @@ -17158,38 +17876,34 @@ Author: David Corbett Date: Fri Dec 8 11:21:14 2017 -0500 Refactor the selection of script and language tags - + The old hb-ot-tag.cc functions, `hb_ot_tags_from_script` and `hb_ot_tag_from_language`, are now wrappers around a new function: `hb_ot_tags`. It converts a script and a language to arrays of script - tags and language tags. This will make it easier to add new script - tags + tags and language tags. This will make it easier to add new script tags to scripts, like 'dev3'. It also allows for language fallback chains; nothing produces more than one language yet though. - + Where the old functions return the default tags 'DFLT' and 'dflt', `hb_ot_tags` returns an empty array. The caller is responsible for using the default tag in that case. - + The new function also adds a new private use subtag syntax for script overrides: "x-hbscabcd" requests a script tag of 'abcd'. - - The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` - and + + The old hb-ot-layout.cc functions,`hb_ot_layout_table_choose_script` and `hb_ot_layout_script_find_language` are now wrappers around the new functions `hb_ot_layout_table_select_script` and - `hb_ot_layout_script_select_language`. They are essentially the - same as + `hb_ot_layout_script_select_language`. They are essentially the same as the old ones plus a tag count parameter. - + Closes #495. docs/harfbuzz-sections.txt | 5 + src/hb-ot-layout.cc | 43 +- src/hb-ot-layout.h | 16 + src/hb-ot-map.cc | 13 +- - src/hb-ot-tag.cc | 1639 - ++++++++++++++++++++++++-------------------- + src/hb-ot-tag.cc | 1639 ++++++++++++++++++++++++-------------------- src/hb-ot-tag.h | 11 + test/api/test-ot-tag.c | 107 +++ 7 files changed, 1070 insertions(+), 764 deletions(-) @@ -17199,11 +17913,9 @@ Author: David Corbett Date: Thu Dec 28 22:59:29 2017 +0800 Replace "ISO 639" with "BCP 47" - - `hb_language_from_string` accepts not only ISO 639 but also BCP - 47. Not - all ISO 639 codes are valid BCP 47 tags but the function does - not accept + + `hb_language_from_string` accepts not only ISO 639 but also BCP 47. Not + all ISO 639 codes are valid BCP 47 tags but the function does not accept overlong language subtags anyway. src/hb-buffer.cc | 2 +- @@ -17222,21 +17934,15 @@ Author: Michiharu Ariza Date: Thu Oct 11 10:53:44 2018 -0700 Replaced CFF1 J subset font for better coverage - + in api test-ot-extents-cff - test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 0 -> - 3892 bytes - test/api/fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 5864 -> - 0 bytes - test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 0 -> - 2548 bytes - test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 5500 -> - 0 bytes - test/api/test-ot-extents-cff.c | 15 - +++++++++++++++ - test/api/test-subset-cff1.c | 18 - +++++++++--------- + test/api/fonts/SourceHanSans-Regular.41,3041,4C2E.otf | Bin 0 -> 3892 bytes + test/api/fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 5864 -> 0 bytes + test/api/fonts/SourceHanSans-Regular.41,4C2E.otf | Bin 0 -> 2548 bytes + test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 5500 -> 0 bytes + test/api/test-ot-extents-cff.c | 15 +++++++++++++++ + test/api/test-subset-cff1.c | 18 +++++++++--------- 6 files changed, 24 insertions(+), 9 deletions(-) commit 0b9d60e1a1c4b7867ac907bbd7c004191a14e697 @@ -17244,7 +17950,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 13:26:58 2018 -0400 [aat] Apply kerx if GPOS kern was not applied - + Ned tells me this is what Apple does. src/hb-ot-shape.cc | 18 ++++++++---------- @@ -17276,11 +17982,10 @@ Author: Behdad Esfahbod Date: Thu Oct 11 11:25:07 2018 -0400 [trak] Implement extrapolation - + This concludes trak, as well as AAT shaping support! - src/hb-aat-layout-trak-table.hh | 39 - ++++++++++++++++++++------------------- + src/hb-aat-layout-trak-table.hh | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) commit d6a12dba6da6262fd9e5d8397b46ac8516136cae @@ -17288,7 +17993,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 11:10:06 2018 -0400 [trak] Fix, and hook up - + Works beautifully! Test coming. src/hb-aat-layout-common.hh | 4 ++-- @@ -17330,7 +18035,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 10:22:01 2018 -0400 [trak] Only adjust around first glyph - + Assumes graphemes only have one base glyph. src/hb-aat-layout-trak-table.hh | 12 ++++++------ @@ -17342,8 +18047,7 @@ Date: Thu Oct 11 10:18:46 2018 -0400 [trak] Clean up - src/hb-aat-layout-trak-table.hh | 67 - +++++++++++++++++++++++------------------ + src/hb-aat-layout-trak-table.hh | 67 +++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 30 deletions(-) commit fbbd926dba163d9a2a6a62f380951f03363c2b14 @@ -17351,9 +18055,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 01:22:29 2018 -0400 [kerx] Implement Format4 action_type=1 contour-point-based attachment - + Untested. - + This concludes kerx table support! src/hb-aat-layout-kerx-table.hh | 17 ++++++++++++++++- @@ -17364,7 +18068,7 @@ Author: Behdad Esfahbod Date: Thu Oct 11 01:17:57 2018 -0400 [kerx] Implement Format4 action_type=2 coordinate-based attachment - + Untested. src/hb-aat-layout-kerx-table.hh | 21 ++++++++++++--------- @@ -17375,9 +18079,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 01:14:18 2018 -0400 [kerx] Implement Format4 'ankr'-based mark attachment - + Tested with Kannada MN: - + $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0CCD,0C95,0CD6 [kn_ka.vattu=0+230|kn_ai_length_mark=1@326,0+607] @@ -17402,11 +18106,10 @@ Author: Behdad Esfahbod Date: Thu Oct 11 00:12:49 2018 -0400 [kerx] Flesh out Format4 - + Doesn't apply actions yet. - src/hb-aat-layout-kerx-table.hh | 122 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-aat-layout-kerx-table.hh | 122 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 118 insertions(+), 4 deletions(-) commit 947962a287d9aca2cb509c11f44cb5150aa6daf1 @@ -17459,16 +18162,15 @@ Author: Behdad Esfahbod Date: Wed Oct 10 21:46:58 2018 -0400 [kerx] Make Format1 work - + Tested using Kannada MN: - + $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD [kn_ka.virama=0+1299|kn_ka.vattu=0+115|_blank=0@-115,0+385] - - $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD - --features=-kern + + $ HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CCd,C95,CCD --features=-kern [kn_ka.virama=0+1799|kn_ka.vattu=0+230|_blank=0+0] - + I don't see the GPOS table in the font do the same. ¯\_(ツ)_/¯ src/hb-aat-layout-kerx-table.hh | 15 ++++++++++----- @@ -17489,19 +18191,16 @@ Date: Wed Oct 10 18:35:12 2018 -0700 src/hb-cff2-interp-cs.hh | 12 +++++----- test/api/fonts/AdobeVFPrototype_vsindex.otf | Bin 0 -> 7036 bytes - test/api/test-ot-extents-cff.c | 33 - ++++++++++++++++++++++++++++ + test/api/test-ot-extents-cff.c | 33 ++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 5 deletions(-) commit 504cb68fc972c7f606bf9fc62015376382f78f45 Author: Behdad Esfahbod Date: Wed Oct 10 21:29:46 2018 -0400 - Disable mark advance zeroing as well as mark fallback positioning - if doing kerx + Disable mark advance zeroing as well as mark fallback positioning if doing kerx - src/hb-ot-shape.cc | 50 - ++++++++++++++++++++++++++------------------------ + src/hb-ot-shape.cc | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) commit 84967537966a76297c89460d95e7336f1bfc332d @@ -17509,11 +18208,10 @@ Author: Behdad Esfahbod Date: Wed Oct 10 21:18:37 2018 -0400 [kerx] Implement Format1 - + Untested. - src/hb-aat-layout-kerx-table.hh | 62 - +++++++++++++++++++++++++++++++++-------- + src/hb-aat-layout-kerx-table.hh | 62 +++++++++++++++++++++++++++++++++-------- src/hb-aat-layout-morx-table.hh | 2 +- 2 files changed, 52 insertions(+), 12 deletions(-) @@ -17541,8 +18239,7 @@ Date: Wed Oct 10 20:37:22 2018 -0400 [kerx] Start fleshing out Format1 - src/hb-aat-layout-kerx-table.hh | 59 - +++++++++++++++++++++++++++++++++++------ + src/hb-aat-layout-kerx-table.hh | 59 +++++++++++++++++++++++++++++++++++------ src/hb-aat-layout-morx-table.hh | 2 +- 2 files changed, 52 insertions(+), 9 deletions(-) @@ -17551,13 +18248,11 @@ Author: Behdad Esfahbod Date: Wed Oct 10 20:10:20 2018 -0400 [kerx] Implement Format6 - - Untested. The only Apple font shipping with this format is San - Francisco fonts + + Untested. The only Apple font shipping with this format is San Francisco fonts that use this for their kerx variation tables, which we don't support. - src/hb-aat-layout-kerx-table.hh | 73 - +++++++++++++++++++++++++++++++++-------- + src/hb-aat-layout-kerx-table.hh | 73 +++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 13 deletions(-) commit c9a2ce9e05f91730a2150b9214dc6a49f31555c1 @@ -17575,8 +18270,7 @@ Date: Wed Oct 10 19:58:20 2018 -0400 [kerx] Start fleshing out Format6 - src/hb-aat-layout-kerx-table.hh | 42 - ++++++++++++++++++++++++++++++++--------- + src/hb-aat-layout-kerx-table.hh | 42 ++++++++++++++++++++++++++++++++--------- src/hb-open-type.hh | 3 +++ 2 files changed, 36 insertions(+), 9 deletions(-) @@ -17594,26 +18288,22 @@ Author: Behdad Esfahbod Date: Wed Oct 10 19:11:30 2018 -0400 [kerx] No-op - + Tested that Format0 works with Kannada MN font: - - $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc - -u 0C95,0CC2 + + $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 [kn_ka=0+1000|kn_matra_uu=0@-30,0+1345] - - $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u - 0C95,0CC2 --features=-kern + + $ make -j5 lib -s && HB_OPTIONS=aat ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 --features=-kern [kn_ka=0+1030|kn_matra_uu=0+1375] - - Note that GPOS does the same with 'dist' feature, and applies the - whole difference to the + + Note that GPOS does the same with 'dist' feature, and applies the whole difference to the same glyph: - + $ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 [kn_ka=0+970|kn_matra_uu=0+1375] - - $ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 - --features=-dist + + $ make -j5 lib -s && ./hb-shape Kannada\ MN.ttc -u 0C95,0CC2 --features=-dist [kn_ka=0+1030|kn_matra_uu=0+1375] src/hb-aat-layout-kerx-table.hh | 4 +--- @@ -17642,20 +18332,18 @@ Author: Behdad Esfahbod Date: Wed Oct 10 18:14:41 2018 -0400 [kern/kerx] Fix offset base - + Disable kern Format2. - - Fix kerx Format2. Manually tested this with Tamil MN font and - it works: - + + Fix kerx Format2. Manually tested this with Tamil MN font and it works: + $ HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95 [tgv_au=0+3435|tgc_ka=1@-75,0+1517] - + HB_OPTIONS=aat ./hb-shape Tamil\ MN.ttc -u 0B94,0B95 --features=-kern [tgv_au=0+3510|tgc_ka=1+1592] - src/hb-aat-layout-kerx-table.hh | 73 - +++++++++++++++++++++++++---------------- + src/hb-aat-layout-kerx-table.hh | 73 +++++++++++++++++++++++++---------------- src/hb-ot-kern-table.hh | 7 ++++ 2 files changed, 52 insertions(+), 28 deletions(-) @@ -17675,7 +18363,7 @@ Author: Behdad Esfahbod Date: Wed Oct 10 17:44:46 2018 -0400 Allow HB_OPTIONS=aat to prefer AAT tables over OT - + Fixes https://github.com/harfbuzz/harfbuzz/issues/322 src/hb-common.cc | 23 +++++++++++++++++++++-- @@ -17697,7 +18385,7 @@ Author: Behdad Esfahbod Date: Wed Oct 10 16:32:35 2018 -0400 Remove HAVE_OT - + We never tested compiling without it. Just kill it. We always build our own shaper. @@ -17729,13 +18417,12 @@ Author: Behdad Esfahbod Date: Wed Oct 10 12:07:49 2018 -0400 Add per-subtable set-digests - + This speeds up Roboto shaping by ~10%. I was hoping for more. Still, good defense against lookups with many subtables. src/hb-null.hh | 2 +- - src/hb-ot-layout-gsubgpos.hh | 108 - +++++++++++++++++++++++-------------------- + src/hb-ot-layout-gsubgpos.hh | 108 +++++++++++++++++++++++-------------------- 2 files changed, 59 insertions(+), 51 deletions(-) commit e78549edfb4df617128a5f5ddd12692f1d0af4bf @@ -17776,12 +18463,11 @@ Author: Behdad Esfahbod Date: Wed Oct 10 11:36:28 2018 -0400 Move code - + In preparation to move add per-subtable set digests... src/hb-ot-layout-gsubgpos.hh | 50 ++++++++++++++++++++++++++++++++++++++ - src/hb-ot-layout.cc | 57 - ++++---------------------------------------- + src/hb-ot-layout.cc | 57 ++++---------------------------------------- 2 files changed, 54 insertions(+), 53 deletions(-) commit a03850a3567d532c3a4d7655aa71bfe73dfb0e33 @@ -17789,7 +18475,7 @@ Author: Behdad Esfahbod Date: Wed Oct 10 10:57:28 2018 -0400 Fix GPOS/kern interaction - + Oops. Was checking for kern feature in GSUB, not GPOS. src/hb-ot-shape.cc | 2 +- @@ -17800,11 +18486,10 @@ Author: Behdad Esfahbod Date: Wed Oct 10 10:49:45 2018 -0400 More rewriting plan compile - + Hopefully more clear. - src/hb-ot-shape.cc | 55 - ++++++++++++++++++++++++++++++++++++++---------------- + src/hb-ot-shape.cc | 55 ++++++++++++++++++++++++++++++++++++++---------------- src/hb-ot-shape.hh | 1 - 2 files changed, 39 insertions(+), 17 deletions(-) @@ -17843,7 +18528,7 @@ Author: Behdad Esfahbod Date: Wed Oct 10 10:16:09 2018 -0400 Apply TT or fallback kerning when GPOS does not have kern feature - + Previously we only did if there was no GPOS whatsoever. This applies to Arial, Times New Roman, etc in Win7. Was not kerning before. It is now. @@ -17867,8 +18552,7 @@ Date: Wed Oct 10 17:12:52 2018 +0330 [circleci] Add an iOS bot (#1233) .circleci/config.yml | 12 +++++ - CMakeLists.txt | 140 - ++++++++++++++++++++++++++++++++------------------- + CMakeLists.txt | 140 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 100 insertions(+), 52 deletions(-) commit c06a5dff0b0f8d1c5aba53bcfd7fb0b680f1ca92 @@ -17883,7 +18567,7 @@ Author: Michiharu Ariza Date: Tue Oct 9 21:59:36 2018 -0700 added cff1_legacyops.otf as test-ot-extents-cff test case - + fixed roll operator bugs uncovered by the test src/hb-cff-interp-common.hh | 4 ++-- @@ -17925,9 +18609,9 @@ Author: Behdad Esfahbod Date: Tue Oct 9 23:17:32 2018 -0400 [aat] Fixup recent commit - + For 329f2401082011007d9ce12b15ce0225cd267c57 - + max_ops is signed. src/hb-aat-layout-common.hh | 2 +- @@ -17949,7 +18633,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 23:02:53 2018 -0400 [aat] Set embedded sanitizer max ops really high - + Since we consume it legitimately during shaping. src/hb-aat-layout-common.hh | 1 + @@ -17989,7 +18673,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 22:49:33 2018 -0400 [kerx] Implement Format2 apply() - + Still, not hooked. src/hb-aat-layout-kerx-table.hh | 5 +---- @@ -18028,7 +18712,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 22:35:22 2018 -0400 [kerx] Implement Format0 apply() - + Not hooked up to be called yet. src/hb-aat-layout-common.hh | 6 ++++-- @@ -18070,12 +18754,11 @@ Author: Behdad Esfahbod Date: Tue Oct 9 16:24:50 2018 -0400 [ft] Use mutex to lock access to FT_Face - - Makes our FT-backed hb_font_t safe to use from multiple threads. - Still, + + Makes our FT-backed hb_font_t safe to use from multiple threads. Still, the underlying FT_Face should NOT be used from other threads by client or other libraries. - + Maybe I add a lock()/unlock() public API ala PangoFT2 and cairo-ft. Maybe not. @@ -18107,11 +18790,9 @@ Author: Behdad Esfahbod Date: Tue Oct 9 15:39:51 2018 -0400 Install ot-funcs on newly created funcs - - **Finally**! Casual users can stop caring about font-funcs - completely now, - like they haven't been needing to care re unicode-funcs for a - few years. + + **Finally**! Casual users can stop caring about font-funcs completely now, + like they haven't been needing to care re unicode-funcs for a few years. src/hb-font.cc | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) @@ -18121,15 +18802,12 @@ Author: Behdad Esfahbod Date: Tue Oct 9 15:12:09 2018 -0400 [ot-font] Don't pre-load cmap table - - Now that we have get_h_advances() and get_nominal_glyphs() - implemented, the - overhead of doing a proper atomic load would be once per run, NOT - once per + + Now that we have get_h_advances() and get_nominal_glyphs() implemented, the + overhead of doing a proper atomic load would be once per run, NOT once per glyph. So, no need to pre-load the tables to avoid that overhead. - - As such, hb_ot_font_set_funcs() has become really cheap. - Can *finally* make + + As such, hb_ot_font_set_funcs() has become really cheap. Can *finally* make it be default font functions on all newly created fonts! src/hb-ot-font.cc | 9 +++------ @@ -18140,47 +18818,40 @@ Author: Behdad Esfahbod Date: Tue Oct 9 15:07:04 2018 -0400 [ot/ft] Implement get_nominal_glyphs() callback - - Some more measurable speedup. The recent commits' speedups are - as follows: - + + Some more measurable speedup. The recent commits' speedups are as follows: + Testing with Roboto, ****when disabling kern and liga****: - + Before: - + FT --features=-kern,-liga user↦ 0m0.521s - + OT --features=-liga,-kern user↦ 0m0.568s - + After: - + FT --features=-liga,-kern user↦ 0m0.428s - + OT --features=-liga,-kern user↦ 0m0.470s - + So, 17% speedup. - - Note that FT callbacks are faster than OT these days since we added - an advance - cache to FT. I don't think the difference is enough to justify - adding a cache + + Note that FT callbacks are faster than OT these days since we added an advance + cache to FT. I don't think the difference is enough to justify adding a cache to OT. - - When not disabling kern, the thing is three times slower, so the - speedups - are three times less impressive... Still, 5% not bad for a codebase - that I + + When not disabling kern, the thing is three times slower, so the speedups + are three times less impressive... Still, 5% not bad for a codebase that I otherwise thought is optimized out. - + Note that, because of this and other optimiztions in our main shaper, - disabling kern and liga, the OT shaper is now *faster* than the - fallback - shaper. So, that's my recommendation to clients that need the - absolute + disabling kern and liga, the OT shaper is now *faster* than the fallback + shaper. So, that's my recommendation to clients that need the absolute fastest... src/hb-ft.cc | 26 ++++++++++++++++++++++++++ @@ -18192,9 +18863,8 @@ Author: Behdad Esfahbod Date: Tue Oct 9 14:50:57 2018 -0400 Call get_nominal_glyphs() for runs of simple clusters at a time - - Even without FT or OT font funcs implementing get_nominal_glyphs(), - there's measurable + + Even without FT or OT font funcs implementing get_nominal_glyphs(), there's measurable speedup. src/hb-buffer.hh | 20 +++++++++++++++++++- @@ -18208,8 +18878,7 @@ Date: Tue Oct 9 14:38:23 2018 -0400 Whitespace src/hb-font.hh | 2 +- - src/hb-ot-shape-normalize.cc | 52 - ++++++++++++++++++++++++-------------------- + src/hb-ot-shape-normalize.cc | 52 ++++++++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 25 deletions(-) commit 30c114ffec335770452e60729224b1634586c5b0 @@ -18217,11 +18886,10 @@ Author: Behdad Esfahbod Date: Tue Oct 9 14:37:08 2018 -0400 Avoid sort and recompose stages if all clusters simple - + Even has measurable speedup... - src/hb-ot-shape-normalize.cc | 52 - ++++++++++++++++++++++++-------------------- + src/hb-ot-shape-normalize.cc | 52 ++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 23 deletions(-) commit 9f79365c3b183278d14352ba6241c7d4ec274984 @@ -18229,17 +18897,13 @@ Author: Behdad Esfahbod Date: Tue Oct 9 14:36:25 2018 -0400 Fix warning - + How come this one is not generated by clang everything bot?! - - ../../../test/api/test-multithread.c:37:26: warning: initialization - discards ‘const’ qualifier from pointer target type - [-Wdiscarded-qualifiers] + + ../../../test/api/test-multithread.c:37:26: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] static char *font_path = "fonts/Inconsolata-Regular.abc.ttf"; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ../../../test/api/test-multithread.c:38:21: warning: initialization - discards ‘const’ qualifier from pointer target type - [-Wdiscarded-qualifiers] + ../../../test/api/test-multithread.c:38:21: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] test/api/test-multithread.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -18258,7 +18922,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 14:12:59 2018 -0400 Inline decompose_cluster - + Towards separating the common case into its own loop. src/hb-ot-shape-normalize.cc | 14 ++++---------- @@ -18276,7 +18940,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 09:23:51 2018 -0400 [font] Add get_nominal_glyphs() callback (note the plural) - + Unused as of now. To be wired up to normalizer, which would remove overhead and allow hb-ot-font initialization to become a no-op, so we can enable it by default. @@ -18303,9 +18967,8 @@ Author: Chun-wei Fan Date: Wed Jul 25 18:26:10 2018 +0800 test/api/test-subset-*.c: Fix build on pre-C99 - - Ensure that we have the variables at the beginning of the block. - These + + Ensure that we have the variables at the beginning of the block. These are the only fixes that we need for building HarfBuzz on older compilers. @@ -18323,13 +18986,13 @@ Author: Chun-wei Fan Date: Wed Jul 25 18:12:34 2018 +0800 builds: Fix and clean up MSVC DLL builds - + Instead of passing a CFLAG/CXXFLAG to define HB_EXTERN, define it directly in src/hb.hh as __declspec(dllexport) extern when we are building HarfBuzz as DLLs on Visual Studio. Define HB_INTERNAL as nothing without defining HB_NO_VISIBILITY when building HarfBuzz as DLLs to avoid linker errors on Visual Studio builds. - + Also "install" harfbuzz-subset.dll into $(PREFIX)\bin as the hb-subset utility will depend on that DLL at runtime, when HarfBuzz is built as DLLs. Since it consists of private APIs that are subject to @@ -18354,8 +19017,7 @@ Date: Tue Oct 9 08:20:10 2018 -0400 Try fixing older bots - src/hb-ot-shape-fallback.cc | 42 - +++++++++++++++++++++--------------------- + src/hb-ot-shape-fallback.cc | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) commit bee93e269711a3eda4e7d762b730522564fe6e87 @@ -18363,7 +19025,7 @@ Author: Behdad Esfahbod Date: Tue Oct 9 08:01:49 2018 -0400 Add const to get_*_advances API - + Ouch! src/hb-font.cc | 10 +++++----- @@ -18438,8 +19100,7 @@ Date: Tue Oct 9 00:39:42 2018 -0400 src/hb-glib.cc | 31 +----------------------------- src/hb-icu.cc | 33 +------------------------------- src/hb-ucdn.cc | 8 +------- - test/api/test-unicode.c | 51 - ------------------------------------------------- + test/api/test-unicode.c | 51 ------------------------------------------------- 4 files changed, 3 insertions(+), 120 deletions(-) commit eed737f6726d3408191a4e64592805b70d8bb247 @@ -18451,8 +19112,7 @@ Date: Tue Oct 9 00:33:30 2018 -0400 src/hb-glib.cc | 8 +------ src/hb-icu.cc | 19 +-------------- src/hb-ucdn.cc | 9 +------ - test/api/test-unicode.c | 64 - ------------------------------------------------- + test/api/test-unicode.c | 64 ------------------------------------------------- 4 files changed, 3 insertions(+), 97 deletions(-) commit 47030b1855f04c0d75899ffb6f5021fea3c19b90 @@ -18490,25 +19150,21 @@ Date: Tue Oct 9 00:01:09 2018 -0400 Deprecate font kern API docs/harfbuzz-sections.txt | 16 +++++++------- - src/hb-deprecated.h | 54 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-deprecated.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-font.cc | 3 +++ - src/hb-font.h | 51 - ------------------------------------------- + src/hb-font.h | 51 ------------------------------------------- 4 files changed, 65 insertions(+), 59 deletions(-) commit a51958819fcf51ade3f8eb38001e680a419ebbba Author: Behdad Esfahbod Date: Mon Oct 8 23:57:45 2018 -0400 - Apply TrueType/OpenType kern table when GPOS kern feature is not - available - + Apply TrueType/OpenType kern table when GPOS kern feature is not available + Fixes https://github.com/harfbuzz/harfbuzz/issues/250 src/hb-ot-kern-table.hh | 24 +++++++++++-------- - src/hb-ot-layout.cc | 57 - ++++++++++++++++++++------------------------- + src/hb-ot-layout.cc | 57 ++++++++++++++++++++------------------------- src/hb-ot-layout.hh | 13 +++++++++++ src/hb-ot-shape-fallback.cc | 4 ++-- src/hb-ot-shape.cc | 10 +++++--- @@ -18544,10 +19200,8 @@ Date: Mon Oct 8 23:09:48 2018 -0400 [kern] Abstract away kerning machine src/hb-font.hh | 2 +- - src/hb-ot-kern-table.hh | 71 - +++++++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-shape-fallback.cc | 67 - +++++++++++------------------------------- + src/hb-ot-kern-table.hh | 71 +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-fallback.cc | 67 +++++++++++------------------------------- 3 files changed, 89 insertions(+), 51 deletions(-) commit fb4f43838154a77912a9fc3437110c81e9d34aac @@ -18555,7 +19209,7 @@ Author: Behdad Esfahbod Date: Mon Oct 8 22:44:16 2018 -0400 Add HB_DEPRECATED - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1232 src/hb-common.h | 9 +++++++++ @@ -18578,8 +19232,7 @@ Date: Mon Oct 8 22:31:35 2018 -0400 Deprecate decompose_compatibility stuff docs/harfbuzz-sections.txt | 7 +++--- - src/hb-deprecated.h | 63 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-deprecated.h | 63 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-unicode.h | 47 ---------------------------------- 3 files changed, 67 insertions(+), 50 deletions(-) @@ -18616,20 +19269,18 @@ Author: Michiharu Ariza Date: Mon Oct 8 15:05:36 2018 -0700 added CFF2 get_extents - + added source hb-ot-cff2-table.cc augmented VariationData to return scalars misc bug fixes, renaming, cleanup src/Makefile.sources | 2 + src/hb-cff-interp-common.hh | 37 ++++++----- - src/hb-cff-interp-cs-common.hh | 134 - +++++++++++++++++++------------------- + src/hb-cff-interp-cs-common.hh | 134 +++++++++++++++++++------------------- src/hb-cff-interp-dict-common.hh | 6 +- src/hb-cff2-interp-cs.hh | 102 ++++++++++++++++++++++++----- src/hb-ot-cff1-table.hh | 4 +- - src/hb-ot-cff2-table.cc | 135 - +++++++++++++++++++++++++++++++++++++++ + src/hb-ot-cff2-table.cc | 135 +++++++++++++++++++++++++++++++++++++++ src/hb-ot-cff2-table.hh | 71 ++++++++++++-------- src/hb-ot-face.cc | 1 + src/hb-ot-face.hh | 1 + @@ -18693,8 +19344,7 @@ Date: Sun Oct 7 22:52:53 2018 -0400 [kerx] Clean up Format2 - src/hb-aat-layout-kerx-table.hh | 48 - ++++++++--------------------------------- + src/hb-aat-layout-kerx-table.hh | 48 ++++++++--------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) commit 8aa83d97f9e7f63e2fcb4ae965b75a39961c7d87 @@ -18702,14 +19352,13 @@ Author: Behdad Esfahbod Date: Sun Oct 7 22:43:59 2018 -0400 [kern/kerx] Fix Format2 offsetting - + "The values in the right class table are stored pre-multiplied by the number of bytes in a single kerning value, and the values in the left class table are stored pre-multiplied by the number of bytes in one row. This eliminates needing to multiply the row and column values together to determine the location of the kerning value. The array can - be indexed by doing the right- and left-hand class mappings, - adding the + be indexed by doing the right- and left-hand class mappings, adding the class values to the address of the array, and fetching the kerning value to which the new address points." @@ -18723,8 +19372,7 @@ Date: Sun Oct 7 22:33:41 2018 -0400 [kerx] Clean up Format0 - src/hb-aat-layout-kerx-table.hh | 48 - +++++++++++------------------------------ + src/hb-aat-layout-kerx-table.hh | 48 +++++++++++------------------------------ 1 file changed, 12 insertions(+), 36 deletions(-) commit 4c3b19d52ec7a1fa46f8d0971e377a7d29b87e27 @@ -18742,10 +19390,8 @@ Date: Sun Oct 7 22:28:45 2018 -0400 Move code - src/hb-aat-layout-common.hh | 105 - -------------------------------------------- - src/hb-open-type.hh | 105 - +++++++++++++++++++++++++++++++++++++++++++- + src/hb-aat-layout-common.hh | 105 -------------------------------------------- + src/hb-open-type.hh | 105 +++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 104 insertions(+), 106 deletions(-) commit 3515c8b187e2316dcf3abaefc84917b09449d485 @@ -18762,19 +19408,19 @@ Author: Behdad Esfahbod Date: Sun Oct 7 20:46:11 2018 -0400 Rename invisible_codepoint to invisible_glyph in API - + Deleted recently added API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() - + hb-shape / hb-view --invisible-codepoint - + New API: hb_buffer_set_invisible_glyph() hb_buffer_get_invisible_glyph() - + hb-shape / hb-view --invisible-glyph - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1216 docs/harfbuzz-sections.txt | 4 ++-- @@ -18789,11 +19435,10 @@ Author: Behdad Esfahbod Date: Sun Oct 7 20:36:46 2018 -0400 Revert "[morx] Fix MORX-35" - + This reverts commit f62f6e90ad1f1a83f77771ad65ee1ffb79470a8a. - src/hb-aat-layout-morx-table.hh | 14 - +++++--------- + src/hb-aat-layout-morx-table.hh | 14 +++++--------- test/shaping/data/text-rendering-tests/DISABLED | 3 +++ test/shaping/data/text-rendering-tests/Makefile.sources | 2 +- 3 files changed, 9 insertions(+), 10 deletions(-) @@ -18803,7 +19448,7 @@ Author: Behdad Esfahbod Date: Sun Oct 7 20:35:06 2018 -0400 [buffer] Improve shift_forward() - + "Improve" is a strong word in this case though, I understand. src/hb-buffer.cc | 16 +++++++++++++--- @@ -18814,11 +19459,10 @@ Author: Behdad Esfahbod Date: Sun Oct 7 18:06:53 2018 -0400 [morx] Fix MORX-35 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1224 - src/hb-aat-layout-morx-table.hh | 14 - ++++++++++---- + src/hb-aat-layout-morx-table.hh | 14 ++++++++++---- test/shaping/data/text-rendering-tests/DISABLED | 3 --- test/shaping/data/text-rendering-tests/Makefile.sources | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) @@ -18828,9 +19472,8 @@ Author: Behdad Esfahbod Date: Sun Oct 7 18:52:12 2018 -0400 Remove some code - - We use scratch-flags to short-circuit this function. No need for - previous + + We use scratch-flags to short-circuit this function. No need for previous early loop. src/hb-ot-shape.cc | 16 +++------------- @@ -18843,14 +19486,10 @@ Date: Sun Oct 7 18:00:14 2018 -0400 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/Makefile.sources | 6 +++++- - .../data/text-rendering-tests/fonts/TestMORXForty.ttf | Bin 0 -> - 2408 bytes - .../text-rendering-tests/fonts/TestMORXThirtyeight.ttf | Bin 0 -> - 2444 bytes - .../text-rendering-tests/fonts/TestMORXThirtynine.ttf | Bin 0 -> - 2436 bytes - .../text-rendering-tests/fonts/TestMORXThirtyseven.ttf | Bin 0 -> - 2444 bytes + .../data/text-rendering-tests/fonts/TestMORXForty.ttf | Bin 0 -> 2408 bytes + .../text-rendering-tests/fonts/TestMORXThirtyeight.ttf | Bin 0 -> 2444 bytes + .../text-rendering-tests/fonts/TestMORXThirtynine.ttf | Bin 0 -> 2436 bytes + .../text-rendering-tests/fonts/TestMORXThirtyseven.ttf | Bin 0 -> 2444 bytes .../data/text-rendering-tests/tests/MORX-35.tests | 4 ++-- .../data/text-rendering-tests/tests/MORX-37.tests | 4 ++++ .../data/text-rendering-tests/tests/MORX-38.tests | 4 ++++ @@ -18864,8 +19503,7 @@ Date: Sun Oct 7 14:01:33 2018 -0400 [kerx] Clean up kerx and KerxTable structures - src/hb-aat-layout-kerx-table.hh | 169 - ++++++++++++++++++++++++++-------------- + src/hb-aat-layout-kerx-table.hh | 169 ++++++++++++++++++++++++++-------------- src/hb-aat-layout-morx-table.hh | 2 +- 2 files changed, 113 insertions(+), 58 deletions(-) @@ -18874,18 +19512,17 @@ Author: Behdad Esfahbod Date: Sun Oct 7 18:41:52 2018 +0200 Add API for setting invisible-codepoint - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1216 - + New API: hb_buffer_set_invisible_codepoint() hb_buffer_get_invisible_codepoint() - + hb-shape / hb-view --invisible-codepoint docs/harfbuzz-sections.txt | 2 ++ - src/hb-buffer.cc | 42 - ++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 42 ++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 7 +++++++ src/hb-buffer.hh | 1 + src/hb-ot-shape.cc | 8 ++++---- @@ -18898,10 +19535,10 @@ Author: Behdad Esfahbod Date: Sun Oct 7 18:23:45 2018 +0200 [ot-font] Load hmtx/vmtx lazily - + Since we have get_*_advanes() API now, the overhead is once per shape, not once per glyph. - + Only cmap is warmed-up at set_funcs() time now. src/hb-ot-font.cc | 26 +++++++++++++------------- @@ -18930,7 +19567,7 @@ Author: Behdad Esfahbod Date: Sun Oct 7 16:31:33 2018 +0200 [coretext] Fix OS X check - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1230 src/hb-coretext.cc | 4 ++-- @@ -18956,8 +19593,7 @@ Date: Sat Oct 6 14:49:44 2018 -0700 src/hb-ot-shape.hh | 5 ++ src/hb-set.hh | 4 +- src/hb-subset.cc | 2 +- - src/hb-vector.hh | 100 - ++++++++++++++------- + src/hb-vector.hh | 100 ++++++++++++++------- test/shaping/data/text-rendering-tests/DISABLED | 35 +------- .../data/text-rendering-tests/Makefile.sources | 18 ++-- .../data/text-rendering-tests/extract-tests.py | 18 +++- @@ -19020,7 +19656,7 @@ Author: Behdad Esfahbod Date: Fri Oct 5 18:39:48 2018 +0200 [vector] Make hb_vector_t relocatable / nestable - + Ugly, but... Fixes https://github.com/harfbuzz/harfbuzz/issues/1227 @@ -19030,8 +19666,7 @@ Date: Fri Oct 5 18:39:48 2018 +0200 src/hb-ot-post-table.hh | 2 +- src/hb-set.hh | 4 +-- src/hb-subset.cc | 2 +- - src/hb-vector.hh | 94 - +++++++++++++++++++++++++++++++------------------ + src/hb-vector.hh | 94 +++++++++++++++++++++++++++++++------------------ 7 files changed, 66 insertions(+), 42 deletions(-) commit 5469d80707d32c733b1c60f79ab2f217e879de55 @@ -19048,9 +19683,9 @@ Author: Behdad Esfahbod Date: Fri Oct 5 18:14:13 2018 +0200 [morx] Fix memory access issue - + If buffer was enlarged, info was being outdated. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1225 src/hb-aat-layout-common.hh | 4 +--- @@ -19064,10 +19699,8 @@ Date: Fri Oct 5 11:33:19 2018 +0200 test/shaping/data/text-rendering-tests/DISABLED | 3 +++ test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++ - .../text-rendering-tests/fonts/TestMORXThirtyfive.ttf | Bin 0 -> - 1968 bytes - .../text-rendering-tests/fonts/TestMORXThirtysix.ttf | Bin 0 -> - 1836 bytes + .../text-rendering-tests/fonts/TestMORXThirtyfive.ttf | Bin 0 -> 1968 bytes + .../text-rendering-tests/fonts/TestMORXThirtysix.ttf | Bin 0 -> 1836 bytes .../data/text-rendering-tests/tests/MORX-35.tests | 2 ++ .../data/text-rendering-tests/tests/MORX-36.tests | 1 + 6 files changed, 8 insertions(+) @@ -19077,13 +19710,11 @@ Author: Behdad Esfahbod Date: Fri Oct 5 02:49:29 2018 +0200 Change vendor features from Harf/Buzz to HARF/BUZZ - + https://github.com/harfbuzz/harfbuzz/commit/a01194aaf4c15160330b4042066263b2c963b658#commitcomment-30772041 - - "The tag space of tags consisting of four uppercase letters (A-Z) - with no punctuation, - spaces, or numbers, is reserved as a vendor space. Font vendors may - use such tags to + + "The tag space of tags consisting of four uppercase letters (A-Z) with no punctuation, + spaces, or numbers, is reserved as a vendor space. Font vendors may use such tags to identify private features." src/hb-ot-shape.cc | 4 ++-- @@ -19106,8 +19737,7 @@ Date: Thu Oct 4 13:59:36 2018 -0700 added CFF glyph extents API test test/api/Makefile.am | 1 + - test/api/test-ot-extents-cff.c | 65 - ++++++++++++++++++++++++++++++++++++++++++ + test/api/test-ot-extents-cff.c | 65 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit 0222d57c357c775f25866653700b9dcb7d5bb807 @@ -19142,11 +19772,9 @@ Author: Behdad Esfahbod Date: Thu Oct 4 16:23:42 2018 +0200 [test] Choose 'ot' shaper specifically - - Now that we added morx support, our OS X bot is running them through - CoreText - and failing (with a DoS / infinite loop no less!). Always run - tests through + + Now that we added morx support, our OS X bot is running them through CoreText + and failing (with a DoS / infinite loop no less!). Always run tests through our own shaper. test/shaping/run-tests.py | 2 +- @@ -19166,9 +19794,8 @@ Author: Behdad Esfahbod Date: Thu Oct 4 13:00:37 2018 +0200 Enable two OpenType features, 'Harf' and 'Buzz' - - One early, before script-specific features, one late, after. - Allows font + + One early, before script-specific features, one late, after. Allows font developers to detect us and behave differently if needed. src/hb-ot-shape.cc | 4 ++++ @@ -19181,23 +19808,17 @@ Date: Thu Oct 4 12:13:55 2018 +0200 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/Makefile.sources | 6 +++++- - test/shaping/data/text-rendering-tests/extract-tests.py | 12 - ++++++++++++ - .../data/text-rendering-tests/fonts/TestGSUBThree.ttf | Bin 0 -> - 1504 bytes - .../text-rendering-tests/fonts/TestMORXThirtyfour.ttf | Bin 0 -> - 3608 bytes - .../text-rendering-tests/fonts/TestMORXThirtythree.ttf | Bin 0 -> - 1520 bytes - .../text-rendering-tests/fonts/TestMORXTwentyfour.ttf | Bin 0 -> - 1828 bytes + test/shaping/data/text-rendering-tests/extract-tests.py | 12 ++++++++++++ + .../data/text-rendering-tests/fonts/TestGSUBThree.ttf | Bin 0 -> 1504 bytes + .../text-rendering-tests/fonts/TestMORXThirtyfour.ttf | Bin 0 -> 3608 bytes + .../text-rendering-tests/fonts/TestMORXThirtythree.ttf | Bin 0 -> 1520 bytes + .../text-rendering-tests/fonts/TestMORXTwentyfour.ttf | Bin 0 -> 1828 bytes .../shaping/data/text-rendering-tests/tests/GSUB-3.tests | 1 + .../data/text-rendering-tests/tests/MORX-24.tests | 1 + .../data/text-rendering-tests/tests/MORX-32.tests | 8 ++++---- .../data/text-rendering-tests/tests/MORX-33.tests | 3 +++ .../data/text-rendering-tests/tests/MORX-34.tests | 1 + - test/shaping/run-tests.py | 15 - +++++++++------ + test/shaping/run-tests.py | 15 +++++++++------ 12 files changed, 36 insertions(+), 11 deletions(-) commit 6ff8a8a10b62a54a87d53b0af66ccaba5d58b107 @@ -19217,8 +19838,7 @@ Date: Thu Oct 4 11:34:21 2018 +0200 src/hb-ot-shape.cc | 23 ++++++++++++---- src/hb-ot-shape.hh | 5 ++++ - test/shaping/data/text-rendering-tests/DISABLED | 32 - ---------------------- + test/shaping/data/text-rendering-tests/DISABLED | 32 ---------------------- .../data/text-rendering-tests/Makefile.sources | 14 +++++----- 4 files changed, 29 insertions(+), 45 deletions(-) @@ -19238,49 +19858,33 @@ Author: Sascha Brawer Date: Thu Oct 4 09:17:08 2018 +0200 Minor: Fix autoconf warning - + Before this change, autoconf was emitting the following warnings: - + ``` - configure.ac:22: warning: AC_COMPILE_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_RUN_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_COMPILE_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_RUN_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_COMPILE_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_RUN_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_COMPILE_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level - configure.ac:22: warning: AC_RUN_IFELSE was called before - AC_USE_SYSTEM_EXTENSIONS - ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is - expanded from... + configure.ac:22: warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS + ../../lib/autoconf/specific.m4:368: AC_USE_SYSTEM_EXTENSIONS is expanded from... configure.ac:22: the top level ``` @@ -19292,7 +19896,7 @@ Author: Sascha Brawer Date: Thu Oct 4 09:24:08 2018 +0200 [morx] Only insert glyphs at mark when a mark has been set before - + This reverts commit f4072e8cb81072cd6d51a2607efedb76c02e7db1. https://github.com/harfbuzz/harfbuzz/issues/1195 @@ -19364,8 +19968,7 @@ Date: Wed Oct 3 21:30:48 2018 +0200 Add emoji test for recent work test/shaping/data/in-house/Makefile.sources | 2 +- - .../fonts/3cf6f8ac6d647473a43a3100e7494b202b2cfafe.ttf | Bin 0 -> - 16596 bytes + .../fonts/3cf6f8ac6d647473a43a3100e7494b202b2cfafe.ttf | Bin 0 -> 16596 bytes test/shaping/data/in-house/tests/emoji-flag-tags.tests | 2 -- test/shaping/data/in-house/tests/emoji.tests | 4 ++++ 4 files changed, 5 insertions(+), 3 deletions(-) @@ -19375,7 +19978,7 @@ Author: Ebrahim Byagowi Date: Wed Oct 3 22:49:02 2018 +0330 [ci] Delete azure-pipelines - + End of experiment, we might get back to it later azure-pipelines.yml | 10 ---------- @@ -19397,7 +20000,7 @@ Author: Behdad Esfahbod Date: Wed Oct 3 21:11:13 2018 +0200 Unbreak Fitzpatrick - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1159 src/hb-ot-layout.hh | 2 +- @@ -19408,13 +20011,11 @@ Author: Behdad Esfahbod Date: Wed Oct 3 21:02:16 2018 +0200 Rewrite grapheme-formation in terms of new work - - Also, don't attach ZWNJ to previous cluster. Closer to Unicode - graphemes. + + Also, don't attach ZWNJ to previous cluster. Closer to Unicode graphemes. src/hb-coretext.cc | 2 +- - src/hb-ot-shape.cc | 48 - ++++++---------------- + src/hb-ot-shape.cc | 48 ++++++---------------- .../in-house/tests/indic-joiner-candrabindu.tests | 2 +- .../data/in-house/tests/indic-joiners.tests | 6 +-- 4 files changed, 18 insertions(+), 40 deletions(-) @@ -19434,12 +20035,9 @@ Date: Wed Oct 3 20:45:19 2018 +0200 [test] Split a test - .../fonts/4d4206e30b2dbf1c1ef492a8eae1c9e7829ebad8.ttf | Bin 0 -> - 51924 bytes - .../fonts/bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 74856 -> - 0 bytes - .../in-house/tests/mongolian-variation-selector.tests | 17 - ++++++++++++++++- + .../fonts/4d4206e30b2dbf1c1ef492a8eae1c9e7829ebad8.ttf | Bin 0 -> 51924 bytes + .../fonts/bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 74856 -> 0 bytes + .../in-house/tests/mongolian-variation-selector.tests | 17 ++++++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) commit ba813aab0909375af0c8f8e0c34595680c2762a4 @@ -19485,8 +20083,7 @@ Date: Wed Oct 3 20:09:14 2018 +0200 [buffer] Inline some more src/hb-buffer.cc | 44 -------------------------------------------- - src/hb-buffer.hh | 52 - ++++++++++++++++++++++++++++++++++++++++++++-------- + src/hb-buffer.hh | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 44 insertions(+), 52 deletions(-) commit 6f39c22029867c6d00cf70d7df242a28ca8f12bc @@ -19512,13 +20109,12 @@ Author: Behdad Esfahbod Date: Wed Oct 3 19:44:15 2018 +0200 [emoji] Mark emoji contination sequences as continuation - + This adds a new grapheme bit. Not used yet. - + Part of https://github.com/harfbuzz/harfbuzz/issues/1159 - src/hb-ot-layout.hh | 83 - +++++++++++++++++++++++++---------------------------- + src/hb-ot-layout.hh | 83 +++++++++++++++++++++++++---------------------------- src/hb-ot-shape.cc | 24 ++++++++++++++++ src/hb-unicode.hh | 5 ---- 3 files changed, 63 insertions(+), 49 deletions(-) @@ -19537,23 +20133,20 @@ Author: Ebrahim Byagowi Date: Wed Oct 3 21:26:58 2018 +0330 [test] Use an in-repo font for test-multithread (#1218) - - As Khaled's suggestion, hard-coded font paths was only for my own - testing. + + As Khaled's suggestion, hard-coded font paths was only for my own testing. test/api/hb-subset-test.h | 13 +++++++++---- - test/api/test-multithread.c | 41 - ++++++++++++++++++++++++++--------------- + test/api/test-multithread.c | 41 ++++++++++++++++++++++++++--------------- test/fuzzing/main.cc | 6 ++++++ 3 files changed, 41 insertions(+), 19 deletions(-) commit fde9b8852d7cd6224afeffcfe363f4b445ab1ece -Author: azure-pipelines[bot] - +Author: azure-pipelines[bot] Date: Wed Oct 3 17:47:05 2018 +0000 [ci] Add a test Azure Pipelines Linux bot - + Related #1219 azure-pipelines.yml | 10 ++++++++++ @@ -19591,17 +20184,16 @@ Author: Behdad Esfahbod Date: Wed Oct 3 17:46:48 2018 +0200 [emoji] Add emoji Extended_Pictographic table and function - + Part of https://github.com/harfbuzz/harfbuzz/issues/1159 - + . src/Makefile.am | 12 +- src/gen-emoji-table.py | 64 ++++++++++ src/hb-ot-os2-table.hh | 2 +- src/hb-ot-os2-unicode-ranges.hh | 6 +- - src/hb-unicode-emoji-table.hh | 269 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-unicode-emoji-table.hh | 269 ++++++++++++++++++++++++++++++++++++++++ src/hb-unicode.cc | 16 +++ src/hb-unicode.hh | 37 +++++- 7 files changed, 398 insertions(+), 8 deletions(-) @@ -19613,8 +20205,7 @@ Date: Wed Oct 3 17:27:46 2018 +0200 [os2] Minor rename/shuffle ...unicode-ranges.py => gen-os2-unicode-ranges.py} | 2 +- - src/hb-ot-os2-unicode-ranges.hh | 45 - +++++++++++----------- + src/hb-ot-os2-unicode-ranges.hh | 45 +++++++++++----------- 2 files changed, 24 insertions(+), 23 deletions(-) commit 7a1ab0464d3ee1ca5c9b31215fbffb8601ae860d @@ -19622,7 +20213,7 @@ Author: lantw44 Date: Wed Oct 3 23:22:43 2018 +0800 Fix test-multithread build on FreeBSD (#1217) - + Add the default font path used by FreeBSD ports. test/api/test-multithread.c | 2 ++ @@ -19633,29 +20224,27 @@ Author: Behdad Esfahbod Date: Wed Oct 3 14:44:25 2018 +0200 [indic] Disallow vowel mark combinations that spoof other vowel marks - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1019 - + New numbers: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707261 out of 707394 tests passed. 133 failed (0.0188014%) GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%) SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - + Devanagari regressed because Uniscribe doesn't enforce the full set. - + Tests added with the *-vowel-letters.txt files in tree and Noto fonts. - src/hb-ot-shape-complex-indic.cc | 256 - ++++++++++++++++++++- + src/hb-ot-shape-complex-indic.cc | 256 ++++++++++++++++++++- test/shaping/data/in-house/Makefile.sources | 1 + .../03e3f463c3a985bc42096620cc415342818454fb.ttf | Bin 0 -> 2904 bytes .../1a5face3fcbd929d228235c2f72bbd6f8eb37424.ttf | Bin 0 -> 8188 bytes @@ -19683,10 +20272,8 @@ Date: Wed Oct 3 13:54:21 2018 +0200 Typo - .../{bengali-vowel-leters.txt => bengali-vowel-letters.txt} - | 0 - .../{gujarati-vowel-letter.txt => gujarati-vowel-letters.txt} - | 0 + .../{bengali-vowel-leters.txt => bengali-vowel-letters.txt} | 0 + .../{gujarati-vowel-letter.txt => gujarati-vowel-letters.txt} | 0 2 files changed, 0 insertions(+), 0 deletions(-) commit 0dd9101fd0ddff80fff10ba98e93523aed95c8f5 @@ -19712,9 +20299,8 @@ Author: HinTak Date: Wed Oct 3 07:11:22 2018 +0800 Missing colon for gobject annotation - - There should be a colon separating "(transfer full)" and the - rest. Warned by g-ir-scanner. + + There should be a colon separating "(transfer full)" and the rest. Warned by g-ir-scanner. src/hb-face.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -19724,12 +20310,11 @@ Author: Behdad Esfahbod Date: Wed Oct 3 12:29:56 2018 +0200 [use] Add Halant_Or_Vowel_Modifier category - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1102 src/gen-use-table.py | 7 +- - src/hb-ot-shape-complex-use-machine.hh | 518 - +++++++++++---------- + src/hb-ot-shape-complex-use-machine.hh | 518 +++++++++++---------- src/hb-ot-shape-complex-use-machine.rl | 9 +- src/hb-ot-shape-complex-use-table.cc | 4 +- src/hb-ot-shape-complex-use.hh | 5 +- @@ -19763,10 +20348,8 @@ Date: Tue Oct 2 15:05:26 2018 -0700 build/test/api/.libs/test-collect-unicodes | Bin 14336 -> 0 bytes build/test/api/.libs/test-multithread | Bin 10936 -> 0 bytes - build/test/api/test-collect-unicodes | 210 - ----------------------------- - build/test/api/test-multithread | 210 - ----------------------------- + build/test/api/test-collect-unicodes | 210 ----------------------------- + build/test/api/test-multithread | 210 ----------------------------- 4 files changed, 420 deletions(-) commit 51d5bf4ca2ebb9b8aa3b2777781e328fb93ceea7 @@ -19797,11 +20380,10 @@ Author: Michiharu Ariza Date: Tue Oct 2 13:45:14 2018 -0700 redefine OpCodes as define instead of enum - + in order to eradicate duplicate enum warnings - src/hb-cff-interp-common.hh | 348 - ++++++++++++++++++++++---------------------- + src/hb-cff-interp-common.hh | 348 ++++++++++++++++++++++---------------------- 1 file changed, 174 insertions(+), 174 deletions(-) commit 9cdd70b344b9dc34a29aeca79028cbb5d949ca1d @@ -19816,7 +20398,7 @@ Author: Ebrahim Byagowi Date: Tue Oct 2 21:39:19 2018 +0330 [circleci] Fix some of warnings from clang-everything bot (#1211) - + * -Wshift-sign-overflow * -Wmissing-prototypes @@ -19833,11 +20415,10 @@ Author: Behdad Esfahbod Date: Tue Oct 2 18:56:20 2018 +0200 [tests] Allow test-runner to ignore shaping output - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1212 - test/shaping/data/in-house/tests/fuzzed.tests | 46 - +++++++++++++-------------- + test/shaping/data/in-house/tests/fuzzed.tests | 46 +++++++++++++-------------- test/shaping/run-tests.py | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) @@ -19848,8 +20429,7 @@ Date: Tue Oct 2 18:46:13 2018 +0200 [tibetan] Remove unused Tibetan shaper src/Makefile.sources | 1 - - src/hb-ot-shape-complex-tibetan.cc | 63 - -------------------------------------- + src/hb-ot-shape-complex-tibetan.cc | 63 -------------------------------------- src/hb-ot-shape-complex.hh | 1 - 3 files changed, 65 deletions(-) @@ -19858,17 +20438,16 @@ Author: Behdad Esfahbod Date: Tue Oct 2 18:43:29 2018 +0200 [tibetan] Route Tibetan through USE - + Fixes https://github.com/harfbuzz/harfbuzz/pull/933 https://github.com/harfbuzz/harfbuzz/issues/1012 - + Tibetan failures go from 0 to 2: - + TIBETAN: 208467 out of 208469 tests passed. 2 failed (0.000959375%) src/gen-use-table.py | 30 ++++++++++------ - src/hb-ot-shape-complex-use-table.cc | 70 - ++++++++++++++++++++++-------------- + src/hb-ot-shape-complex-use-table.cc | 70 ++++++++++++++++++++++-------------- src/hb-ot-shape-complex.hh | 8 +---- 3 files changed, 65 insertions(+), 43 deletions(-) @@ -19887,11 +20466,10 @@ Author: Behdad Esfahbod Date: Tue Oct 2 17:49:06 2018 +0200 [indic/use] Factor common expressions in ragel machine - + No machine change. - src/hb-ot-shape-complex-indic-machine.hh | 46 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-indic-machine.hh | 46 ++++++++++++++++---------------- src/hb-ot-shape-complex-indic-machine.rl | 10 ++++--- src/hb-ot-shape-complex-use-machine.hh | 38 +++++++++++++------------- src/hb-ot-shape-complex-use-machine.rl | 20 +++++++------- @@ -19902,7 +20480,7 @@ Author: Behdad Esfahbod Date: Tue Oct 2 17:46:27 2018 +0200 [indic] Minor flip grammar around - + No behavior change. src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -19916,8 +20494,7 @@ Date: Tue Oct 2 17:16:01 2018 +0200 [indic] Add some confusable sequences from Unicode Standard .../script-bengali/bengali-vowel-leters.txt | 3 ++ - .../devanagari-atomic-consonants.txt | 33 - ++++++++++++++++++++++ + .../devanagari-atomic-consonants.txt | 33 ++++++++++++++++++++++ .../script-devanagari/devanagari-vowel-letters.txt | 17 +++++++++++ .../script-gujarati/gujarati-vowel-letter.txt | 8 ++++++ .../script-gurmukhi/gurmukhi-vowel-letters.txt | 9 ++++++ @@ -19948,7 +20525,7 @@ Author: Behdad Esfahbod Date: Tue Oct 2 16:05:26 2018 +0200 Treat a base+mark... ligature as base, not ligature - + Fixes https://github.com/harfbuzz/harfbuzz/issues/746 src/hb-ot-layout-gsubgpos.hh | 22 +++++++++++++++------- @@ -19992,13 +20569,12 @@ Author: Behdad Esfahbod Date: Tue Oct 2 14:40:14 2018 +0200 Disable joiner-skipping when looking back for base to attach mark to - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1189 src/hb-ot-shape.cc | 5 ++++- test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/641ca9d7808b01cafa9a666c13811c9b56eb9c52.ttf | Bin 0 -> - 11492 bytes + .../fonts/641ca9d7808b01cafa9a666c13811c9b56eb9c52.ttf | Bin 0 -> 11492 bytes .../data/in-house/tests/arabic-mark-attach.tests | 1 + 4 files changed, 6 insertions(+), 1 deletion(-) @@ -20010,8 +20586,7 @@ Date: Tue Oct 2 14:34:29 2018 +0200 src/hb-buffer.hh | 3 +-- src/hb-ot-layout.hh | 12 ++---------- - src/hb-ot-shape-complex-arabic.cc | 41 - ++++++--------------------------------- + src/hb-ot-shape-complex-arabic.cc | 41 ++++++--------------------------------- 3 files changed, 9 insertions(+), 47 deletions(-) commit 48c513fec978819927535bc86b43be74315f746c @@ -20061,8 +20636,7 @@ Date: Tue Oct 2 13:13:47 2018 +0200 Rename src/hb-ot-face.cc | 20 +++++++------- - src/hb-ot-face.hh | 78 - +++++++++++++++++++++++++++---------------------------- + src/hb-ot-face.hh | 78 +++++++++++++++++++++++++++---------------------------- 2 files changed, 49 insertions(+), 49 deletions(-) commit 10b6c7c63870fa04cd8adcf9f38644c2a799db8a @@ -20104,7 +20678,7 @@ Author: Khaled Hosny Date: Tue Oct 2 08:25:29 2018 +0200 Skip BOM in the Python sample file - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1208 src/sample.py | 6 +++--- @@ -20115,7 +20689,7 @@ Author: HinTak Date: Tue Oct 2 06:43:06 2018 +0100 Missing "out" indicator (#1209) - + Missing "out" indicator. Affect gobject introspection. src/hb-font.cc | 2 +- @@ -20148,13 +20722,11 @@ Author: Behdad Esfahbod Date: Mon Oct 1 20:05:00 2018 +0200 [indic] Remove Consonant_Medial from grammar and code - - The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe - doesn't treat + + The only Indic CM is U+0A75 GURMUKHI SIGN YAKASH, which Uniscribe doesn't treat specially, and font designers design for that. So, do the same. - src/hb-ot-shape-complex-indic-machine.hh | 1244 - ++++++++++++++---------------- + src/hb-ot-shape-complex-indic-machine.hh | 1244 ++++++++++++++---------------- src/hb-ot-shape-complex-indic-machine.rl | 10 +- src/hb-ot-shape-complex-indic.cc | 2 +- src/hb-ot-shape-complex-indic.hh | 6 +- @@ -20165,13 +20737,12 @@ Author: Behdad Esfahbod Date: Mon Oct 1 19:35:48 2018 +0200 [khmer] Add mark-ordering tests - + Fixes https://github.com/harfbuzz/harfbuzz/issues/667 test/shaping/data/in-house/Makefile.sources | 2 ++ .../b6031119874ae9ff1dd65383a335e361c0962220.ttf | Bin 0 -> 2564 bytes - .../data/in-house/tests/khmer-mark-order.tests | 25 - +++++++++++++++++++++ + .../data/in-house/tests/khmer-mark-order.tests | 25 +++++++++++++++++++++ 3 files changed, 27 insertions(+) commit 51436547162a18e88144e7125ad6ce4a69a08d4b @@ -20179,23 +20750,20 @@ Author: Behdad Esfahbod Date: Mon Oct 1 19:09:58 2018 +0200 [khmer] Rewrite grammar completely - - Based on experimenting with Uniscribe to extract grammar and - categories. - + + Based on experimenting with Uniscribe to extract grammar and categories. + Failures down from 44 to 35: - + KHMER: 299089 out of 299124 tests passed. 35 failed (0.0117008%) - - We still don't enforce the one-matra rule pre-decomposition, - but enforce + + We still don't enforce the one-matra rule pre-decomposition, but enforce an order and one-matra-per-position post-decomposition. - + https://github.com/harfbuzz/harfbuzz/issues/667 src/hb-ot-shape-complex-indic.hh | 2 +- - src/hb-ot-shape-complex-khmer-machine.hh | 300 - ++++++++++++++++++++----------- + src/hb-ot-shape-complex-khmer-machine.hh | 300 ++++++++++++++++++++----------- src/hb-ot-shape-complex-khmer-machine.rl | 42 +++-- src/hb-ot-shape-complex-khmer.cc | 4 +- src/hb-ot-shape-complex-khmer.hh | 99 +++++----- @@ -20231,7 +20799,7 @@ Author: Behdad Esfahbod Date: Mon Oct 1 15:01:04 2018 +0200 [use] Disable automatic ZWJ for 'akhn' feature - + Fixes https://github.com/harfbuzz/harfbuzz/issues/746 src/hb-ot-shape-complex-use.cc | 2 +- @@ -20242,7 +20810,7 @@ Author: Behdad Esfahbod Date: Mon Oct 1 12:45:06 2018 +0200 [use] Change categories for Left_And_* matras - + These are only relevant to Sinhala, because they decompose in other cases. The USE spec categorizes them all as VPst. No idea why we weren't following that before. @@ -20265,7 +20833,7 @@ Author: Behdad Esfahbod Date: Mon Oct 1 12:10:00 2018 +0200 [morx] Break out if buffer gets into error - + Was getting stuck not making progress somehow. src/hb-aat-layout-common.hh | 2 ++ @@ -20277,7 +20845,7 @@ Author: Behdad Esfahbod Date: Mon Oct 1 11:34:20 2018 +0200 [cache] Fix cache coherency corner-case - + If key_bits+value_bits-cache_bits==32 then -1 is ambiguous... src/hb-cache.hh | 6 ++++-- @@ -20288,7 +20856,7 @@ Author: Ebrahim Byagowi Date: Mon Oct 1 09:40:29 2018 +0330 [circleci] Couple of fixes (#1200) - + * Raise error on warnings on -everything * Enable fontconfig to two bots * Fix msan bot now that all of its real complain are gone @@ -20333,9 +20901,9 @@ Author: Behdad Esfahbod Date: Sun Sep 30 18:25:58 2018 +0200 Revert "Fix glib-mkenum warning" - + This reverts commit 247756a7d89008ee6a7d1171dc07ba22454c6034. - + Was wrong. Right fix coming. src/hb-buffer.h | 2 ++ @@ -20356,7 +20924,7 @@ Author: Behdad Esfahbod Date: Sun Sep 30 18:19:54 2018 +0200 Change _HB_SCRIPT_MAX_VALUE from 0xFFFFFFFF to 0x7FFFFFFF - + Fixes https://github.com/harfbuzz/harfbuzz/issues/504 src/hb-common.h | 8 +++++--- @@ -20392,7 +20960,7 @@ Author: Behdad Esfahbod Date: Sun Sep 30 17:48:55 2018 +0200 Fix bug introduced in 9b0b40b3c1ac8155c80ed5dc976228f4d3ec7e1f - + Also discovered by msan bot. src/hb-ot-shape-fallback.cc | 2 +- @@ -20403,7 +20971,7 @@ Author: Behdad Esfahbod Date: Sun Sep 30 13:10:54 2018 +0200 Fix glib-mkenum warning - + GEN hb-gobject-enums.h WARNING: Failed to parse "/*< private >*/" in ../../src/hb-buffer.h @@ -20460,17 +21028,14 @@ Author: Behdad Esfahbod Date: Sun Sep 30 12:23:01 2018 +0200 [util] Remove unneeded virtual - + clang warning: - - ../../util/options.hh:72:13: warning: destination for this 'memset' - call is a pointer to dynamic class - 'option_parser_t'; vtable pointer will be overwritten - [-Wdynamic-class-memaccess] + + ../../util/options.hh:72:13: warning: destination for this 'memset' call is a pointer to dynamic class + 'option_parser_t'; vtable pointer will be overwritten [-Wdynamic-class-memaccess] memset (this, 0, sizeof (*this)); ~~~~~~ ^ - ../../util/options.hh:72:13: note: explicitly cast the pointer to - silence this warning + ../../util/options.hh:72:13: note: explicitly cast the pointer to silence this warning memset (this, 0, sizeof (*this)); ^ (void*) @@ -20501,29 +21066,26 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:49:08 2018 -0400 [util] Use HB_FALLTHROUGH - + Sure, gcc knows to warn about this as well: - - ../../util/options.cc:175:17: warning: this statement may fall through - [-Wimplicit-fallthrough=] + + ../../util/options.cc:175:17: warning: this statement may fall through [-Wimplicit-fallthrough=] case 1: m.r = m.t; ~~~~^~~~~ ../../util/options.cc:176:5: note: here case 2: m.b = m.t; ^~~~ - + But HOLY SMOKES, look at clang -Weverything bot message: - - options.cc:176:5: warning: unannotated fall-through between switch - labels [-Wimplicit-fallthrough] + + options.cc:176:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case 2: m.b = m.t; ^ - options.cc:176:5: note: insert 'HB_FALLTHROUGH;' to silence this - warning + options.cc:176:5: note: insert 'HB_FALLTHROUGH;' to silence this warning case 2: m.b = m.t; ^ HB_FALLTHROUGH; - + Right, it's telling me to insert "HB_FALLTHROUGH;" there!!!!!!!!! util/options.cc | 10 +++++----- @@ -20534,12 +21096,10 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:47:36 2018 -0400 [util] Mark var static - + From clang -Weverything bot: - - options.cc:39:3: warning: no previous extern declaration - for non-static variable 'supported_font_funcs' - [-Wmissing-variable-declarations] + + options.cc:39:3: warning: no previous extern declaration for non-static variable 'supported_font_funcs' [-Wmissing-variable-declarations] util/options.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -20549,11 +21109,10 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:46:20 2018 -0400 [util] Add empty virtual destructor to option_group_t - + From clang -Weverything bot: - - ./options.hh:57:8: warning: 'option_group_t' has virtual functions - but non-virtual destructor [-Wnon-virtual-dtor] + + ./options.hh:57:8: warning: 'option_group_t' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor] struct option_group_t ^ @@ -20565,23 +21124,20 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:43:22 2018 -0400 [indic/khmer] Remove use of global constructors - + Alternative woul have been to resurrect F_COMBINE that I removed in 70136a78cb9eda244767f8e8a3d30d0f3c569d01 - - But this does it for now. I'm not sure why check-static-inits.sh - didn't + + But this does it for now. I'm not sure why check-static-inits.sh didn't catch this before. Clang -Weverything bot did: - + CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo - hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a - global constructor [-Wglobal-constructors] + hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors] indic_features[] = ^ 1 warning generated. CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo - hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a - global constructor [-Wglobal-constructors] + hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors] khmer_features[] = ^ 1 warning generated. @@ -20596,29 +21152,22 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:34:30 2018 -0400 Tweak HB_TAG and HB_UNTAG - - uint32_t was getting promoted to signed int, which is not what - we wanted... - + + uint32_t was getting promoted to signed int, which is not what we wanted... + Wow, clang has become good at generating warnings... - - ../../src/hb-common.h:349:29: warning: signed shift result - (0xFF000000) sets the sign bit of the shift expression's type ('int') - and becomes negative [-Wshift-sign-overflow] - _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< - skip >*/ + + ../../src/hb-common.h:349:29: warning: signed shift result (0xFF000000) sets the sign bit of the shift expression's type ('int') and becomes negative [-Wshift-sign-overflow] + _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/ ^~~~~~~~~~ ../../src/hb-common.h:93:20: note: expanded from macro 'HB_TAG_MAX' define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/hb-common.h:89:57: note: expanded from macro 'HB_TAG' - define HB_TAG(c1,c2,c3,c4) - ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4)))) + define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint8_t)(c1))<<24)|(((uint8_t)(c2))<<16)|(((uint8_t)(c3))<<8)|((uint8_t)(c4)))) ~~~~~~~~~~~~~~~^ ~~ - ../../src/hb-common.h:349:3: warning: ISO C restricts enumerator - values to range of 'int' (4294967295 is too large) [-Wpedantic] - _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< - skip >*/ + ../../src/hb-common.h:349:3: warning: ISO C restricts enumerator values to range of 'int' (4294967295 is too large) [-Wpedantic] + _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/ ^ ~~~~~~~~~~ src/hb-common.h | 4 ++-- @@ -20629,7 +21178,7 @@ Author: Behdad Esfahbod Date: Sun Sep 30 05:27:39 2018 -0400 [font] Make *_advance() fallback to *_advances - + And remove redundant implementations. src/hb-font.cc | 12 ++++++++++++ @@ -20653,7 +21202,7 @@ Author: Behdad Esfahbod Date: Sun Sep 30 03:49:52 2018 -0400 Document setlocale() threadsafety issue - + "Fixes" //github.com/harfbuzz/harfbuzz/issues/1191 src/hb-buffer.cc | 2 ++ @@ -20710,7 +21259,7 @@ Author: Ebrahim Byagowi Date: Sat Sep 29 03:10:13 2018 +0330 [circleci] Improve clang-everything bot log, more to come - + #1196 .circleci/config.yml | 2 +- @@ -20730,9 +21279,8 @@ Author: Ebrahim Byagowi Date: Sat Sep 29 01:57:50 2018 +0330 [ci] Another try on fixing mingw bots - - Per - https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-73555971 + + Per https://github.com/Alexpux/MSYS2-packages/issues/163#issuecomment-73555971 appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -20742,7 +21290,7 @@ Author: Ebrahim Byagowi Date: Fri Sep 28 20:53:48 2018 +0330 [tests] Don't try to get glyph names on failures - + As it may cause a race unrelated to the issue actually happened test/api/test-multithread.c | 4 ++-- @@ -20753,7 +21301,7 @@ Author: Ebrahim Byagowi Date: Fri Sep 28 20:47:21 2018 +0330 [ci] Trying to fix mingw bot - + As https://github.com/Alexpux/MSYS2-packages/issues/702 appveyor.yml | 2 +- @@ -20764,7 +21312,7 @@ Author: Behdad Esfahbod Date: Fri Sep 28 11:06:49 2018 -0400 Fix pthread fail for real - + Using a hack... test/api/Makefile.am | 4 +++- @@ -20784,13 +21332,11 @@ Author: Behdad Esfahbod Date: Fri Sep 28 10:14:23 2018 -0400 [morx] Remove mark_set from Insertion - - text-rendering-tests test MORX-32 shows that for Insertion, an unset - mark is treated - as mark set at 0. This is unlike the Reordering lookup where un - unset mark performs + + text-rendering-tests test MORX-32 shows that for Insertion, an unset mark is treated + as mark set at 0. This is unlike the Reordering lookup where un unset mark performs nothing. - + Fixes MORX-32. src/hb-aat-layout-morx-table.hh | 7 +------ @@ -20801,7 +21347,7 @@ Author: Behdad Esfahbod Date: Fri Sep 28 10:00:07 2018 -0400 [morx] unsafe-to-break in Insertion - + Makes MORX-29, MORX-30, MORX-31 pass. src/hb-aat-layout-morx-table.hh | 2 ++ @@ -20815,12 +21361,9 @@ Date: Fri Sep 28 09:51:35 2018 -0400 test/shaping/data/text-rendering-tests/DISABLED | 4 ++++ test/shaping/data/text-rendering-tests/Makefile.sources | 4 ++++ - .../text-rendering-tests/fonts/TestMORXThirtyone.ttf | Bin 0 -> - 2964 bytes - .../text-rendering-tests/fonts/TestMORXThirtytwo.ttf | Bin 0 -> - 2948 bytes - .../text-rendering-tests/fonts/TestMORXTwentynine.ttf | Bin 0 -> - 3012 bytes + .../text-rendering-tests/fonts/TestMORXThirtyone.ttf | Bin 0 -> 2964 bytes + .../text-rendering-tests/fonts/TestMORXThirtytwo.ttf | Bin 0 -> 2948 bytes + .../text-rendering-tests/fonts/TestMORXTwentynine.ttf | Bin 0 -> 3012 bytes .../data/text-rendering-tests/tests/MORX-29.tests | 4 ++++ .../data/text-rendering-tests/tests/MORX-30.tests | 4 ++++ .../data/text-rendering-tests/tests/MORX-31.tests | 8 ++++++++ @@ -20878,8 +21421,7 @@ Date: Fri Sep 28 16:13:01 2018 +0330 test-multithread, check the results on every iteration (#1194) - test/api/test-multithread.c | 59 - ++++++++++++++++++++++++--------------------- + test/api/test-multithread.c | 59 ++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 27 deletions(-) commit dbc3070a15290310bb5aade11d04eb24fe958094 @@ -20914,7 +21456,7 @@ Author: Behdad Esfahbod Date: Thu Sep 27 16:54:23 2018 -0400 [cache] Use atomic writes in clear() - + To help TSan. src/hb-cache.hh | 5 ++++- @@ -20925,9 +21467,8 @@ Author: Volker Krause Date: Thu Sep 27 16:33:49 2018 +0200 Fix infinite loop when walking up the directory hierarchy (#1183) - - A single find_package(harfbuzz) line in user code resulted in - this loop + + A single find_package(harfbuzz) line in user code resulted in this loop getting stuck when _harfbuzz_libdir_iter became "/". src/harfbuzz-config.cmake.in | 4 ++++ @@ -20956,15 +21497,14 @@ Author: Michiharu Ariza Date: Wed Sep 26 16:30:26 2018 -0700 Added CFF1 J font subset to api test - + Also fixed FDSelect3_4::get_fd Fixed test_subset_cff1_strip_hints (wrong font names!) src/hb-ot-cff-common.hh | 2 +- .../fonts/SourceHanSans-Regular.41,3041,4E9D.otf | Bin 0 -> 5864 bytes test/api/fonts/SourceHanSans-Regular.41,4E9D.otf | Bin 0 -> 5500 bytes - test/api/test-subset-cff1.c | 25 - +++++++++++++++++++-- + test/api/test-subset-cff1.c | 25 +++++++++++++++++++-- 4 files changed, 24 insertions(+), 3 deletions(-) commit 662f7d7e8bfa77b21ffa05e853f61dda993dcc8a @@ -20972,7 +21512,7 @@ Author: Behdad Esfahbod Date: Wed Sep 26 18:42:37 2018 -0400 [arabic] Do the joiner-flipping only for rlig feature - + See comment. src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++++++----- @@ -21010,8 +21550,7 @@ commit c9c75fe3d9eb36f166d594ceb5889a1dc0b14fe6 Author: Ebrahim Byagowi Date: Thu Sep 27 00:08:06 2018 +0330 - [ci] Compile freetype on tsan and put sanitizer flags on correct - places (#1188) + [ci] Compile freetype on tsan and put sanitizer flags on correct places (#1188) .circleci/config.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) @@ -21052,11 +21591,10 @@ Author: Behdad Esfahbod Date: Wed Sep 26 15:02:21 2018 -0400 Fix test-multithread and increase num_threads to 30 - + What were you thinking? ;) - test/api/test-multithread.c | 56 - +++++++++++++++++++++------------------------ + test/api/test-multithread.c | 56 +++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 30 deletions(-) commit 8bb73dad7f3279e1f1362cf9a137504e8ef08985 @@ -21066,8 +21604,7 @@ Date: Wed Sep 26 20:50:51 2018 +0330 Add a multithreaded test (#1184) test/api/Makefile.am | 6 ++ - test/api/test-multithread.c | 146 - ++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-multithread.c | 146 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) commit 04caf11608d2db13eb6ed2ecc3d406e284b4c13c @@ -21075,7 +21612,7 @@ Author: Behdad Esfahbod Date: Wed Sep 26 12:13:47 2018 -0400 [hb-view] Change subpixel bits from 8 to 6 - + To match FreeType units, such that FreeType gets correct size from us. This matters more now that we allow setting --ft-load-flags. @@ -21087,7 +21624,7 @@ Author: Behdad Esfahbod Date: Tue Sep 25 12:47:37 2018 -0400 Fix iOS build - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1179 src/hb-coretext.cc | 4 ++-- @@ -21107,7 +21644,7 @@ Author: Michiharu Ariza Date: Mon Sep 24 22:49:44 2018 -0700 fixed memory leaks - + in CFF1 & CFF2 accelerators, VORG subsetter src/hb-ot-cff1-table.hh | 2 ++ @@ -21128,10 +21665,8 @@ Date: Mon Sep 24 16:50:47 2018 -0700 test/api/fonts/SourceSansPro-Regular.abc.otf | Bin 0 -> 3412 bytes .../api/fonts/SourceSansPro-Regular.ac.nohints.otf | Bin 0 -> 3228 bytes test/api/fonts/SourceSansPro-Regular.ac.otf | Bin 0 -> 3332 bytes - test/api/test-subset-cff1.c | 104 - +++++++++++++++++++++ - test/api/test-subset-cff2.c | 104 - +++++++++++++++++++++ + test/api/test-subset-cff1.c | 104 +++++++++++++++++++++ + test/api/test-subset-cff2.c | 104 +++++++++++++++++++++ 9 files changed, 212 insertions(+) commit 8282e881b51363811078bce53fad6aa5b41f7b41 @@ -21139,7 +21674,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 19:43:01 2018 -0400 Disable msan bot again - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1175 .circleci/config.yml | 2 +- @@ -21179,9 +21714,8 @@ Author: Behdad Esfahbod Date: Mon Sep 24 18:03:34 2018 -0400 Remove F_COMBINE - - Now I wonder if any bots will be unhappy we calling | in static - const initializations... + + Now I wonder if any bots will be unhappy we calling | in static const initializations... Or would that cost runtime init? Our tests don't detect any.. src/hb-ot-map.hh | 2 -- @@ -21214,8 +21748,7 @@ Date: Mon Sep 24 17:55:03 2018 -0400 src/hb-ot-map.hh | 15 ++++++++++- src/hb-ot-shape-complex-hangul.cc | 2 +- - src/hb-ot-shape-complex-indic.cc | 52 - +++++++++++++++----------------------- + src/hb-ot-shape-complex-indic.cc | 52 +++++++++++++++----------------------- src/hb-ot-shape-complex-khmer.cc | 38 ++++++++++------------------ src/hb-ot-shape-complex-myanmar.cc | 2 +- 5 files changed, 51 insertions(+), 58 deletions(-) @@ -21224,19 +21757,16 @@ commit 10203339600e85d6aaffba6034ac250e72fdfc12 Author: Ebrahim Byagowi Date: Tue Sep 25 01:00:32 2018 +0330 - [circleci] Update sanitizer bots with newer clang and Ubuntu version - (#1176) + [circleci] Update sanitizer bots with newer clang and Ubuntu version (#1176) - .circleci/config.yml | 48 - ++++++++++++++++++++++++++++++++---------------- + .circleci/config.yml | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) commit 12b8baa7653741ba13a89cd40f1f36b8bac11666 Author: Behdad Esfahbod Date: Mon Sep 24 17:22:39 2018 -0400 - [msan] Enable again to get a build log, and try to play with - suppressions + [msan] Enable again to get a build log, and try to play with suppressions .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -21271,7 +21801,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 13:04:48 2018 -0400 [check-symbols.sh] Allow weak objects "V" - + ubsan generates these. src/check-symbols.sh | 2 +- @@ -21282,9 +21812,9 @@ Author: Behdad Esfahbod Date: Mon Sep 24 13:01:35 2018 -0400 Link API test programs with C++ linker - + Needed to make ubsan work. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1174 test/api/Makefile.am | 2 ++ @@ -21295,7 +21825,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 12:52:42 2018 -0400 [msan] Add MSAN_OPTIONS=exitcode=42 - + Default exit value is 77, which causes autotools to "skip" test. .circleci/config.yml | 2 +- @@ -21306,7 +21836,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 12:43:29 2018 -0400 [circleci] Disable msan and ubsan builds - + https://github.com/harfbuzz/harfbuzz/issues/1174 https://github.com/harfbuzz/harfbuzz/issues/1175 @@ -21318,7 +21848,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 11:52:22 2018 -0400 Ignore weak symbols in check-symbols.sh - + Some clang versions leave a std::round(float) weak symbol around... src/check-symbols.sh | 2 +- @@ -21329,7 +21859,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 10:43:06 2018 -0400 [docs] A few improvements - + If we wrote just this much every day... src/hb-buffer.cc | 4 ++++ @@ -21351,9 +21881,8 @@ commit 7f335390f3a498119319a0e6c3ce7656a3902066 Author: Behdad Esfahbod Date: Mon Sep 24 09:56:18 2018 -0400 - Revert change that would decompose text if GPOS mark feature is - available - + Revert change that would decompose text if GPOS mark feature is available + https://github.com/harfbuzz/harfbuzz/issues/653#issuecomment-423905920 src/hb-ot-shape-normalize.cc | 4 +++- @@ -21364,7 +21893,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 09:54:37 2018 -0400 Fix normalization - + https://github.com/harfbuzz/harfbuzz/commit/62d1e0852a5549a1b510ad46a4b89f12730bb708#commitcomment-30613091 src/hb-ot-shape-normalize.cc | 1 - @@ -21375,9 +21904,9 @@ Author: Behdad Esfahbod Date: Sun Sep 23 22:33:38 2018 -0400 Simplify ZWJ-skipping a bit - + Towards disabling ZWJ-skipping in certain GPOS contexts. - + Part of https://github.com/flutter/flutter/issues/16886 src/hb-ot-layout-gsubgpos.hh | 6 +++--- @@ -21392,7 +21921,7 @@ Author: Behdad Esfahbod Date: Sun Sep 23 22:00:34 2018 -0400 Reinit skippy iters when auto_zwj / auto_zwnj change - + Ouch. How did we not hit this bug before... src/hb-ot-layout-gsubgpos.hh | 17 +++++++++-------- @@ -21403,12 +21932,11 @@ Author: Behdad Esfahbod Date: Sun Sep 23 21:32:18 2018 -0400 Prefer decomposed form if font has GPOS mark feature - + Fixes https://github.com/harfbuzz/harfbuzz/issues/653 src/hb-ot-shape-complex-hebrew.cc | 2 +- - src/hb-ot-shape-normalize.cc | 126 - ++++++++++++++++++++------------------ + src/hb-ot-shape-normalize.cc | 126 ++++++++++++++++++++------------------ src/hb-ot-shape-normalize.hh | 7 ++- 3 files changed, 72 insertions(+), 63 deletions(-) @@ -21417,9 +21945,9 @@ Author: Behdad Esfahbod Date: Sun Sep 23 19:12:52 2018 -0400 [ot-font] Fix leak - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1171 - + I'm glad we have leak-detector bots now. src/hb-ot-post-table.hh | 1 + @@ -21431,8 +21959,7 @@ Date: Sat Sep 22 14:22:17 2018 +0330 Add bots with address- and thread-sanitizer - .circleci/config.yml | 52 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + .circleci/config.yml | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 24dd6c1a9d8d571c30dce4d39c1975b1d1cedc2a @@ -21450,7 +21977,7 @@ Author: Khaled Hosny Date: Sat Sep 22 16:41:56 2018 +0200 [test] Fix printing subprocess error messages - + Decode the string as Python 3 returns bytes string, and also don’t assume that it ends with a new line. @@ -21462,7 +21989,7 @@ Author: Ebrahim Byagowi Date: Sat Sep 22 17:24:03 2018 +0330 Fix test-subset-* leak issues - + See also https://github.com/harfbuzz/harfbuzz/pull/1169 test/api/hb-subset-test.h | 12 +++++++++--- @@ -21473,7 +22000,7 @@ Author: Ebrahim Byagowi Date: Sat Sep 22 17:05:52 2018 +0330 Fix test-ot-math leak issue - + See also https://github.com/harfbuzz/harfbuzz/pull/1169 test/api/test-ot-math.c | 4 ++++ @@ -21484,7 +22011,7 @@ Author: Ebrahim Byagowi Date: Sat Sep 22 16:49:23 2018 +0330 Fix test-set leak issue - + See also https://github.com/harfbuzz/harfbuzz/pull/1169 test/api/test-set.c | 1 + @@ -21495,7 +22022,7 @@ Author: Ebrahim Byagowi Date: Sat Sep 22 16:45:31 2018 +0330 Fix test-font leak issue - + See also https://github.com/harfbuzz/harfbuzz/pull/1169 test/api/test-font.c | 1 + @@ -21506,7 +22033,7 @@ Author: Michiharu Ariza Date: Fri Sep 21 12:16:36 2018 -0700 fixed subroutinized CFF2 flattening - + and some code cleanup src/hb-cff-interp-common.hh | 2 +- @@ -21519,11 +22046,9 @@ Author: Michiharu Ariza Date: Thu Sep 20 10:31:06 2018 -0700 Added desubroutinize option to generate-expected-outputs.py - + Currently hb-subset always desubroutinizes CFF fonts. - Note that even with this option fonttools won't generate the expected - subset CFF fonts. They were manually created & tweaked to match - hb-subset output. + Note that even with this option fonttools won't generate the expected subset CFF fonts. They were manually created & tweaked to match hb-subset output. test/subset/generate-expected-outputs.py | 1 + 1 file changed, 1 insertion(+) @@ -21533,12 +22058,11 @@ Author: Michiharu Ariza Date: Thu Sep 20 09:45:43 2018 -0700 Added VORG struct and its subsetter - + new file: hb-ot-vorg-table.hh src/Makefile.sources | 1 + - src/hb-ot-vorg-table.hh | 163 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-vorg-table.hh | 163 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset.cc | 5 +- 3 files changed, 168 insertions(+), 1 deletion(-) @@ -21556,38 +22080,23 @@ Author: Michiharu Ariza Date: Wed Sep 19 17:00:10 2018 -0700 Added SourceHanSans-Regular for CFF subset test - - Disabled FDSelect serialization to format 0 for compatibility with - fonttools - - src/hb-subset-cff-common.cc | 16 - +++++++++++++--- - .../japanese/SourceHanSans-Regular.default..otf | Bin 0 -> - 2340 bytes - ...Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> - 6248 bytes - ...Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> - 6432 bytes - .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 0 -> - 5428 bytes - ...Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> - 6552 bytes - .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 0 -> - 5196 bytes - .../japanese/SourceHanSans-Regular.drop-hints..otf | Bin 0 -> - 2188 bytes - ...ular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> - 6076 bytes - ...ular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> - 6180 bytes - .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 0 -> - 5312 bytes - ...ular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> - 6248 bytes - .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 0 -> - 5088 bytes - test/subset/data/fonts/SourceHanSans-Regular.otf | Bin 0 -> - 16427580 bytes + + Disabled FDSelect serialization to format 0 for compatibility with fonttools + + src/hb-subset-cff-common.cc | 16 +++++++++++++--- + .../japanese/SourceHanSans-Regular.default..otf | Bin 0 -> 2340 bytes + ...Regular.default.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6248 bytes + ...Regular.default.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6432 bytes + .../SourceHanSans-Regular.default.61,63,65,6B.otf | Bin 0 -> 5428 bytes + ...Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6552 bytes + .../japanese/SourceHanSans-Regular.default.660E.otf | Bin 0 -> 5196 bytes + .../japanese/SourceHanSans-Regular.drop-hints..otf | Bin 0 -> 2188 bytes + ...ular.drop-hints.3042,3044,3046,3048,304A,304B.otf | Bin 0 -> 6076 bytes + ...ular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.otf | Bin 0 -> 6180 bytes + .../SourceHanSans-Regular.drop-hints.61,63,65,6B.otf | Bin 0 -> 5312 bytes + ...ular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf | Bin 0 -> 6248 bytes + .../SourceHanSans-Regular.drop-hints.660E.otf | Bin 0 -> 5088 bytes + test/subset/data/fonts/SourceHanSans-Regular.otf | Bin 0 -> 16427580 bytes test/subset/data/tests/japanese.tests | 1 + 15 files changed, 14 insertions(+), 3 deletions(-) @@ -21614,15 +22123,14 @@ Author: Behdad Esfahbod Date: Wed Sep 19 16:46:41 2018 -0400 [morx] Implement forward/backward processing - + We reverse too many times. Can be optimized. But I doubt many fonts use reverse lookups, so doesn't matter. - + Other than not applying user features, this completes morx table implementation. - src/hb-aat-layout-morx-table.hh | 40 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-morx-table.hh | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) commit 3bccd62196b5dff70d446c3fe053b1b47bb9c19e @@ -21639,7 +22147,7 @@ Author: Behdad Esfahbod Date: Wed Sep 19 16:02:56 2018 -0400 [morx] Improve buffer position in Insertion w DontAdvance and wo - + Just speculation. Needs tests to determine which is correct behavior. src/hb-aat-layout-morx-table.hh | 23 ++++++++++++++++++----- @@ -21650,7 +22158,7 @@ Author: Michiharu Ariza Date: Tue Sep 18 17:24:30 2018 -0700 fixed char widths & standard Encoding in subset CFF - + also merged flush_n_args to flush_args into one takes start index of the arguments on stack instead of count @@ -21666,24 +22174,16 @@ Author: Michiharu Ariza Date: Tue Sep 18 15:53:37 2018 -0700 Added SourceSansPro-Regular along as CFF full-font test case - - derived "expected" subset fonts from fonttools then manually tweaked - further so they resemble hb-subset output - - ...ourceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 0 -> - 3640 bytes - .../SourceSansPro-Regular.default.61,62,63.otf | Bin 0 -> - 3400 bytes - .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 0 -> - 3596 bytes - ...ceSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 0 -> - 3480 bytes - .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 0 -> - 3276 bytes - ...SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 0 -> - 3448 bytes - test/subset/data/fonts/SourceSansPro-Regular.otf | Bin 0 -> - 220852 bytes + + derived "expected" subset fonts from fonttools then manually tweaked further so they resemble hb-subset output + + ...ourceSansPro-Regular.default.1FC,21,41,20,62,63.otf | Bin 0 -> 3640 bytes + .../SourceSansPro-Regular.default.61,62,63.otf | Bin 0 -> 3400 bytes + .../SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf | Bin 0 -> 3596 bytes + ...ceSansPro-Regular.drop-hints.1FC,21,41,20,62,63.otf | Bin 0 -> 3480 bytes + .../SourceSansPro-Regular.drop-hints.61,62,63.otf | Bin 0 -> 3276 bytes + ...SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf | Bin 0 -> 3448 bytes + test/subset/data/fonts/SourceSansPro-Regular.otf | Bin 0 -> 220852 bytes test/subset/data/tests/full-font.tests | 1 + test/subset/run-tests.py | 4 ++-- test/subset/subset_test_suite.py | 5 +++++ @@ -21694,7 +22194,7 @@ Author: Michiharu Ariza Date: Mon Sep 17 15:34:39 2018 -0700 include curve control points in extents - + this makes results consistent with FT also optimized handling of path end points @@ -21751,8 +22251,7 @@ Date: Mon Sep 17 19:29:34 2018 +0200 [morx] Implement InsertionChain - src/hb-aat-layout-morx-table.hh | 87 - ++++++++++++++++------------------------- + src/hb-aat-layout-morx-table.hh | 87 ++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 54 deletions(-) commit c0c85b852d37dad75eeef473e6dd3ec91a3b559b @@ -21760,14 +22259,12 @@ Author: Michiharu Ariza Date: Mon Sep 17 11:14:56 2018 -0700 implemented get_glyph_extents with CFF1 - - Implemented path operators in a new struct PathProc hooked up - to CSOpSet + + Implemented path operators in a new struct PathProc hooked up to CSOpSet Added current point to CSInterpEnv src/hb-cff-interp-common.hh | 86 ++++++++- - src/hb-cff-interp-cs-common.hh | 425 - +++++++++++++++++++++++++++++++++++++++-- + src/hb-cff-interp-cs-common.hh | 425 +++++++++++++++++++++++++++++++++++++++-- src/hb-cff1-interp-cs.hh | 18 +- src/hb-cff2-interp-cs.hh | 10 +- src/hb-null.hh | 2 +- @@ -21794,10 +22291,9 @@ Author: Simon Hausmann Date: Mon Sep 17 10:33:34 2018 +0200 Fix installation of cmake config when building with cmake (#1161) - + When building with the auto tools, the manually mantained - harfbuzz-config.cmake is installed. When building with cmake, we - can use + harfbuzz-config.cmake is installed. When building with cmake, we can use cmake to generate the correct config files for us and install them. CMakeLists.txt | 5 +++++ @@ -21808,11 +22304,10 @@ Author: Behdad Esfahbod Date: Sun Sep 16 19:33:48 2018 +0200 Revert forcing use of single-parameter static_assert() - - Some clang versions define static_assert as a macro apparently, - so we cannot + + Some clang versions define static_assert as a macro apparently, so we cannot redefine it... - + This reverts commit 94bfea0ce6a7b4d5641c198d50751748a353df11. This reverts commit 4e62627831e7457ed60ff87712570065b14b200a. @@ -21837,8 +22332,7 @@ Date: Sun Sep 16 19:33:48 2018 +0200 src/hb-set-digest.hh | 4 ++-- src/hb-set.hh | 6 +++--- src/hb-uniscribe.cc | 2 +- - src/hb.hh | 34 - +++++++++++++----------------- + src/hb.hh | 34 +++++++++++++----------------- util/options.cc | 3 ++- 23 files changed, 58 insertions(+), 61 deletions(-) @@ -21865,7 +22359,7 @@ Author: Behdad Esfahbod Date: Sun Sep 16 18:11:46 2018 +0200 Fix bots - + "Unused private member" warning turned error. ugh. src/hb-aat-layout-morx-table.hh | 2 ++ @@ -21876,7 +22370,7 @@ Author: Behdad Esfahbod Date: Sun Sep 16 18:09:36 2018 +0200 Enforce single-param static_assert() only - + So we don't accidentally break it again. src/hb-atomic.hh | 4 ++-- @@ -21900,8 +22394,7 @@ Date: Sun Sep 16 18:09:36 2018 +0200 src/hb-set-digest.hh | 4 ++-- src/hb-set.hh | 6 +++--- src/hb-uniscribe.cc | 2 +- - src/hb.hh | 34 - +++++++++++++++++------------- + src/hb.hh | 34 +++++++++++++++++------------- 22 files changed, 60 insertions(+), 56 deletions(-) commit f1a86e1e6f3906f33fc89de694a4bbbc3e40d2bc @@ -21927,19 +22420,15 @@ Author: Behdad Esfahbod Date: Sat Sep 15 19:43:33 2018 +0200 Disallow null-enabled offsets to unsized structures... - + ...like UnsizedArrayOf<>. - - This fixes a class of crasher bugs, mostly with color and AAT tables. - We - cannot use nullable offsets to varsized data that does not declare - min_size, - because it's nost safe to use our fixed-size null pool for types - that have + + This fixes a class of crasher bugs, mostly with color and AAT tables. We + cannot use nullable offsets to varsized data that does not declare min_size, + because it's nost safe to use our fixed-size null pool for types that have their size external. So, use non_null'able offsets for these. - - A further enhancement would be to make use of min_size in Null<> - itself. + + A further enhancement would be to make use of min_size in Null<> itself. Will try that after. src/hb-aat-layout-common.hh | 8 ++++---- @@ -21961,7 +22450,7 @@ Author: Behdad Esfahbod Date: Sat Sep 15 18:31:14 2018 +0200 [morx] Respect default feature settings - + Does NOT apply user-selected features. But at least now enables correct subtables. @@ -21983,8 +22472,7 @@ Date: Sat Sep 15 14:47:18 2018 +0200 [morx] Add stub for InsertionChain - src/hb-aat-layout-morx-table.hh | 209 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-aat-layout-morx-table.hh | 209 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 200 insertions(+), 9 deletions(-) commit f8ccb545c47abe8f0f4ed318ff7b5bf176913893 @@ -21992,9 +22480,8 @@ Author: Behdad Esfahbod Date: Fri Sep 14 18:59:53 2018 +0200 [dfont] Disable null-processsing for offsets - - An offset to unsized arrayis not safe to be redirected to our - fixed-sized + + An offset to unsized arrayis not safe to be redirected to our fixed-sized null pool. Plus, we want to reject, not repair, bad-looking dfonts. src/hb-open-file.hh | 8 ++++---- @@ -22034,7 +22521,7 @@ Author: Behdad Esfahbod Date: Fri Sep 14 11:31:33 2018 +0200 [aat] Add enums for pre-defined state and classes - + Not sure how I didn't add before... src/hb-aat-layout-common.hh | 19 ++++++++++++++++--- @@ -22061,7 +22548,7 @@ Author: Behdad Esfahbod Date: Thu Sep 13 20:35:21 2018 +0200 [dfont] Also check dataLen range in sanitize - + Just to disagree with myself re being done with this code... src/hb-open-file.hh | 1 + @@ -22072,22 +22559,16 @@ Author: Behdad Esfahbod Date: Thu Sep 13 20:30:04 2018 +0200 [dfont] Solve the mystery +2 offset thing! - - Previously, ResourceForkHeader was defined as 30 bytes, having the - typeCountM1 as last member. - There was a mysterious offset-by-2 in the code, derived from FontTools - and JDK code this was + + Previously, ResourceForkHeader was defined as 30 bytes, having the typeCountM1 as last member. + There was a mysterious offset-by-2 in the code, derived from FontTools and JDK code this was ported from. - - In testing, I observed that typeListZ offset is actually 28. - Suggesting that the typeCountM1 - does NOT actually belong to ResourceForkHeader, but belongs to the - array itself. Adjusting for - that resolves the mystery +2 offset hack, so everything is clean - and good now. - - This, concludes my dfont hacking. The code looks great now, and - I'm happy to leave it. + + In testing, I observed that typeListZ offset is actually 28. Suggesting that the typeCountM1 + does NOT actually belong to ResourceForkHeader, but belongs to the array itself. Adjusting for + that resolves the mystery +2 offset hack, so everything is clean and good now. + + This, concludes my dfont hacking. The code looks great now, and I'm happy to leave it. Fuzzers might disagree though, we will see! src/hb-open-file.hh | 30 ++++++++++++------------------ @@ -22099,7 +22580,7 @@ Author: Behdad Esfahbod Date: Thu Sep 13 20:21:54 2018 +0200 Rename HeadlessArrayOf::len to lenP1 - + So it doesn't accidentally match our templates, etc. src/hb-open-type.hh | 14 +++++++------- @@ -22132,8 +22613,7 @@ Date: Thu Sep 13 19:13:01 2018 +0200 [dfont] Push methods further down - src/hb-open-file.hh | 58 - ++++++++++++++++++++++++++++++----------------------- + src/hb-open-file.hh | 58 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 33 insertions(+), 25 deletions(-) commit 8c9bdcc1feeab321a642bdaac50b716e48ce4263 @@ -22169,7 +22649,7 @@ Author: Behdad Esfahbod Date: Thu Sep 13 18:47:53 2018 +0200 [dfont] Make test pass - + Offset 0 is not null in this context. src/hb-open-file.hh | 2 +- @@ -22208,12 +22688,11 @@ Author: Behdad Esfahbod Date: Thu Sep 13 16:49:26 2018 +0200 [dfont] Clean up sanitize() - + I don't think I broke anything. Fuzzers will let me know.. src/hb-dsalgs.hh | 8 ++++ - src/hb-open-file.hh | 122 - ++++++++++++++++++++++++---------------------------- + src/hb-open-file.hh | 122 ++++++++++++++++++++++++---------------------------- 2 files changed, 64 insertions(+), 66 deletions(-) commit 361fc2686152ad8c0ebaf19e0522e0fc58ba3953 @@ -22257,7 +22736,7 @@ Author: Michiharu Ariza Date: Wed Sep 12 17:23:08 2018 -0700 fixed hb_plan_subset_cff_fdselect - + FDSelect3/4 sentinel size wasn't taken into account src/hb-subset-cff-common.cc | 4 ++-- @@ -22271,8 +22750,7 @@ Date: Wed Sep 12 16:08:54 2018 -0700 src/hb-ot-cff-common.hh | 6 ++++ src/hb-ot-cff1-table.hh | 6 ---- - src/hb-subset-cff-common.cc | 68 - ++++++++++++++++++++++++++------------------- + src/hb-subset-cff-common.cc | 68 ++++++++++++++++++++++++++------------------- src/hb-subset-cff-common.hh | 10 +++---- src/hb-subset-cff1.cc | 12 ++++---- src/hb-subset-cff2.cc | 12 ++++---- @@ -22283,7 +22761,7 @@ Author: Michiharu Ariza Date: Wed Sep 12 13:22:19 2018 -0700 fixed bugs in Charset serialization - + also some code cleanup src/hb-ot-cff1-table.hh | 4 ++-- @@ -22295,7 +22773,7 @@ Author: Michiharu Ariza Date: Tue Sep 11 22:41:50 2018 -0700 fixed name mixup in Remap::reset - + it was causing inconsistent Strings Index subset results src/hb-ot-cff-common.hh | 4 ++-- @@ -22306,7 +22784,7 @@ Author: Michiharu Ariza Date: Tue Sep 11 16:47:55 2018 -0700 misc bug fixes - + Added OpCode_FontMatrix to TopDictOpSet (yet to parse values) fixed a wrong assert in encode_int @@ -22340,8 +22818,7 @@ Date: Tue Sep 11 13:24:27 2018 -0700 make parse_bcd locale free - src/hb-cff-interp-dict-common.hh | 92 - +++++++++++++++++++++++++++++----------- + src/hb-cff-interp-dict-common.hh | 92 +++++++++++++++++++++++++++++----------- 1 file changed, 68 insertions(+), 24 deletions(-) commit bb38d0f66388ec37ee9b0e81176d60c66fc17a19 @@ -22351,8 +22828,7 @@ Date: Tue Sep 11 10:43:15 2018 -0700 Implement parse_bcd src/hb-cff-interp-common.hh | 15 -------------- - src/hb-cff-interp-dict-common.hh | 44 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-cff-interp-dict-common.hh | 44 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 15 deletions(-) commit 45e564a51917475ef6481825a6efb5b99bf1912e @@ -22368,8 +22844,7 @@ Date: Tue Sep 11 18:12:26 2018 +0200 [dfont] Some renaming, plus add link to reference doc - src/hb-open-file.hh | 79 - ++++++++++++++++++++++++----------------------------- + src/hb-open-file.hh | 79 ++++++++++++++++++++++++----------------------------- 1 file changed, 35 insertions(+), 44 deletions(-) commit 4134ec1307bbaff24972e238bc5e4a403cd3f1c1 @@ -22395,13 +22870,11 @@ Author: Behdad Esfahbod Date: Tue Sep 11 17:18:21 2018 +0200 [dfont] Fix test expecatation and minor touch up - - I have no way to authoritatively know, but looks like test font only - has one + + I have no way to authoritatively know, but looks like test font only has one face. So, adjust test expectation instead. - src/hb-open-file.hh | 18 - ++++++------------ + src/hb-open-file.hh | 18 ++++++------------ test/shaping/data/in-house/tests/collections.tests | 2 +- 2 files changed, 7 insertions(+), 13 deletions(-) @@ -22422,7 +22895,7 @@ Author: Behdad Esfahbod Date: Tue Sep 11 16:41:26 2018 +0200 [dfont] Re-enable and fix offset handling - + Fixes https://github.com/harfbuzz/harfbuzz/pull/1085 src/hb-face.cc | 5 +++-- @@ -22452,15 +22925,13 @@ Author: Behdad Esfahbod Date: Tue Sep 11 14:35:26 2018 +0200 [ft] Cache advances - - I decided to always use the cache, instead of my previous sketch - direction - that was to only allocate and use cache if fast advances are not - available. + + I decided to always use the cache, instead of my previous sketch direction + that was to only allocate and use cache if fast advances are not available. The cache is a mere 1kb, so just use it... - + TODO: Invalidate cache on font size change. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/651 Fixes https://github.com/harfbuzz/harfbuzz/pull/1082 @@ -22473,9 +22944,9 @@ Author: Behdad Esfahbod Date: Tue Sep 11 14:21:15 2018 +0200 [util] Add --ft-load-flags - + Useful for performance testing. - + Not hooked to cairo yet. Just changes shaping, not rasterization. util/helper-cairo.cc | 2 +- @@ -22488,7 +22959,7 @@ Author: Behdad Esfahbod Date: Tue Sep 11 14:11:10 2018 +0200 [util] Add -n shorthand for --num-iterations - + Meh. util/options.cc | 2 +- @@ -22499,7 +22970,7 @@ Author: Behdad Esfahbod Date: Tue Sep 11 14:05:16 2018 +0200 [ft] Towards caching slow get_h_advance results - + Related to https://github.com/harfbuzz/harfbuzz/pull/1082 src/hb-ft.cc | 24 ++++++++++++++++++++---- @@ -22520,8 +22991,7 @@ Date: Tue Sep 11 12:56:17 2018 +0200 [ot-font] Rename - src/hb-ot-font.cc | 74 - +++++++++++++++++++++++++++---------------------------- + src/hb-ot-font.cc | 74 +++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) commit d8a67dac2a673138bb4d41cd7eab97c9ee987958 @@ -22547,14 +23017,13 @@ Author: Behdad Esfahbod Date: Tue Sep 11 12:02:34 2018 +0200 Revert "Remove unused hb_cache_t" - + This reverts commit 473b17af4d421f4ce7ac18c769731bb2aa4088f8. - + Updates to recent changes. src/Makefile.sources | 1 + - src/hb-cache.hh | 75 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-cache.hh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ft.cc | 1 + 3 files changed, 77 insertions(+) @@ -22583,9 +23052,9 @@ Author: Behdad Esfahbod Date: Mon Sep 10 22:37:19 2018 +0200 Make --features rand=1 available to the user - + Use rand=255 to mean "randomize". - + Part of https://github.com/harfbuzz/harfbuzz/pull/803 src/hb-ot-layout-gsub-table.hh | 11 ++++------- @@ -22600,7 +23069,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 16:36:05 2018 +0200 Respect user's wish if they set rand feature manually - + Except if the set it to 1, which would mean "randomize"... Ugly. src/hb-ot-layout-gsub-table.hh | 30 ++++++++++++++++-------------- @@ -22636,8 +23105,7 @@ Date: Sat Jan 27 19:48:38 2018 -0500 Test 'rand' test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/5bb74492f5e0ffa1fbb72e4c881be035120b6513.ttf | Bin 0 -> - 1352 bytes + .../fonts/5bb74492f5e0ffa1fbb72e4c881be035120b6513.ttf | Bin 0 -> 1352 bytes test/shaping/data/in-house/tests/rand.tests | 3 +++ 3 files changed, 4 insertions(+) @@ -22646,9 +23114,8 @@ Author: David Corbett Date: Fri Jan 26 21:36:15 2018 -0500 Allow requesting a specific glyph for 'rand' - - Randomization only happens by default. If the user specifies a - value for + + Randomization only happens by default. If the user specifies a value for 'rand', that value is respected. src/hb-ot-map.cc | 3 ++- @@ -22676,8 +23143,7 @@ Date: Mon Sep 10 17:02:31 2018 -0700 fix build attempt - src/hb-ot-cff1-table.hh | 70 - ++++++++++++++++++++++++------------------------- + src/hb-ot-cff1-table.hh | 70 ++++++++++++++++++++++++------------------------- src/hb-subset-cff1.cc | 16 +++++------ 2 files changed, 43 insertions(+), 43 deletions(-) @@ -22696,12 +23162,9 @@ Date: Mon Sep 10 16:27:49 2018 -0700 Removed unused subr subset code - src/hb-subset-cff-common.hh | 98 - ++------------------------------------------- - src/hb-subset-cff1.cc | 92 - +++++------------------------------------- - src/hb-subset-cff2.cc | 90 - ++++------------------------------------- + src/hb-subset-cff-common.hh | 98 ++------------------------------------------- + src/hb-subset-cff1.cc | 92 +++++------------------------------------- + src/hb-subset-cff2.cc | 90 ++++------------------------------------- 3 files changed, 22 insertions(+), 258 deletions(-) commit becd84aa2f2902ea9d2d1677b28945e103a68816 @@ -22709,9 +23172,9 @@ Author: Behdad Esfahbod Date: Tue Sep 11 01:26:18 2018 +0200 Add HB_FEATURE_GLOBAL_START/END - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1141 - + New API: HB_FEATURE_GLOBAL_START HB_FEATURE_GLOBAL_END @@ -22767,7 +23230,7 @@ Author: Michiharu Ariza Date: Mon Sep 10 16:00:20 2018 -0700 subset CFF1 String Index - + Repurposed FDMap as Remap then subclassed for remapping SIDs misc code cleanup @@ -22778,8 +23241,7 @@ Date: Mon Sep 10 16:00:20 2018 -0700 src/hb-ot-cff2-table.hh | 12 +- src/hb-subset-cff-common.cc | 24 +-- src/hb-subset-cff-common.hh | 20 ++- - src/hb-subset-cff1.cc | 334 - ++++++++++++++++++++++++++++++++------- + src/hb-subset-cff1.cc | 334 ++++++++++++++++++++++++++++++++------- src/hb-subset-cff2.cc | 8 +- 9 files changed, 565 insertions(+), 194 deletions(-) @@ -22788,7 +23250,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 23:18:07 2018 +0200 Simplify sanitize->check_array() - + Fix a bug in CBDT sanitize, and redundant check in avar. src/hb-aat-layout-common.hh | 10 ++++------ @@ -22813,11 +23275,10 @@ Author: Behdad Esfahbod Date: Mon Sep 10 23:02:24 2018 +0200 Port some VAR arrays to UnsizedArrayOf<> - + Fix avar sanitize(). - src/hb-ot-layout-gsubgpos.hh | 59 - +++++++++++++++++++++++--------------------- + src/hb-ot-layout-gsubgpos.hh | 59 +++++++++++++++++++++++--------------------- src/hb-ot-var-avar-table.hh | 10 +++++--- src/hb-ot-var-fvar-table.hh | 7 +++--- src/hb-ot-var-hvar-table.hh | 9 ++++--- @@ -22838,7 +23299,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 18:19:37 2018 +0200 Unbreak HB_OPTIONS - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1154 src/hb-debug.hh | 3 +++ @@ -22849,29 +23310,27 @@ Author: Behdad Esfahbod Date: Mon Sep 10 17:38:19 2018 +0200 [indic] Do NOT allow matra after Halant,ZWJ - + Fixes https://github.com/harfbuzz/harfbuzz/issues/556 - + Devanagari regresses 12 tests, and Gujarati 2. See: - + https://github.com/harfbuzz/harfbuzz/issues/556#issuecomment-419957472 - + New numbers: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707299 out of 707394 tests passed. 95 failed (0.0134296%) GUJARATI: 366353 out of 366457 tests passed. 104 failed (0.0283799%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%) SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - src/hb-ot-shape-complex-indic-machine.hh | 1688 - ++++++++++++++---------------- + src/hb-ot-shape-complex-indic-machine.hh | 1688 ++++++++++++++---------------- src/hb-ot-shape-complex-indic-machine.rl | 2 +- 2 files changed, 784 insertions(+), 906 deletions(-) @@ -22880,7 +23339,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 15:45:32 2018 +0200 Fix sanitize or Context Rule - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1110 src/hb-ot-layout-gsubgpos.hh | 2 +- @@ -22891,7 +23350,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 13:56:28 2018 +0200 Revert "[subset] Disable GSUB/GPOS subsetting for now" - + This reverts commit 616fd34a69bb69bc35c7e4ea939e71c3ea2e92cb. src/hb-subset.cc | 4 ++-- @@ -22915,7 +23374,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 11:19:49 2018 +0200 [subset] Disable GSUB/GPOS subsetting for now - + So I can get a release out. I haven't debugged those yet, and they are producing bad tables. @@ -22927,7 +23386,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 11:05:33 2018 +0200 [atomic] Fix pointer type passed to InterlockedExchangeAdd() - + John Emmas reported on mailing list that build with MSVC is failing. Not sure why bots don't catch it, but this should fix. @@ -22939,24 +23398,19 @@ Author: Behdad Esfahbod Date: Fri Sep 7 15:02:57 2018 -0400 Use enum instead of "static const" in class scope - + Technically, static const needs an out-of-class definition. Eg: - + CXXLD libharfbuzz-subset.la Undefined symbols for architecture x86_64: "OT::FeatureVariationRecord::min_size", referenced from: - bool OT::GSUBGPOS::subset(hb_subset_context_t*) - constin libharfbuzz_subset_la-hb-subset.o - bool OT::GSUBGPOS::subset(hb_subset_context_t*) - constin libharfbuzz_subset_la-hb-subset.o + bool OT::GSUBGPOS::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o + bool OT::GSUBGPOS::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::Record::min_size", referenced from: - OT::Script::subset(hb_subset_context_t*) constin - libharfbuzz_subset_la-hb-subset.o + OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o "OT::IntType::min_size", referenced from: - OT::Script::subset(hb_subset_context_t*) constin - libharfbuzz_subset_la-hb-subset.o - OT::RecordListOf::subset(hb_subset_context_t*) - const in libharfbuzz_subset_la-hb-subset.o + OT::Script::subset(hb_subset_context_t*) constin libharfbuzz_subset_la-hb-subset.o + OT::RecordListOf::subset(hb_subset_context_t*) const in libharfbuzz_subset_la-hb-subset.o ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status make[4]: *** [libharfbuzz-subset.la] Error 1 @@ -23013,7 +23467,7 @@ Author: Michiharu Ariza Date: Thu Sep 6 18:26:13 2018 -0700 fix build attempt ^2 - + Added hb-ot-cff1-table.cc to hb-subset sources Deleted unused variable (charset) @@ -23026,7 +23480,7 @@ Author: Michiharu Ariza Date: Thu Sep 6 17:56:05 2018 -0700 fix build attempt - + Added HB_INTERNAL to static funtion declarations src/hb-ot-cff1-table.hh | 8 ++++---- @@ -23037,7 +23491,7 @@ Author: Michiharu Ariza Date: Thu Sep 6 17:28:15 2018 -0700 subset CFF1 Encoding & Charset - + fixed misc Charset bugs added source file hb-ot-cff1.table.cc renamed things for clarity & consistency @@ -23046,8 +23500,7 @@ Date: Thu Sep 6 17:28:15 2018 -0700 src/hb-cff-interp-dict-common.hh | 15 +- src/hb-ot-cff-common.hh | 34 ++-- src/hb-ot-cff1-table.cc | 130 +++++++++++++ - src/hb-ot-cff1-table.hh | 403 - ++++++++++++++++++++++++++++++++------- + src/hb-ot-cff1-table.hh | 403 ++++++++++++++++++++++++++++++++------- src/hb-ot-cff2-table.hh | 24 +-- src/hb-subset-cff1.cc | 247 ++++++++++++++++++++---- src/hb-subset-cff2.cc | 30 +-- @@ -23062,8 +23515,7 @@ Date: Wed Sep 5 18:04:52 2018 -0700 src/hb-ot-hdmx-table.hh | 14 ++++++++++---- test/api/fonts/Roboto-Regular.multihdmx.a.ttf | Bin 0 -> 2052 bytes test/api/fonts/Roboto-Regular.multihdmx.abc.ttf | Bin 0 -> 2468 bytes - test/api/test-subset-hdmx.c | 20 - ++++++++++++++++++++ + test/api/test-subset-hdmx.c | 20 ++++++++++++++++++++ 4 files changed, 30 insertions(+), 4 deletions(-) commit 1e6599f59680c81356b2e9ddddb61252490337a0 @@ -23081,12 +23533,11 @@ Author: Behdad Esfahbod Date: Wed Sep 5 16:24:28 2018 -0700 [subset] Hook up GSUB/GPOS, but still disabled - + They are still in the drop list. src/hb-ot-hdmx-table.hh | 3 +- - src/hb-subset.cc | 75 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset.cc | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) commit 0d160d5ff5158fd4190201becd652c8f28ef4430 @@ -23097,8 +23548,7 @@ Date: Mon Sep 3 20:50:11 2018 -0700 src/hb-machinery.hh | 2 ++ src/hb-null.hh | 43 +++++++++++++++++++----------- - src/hb-ot-layout-gsub-table.hh | 59 - +++++++++++++++++++++++++++++++++++------- + src/hb-ot-layout-gsub-table.hh | 59 +++++++++++++++++++++++++++++++++++------- src/hb-vector.hh | 2 ++ 4 files changed, 81 insertions(+), 25 deletions(-) @@ -23107,7 +23557,7 @@ Author: Michiharu Ariza Date: Tue Sep 4 11:29:15 2018 -0700 fix build by untemplatizing DictOpSet & DictVal - + as they aren't instantiated with BlendArg (yet) src/hb-cff-interp-dict-common.hh | 21 +++++++++------------ @@ -23122,16 +23572,13 @@ Author: Michiharu Ariza Date: Tue Sep 4 10:25:21 2018 -0700 Drop hints from CFF2 charstrings - - Templatized ArgStack so it may store the default value along with - blend deltas as BlendArg while parsing blend operator arguments in - CFF2 charstring + + Templatized ArgStack so it may store the default value along with blend deltas as BlendArg while parsing blend operator arguments in CFF2 charstring Added get_region_count() method to VarRegionList & VariationStore src/hb-cff-interp-common.hh | 67 +++++++++++++++++++++++++++------ src/hb-cff1-interp-cs.hh | 5 ++- - src/hb-cff2-interp-cs.hh | 91 - +++++++++++++++++++++++++++++++++++++++------ + src/hb-cff2-interp-cs.hh | 91 +++++++++++++++++++++++++++++++++++++++------ src/hb-ot-cff2-table.hh | 22 ++++++----- src/hb-ot-layout-common.hh | 6 +++ src/hb-subset-cff-common.hh | 60 ++++++++++++++++-------------- @@ -23144,7 +23591,7 @@ Author: Behdad Esfahbod Date: Mon Sep 3 18:54:32 2018 -0700 [subset] Keep glyph set in plan - + Should remove the vector version at some point... src/hb-subset-plan.cc | 19 ++++++++++--------- @@ -23156,7 +23603,7 @@ Author: Behdad Esfahbod Date: Mon Sep 3 18:23:23 2018 -0700 [subset] Towards subsetting SingleSubstFormat1 - + Why does subset plan not have a hb_set_t of glyphs? src/hb-machinery.hh | 10 +++++++++- @@ -23170,8 +23617,7 @@ Date: Mon Sep 3 17:33:34 2018 -0700 [subset] Wire up subset() call down to subtables src/hb-ot-layout-common.hh | 36 +++++++++++++++++++++++ - src/hb-ot-layout-gpos-table.hh | 67 - +++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout-gpos-table.hh | 67 +++++++++++++++++++++++++++++++++++++++--- src/hb-ot-layout-gsub-table.hh | 54 ++++++++++++++++++++++++++++------ src/hb-ot-layout-gsubgpos.hh | 42 ++++++++++++++++++++++++++ 4 files changed, 186 insertions(+), 13 deletions(-) @@ -23182,8 +23628,7 @@ Date: Mon Sep 3 17:16:09 2018 -0700 Templatize Lookup::sanitize() - src/hb-ot-layout-common.hh | 40 - ++++++++++++++++++++++++++++------------ + src/hb-ot-layout-common.hh | 40 ++++++++++++++++++++++++++++------------ src/hb-ot-layout-gpos-table.hh | 7 ++----- src/hb-ot-layout-gsub-table.hh | 25 +++---------------------- 3 files changed, 33 insertions(+), 39 deletions(-) @@ -23195,8 +23640,7 @@ Date: Mon Sep 3 16:53:03 2018 -0700 [subset] More src/hb-ot-layout-gpos-table.hh | 10 +++++---- - src/hb-ot-layout-gsub-table.hh | 48 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-gsub-table.hh | 48 +++++++++++++++++++++--------------------- src/hb-ot-layout-gsubgpos.hh | 22 +++++++++++++------ 3 files changed, 45 insertions(+), 35 deletions(-) @@ -23216,7 +23660,7 @@ Author: Behdad Esfahbod Date: Mon Sep 3 16:37:17 2018 -0700 [subset] Fix serialize_subset() calls - + Ouch. src/hb-open-type.hh | 2 +- @@ -23234,8 +23678,7 @@ Date: Sun Sep 2 19:47:50 2018 -0700 src/hb-ot-layout-common.hh | 77 +++++++++-- src/hb-ot-layout-gpos-table.hh | 103 ++++++++++---- src/hb-ot-layout-gsub-table.hh | 205 +++++++++++++++++++-------- - src/hb-ot-layout-gsubgpos.hh | 306 - ++++++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsubgpos.hh | 306 ++++++++++++++++++++++++++++++++--------- 4 files changed, 528 insertions(+), 163 deletions(-) commit 61ce62e55455bb0d6c9db3b076676ab18e51d449 @@ -23243,7 +23686,7 @@ Author: Behdad Esfahbod Date: Sun Sep 2 17:00:27 2018 -0700 [subset] Minor - + Remove Lookup::subset(). src/hb-ot-layout-common.hh | 11 ----------- @@ -23255,14 +23698,13 @@ Author: Behdad Esfahbod Date: Sat Sep 1 18:34:50 2018 -0700 [subset] Towards GSUB/GPOS subsetting - + Add subset() call for GSUBGPOS struct and its dependencies. Not hooked up anywhere. src/hb-machinery.hh | 10 ++++-- src/hb-open-type.hh | 25 ++++++++++++- - src/hb-ot-layout-common.hh | 80 - +++++++++++++++++++++++++++++++++++------- + src/hb-ot-layout-common.hh | 80 +++++++++++++++++++++++++++++++++++------- src/hb-ot-layout-gdef-table.hh | 33 ++++++++++------- src/hb-ot-layout-gsub-table.hh | 11 ++++-- src/hb-ot-layout-gsubgpos.hh | 19 ++++++++++ @@ -23282,9 +23724,8 @@ Author: Behdad Esfahbod Date: Fri Aug 31 16:46:35 2018 -0700 [subset] De-templatize hb_subset_context_t - - We're going to (finally) use virtual methods for - hb_serialize_context_t + + We're going to (finally) use virtual methods for hb_serialize_context_t customization, so don't need to carry a Serializer template variable around... Simplifies code. @@ -23327,15 +23768,13 @@ Date: Fri Aug 31 16:28:47 2018 -0700 templatized ArgStack as a prep to store blends - src/hb-cff-interp-common.hh | 46 - +++++++++++++++++++++--------------- + src/hb-cff-interp-common.hh | 46 +++++++++++++++++++++--------------- src/hb-cff-interp-cs-common.hh | 41 ++++++++++++++++++-------------- src/hb-cff-interp-dict-common.hh | 35 ++++++++++++++++----------- src/hb-cff1-interp-cs.hh | 15 +++++++----- src/hb-cff2-interp-cs.hh | 14 +++++++---- src/hb-ot-cff1-table.hh | 32 ++++++++++++------------- - src/hb-ot-cff2-table.hh | 51 - ++++++++++++++++++++++++++-------------- + src/hb-ot-cff2-table.hh | 51 ++++++++++++++++++++++++++-------------- src/hb-subset-cff-common.hh | 4 ++-- src/hb-subset-cff1.cc | 1 - src/hb-subset-cff2.cc | 2 +- @@ -23346,12 +23785,11 @@ Author: Michiharu Ariza Date: Fri Aug 31 13:28:16 2018 -0700 drop hints from CFF1 charstrings - + renamed confusing Stack.size to Stack.count src/hb-cff-interp-common.hh | 43 +++++++----- - src/hb-cff-interp-cs-common.hh | 140 - +++++++++++++++++---------------------- + src/hb-cff-interp-cs-common.hh | 140 +++++++++++++++++---------------------- src/hb-cff-interp-dict-common.hh | 4 +- src/hb-cff1-interp-cs.hh | 14 ++-- src/hb-cff2-interp-cs.hh | 18 ++--- @@ -23377,8 +23815,7 @@ Date: Fri Aug 31 13:25:19 2018 -0700 src/hb-ot-post-table.hh | 2 +- src/hb-subset-glyf.cc | 1 - src/hb-subset-glyf.hh | 2 +- - src/hb-subset-input.hh | 57 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset-input.hh | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset-plan.cc | 3 +-- src/hb-subset-plan.hh | 2 +- src/hb-subset.cc | 3 +-- @@ -23403,8 +23840,7 @@ Date: Thu Aug 30 17:21:56 2018 -0700 src/hb-cff-interp-cs-common.hh | 20 +++++++++++++++++++- src/hb-subset-cff-common.hh | 18 ++++++++++++++---- src/hb-subset-cff1.cc | 35 ++++++++++++++++++++++------------ - src/hb-subset-cff2.cc | 43 - ++++++++++++++++++++++++++---------------- + src/hb-subset-cff2.cc | 43 ++++++++++++++++++++++++++---------------- 4 files changed, 83 insertions(+), 33 deletions(-) commit a23b892fe6cc4859a30edc7ffc003ab7624aa5f0 @@ -23413,8 +23849,7 @@ Date: Wed Aug 29 18:28:39 2018 -0700 Shuffle - src/hb-machinery.hh | 62 - +++++++++++++++++++++++++++-------------------------- + src/hb-machinery.hh | 62 +++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 30 deletions(-) commit 93fe0faaee45b8fb646f7aa33620105c62193885 @@ -23423,8 +23858,7 @@ Date: Wed Aug 29 18:24:03 2018 -0700 [subset] Clean up hb_subset_input_t API - src/hb-subset-input.cc | 44 - +++++++++++++++++++--------------------- + src/hb-subset-input.cc | 44 +++++++++++++++++++--------------------- src/hb-subset-plan.cc | 4 ++-- src/hb-subset-plan.hh | 10 ++++----- src/hb-subset.cc | 2 +- @@ -23440,15 +23874,13 @@ Author: Michiharu Ariza Date: Wed Aug 29 18:18:18 2018 -0700 CFF2 subroutine flattner - - Factored out CFF1 & CFF2 common subsetting code in - hb-subset-cff-common.hh + + Factored out CFF1 & CFF2 common subsetting code in hb-subset-cff-common.hh src/hb-cff2-interp-cs.hh | 34 +++++-- src/hb-subset-cff-common.hh | 154 +++++++++++++++++++++++++++++ src/hb-subset-cff1.cc | 135 +++----------------------- - src/hb-subset-cff2.cc | 229 - ++++++++++++++++++-------------------------- + src/hb-subset-cff2.cc | 229 ++++++++++++++++++-------------------------- 4 files changed, 285 insertions(+), 267 deletions(-) commit d237ce71810045ee400c52740cd8ab6e1113aada @@ -23465,15 +23897,14 @@ Author: Behdad Esfahbod Date: Wed Aug 29 18:09:55 2018 -0700 [subset] Remove unused hb_subset_profile_t - + We might reintroduce it later, but for now remove, as it was unused. Some things that should have been in this object (drop_hints, etc) are already in hb_subset_input_t. So, for now, keep everything there. src/hb-subset-plan.cc | 3 +-- src/hb-subset-plan.hh | 1 - - src/hb-subset.cc | 39 - +++------------------------------------ + src/hb-subset.cc | 39 +++------------------------------------ src/hb-subset.h | 16 +--------------- test/api/hb-subset-test.h | 4 +--- test/api/test-subset-hdmx.c | 8 ++------ @@ -23488,7 +23919,7 @@ Author: Behdad Esfahbod Date: Wed Aug 29 16:38:04 2018 -0700 [ot-font] Clean up cmap with gid=0 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1145 src/hb-ot-cmap-table.hh | 25 +++++++++++++++---------- @@ -23499,13 +23930,10 @@ Author: Ross Burton Date: Wed Aug 29 22:37:39 2018 +0100 Delete pkg.m4 + + pkg.m4 is provided by pkg-config, which is a requirement to build, and this copy is ancient. Delete it to avoid it being used instead of the host copy. - pkg.m4 is provided by pkg-config, which is a requirement to build, - and this copy is ancient. Delete it to avoid it being used instead - of the host copy. - - m4/pkg.m4 | 157 - -------------------------------------------------------------- + m4/pkg.m4 | 157 -------------------------------------------------------------- 1 file changed, 157 deletions(-) commit b95bf075d7b62baf7d6fa1d8f0d1f16fad934975 @@ -23536,7 +23964,7 @@ Author: Michiharu Ariza Date: Wed Aug 29 13:26:17 2018 -0700 Merge branch 'master' into cff-subset - + Renamed cff "private" source/headers without the suffix commit 0ad081ec324e734cfca60d4d2c36a1be5bc8a067 @@ -23553,15 +23981,12 @@ Author: Michiharu Ariza Date: Wed Aug 29 12:14:30 2018 -0700 Subroutine flattener for CFF1 - - Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff - during "plan" phase, then copied to hb_serialize_context_t during - "write" phase - + + Subr-flattened charstrings are temporarily re-encoded in ByteStrBuff during "plan" phase, then copied to hb_serialize_context_t during "write" phase + CSOpSet may callback opcode processing "virtual" functions via CRTP - - Numer struct may store a value as fixed optionally in addition to - int and float + + Numer struct may store a value as fixed optionally in addition to int and float src/hb-cff-interp-common-private.hh | 53 ++++++++++-- src/hb-cff-interp-cs-common-private.hh | 109 ++++++++++++++++++----- @@ -23569,8 +23994,7 @@ Date: Wed Aug 29 12:14:30 2018 -0700 src/hb-cff2-interp-cs.hh | 14 +-- src/hb-ot-cff-common-private.hh | 10 +-- src/hb-subset-cff-common-private.hh | 102 +++++++++++++++++++++- - src/hb-subset-cff1.cc | 152 - ++++++++++++++++++++++----------- + src/hb-subset-cff1.cc | 152 ++++++++++++++++++++++----------- src/hb-subset-cff2.cc | 7 +- 8 files changed, 372 insertions(+), 110 deletions(-) @@ -23579,7 +24003,7 @@ Author: Behdad Esfahbod Date: Tue Aug 28 18:27:41 2018 -0700 Don't declare extern symbols as inline - + clang -O3 was completely removing _get_gdef(), causing link failure when needed from another compilation unit. Surprisingly, "extern inline" didn't fix it. @@ -23610,7 +24034,7 @@ Author: Behdad Esfahbod Date: Tue Aug 28 11:02:00 2018 -0700 Explicitly pass reference in hb_auto_t constructor - + Fixes clang bots as well as fuzzer issue. src/hb-dsalgs.hh | 9 ++++++++- @@ -23637,7 +24061,7 @@ Author: Behdad Esfahbod Date: Sun Aug 26 15:11:24 2018 -0700 Free up hb-ot-face.hh from includes - + There might be a better way to do this, but I couldn't find... src/hb-face.cc | 1 + @@ -23693,8 +24117,7 @@ Date: Sun Aug 26 09:03:31 2018 -0700 [GDEF] Move code around src/hb-ot-layout-gdef-table.hh | 118 +----------------------------------- - src/hb-ot-layout.cc | 134 - ++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout.cc | 134 ++++++++++++++++++++++++++++++++++++++--- src/hb-ot-layout.hh | 14 +---- 3 files changed, 128 insertions(+), 138 deletions(-) @@ -23703,7 +24126,7 @@ Author: Behdad Esfahbod Date: Sun Aug 26 01:30:52 2018 -0700 Add template keyword - + I swear I have no idea why this is needed, but it is... src/hb-ot-layout-gsubgpos.hh | 2 +- @@ -23726,8 +24149,7 @@ Date: Sun Aug 26 01:25:54 2018 -0700 src/hb-ot-face.cc | 108 ---------------------------------- src/hb-ot-face.hh | 2 +- - src/hb-ot-layout-gdef-table.hh | 129 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gdef-table.hh | 129 +++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 14 ++++- src/hb-ot-layout.hh | 5 +- 5 files changed, 147 insertions(+), 111 deletions(-) @@ -23736,12 +24158,10 @@ commit b929100f8782816c2621715f6c007ecefc419d83 Author: Behdad Esfahbod Date: Sun Aug 26 01:15:47 2018 -0700 - [ot-face] Unify GSUB/GPOS accelerators in the table accelerator - framework + [ot-face] Unify GSUB/GPOS accelerators in the table accelerator framework src/hb-aat-layout.cc | 4 +--- - src/hb-ot-face.cc | 40 - ++-------------------------------------- + src/hb-ot-face.cc | 40 ++-------------------------------------- src/hb-ot-face.hh | 25 +++++++++++-------------- src/hb-ot-layout-gpos-table.hh | 2 +- src/hb-ot-layout-gsub-table.hh | 6 +++--- @@ -23774,8 +24194,7 @@ Date: Sun Aug 26 00:21:29 2018 -0700 src/hb-machinery.hh | 4 ++-- src/hb-ot-cmap-table.hh | 3 ++- src/hb-ot-face.cc | 6 +++-- - src/hb-ot-face.hh | 58 - +++++++++++++------------------------------------ + src/hb-ot-face.hh | 58 +++++++++++++------------------------------------ src/hb-ot-font.cc | 6 ++--- 5 files changed, 26 insertions(+), 51 deletions(-) @@ -23807,8 +24226,7 @@ Date: Sat Aug 25 23:54:06 2018 -0700 src/hb-ot-cmap-table.hh | 1 + src/hb-ot-face.cc | 2 ++ src/hb-ot-face.hh | 55 +++++++++++++++++++++++++++----- - src/hb-ot-font.cc | 75 - ++++---------------------------------------- + src/hb-ot-font.cc | 75 ++++---------------------------------------- src/hb-ot-layout-gsubgpos.hh | 1 + src/hb-ot-layout.hh | 1 - 6 files changed, 58 insertions(+), 77 deletions(-) @@ -23829,8 +24247,7 @@ Date: Sat Aug 25 23:19:34 2018 -0700 [ot-font] Make everything (cmap/metrics) lazy src/hb-machinery.hh | 5 +++++ - src/hb-ot-font.cc | 51 - ++++++++++++++++++++++++++------------------------- + src/hb-ot-font.cc | 51 ++++++++++++++++++++++++++------------------------- 2 files changed, 31 insertions(+), 25 deletions(-) commit 62fc54725a3863473829f3a3748c9336e4dc0787 @@ -23838,7 +24255,7 @@ Author: Behdad Esfahbod Date: Sat Aug 25 23:15:52 2018 -0700 [ot-font] Fallback vertical advance to UPEM - + Used to be ascent+descent. Whatever. This is more convenient for upcoming changes. @@ -23853,8 +24270,7 @@ Date: Sat Aug 25 23:06:37 2018 -0700 Add hb-ot-face.cc/hh src/Makefile.sources | 2 + - src/hb-ot-face.cc | 206 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-face.cc | 206 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-face.hh | 144 +++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 172 ------------------------------------------ src/hb-ot-layout.hh | 108 +-------------------------- @@ -23867,18 +24283,16 @@ Author: Behdad Esfahbod Date: Sat Aug 25 22:44:39 2018 -0700 [face] Introduce character-map API - + New API: +hb_face_collect_unicodes +hb_face_collect_variation_selectors +hb_face_collect_variation_unicodes docs/harfbuzz-sections.txt | 3 ++ - src/hb-face.cc | 61 - ++++++++++++++++++++++++- + src/hb-face.cc | 61 ++++++++++++++++++++++++- src/hb-face.h | 19 ++++++++ - src/hb-subset.cc | 53 - --------------------- + src/hb-subset.cc | 53 --------------------- src/hb-subset.h | 15 ------ test/api/test-subset-codepoints.c | 6 +-- test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 2 +- @@ -23898,11 +24312,10 @@ Author: Behdad Esfahbod Date: Sat Aug 25 22:36:36 2018 -0700 Rename hb-*private.hh to hb-*.hh - + Sorry for the noise, downstream custom builders. Please adjust. - src/Makefile.sources | 75 - +++++++++++----------- + src/Makefile.sources | 75 +++++++++++----------- src/check-includes.sh | 8 +-- src/dump-indic-data.cc | 2 +- src/dump-khmer-data.cc | 2 +- @@ -24077,7 +24490,7 @@ Author: Behdad Esfahbod Date: Sat Aug 25 22:07:17 2018 -0700 [unicode] Add HB_UNICODE_MAX - + New API: HB_UNICODE_MAX @@ -24110,8 +24523,7 @@ Date: Sat Aug 25 21:15:39 2018 -0700 Use new hb_auto_t<> constructor with Coverage::Iter - src/hb-ot-layout-common-private.hh | 65 - ++++++++++++++++++++++++-------------- + src/hb-ot-layout-common-private.hh | 65 ++++++++++++++++++++++++-------------- src/hb-ot-layout-gsub-table.hh | 30 ++++++------------ 2 files changed, 52 insertions(+), 43 deletions(-) @@ -24120,7 +24532,7 @@ Author: Behdad Esfahbod Date: Sat Aug 25 21:08:15 2018 -0700 Add 1-param passthrough constructor to hb_auto_t<> - + And use. src/hb-dsalgs.hh | 1 + @@ -24141,11 +24553,10 @@ Author: Behdad Esfahbod Date: Sat Aug 25 16:11:26 2018 -0700 [cmap Add hb_subset_collect_variation_unicodes() - + To be moved to hb-face.h later. - src/hb-ot-cmap-table.hh | 59 - +++++++++++++++++++++++++++++++++++++++++-------- + src/hb-ot-cmap-table.hh | 59 +++++++++++++++++++++++++++++++++++++++++-------- src/hb-subset.cc | 25 ++++++++++++++++++++- src/hb-subset.h | 10 +++++++-- 3 files changed, 82 insertions(+), 12 deletions(-) @@ -24155,7 +24566,7 @@ Author: Behdad Esfahbod Date: Sat Aug 25 15:56:07 2018 -0700 [cmap] Add hb_subset_collect_variation_selectors() - + To be moved to hb-face later. src/hb-ot-cmap-table.hh | 20 ++++++++++++++++---- @@ -24188,8 +24599,7 @@ Date: Sat Aug 25 15:33:05 2018 -0700 [cmap] Factor out find_best_subtable - src/hb-ot-cmap-table.hh | 52 - +++++++++++++++++++++++++++++-------------------- + src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 21 deletions(-) commit b41c43b4e112bfa38fef35694842f242c28a7da2 @@ -24198,8 +24608,7 @@ Date: Sat Aug 25 15:25:03 2018 -0700 Minor - src/hb-ot-cmap-table.hh | 48 - ++++++++++++++++++++++++++---------------------- + src/hb-ot-cmap-table.hh | 48 ++++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) commit 7d382fa276f44b7b163e98d434cc79f958bf87fb @@ -24216,11 +24625,10 @@ Author: Behdad Esfahbod Date: Sat Aug 25 09:33:30 2018 -0700 [cmap] Simplify collect_unicodes() - + Don't use accelerator (almost). Hooks up Format13 as well. - src/hb-ot-cmap-table.hh | 52 - +++++++++++++++++++++++++++---------------------- + src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 23 deletions(-) commit d60c465627d76fcfbeb37d6b8f9382f3b84ace6e @@ -24229,8 +24637,7 @@ Date: Sat Aug 25 08:47:06 2018 -0700 Rename get_all_codepoints() to collect_unicodes() - src/hb-ot-cmap-table.hh | 26 - ++++++++++++------------- + src/hb-ot-cmap-table.hh | 26 ++++++++++++------------- src/hb-subset.cc | 6 +++--- src/hb-subset.h | 4 ++-- test/api/test-subset-codepoints.c | 18 ++++++++--------- @@ -24242,7 +24649,7 @@ Author: Behdad Esfahbod Date: Sat Aug 25 08:44:18 2018 -0700 [ot-font] Return char-not-found if mapped to gid 0 - + OpenType cmap table can use gid=0 to mean "not covered" to produce more optimized cmap subtables. Return false from get_nominal_glyph() for those. hb-ft already does this. @@ -24255,14 +24662,13 @@ Author: Behdad Esfahbod Date: Sat Aug 25 08:18:53 2018 -0700 Add face-builder - + New API: +hb_face_builder_create +hb_face_builder_add_table docs/harfbuzz-sections.txt | 5 +- - src/hb-face.cc | 149 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-face.cc | 149 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-face.h | 14 +++++ src/hb-subset-plan.cc | 2 +- src/hb-subset-plan.hh | 2 +- @@ -24285,8 +24691,7 @@ Date: Fri Aug 24 10:24:45 2018 -0700 [sanitize] Document how sanitize machinery works - src/hb-machinery-private.hh | 62 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-machinery-private.hh | 62 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) commit 142ac5a6be6088771e0ee4b135ba753c80036a9a @@ -24311,8 +24716,7 @@ Date: Wed Aug 15 20:12:25 2018 -0700 src/hb-ot-layout-gsub-table.hh | 8 ++- src/hb-ot-layout-gsubgpos-private.hh | 2 +- src/hb-ot-layout-private.hh | 12 ++--- - src/hb-ot-layout.cc | 100 - +++++++++++++++++------------------ + src/hb-ot-layout.cc | 100 +++++++++++++++++------------------ src/hb-ot-math.cc | 2 +- src/hb-ot-shape.cc | 5 +- src/hb-ot-var.cc | 4 +- @@ -24344,10 +24748,8 @@ Date: Fri Aug 17 16:50:13 2018 -0700 drop hints from CFF & CFF2 Private src/hb-cff-interp-dict-common-private.hh | 24 ++++++++++++++ - src/hb-subset-cff1.cc | 53 - +++++++++++++++++++++++++++--- - src/hb-subset-cff2.cc | 55 - +++++++++++++++++++++++++++++--- + src/hb-subset-cff1.cc | 53 +++++++++++++++++++++++++++--- + src/hb-subset-cff2.cc | 55 +++++++++++++++++++++++++++++--- 3 files changed, 123 insertions(+), 9 deletions(-) commit cef75ea41a513a612a683bced27ced31761204b5 @@ -24355,7 +24757,7 @@ Author: Michiharu Ariza Date: Fri Aug 17 13:13:18 2018 -0700 Added CFF2 Subr nullifier - + along with CFF2 charstring interpreter factored out common code between CFF1 & CFF2 to CSInterpreter moved fetch_op from Interpreter to InterpEnv @@ -24363,12 +24765,10 @@ Date: Fri Aug 17 13:13:18 2018 -0700 src/Makefile.sources | 1 + src/hb-cff-interp-common-private.hh | 44 +++++++-------- - src/hb-cff-interp-cs-common-private.hh | 95 - +++++++++++++++++++++++++++++-- + src/hb-cff-interp-cs-common-private.hh | 95 +++++++++++++++++++++++++++++-- src/hb-cff-interp-dict-common-private.hh | 3 +- src/hb-cff1-interp-cs.hh | 82 --------------------------- - src/hb-cff2-interp-cs.hh | 97 - ++++++++++++++++++++++++++++++++ + src/hb-cff2-interp-cs.hh | 97 ++++++++++++++++++++++++++++++++ src/hb-ot-cff-common-private.hh | 4 ++ src/hb-ot-cff2-table.hh | 7 ++- src/hb-subset-cff1.cc | 1 + @@ -24380,11 +24780,10 @@ Author: Michiharu Ariza Date: Thu Aug 16 08:03:46 2018 -0700 renamed CFF::Index to CFF::CFFIndex - + to avoid confusion with OT::Index - src/hb-ot-cff-common-private.hh | 38 - +++++++++++++++++++------------------- + src/hb-ot-cff-common-private.hh | 38 +++++++++++++++++++------------------- src/hb-ot-cff1-table.hh | 4 ++-- src/hb-ot-cff2-table.hh | 2 +- src/hb-subset-cff2.cc | 4 ++-- @@ -24404,7 +24803,7 @@ Author: Michiharu Ariza Date: Thu Aug 16 00:25:57 2018 -0700 renamed OT::cff to OT::cff1 for consistency - + along with HB_OT_TAG_cff1 src/hb-ot-cff1-table.hh | 14 +++++++------- @@ -24417,14 +24816,13 @@ Author: Michiharu Ariza Date: Thu Aug 16 00:13:09 2018 -0700 renamed CFF version 1 structs and sources to CFF1 from CFF - + "CFF" is used for shared structs & sources between CFF1 & CFF2 except OT:cff is for CFF version 1 table src/Makefile.sources | 8 +- src/{hb-cff-interp-cs.hh => hb-cff1-interp-cs.hh} | 22 ++-- - src/{hb-ot-cff-table.hh => hb-ot-cff1-table.hh} | 150 - +++++++++++----------- + src/{hb-ot-cff-table.hh => hb-ot-cff1-table.hh} | 150 +++++++++++----------- src/hb-ot-font.cc | 2 +- src/{hb-subset-cff.cc => hb-subset-cff1.cc} | 86 ++++++------- src/{hb-subset-cff.hh => hb-subset-cff1.hh} | 8 +- @@ -24514,27 +24912,23 @@ Author: Michiharu Ariza Date: Wed Aug 15 12:00:19 2018 -0700 CFF Subrs subsetting - + Unreferenced subroutines are nullified (not removed) in a subset font - - Separate Interpreter struct from hb-ot-cff-common-private.hh in a - set of four header files, augmented for CharString (CS): + + Separate Interpreter struct from hb-ot-cff-common-private.hh in a set of four header files, augmented for CharString (CS): hb-cff-interp-common-private.hh hb-cff-interp-dict-common-private.hh hb-cff-interp-cs-common-private.hh hb-cff-interp-cs.hh - - Interpreter runtime is separated off as a new struct InterpEnv - sub-classed differently for Dict and CharString (CS) + + Interpreter runtime is separated off as a new struct InterpEnv sub-classed differently for Dict and CharString (CS) src/Makefile.sources | 8 +- - src/hb-cff-interp-common-private.hh | 581 - +++++++++++++++++++++++++++++++ + src/hb-cff-interp-common-private.hh | 581 +++++++++++++++++++++++++++++++ src/hb-cff-interp-cs-common-private.hh | 174 +++++++++ src/hb-cff-interp-cs.hh | 282 +++++++++++++++ src/hb-cff-interp-dict-common-private.hh | 183 ++++++++++ - src/hb-ot-cff-common-private.hh | 562 - ++---------------------------- + src/hb-ot-cff-common-private.hh | 562 ++---------------------------- src/hb-ot-cff-table.hh | 165 ++++----- src/hb-ot-cff2-table.hh | 147 ++++---- src/hb-subset-cff-common-private.hh | 83 +++++ @@ -24547,7 +24941,7 @@ Author: Emil A Eklund Date: Tue Aug 14 14:47:20 2018 -0700 Add guard around free_static_C_locale - + Add HB_USE_ATEXIT guard around free_static_C_locale missed by previous commit. @@ -24559,7 +24953,7 @@ Author: Emil A Eklund Date: Tue Aug 14 13:50:24 2018 -0700 Guard free_static function definitions with macro - + Add HB_USE_ATEXIT macros around free_static function definitions to avoid unused function compiler warnings/errors. @@ -24596,17 +24990,16 @@ Author: Behdad Esfahbod Date: Mon Aug 13 10:30:41 2018 -0700 Don't add reference in get_unicode_funcs() functions - + Users don't expect a new reference returned from a get() function. - Indeed, all users of that API I foud where NOT destroying the - reference. + Indeed, all users of that API I foud where NOT destroying the reference. Just change the implementations to NOT return a reference. - + This applies to the following APIs: hb_unicode_funcs_get_default() hb_glib_get_unicode_funcs() hb_icu_get_unicode_funcs() - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1134 src/hb-buffer.cc | 3 +-- @@ -24620,11 +25013,10 @@ Author: Behdad Esfahbod Date: Sun Aug 12 18:20:53 2018 -0700 [uniscribe] Use lazy loader - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1129 - src/hb-uniscribe.cc | 56 - +++++++++++++++++++++++++++-------------------------- + src/hb-uniscribe.cc | 56 +++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 27 deletions(-) commit 266368993625e0cfb6eef9188f8b9aa29fb97391 @@ -24651,8 +25043,7 @@ Date: Sun Aug 12 17:42:16 2018 -0700 [lazy] Use for C_locale - src/hb-common.cc | 60 - ++++++++++++++++++++++++++++---------------------------- + src/hb-common.cc | 60 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit 747d2564e6bdcc15cf6a197e543fb732924159c5 @@ -24662,8 +25053,7 @@ Date: Sun Aug 12 17:32:10 2018 -0700 [lazy] Port more src/hb-machinery-private.hh | 1 - - src/hb-shaper.cc | 78 - ++++++++++++++++++++------------------------- + src/hb-shaper.cc | 78 ++++++++++++++++++++------------------------- src/hb-uniscribe.cc | 3 +- 3 files changed, 37 insertions(+), 45 deletions(-) @@ -24688,8 +25078,7 @@ Date: Sun Aug 12 17:14:32 2018 -0700 [lazy] Port more to it - src/hb-shape.cc | 75 - +++++++++++++++++++++++++++++---------------------------- + src/hb-shape.cc | 75 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 37 deletions(-) commit 6901090945d7e16102f3a2b168465434032b9a09 @@ -24699,8 +25088,7 @@ Date: Sun Aug 12 16:57:06 2018 -0700 [lazy] Make hb_lazy_loader_t<> more usable src/hb-ft.cc | 7 +++--- - src/hb-machinery-private.hh | 57 - +++++++++++++++++++++++++++------------------ + src/hb-machinery-private.hh | 57 +++++++++++++++++++++++++++------------------ 2 files changed, 37 insertions(+), 27 deletions(-) commit bb905e9afcc3eb28a22ba78c09e661a814d04c1f @@ -24727,9 +25115,8 @@ Author: Behdad Esfahbod Date: Sun Aug 12 16:30:39 2018 -0700 [icu] Use get_relaxed for normalizer access - - We've had the proper barriers already. No need for more with - every access. + + We've had the proper barriers already. No need for more with every access. src/hb-icu.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -24749,8 +25136,7 @@ Date: Sun Aug 12 16:20:11 2018 -0700 [lazy] Use for ft_library - src/hb-ft.cc | 61 - ++++++++++++++++++++++----------------------- + src/hb-ft.cc | 61 ++++++++++++++++++++++----------------------- src/hb-glib.cc | 2 +- src/hb-icu.cc | 2 +- src/hb-machinery-private.hh | 2 +- @@ -24778,8 +25164,7 @@ Date: Sun Aug 12 13:46:53 2018 -0700 [ot/ft] Port font_funcs statis to lazy-loader - src/hb-ft.cc | 56 - ++++++++++++++++++++++----------------------- + src/hb-ft.cc | 56 ++++++++++++++++++++++----------------------- src/hb-machinery-private.hh | 14 ++++++++++++ src/hb-ot-font.cc | 49 +++++++++++++++++---------------------- 3 files changed, 62 insertions(+), 57 deletions(-) @@ -24791,8 +25176,7 @@ Date: Sun Aug 12 13:39:01 2018 -0700 [ucdn/glib/icu] Port unicode_funcs statics to lazy-loader src/hb-glib.cc | 50 ++++++++++++++++++-------------------- - src/hb-icu.cc | 59 - ++++++++++++++++----------------------------- + src/hb-icu.cc | 59 ++++++++++++++++----------------------------- src/hb-machinery-private.hh | 28 ++++++++++++++++----- src/hb-ucdn.cc | 51 +++++++++++++++++---------------------- 4 files changed, 88 insertions(+), 100 deletions(-) @@ -24812,8 +25196,7 @@ Date: Sun Aug 12 13:12:29 2018 -0700 [lazy] More - src/hb-machinery-private.hh | 45 - +++++++++++++++++++++++++++++++++++++-------- + src/hb-machinery-private.hh | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) commit 5abdf5eebadf9a4fbd50c1a893c9654de74d22ac @@ -24822,8 +25205,7 @@ Date: Sun Aug 12 12:40:24 2018 -0700 [lazy] More shuffle - src/hb-machinery-private.hh | 80 - +++++++++++++++++++-------------------------- + src/hb-machinery-private.hh | 80 +++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 46 deletions(-) commit 5d9863be6ecf873033cbab732207dd420f3866e7 @@ -24841,7 +25223,7 @@ Author: Behdad Esfahbod Date: Sun Aug 12 12:21:56 2018 -0700 Add explicit_operator - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1127 src/hb-iter-private.hh | 2 +- @@ -24887,17 +25269,15 @@ Author: Michiharu Ariza Date: Fri Aug 10 12:55:22 2018 -0700 fixed inclusion of excluded Private & local Subrs - + It was bloating a multi-FD subset font unnecessarily defined a wrapper struct FDMap for fdmap src/hb-ot-cff-common-private.hh | 34 ++++++++++++++++++++----- src/hb-subset-cff-common-private.cc | 6 ++--- src/hb-subset-cff-common-private.hh | 4 +-- - src/hb-subset-cff.cc | 48 - +++++++++++++++++++---------------- - src/hb-subset-cff2.cc | 50 - ++++++++++++++++++++----------------- + src/hb-subset-cff.cc | 48 +++++++++++++++++++---------------- + src/hb-subset-cff2.cc | 50 ++++++++++++++++++++----------------- 5 files changed, 87 insertions(+), 55 deletions(-) commit 64c541226457907ec1801a5766050ee64feb67e8 @@ -24905,15 +25285,14 @@ Author: Michiharu Ariza Date: Fri Aug 10 11:07:07 2018 -0700 Added CFF support - + Added sources hb-ot-cff-table.hh, hb-subset-cff.cc & hh Templatized Index because CFF uses 16-bit count while CFF2 uses 32-bit Misc code cleanup & bug fixes src/Makefile.sources | 9 +- src/hb-ot-cff-common-private.hh | 477 ++++++++++++------- - src/hb-ot-cff-table.hh | 919 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-cff-table.hh | 919 ++++++++++++++++++++++++++++++++++++ src/hb-ot-cff2-table.hh | 235 ++++----- src/hb-ot-font.cc | 1 + src/hb-subset-cff-common-private.cc | 6 +- @@ -24947,12 +25326,12 @@ Author: Behdad Esfahbod Date: Thu Aug 9 00:56:28 2018 -0700 Revert "[iter] Make operator bool explicit" - + This reverts commit 66920a6bace7c54c8166c4ed938b6ffc5fabcf2b. - + Some of our bots (Oracle Studio and Apple gcc 4.2) do not allow explicit except for constructors. - + https://github.com/harfbuzz/harfbuzz/issues/1127 src/hb-iter-private.hh | 2 +- @@ -24973,7 +25352,7 @@ Author: Behdad Esfahbod Date: Thu Aug 9 00:28:40 2018 -0700 Fix lazy_loader fini() - + Was creating object even if wasn't there. src/hb-machinery-private.hh | 2 +- @@ -24984,9 +25363,9 @@ Author: Behdad Esfahbod Date: Thu Aug 9 00:22:37 2018 -0700 [atomic] Add hb_atomic_ptr_t<> and port all uses - + Found and fixed a couple bugs. - + Found a couple multithreading issues. Marked them with "XXX-MT-bug". src/hb-atomic-private.hh | 34 +++++++++++++++++++++++++++++++--- @@ -25027,7 +25406,7 @@ Author: Behdad Esfahbod Date: Wed Aug 8 22:45:49 2018 -0700 [atomic] Unify typedef - + Removes volatile from fallback implementation. That was handwavy anyway. @@ -25039,7 +25418,7 @@ Author: Behdad Esfahbod Date: Wed Aug 8 22:43:53 2018 -0700 [atomic] Change Mac atomic int type to int - + If ever int is not 32bit, we'll fix this... src/hb-atomic-private.hh | 2 +- @@ -25089,7 +25468,7 @@ Author: Behdad Esfahbod Date: Wed Aug 8 21:42:18 2018 -0700 Fix assertion failure - + https://bugzilla.mozilla.org/show_bug.cgi?id=1476334 src/hb-machinery-private.hh | 3 ++- @@ -25113,7 +25492,7 @@ Author: Behdad Esfahbod Date: Tue Aug 7 09:52:06 2018 -0700 Add +hb_font_get_glyph_advances_for_direction - + New API: +hb_font_get_glyph_advances_for_direction @@ -25128,7 +25507,7 @@ Author: Behdad Esfahbod Date: Tue Aug 7 09:47:00 2018 -0700 Actually add hb_font_get_glyph_[hv]_advances - + New API: +hb_font_get_glyph_h_advances +hb_font_get_glyph_v_advances @@ -25160,17 +25539,17 @@ Author: Behdad Esfahbod Date: Mon Aug 6 15:32:13 2018 -0700 [iter] Make operator bool explicit - + We would need to write: - + for (Iter it (...); bool (t); t++) - + instead of: - + for (Iter it (...); t; t++) - + But I think it's an improvement in code readability in the long term. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1127 src/hb-iter-private.hh | 2 +- @@ -25208,17 +25587,14 @@ Author: Michiharu Ariza Date: Mon Aug 6 10:04:53 2018 -0700 subset FDSelect and FDArray - - Added a set of sources hb-subset-cff-common-private.cc & .hh for - FDSelect subseting code. - Added FDSelect format 4 (CFF2 only) support. Shared its implementation - with format 3 as a template. + + Added a set of sources hb-subset-cff-common-private.cc & .hh for FDSelect subseting code. + Added FDSelect format 4 (CFF2 only) support. Shared its implementation with format 3 as a template. src/Makefile.sources | 2 + src/hb-ot-cff-common-private.hh | 130 ++++++++++++++++------- src/hb-ot-cff2-table.hh | 71 ++++++++++++- - src/hb-subset-cff-common-private.cc | 200 - ++++++++++++++++++++++++++++++++++++ + src/hb-subset-cff-common-private.cc | 200 ++++++++++++++++++++++++++++++++++++ src/hb-subset-cff-common-private.hh | 54 ++++++++++ src/hb-subset-cff2.cc | 71 ++++++++++--- 6 files changed, 476 insertions(+), 52 deletions(-) @@ -25228,7 +25604,7 @@ Author: Behdad Esfahbod Date: Mon Aug 6 09:45:17 2018 -0700 Add batch advance width callback function - + New API: +hb_font_funcs_set_glyph_h_advances_func +hb_font_funcs_set_glyph_v_advances_func @@ -25239,8 +25615,7 @@ Date: Mon Aug 6 09:45:17 2018 -0700 docs/harfbuzz-sections.txt | 6 + src/hb-font-private.hh | 41 +++++-- - src/hb-font.cc | 299 - +++++++++++++++++++++++++++------------------ + src/hb-font.cc | 299 +++++++++++++++++++++++++++------------------ src/hb-font.h | 53 ++++++-- src/hb-ot-shape.cc | 3 +- 5 files changed, 255 insertions(+), 147 deletions(-) @@ -25282,7 +25657,7 @@ Author: Behdad Esfahbod Date: Mon Aug 6 06:17:48 2018 -0700 Port _nil objects to Null() machinery - + Finally, unified! src/hb-blob-private.hh | 1 + @@ -25292,8 +25667,7 @@ Date: Mon Aug 6 06:17:48 2018 -0700 src/hb-face-private.hh | 6 +-- src/hb-face.cc | 5 ++- src/hb-font-private.hh | 10 +++-- - src/hb-font.cc | 66 - ++++++++++++++++-------------- + src/hb-font.cc | 66 ++++++++++++++++-------------- src/hb-null.hh | 11 ++++- src/hb-ot-shape-complex-arabic-fallback.hh | 11 +++-- src/hb-shape-plan-private.hh | 1 + @@ -25308,8 +25682,7 @@ Date: Mon Aug 6 05:53:35 2018 -0700 [BASE] Rename horzi/vert to h/v - src/hb-ot-layout-base-table.hh | 68 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-base-table.hh | 68 +++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 34 deletions(-) commit da48aca1be89efbb8b3ca4471f542aa54aff17c4 @@ -25317,12 +25690,11 @@ Author: Behdad Esfahbod Date: Mon Aug 6 05:52:12 2018 -0700 [BASE] Misc fixes - + The code was badly broken. In better shape now, but still, needs a full review before ever working. - src/hb-ot-layout-base-table.hh | 163 - +++++++++++++++++------------------------ + src/hb-ot-layout-base-table.hh | 163 +++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 95 deletions(-) commit f9cfa5cb0e70203279e74fb6adb0cd4570238ff8 @@ -25341,8 +25713,7 @@ Date: Mon Aug 6 05:01:52 2018 -0700 Move Null system to hb-null.hh src/Makefile.sources | 1 + - src/hb-null.hh | 97 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-null.hh | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-private.hh | 65 +---------------------------------- 3 files changed, 99 insertions(+), 64 deletions(-) @@ -25381,8 +25752,7 @@ Date: Mon Aug 6 04:42:46 2018 -0700 Move hb_vector_t to hb-vector-private.hh src/Makefile.sources | 1 + - src/hb-dsalgs.hh | 297 - ----------------------------------------------- + src/hb-dsalgs.hh | 297 ----------------------------------------------- src/hb-object-private.hh | 109 ++++++++++++++++- src/hb-vector-private.hh | 239 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 346 insertions(+), 300 deletions(-) @@ -25394,8 +25764,7 @@ Date: Mon Aug 6 04:32:51 2018 -0700 Move some more code around src/hb-dsalgs.hh | 43 +++++++++++++++++++++++++++++++++++++++++++ - src/hb-private.hh | 51 - +-------------------------------------------------- + src/hb-private.hh | 51 +-------------------------------------------------- 2 files changed, 44 insertions(+), 50 deletions(-) commit 92806ee055c8efb68fcbe9e1750ce2532a1f8ab3 @@ -25403,7 +25772,7 @@ Author: Behdad Esfahbod Date: Sun Aug 5 21:41:52 2018 -0700 Move null data definitions to hb-static.cc - + Also remove " " null data for Tag. Just use zeroes. src/hb-open-type-private.hh | 3 +-- @@ -25454,7 +25823,7 @@ Author: Behdad Esfahbod Date: Fri Aug 3 17:03:32 2018 -0700 [ot] Add misc tables to tables_t - + Most unused. src/hb-ot-layout-private.hh | 36 ++++++++++++++++++++++-------------- @@ -25483,8 +25852,7 @@ Date: Fri Aug 3 16:45:57 2018 -0700 src/hb-ot-layout-gpos-table.hh | 4 ++-- src/hb-ot-layout-gsub-table.hh | 4 ++-- src/hb-ot-layout-private.hh | 7 ++---- - src/hb-ot-layout.cc | 49 - +++++++++++++++++++----------------------- + src/hb-ot-layout.cc | 49 +++++++++++++++++++----------------------- 5 files changed, 30 insertions(+), 40 deletions(-) commit f73d2775cf649d148ace7c2593da9666d60fc1be @@ -25492,11 +25860,10 @@ Author: Behdad Esfahbod Date: Fri Aug 3 16:34:25 2018 -0700 [ot] More shuffling - + Misc. table loading now properly automated. - src/hb-ot-layout-private.hh | 67 - +++++++++++++++++++++++++++++---------------- + src/hb-ot-layout-private.hh | 67 +++++++++++++++++++++++++++++---------------- src/hb-ot-layout.cc | 25 +++++++++++------ src/hb-ot-math.cc | 2 +- 3 files changed, 61 insertions(+), 33 deletions(-) @@ -25530,17 +25897,14 @@ Author: Michiharu Ariza Date: Fri Aug 3 14:35:09 2018 -0700 Removed parsed hint fields from CFF2PrivateDictValues - - Instead moved & stored uniformly in values vector (renamed from - opstrs) - This should be fine as we aren't likely going to use them as hints - after all + + Instead moved & stored uniformly in values vector (renamed from opstrs) + This should be fine as we aren't likely going to use them as hints after all Templatized DictValues whether to parse them out For subsetter, they aren't parsed src/hb-ot-cff-common-private.hh | 113 ++++++++++++++---------- - src/hb-ot-cff2-table.hh | 185 - ++++++++++++---------------------------- + src/hb-ot-cff2-table.hh | 185 ++++++++++++---------------------------- src/hb-subset-cff2.cc | 2 +- 3 files changed, 120 insertions(+), 180 deletions(-) @@ -25550,8 +25914,7 @@ Date: Thu Aug 2 23:13:19 2018 -0700 [ot] Move code around - src/hb-ot-layout.cc | 211 - ++++++++++++++++++++++++++-------------------------- + src/hb-ot-layout.cc | 211 ++++++++++++++++++++++++++-------------------------- 1 file changed, 106 insertions(+), 105 deletions(-) commit 5e718a751efdda89511c9f30238b500125193499 @@ -25559,20 +25922,18 @@ Author: Behdad Esfahbod Date: Thu Aug 2 23:04:42 2018 -0700 [ot] Use switch for checking for blacklisted GDEF tables - + Faster / more compact code. - src/hb-ot-layout.cc | 107 - +++++++++++++++++++++++++++++----------------------- + src/hb-ot-layout.cc | 107 +++++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 48 deletions(-) commit b5cdf5280d5b00df5356cc5c3236844ca0576bd0 Author: Behdad Esfahbod Date: Thu Aug 2 22:56:42 2018 -0700 - [ot] In GDEF blacklisting logic, remove the glyph index check - for Times - + [ot] In GDEF blacklisting logic, remove the glyph index check for Times + Just blacklist based on table sizes like we do for other fonts. src/hb-ot-layout.cc | 12 ------------ @@ -25591,14 +25952,12 @@ commit 76f7397c10832b891a082e30afc74222bd5ffd7b Author: Michiharu Ariza Date: Thu Aug 2 16:28:10 2018 -0700 - templatized CFF2 accelerator for lean Private dict interpretting - for subset - + templatized CFF2 accelerator for lean Private dict interpretting for subset + also fixed local subrs serialization src/hb-ot-cff-common-private.hh | 8 ++- - src/hb-ot-cff2-table.hh | 119 - ++++++++++++++++++++++++++++++++-------- + src/hb-ot-cff2-table.hh | 119 ++++++++++++++++++++++++++++++++-------- src/hb-subset-cff2.cc | 13 +++-- 3 files changed, 109 insertions(+), 31 deletions(-) @@ -25719,8 +26078,7 @@ Date: Thu Aug 2 01:27:40 2018 -0700 Reduce storage by sharing face amongst lazy_loaders - src/hb-machinery-private.hh | 113 - ++++++++++++++++++++++++-------------------- + src/hb-machinery-private.hh | 113 ++++++++++++++++++++++++-------------------- src/hb-ot-font.cc | 19 ++++---- src/hb-ot-layout-private.hh | 11 +++-- src/hb-ot-layout.cc | 9 ++-- @@ -25732,8 +26090,7 @@ Date: Thu Aug 2 00:38:46 2018 -0700 Internal templatization of lazy-loaders - src/hb-machinery-private.hh | 74 - ++++++++++++++++++++------------------------- + src/hb-machinery-private.hh | 74 ++++++++++++++++++++------------------------- 1 file changed, 32 insertions(+), 42 deletions(-) commit ed7b2e58fc9afb547656cf28eb4a253d989de43c @@ -25782,8 +26139,7 @@ Date: Wed Aug 1 18:03:32 2018 -0700 Rename - src/hb-coretext.cc | 46 - +++++++++++++++++++++++----------------------- + src/hb-coretext.cc | 46 +++++++++++++++++++++++----------------------- src/hb-directwrite.cc | 28 ++++++++++++++-------------- src/hb-fallback-shape.cc | 24 ++++++++++++------------ src/hb-graphite2.cc | 26 +++++++++++++------------- @@ -25816,7 +26172,7 @@ Author: Michiharu Ariza Date: Wed Aug 1 16:32:27 2018 -0700 fixed Index::serialize - + The bug was causing CharString of the last glyph corrupt src/hb-ot-cff-common-private.hh | 4 +++- @@ -25827,7 +26183,7 @@ Author: Michiharu Ariza Date: Wed Aug 1 16:06:52 2018 -0700 fixed CFF2VariationStore::serialize - + also get_size src/hb-ot-cff2-table.hh | 7 ++++--- @@ -25851,8 +26207,7 @@ Date: Wed Aug 1 14:13:59 2018 -0700 [atomic] Fix Solaris ones to add proper barriers - src/hb-atomic-private.hh | 52 - +++++++++++++++++++++++++++++++++--------------- + src/hb-atomic-private.hh | 52 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 16 deletions(-) commit 19dfaa351568887a74cee2c46d6acfcc3fa718ff @@ -25905,32 +26260,28 @@ Author: Michiharu Ariza Date: Wed Aug 1 11:30:38 2018 -0700 Implemented hb_subset_cff2 - + Added serialize functions to CFF2 structs Fixed issues & bugs & code cleanup Now subsetting CFF2 table outputs something - src/hb-ot-cff-common-private.hh | 428 - +++++++++++++++++++++++++++++++++++----- + src/hb-ot-cff-common-private.hh | 428 +++++++++++++++++++++++++++++++++++----- src/hb-ot-cff2-table.hh | 237 +++++++++++++++++----- src/hb-private.hh | 2 +- - src/hb-subset-cff2.cc | 392 - +++++++++++++++++++++++++++++++----- + src/hb-subset-cff2.cc | 392 +++++++++++++++++++++++++++++++----- 4 files changed, 914 insertions(+), 145 deletions(-) commit 1a7fed631880fff8a947ebec9c7427efff581916 Author: Ebrahim Byagowi Date: Wed Aug 1 12:15:44 2018 +0430 - Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" - (#1121) - + Revert "Add a new API, hb_ot_layout_get_feature_name_ids (#976)" (#1121) + This reverts commit 0c1b287b72e91e0898d75acb5d5acf1c6b9a7498. docs/harfbuzz-sections.txt | 1 - src/hb-ot-layout-common-private.hh | 14 ------- - src/hb-ot-layout.cc | 86 - -------------------------------------- + src/hb-ot-layout.cc | 86 -------------------------------------- src/hb-ot-layout.h | 8 ---- 4 files changed, 109 deletions(-) @@ -25957,7 +26308,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 23:01:05 2018 -0700 [atomic] On IBM, use light-weight sync for everything - + lwsync() is a full read/write-barrier. That's all we need, never need sync(). I'm not sure why an isync() was used in fetch_and_add, but since that's a read-modify-write, I just changed it to have @@ -25971,7 +26322,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 23:00:15 2018 -0700 [atomic] Add XXX items around Solaris ops - + Since add_int and cas are both read-modify-write, I wonder if we also need a barrier after them. @@ -25983,19 +26334,18 @@ Author: Behdad Esfahbod Date: Tue Jul 31 22:51:38 2018 -0700 [atomic] Fix get() impl - - Originally, glib's atomic_get was implemented as "memory_barrier; - load". + + Originally, glib's atomic_get was implemented as "memory_barrier; load". I copied this into cairo, fontconfig, and harfbuzz. However, that's wrong. Correct way is "load; memory_barrier". The details are long and hard to fully grasp. Best to read: - + https://www.kernel.org/doc/Documentation/memory-barriers.txt - + Also see my report against GNOME: - + https://gitlab.gnome.org/GNOME/glib/issues/1449 - + Note that this is irrelevant if C++11-like atomic ops are available. src/hb-atomic-private.hh | 28 +++++++++++++++++----------- @@ -26027,13 +26377,12 @@ Author: Behdad Esfahbod Date: Tue Jul 31 21:05:51 2018 -0700 [atomic] Add get_relaxed / set_relaxed - + To help TSan and be more "correct". src/hb-atomic-private.hh | 37 ++++++++++++++++++++++------------- src/hb-common.cc | 4 ++-- - src/hb-debug.hh | 42 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-debug.hh | 42 ++++++++++++++++++++++++++++++++++++++++ src/hb-object-private.hh | 12 ++++++------ src/hb-ot-shape-complex-indic.cc | 22 +++++++++++---------- src/hb-private.hh | 28 --------------------------- @@ -26044,7 +26393,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 19:33:37 2018 -0700 [atomic] Use CONSUME, not ACQUIRE, memory-order for get() - + Although, all implementations just elevate that to ACQUIRE. But requirement for us is just CONSUME. @@ -26056,14 +26405,14 @@ Author: Behdad Esfahbod Date: Tue Jul 31 19:29:49 2018 -0700 Revert "[atomic] Make pointer get op relaxed instead of acquire" - + This reverts commit b1e5650c67266dc158f22355fed206cd1c413f70. - + After lots of head-scratching and finally finding the only truly readable source to be the good old: - + https://www.kernel.org/doc/Documentation/memory-barriers.txt - + I've convinced myself that we need consume memory-ordering on get(). The location of memory-barrier in a load should be after, not before the load. That needs fixing. I'll do that separately. @@ -26076,12 +26425,10 @@ Author: Garret Rieger Date: Tue Jul 31 17:44:02 2018 -0700 [subset] limit the max codepoint value to the unicode limit. - When collecting all codepoints in the cmap avoid using large amount - of memory for fonts that declare coverage over all 32 bit integers. + When collecting all codepoints in the cmap avoid using large amount of memory for fonts that declare coverage over all 32 bit integers. src/hb-ot-cmap-table.hh | 9 +++++++-- - ...mized-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 0 -> - 109 bytes + ...mized-hb-subset-get-codepoints-fuzzer-5973295416475648 | Bin 0 -> 109 bytes 2 files changed, 7 insertions(+), 2 deletions(-) commit 7278d9df3093a87f99cec9b4cea38bd688c5d020 @@ -26092,8 +26439,7 @@ Date: Tue Jul 31 17:59:19 2018 -0700 Add the fuzzer test case for feature collection timeout. docs/harfbuzz-sections.txt | 1 + - ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> - 160249 bytes + ...estcase-minimized-hb-subset-fuzzer-5542653037903872 | Bin 0 -> 160249 bytes 2 files changed, 1 insertion(+) commit 89733755a48feef0a663e1ea7b8294949581ce7e @@ -26104,8 +26450,7 @@ Date: Mon Jul 30 18:10:43 2018 -0700 This is much faster then calling a bunch of individual add()'s. src/hb-ot-layout-common-private.hh | 7 +++++++ - src/hb-ot-layout.cc | 40 - +++++++++++++++++++------------------- + src/hb-ot-layout.cc | 40 +++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 20 deletions(-) commit 7d92bef9c5afb319d125f60b0fce4763afeaa686 @@ -26114,8 +26459,7 @@ Date: Mon Jul 30 17:17:43 2018 -0700 [subset] collect features first, then use those to collect lookups. - src/hb-ot-layout.cc | 148 - +++++++++++++++++++++++++--------------------------- + src/hb-ot-layout.cc | 148 +++++++++++++++++++++++++--------------------------- src/hb-ot-layout.h | 7 +++ 2 files changed, 78 insertions(+), 77 deletions(-) @@ -26124,16 +26468,15 @@ Author: Behdad Esfahbod Date: Tue Jul 31 15:27:29 2018 -0700 [indic] Flip default logic for double-halants in old-school - + Oriya went down from 9 to 2. - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707311 out of 707394 tests passed. 83 failed (0.0117332%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) MYANMAR: 1115830 out of 1123883 tests passed. 8053 failed (0.716534%) ORIYA: 42327 out of 42329 tests passed. 2 failed (0.00472489%) SINHALA: 271596 out of 271847 tests passed. 251 failed (0.0923313%) @@ -26148,13 +26491,11 @@ Author: Behdad Esfahbod Date: Tue Jul 31 15:19:32 2018 -0700 [indic] Allow double-halant in old-spec Devanagari - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1071 - src/hb-ot-shape-complex-indic.cc | 18 - ++++++++++++------ - .../b722a7d09e60421f3efbc706ad348ab47b88567b.ttf | Bin 0 -> - 4672 bytes + src/hb-ot-shape-complex-indic.cc | 18 ++++++++++++------ + .../b722a7d09e60421f3efbc706ad348ab47b88567b.ttf | Bin 0 -> 4672 bytes test/shaping/data/in-house/tests/indic-old-spec.tests | 2 ++ 3 files changed, 14 insertions(+), 6 deletions(-) @@ -26163,15 +26504,14 @@ Author: Behdad Esfahbod Date: Tue Jul 31 14:20:31 2018 -0700 [test] Add Khmer tests, with NotoSansKhmer-Regular.ttf - + Note that there's minor positioning differences, and ONE reordering difference between what we get for these and what Uniscribe gets. Probably same as what's described in commit message for 1a96cc825dc9c8e3b6eef1403fe0864a1cfc0245 .../3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf | Bin 0 -> 24392 bytes - test/shaping/data/in-house/tests/khmer-misc.tests | 89 - +++++++++++++++++++++ + test/shaping/data/in-house/tests/khmer-misc.tests | 89 +++++++++++++++++++++ 2 files changed, 89 insertions(+) commit 5772edc0ea8f697c6123e439c5d0c3e813ebeb45 @@ -26189,8 +26529,7 @@ Date: Tue Jul 31 13:56:55 2018 -0700 [test] Add Khmer test texts from recent bugs - test/shaping/texts/in-house/shaper-khmer/misc.txt | 66 - +++++++++++++++++++++++ + test/shaping/texts/in-house/shaper-khmer/misc.txt | 66 +++++++++++++++++++++++ 1 file changed, 66 insertions(+) commit df26a32c8fd22cbd486e2a1014d30b9f38f51cd1 @@ -26199,354 +26538,180 @@ Date: Tue Jul 31 13:55:53 2018 -0700 [test] Move things around for shaper updates - .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/reph.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../shaper-indic/{indic => }/script-devanagari/misc/dottedcircle.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/misc/eyelash.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/misc/joiners.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/misc/misc.txt - | 0 - .../shaper-indic/{indic => }/script-devanagari/misc/spec-deviations.txt - | 0 - .../shaper-indic/{indic => }/script-devanagari/misc/tricky-reordering.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/LICENSE - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/README - | 0 - .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-gurmukhi/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-kannada/misc/misc.txt - | 0 - .../shaper-indic/{indic => }/script-kannada/misc/right-matras.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../{indic => }/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-malayalam/misc/cibu.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-malayalam/misc/dot-reph.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-malayalam/misc/misc.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-malayalam/utrrs/README - | 0 - .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../{indic => }/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/bindu.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt - | 0 - .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../{indic => }/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../in-house/shaper-indic/{indic => }/script-sinhala/misc/extensive.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/reph.txt - | 0 - .../shaper-indic/{indic => }/script-sinhala/misc/split-matras.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../{indic => }/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt - | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt - | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt - | 0 - .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt - | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt - | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt - | 0 - .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt - | 0 - .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-tamil/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/SOURCES - | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt - | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt - | 0 - .../{indic => }/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-telugu/misc/misc.txt - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/LICENSE - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/README - | 0 - .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/SOURCES - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt - | 0 - .../{indic => }/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt - | 0 - .../south-east-asian/script-khmer/misc => shaper-khmer}/misc.txt - | 0 - .../script-khmer/misc => shaper-khmer}/other-marks-invalid.txt - | 0 - .../south-east-asian/script-khmer/misc => shaper-khmer}/other-marks.txt - | 0 - .../south-east-asian => shaper-use}/script-javanese/misc.txt - | 0 + .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-assamese/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-bengali/misc/reph.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-bengali/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../shaper-indic/{indic => }/script-devanagari/misc/dottedcircle.txt | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/misc/eyelash.txt | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/misc/joiners.txt | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/misc/misc.txt | 0 + .../shaper-indic/{indic => }/script-devanagari/misc/spec-deviations.txt | 0 + .../shaper-indic/{indic => }/script-devanagari/misc/tricky-reordering.txt | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/LICENSE | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/README | 0 + .../in-house/shaper-indic/{indic => }/script-devanagari/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gujarati/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-gurmukhi/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-gurmukhi/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-kannada/misc/misc.txt | 0 + .../shaper-indic/{indic => }/script-kannada/misc/right-matras.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-kannada/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../{indic => }/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../in-house/shaper-indic/{indic => }/script-malayalam/misc/cibu.txt | 0 + .../in-house/shaper-indic/{indic => }/script-malayalam/misc/dot-reph.txt | 0 + .../in-house/shaper-indic/{indic => }/script-malayalam/misc/misc.txt | 0 + .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-malayalam/utrrs/README | 0 + .../in-house/shaper-indic/{indic => }/script-malayalam/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../{indic => }/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/bindu.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-oriya/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-oriya/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt | 0 + .../script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../{indic => }/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../in-house/shaper-indic/{indic => }/script-sinhala/misc/extensive.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-sinhala/misc/reph.txt | 0 + .../shaper-indic/{indic => }/script-sinhala/misc/split-matras.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-sinhala/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../{indic => }/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt | 0 + .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt | 0 + .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt | 0 + .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt | 0 + .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt | 0 + .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt | 0 + .../script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt | 0 + .../{indic => }/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-tamil/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-tamil/utrrs/SOURCES | 0 + .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt | 0 + .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../{indic => }/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-telugu/misc/misc.txt | 0 + .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/LICENSE | 0 + .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/README | 0 + .../texts/in-house/shaper-indic/{indic => }/script-telugu/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../{indic => }/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../south-east-asian/script-khmer/misc => shaper-khmer}/misc.txt | 0 + .../script-khmer/misc => shaper-khmer}/other-marks-invalid.txt | 0 + .../south-east-asian/script-khmer/misc => shaper-khmer}/other-marks.txt | 0 + .../south-east-asian => shaper-use}/script-javanese/misc.txt | 0 174 files changed, 0 insertions(+), 0 deletions(-) commit 6ddd669e205cf2c1c3b0a362330b686386f68519 @@ -26554,7 +26719,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 13:38:07 2018 -0700 [khmer] Clear syllables before presentation features - + Probably not what Uniscribe does, but good idea? src/hb-ot-shape-complex-khmer.cc | 3 +-- @@ -26565,14 +26730,14 @@ Author: Behdad Esfahbod Date: Tue Jul 31 13:35:10 2018 -0700 [khmer] Revert previous change, and remove pauses - + This makes test suite happy again (at 44) while fixing the sequences we were fixing, which were the following with KhmerUI.ttf: - + U+1789,U+17BC U+1789,U+17D2,U+1789 U+1789,U+17D2,U+1789,U+17BC - + Fixes rest of https://github.com/harfbuzz/harfbuzz/issues/974 src/hb-ot-shape-complex-khmer.cc | 23 ++++++++++------------- @@ -26583,7 +26748,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 12:49:02 2018 -0700 [khmer] Apply ccmp after basic features - + Part of https://github.com/harfbuzz/harfbuzz/issues/974 src/hb-ot-shape-complex-khmer.cc | 22 +++++++++++++++++----- @@ -26594,7 +26759,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 11:45:32 2018 -0700 [khmer] Rewrite most of shaper to better follow spec - + Khmer spec has only one reordering phase, and only simple prebase matra and Coeng-Ro reordering. Implement that. Specifically, this was done to address recognizing different orders of the matra @@ -26602,22 +26767,21 @@ Date: Tue Jul 31 11:45:32 2018 -0700 reordered differently from Uniscribe. Not clear if that's intended or a bug in Uniscribe. The following two sequences render the same in Uniscribe whereas we reorder them differently: - + U+17A0,U+17D2,U+179A,U+17C2 U+17A0,U+17C2,U+17D2,U+179A - + For that reason, our test suite numbers regressed slightly. Used to be at 34 for fails, now at: - + KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%) - + But generally a good change, and removed lots of code. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1026 src/hb-ot-shape-complex-indic-private.hh | 4 +- - src/hb-ot-shape-complex-khmer.cc | 460 - ++++--------------------------- + src/hb-ot-shape-complex-khmer.cc | 460 ++++--------------------------- src/hb-ot-shape-complex-private.hh | 13 - 3 files changed, 64 insertions(+), 413 deletions(-) @@ -26644,7 +26808,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 01:02:31 2018 -0700 [atomic] Make pointer get op relaxed instead of acquire - + We only use it before cmpexch, so relaxed is fine and faster for common case. @@ -26656,7 +26820,7 @@ Author: Behdad Esfahbod Date: Mon Jul 30 17:03:06 2018 -0700 [serialize] Increase stage count from 8 to 32 - + Indic shaper uses many stages. Now we are provably not limiting functionality whereas the previous limit of 8 was assuming real-world practices. @@ -26687,12 +26851,11 @@ Author: Michiharu Ariza Date: Mon Jul 30 14:28:40 2018 -0700 Added sanitize functions & calls - + Added sanitize functions to FDSelect Added satnitize calls for FDSelect, VariationStore, FDArray, TopDict - src/hb-ot-cff-common-private.hh | 67 - ++++++++++++++++++++++++++++++++--------- + src/hb-ot-cff-common-private.hh | 67 ++++++++++++++++++++++++++++++++--------- src/hb-ot-cff2-table.hh | 26 +++++++++++----- src/hb-subset-cff2.cc | 2 +- 3 files changed, 72 insertions(+), 23 deletions(-) @@ -26708,11 +26871,9 @@ commit 5edf454aa64aad461c90bd991e7eaf27668b7e6b Author: Garret Rieger Date: Thu Jul 26 17:42:02 2018 -0700 - [subset] During lookup collection remember the features we've - already processed. + [subset] During lookup collection remember the features we've already processed. - src/hb-ot-layout.cc | 26 - +++++++++++++++++---- + src/hb-ot-layout.cc | 26 +++++++++++++++++---- ...ase-minimized-hb-subset-fuzzer-5670861909524480 | Bin 0 -> 1298 bytes ...b-subset-get-codepoints-fuzzer-6136125075750912 | Bin 0 -> 65816 bytes 3 files changed, 21 insertions(+), 5 deletions(-) @@ -26761,12 +26922,11 @@ Author: Behdad Esfahbod Date: Wed Jul 25 17:07:17 2018 -0700 Add hb-iter-private.hh - + Unused so far. src/Makefile.sources | 1 + - src/hb-iter-private.hh | 147 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-iter-private.hh | 147 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-machinery-private.hh | 1 + 3 files changed, 149 insertions(+) @@ -26777,10 +26937,8 @@ Date: Wed Jul 25 16:58:47 2018 -0700 Move some code from hb-open-type-private.hh to hb-machinery-private.hh src/Makefile.sources | 1 + - src/hb-machinery-private.hh | 702 - ++++++++++++++++++++++++++++++++++++++++++++ - src/hb-open-type-private.hh | 669 - +---------------------------------------- + src/hb-machinery-private.hh | 702 ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-open-type-private.hh | 669 +---------------------------------------- 3 files changed, 706 insertions(+), 666 deletions(-) commit 6b11fea99716e22522b563d919ef7c72fe9a3c45 @@ -26824,7 +26982,7 @@ Author: Behdad Esfahbod Date: Tue Jul 24 09:43:27 2018 -0700 [closure] Separate in and out glyphs - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1107 src/hb-ot-layout-gsub-table.hh | 26 ++++++++++++++++++-------- @@ -26847,7 +27005,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 15:01:39 2018 -0700 Fix visibility on mingw32 - + Should fix bots again. src/hb-private.hh | 6 +++++- @@ -26868,7 +27026,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 13:24:26 2018 -0700 One more visibility trick - + Should fix Windows build again. src/hb-common.cc | 9 +++++++++ @@ -26906,7 +27064,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 11:46:46 2018 -0700 Set num glyphs on sanitizer reference_table() - + Move out-of-class definitions of two methods to hb-static so they are accessible in libharfbuzz-subset. @@ -26996,13 +27154,11 @@ Author: Behdad Esfahbod Date: Sun Jul 22 22:24:31 2018 -0700 Add sanitizer reference_table, also fix clang build - + Clang is being really peculiar. Fix with: - - - inline hb_blob_t *sanitize (hb_blob_t *blob) { return - c->sanitize (blob); } - + inline hb_blob_t *sanitize (hb_blob_t *blob) { return - c[0].template/*clang idiosyncrasy*/sanitize_blob (blob); } + + - inline hb_blob_t *sanitize (hb_blob_t *blob) { return c->sanitize (blob); } + + inline hb_blob_t *sanitize (hb_blob_t *blob) { return c[0].template/*clang idiosyncrasy*/sanitize_blob (blob); } src/hb-open-type-private.hh | 10 ++++++++-- src/hb-ot-post-table.hh | 2 +- @@ -27015,13 +27171,12 @@ Author: David Corbett Date: Fri Apr 13 18:45:37 2018 -0400 Order Chakma split vowels in accordance with NFC - + Fixes #1105. src/gen-use-table.py | 10 ++++++++++ src/hb-ot-shape-complex-use-table.cc | 4 ++-- - src/hb-ot-shape-complex-use.cc | 21 - +-------------------- + src/hb-ot-shape-complex-use.cc | 21 +-------------------- .../2a670df15b73a5dc75a5cc491bde5ac93c5077dc.ttf | Bin 0 -> 1344 bytes test/shaping/data/in-house/tests/use.tests | 5 +++++ 5 files changed, 18 insertions(+), 22 deletions(-) @@ -27031,22 +27186,18 @@ Author: Ebrahim Byagowi Date: Sat Jul 21 21:14:48 2018 +0430 Add a new API, hb_ot_layout_get_feature_name_ids (#976) - + This new API returns cvXX and ssXX related NameId, things like - featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, - ... of cvXX + featUiLabelNameId, featUiTooltipTextNameId, sampleTextNameId, ... of cvXX and UINameId of ssXX, in a unified way. - - However HarfBuzz currently doesn't expose an API for retrieving - the actual - information associated with NameId from the `name` table and that - should be + + However HarfBuzz currently doesn't expose an API for retrieving the actual + information associated with NameId from the `name` table and that should be done separately. docs/harfbuzz-sections.txt | 1 + src/hb-ot-layout-common-private.hh | 14 +++++++ - src/hb-ot-layout.cc | 86 - ++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 86 ++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 8 ++++ 4 files changed, 109 insertions(+) @@ -27055,13 +27206,12 @@ Author: Michiharu Ariza Date: Wed Jul 18 14:17:52 2018 -0700 first push of CFF/CFF2 work - + Index, Dict structs hooked up to hb-subset (takes CFF2, outputs empty CFF2) src/Makefile.sources | 4 + - src/hb-ot-cff-common-private.hh | 475 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-cff-common-private.hh | 475 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-cff2-table.hh | 386 ++++++++++++++++++++++++++++++++ src/hb-ot-font.cc | 2 + src/hb-subset-cff2.cc | 121 ++++++++++ @@ -27074,14 +27224,13 @@ Author: Ebrahim Byagowi Date: Tue Jul 17 23:29:16 2018 +0430 Remove dump-fon (#1100) - + It had interesting stuffs like EXE parsing and big-endian parsers but added in an attempt to find a solution for #681 which later found not related. src/Makefile.am | 4 - - src/dump-fon.cc | 555 - -------------------------------------------------------- + src/dump-fon.cc | 555 -------------------------------------------------------- 2 files changed, 559 deletions(-) commit d5cd47a69c40966b4d5b5aed87dd7ac6f070c37a @@ -27089,14 +27238,12 @@ Author: Ebrahim Byagowi Date: Tue Jul 17 22:32:37 2018 +0430 Remove AAT's gcid/fmtx (#1099) - + We are not going to use them, at least in the foreseeable future src/Makefile.sources | 2 -- - src/hb-aat-fmtx-table.hh | 67 - -------------------------------------------- - src/hb-aat-gcid-table.hh | 73 - ------------------------------------------------ + src/hb-aat-fmtx-table.hh | 67 -------------------------------------------- + src/hb-aat-gcid-table.hh | 73 ------------------------------------------------ src/hb-aat-layout.cc | 2 -- 4 files changed, 144 deletions(-) @@ -27114,7 +27261,7 @@ Author: Behdad Esfahbod Date: Tue Jul 17 19:09:03 2018 +0200 Remove TODO that is not gonna be done - + Previously the idea was to cache sanitize results externally (think, in Fontconfig) and avoid resanitizing every time. That's, not a good idea. @@ -27129,8 +27276,7 @@ Date: Tue Jul 17 18:45:25 2018 +0200 Move sanitizer code around a bit src/hb-aat-layout-common-private.hh | 4 +- - src/hb-open-type-private.hh | 95 - ++++++++++++++++++++----------------- + src/hb-open-type-private.hh | 95 ++++++++++++++++++++----------------- src/hb-ot-color-sbix-table.hh | 12 ++--- src/hb-ot-layout-common-private.hh | 3 -- 4 files changed, 58 insertions(+), 56 deletions(-) @@ -27140,12 +27286,10 @@ Author: Behdad Esfahbod Date: Tue Jul 17 18:14:45 2018 +0200 [aat] Update for blob changes + + Also, uncomment code again, just "if (0)" it out, so it doesn't get stale again. - Also, uncomment code again, just "if (0)" it out, so it doesn't get - stale again. - - src/hb-aat-layout.cc | 58 - ++------------------------------------------- + src/hb-aat-layout.cc | 58 ++------------------------------------------- src/hb-open-type-private.hh | 27 +++++++++++++-------- src/hb-ot-layout-private.hh | 1 + src/hb-ot-layout.cc | 2 ++ @@ -27168,7 +27312,7 @@ Author: Behdad Esfahbod Date: Tue Jul 17 10:57:01 2018 +0200 Reland "Implement C++11-style GCC builtin atomic ops" - + Fixed the crasher in it. src/hb-atomic-private.hh | 22 +++++++++++++++++++--- @@ -27190,9 +27334,9 @@ Author: Behdad Esfahbod Date: Tue Jul 17 10:50:01 2018 +0200 Revert "Implement C++11-style GCC builtin atomic ops" - + This reverts commit 21fa170f0bfb0109c506ed17f5aff8b062564ffa. - + Is crashing. Oops. src/hb-atomic-private.hh | 22 +++------------------- @@ -27204,7 +27348,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 17:58:02 2018 +0200 Implement C++11-style GCC builtin atomic ops - + Hopefully fixes bots. src/hb-atomic-private.hh | 22 +++++++++++++++++++--- @@ -27225,7 +27369,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:41:09 2018 +0200 Implement C++11 operations - + Fixes https://github.com/harfbuzz/harfbuzz/issues/345 src/hb-atomic-private.hh | 27 ++++++++++++++++++++++++--- @@ -27239,16 +27383,15 @@ Author: Cosimo Lupo Date: Mon Jul 16 14:42:43 2018 +0200 Merge pull request #1094 from anthrotype/fix-appveyor-msys2 - + appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build commit 269eb45650be66901627da7f1014339065a948a5 Author: Cosimo Lupo Date: Mon Jul 16 14:14:42 2018 +0200 - appveyor.yml: try only updating msys2 core, not the rest of the - packages - + appveyor.yml: try only updating msys2 core, not the rest of the packages + maybe it'll get a bit faster appveyor.yml | 1 - @@ -27259,7 +27402,7 @@ Author: Cosimo Lupo Date: Mon Jul 16 12:57:27 2018 +0200 appveyor.yml: pass --needed option to pacman - + so it won't attempt reinstalling packages which are already installed appveyor.yml | 2 +- @@ -27270,7 +27413,7 @@ Author: Cosimo Lupo Date: Mon Jul 16 12:41:59 2018 +0200 appveyor.yml: try updating msys2 to fix failing mingw-w64-x86_64 build - + https://github.com/harfbuzz/harfbuzz/pull/1093#issuecomment-405201903 https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/ky7lao1ii1bi7ew4#L71 @@ -27282,7 +27425,7 @@ Author: Behdad Esfahbod Date: Wed Jul 11 17:27:23 2018 +0200 Move _hb_alignof later again - + It uses constexpr... src/hb-private.hh | 26 +++++++++++++------------- @@ -27304,8 +27447,7 @@ Date: Wed Jul 11 17:00:59 2018 +0200 Align NullPool and CrapPool to HB_VECTOR_SIZE src/hb-dsalgs.hh | 3 +-- - src/hb-private.hh | 64 - ++++++++++++++++++++++++++++++++----------------------- + src/hb-private.hh | 64 ++++++++++++++++++++++++++++++++----------------------- src/hb-static.cc | 4 ++-- 3 files changed, 40 insertions(+), 31 deletions(-) @@ -27373,10 +27515,8 @@ Date: Tue Jul 10 16:03:31 2018 +0200 Move more stuff from hb-private.hh to hb-dsalgs.hh src/hb-debug.hh | 1 + - src/hb-dsalgs.hh | 237 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-private.hh | 246 - +----------------------------------------------------- + src/hb-dsalgs.hh | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-private.hh | 246 +----------------------------------------------------- 3 files changed, 240 insertions(+), 244 deletions(-) commit f477765661c196ac17b2c86731881a3da36a5ae6 @@ -27385,10 +27525,8 @@ Date: Tue Jul 10 15:49:05 2018 +0200 Move more stuff to hb-dsalgs.hh - src/hb-dsalgs.hh | 83 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-private.hh | 81 - ----------------------------------------------------- + src/hb-dsalgs.hh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-private.hh | 81 ----------------------------------------------------- 2 files changed, 83 insertions(+), 81 deletions(-) commit be7f664f723fb4e7bcf15c1c2b7c6bec46f90393 @@ -27470,10 +27608,8 @@ Date: Tue Jul 10 14:05:00 2018 +0200 Move hb_vector_t and hb_lockable_set_t to hb-dsalgs.hh - src/hb-dsalgs.hh | 311 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-private.hh | 315 - ------------------------------------------------------ + src/hb-dsalgs.hh | 311 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-private.hh | 315 ------------------------------------------------------ 2 files changed, 311 insertions(+), 315 deletions(-) commit 9e53b083295ad910a87e778ebd16cbe69ebe2130 @@ -27481,15 +27617,13 @@ Author: Behdad Esfahbod Date: Tue Jul 10 14:03:58 2018 +0200 Move hb_stable_sort to hb-dsalgs.hh - + Also, include hb-dsalgs.hh from end of hb-pricate.hh - src/hb-dsalgs.hh | 51 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-dsalgs.hh | 51 +++++++++++++++++++++++++++++++++++++++++ src/hb-ot-os2-unicode-ranges.hh | 1 - src/hb-ot-post-table.hh | 1 - - src/hb-private.hh | 51 - ++--------------------------------------- + src/hb-private.hh | 51 ++--------------------------------------- 4 files changed, 53 insertions(+), 51 deletions(-) commit 39f11d8e72c6b2568f3b70847c6c9d1f374cd49c @@ -27506,7 +27640,7 @@ Author: Behdad Esfahbod Date: Tue Jul 10 13:47:41 2018 +0200 Fix syntax - + Oops. src/hb-private.hh | 2 +- @@ -27527,7 +27661,7 @@ Author: Behdad Esfahbod Date: Tue Jul 10 13:16:52 2018 +0200 Always compile (but not use) alignof() and round() fallback codes - + Catches compile-errors in them better. src/hb-private.hh | 23 ++++++++++++----------- @@ -27566,17 +27700,15 @@ Author: Cosimo Lupo Date: Mon Jul 9 20:24:22 2018 +0200 Merge pull request #1091 from anthrotype/fix-gen-def-py - - gen-def.py: pass headers as arguments so that msys2 can convert - posix paths + + gen-def.py: pass headers as arguments so that msys2 can convert posix paths commit 53f73409a91241765ae6a0cadf7600676988b6af Author: Cosimo Lupo Date: Mon Jul 9 18:54:23 2018 +0100 - CMakeLists.txt: don't pass header args as single space-separated - string - + CMakeLists.txt: don't pass header args as single space-separated string + let python's parse command-line args as usual CMakeLists.txt | 3 +-- @@ -27586,8 +27718,7 @@ commit 83d2233a5c47cf1feadcdece5bd4a6b498c6ee7a Author: Cosimo Lupo Date: Mon Jul 9 18:48:20 2018 +0100 - CMakeLists.txt: pass headers as arguments to gen-def.py; call using - PYTHON_EXECUTABLE + CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -27605,28 +27736,21 @@ commit e3a931ef0b86419b5e4ba17de51535393471ed9d Author: Cosimo Lupo Date: Mon Jul 9 18:11:29 2018 +0100 - gen-def.py: pass headers as arguments so that msys2 can convert - posix paths - - When one is not using the msys2 python, the header files that are - passed in as environment + gen-def.py: pass headers as arguments so that msys2 can convert posix paths + + When one is not using the msys2 python, the header files that are passed in as environment variable cannot be found. - + https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803 - - This is because msys2 shell and make use POSIX paths - (e.g. /c/Users/clupo/...) - whereas non-msys2 python.exe uses native Windows paths - (e.g. C:\Users\clupo\...). - - Msys2 will automatically convert command line arguments (but not - environment variables) from - POSIX to Windows paths when calling a native win32 executable, - so we pass the header paths + + This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...) + whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...). + + Msys2 will automatically convert command line arguments (but not environment variables) from + POSIX to Windows paths when calling a native win32 executable, so we pass the header paths as arguments instead of environment variables. - - This way the gen-def.py script can support both mingw python running - in an MSYS2 shell, and + + This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and native win32 python. src/gen-def.py | 12 +++++++++--- @@ -27637,7 +27761,7 @@ Author: David Corbett Date: Fri Jul 6 15:47:03 2018 -0400 Do not enforce a native direction of LTR for Runic - + Fixes #481 src/hb-common.cc | 1 + @@ -27648,7 +27772,7 @@ Author: David Corbett Date: Sat Jul 7 11:08:17 2018 -0400 Regenerate the USE table for Grantha and Bhaiksuki (#1090) - + Completes #1037 and fixes #1035. src/hb-ot-shape-complex-use-table.cc | 4 ++-- @@ -27659,11 +27783,11 @@ Author: Behdad Esfahbod Date: Thu Jul 5 14:04:13 2018 +0430 Disable vectorization - + Disable vectorization for now. To correctly use them, we should use posix_memalign() to allocate them. Otherwise, can cause misaligned access. - + https://bugs.chromium.org/p/chromium/issues/detail?id=860184 src/hb-private.hh | 12 ++++++++++++ @@ -27674,10 +27798,8 @@ Author: Behdad Esfahbod Date: Thu Jul 5 14:03:48 2018 +0430 Fix warning - - ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: - missed loop optimization, the loop counter may overflow - [-Wunsafe-loop-optimizations] + + ../../src/hb-ot-layout-gsubgpos-private.hh:391:18: warning: missed loop optimization, the loop counter may overflow [-Wunsafe-loop-optimizations] src/hb-ot-layout-gsubgpos-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -27705,31 +27827,24 @@ Author: Behdad Esfahbod Date: Tue Jul 3 14:29:25 2018 +0430 [indic] Adjust left-matra repositioning and Halant,ZWJ sequence - + From the new code (first paragraph is from the OT Devanagari spec.): - + /* o Reorder matras: * - * If a pre-base matra character had been reordered before - applying basic - * features, the glyph can be moved closer to the main consonant - based on - * whether half-forms had been formed. Actual position for - the matra is - * defined as “after last standalone halant glyph, after - initial matra - * position and before the main consonant”. If ZWJ or ZWNJ - follow this + * If a pre-base matra character had been reordered before applying basic + * features, the glyph can be moved closer to the main consonant based on + * whether half-forms had been formed. Actual position for the matra is + * defined as “after last standalone halant glyph, after initial matra + * position and before the main consonant”. If ZWJ or ZWNJ follow this * halant, position is moved after it. * * IMPLEMENTATION NOTES: * - * It looks like the last sentence is wrong. Testing, with Windows - 7 Uniscribe + * It looks like the last sentence is wrong. Testing, with Windows 7 Uniscribe * and Devanagari shows that the behavior is best described as: * - * "If ZWJ follows this halant, matra is NOT repositioned after - this halant. + * "If ZWJ follows this halant, matra is NOT repositioned after this halant. * If ZWNJ follows this halant, position is moved after it." * * Test case, with Adobe Devanagari or Nirmala UI: @@ -27739,13 +27854,12 @@ Date: Tue Jul 3 14:29:25 2018 +0430 * * U+091F,U+094D,U+200D,U+092F,U+093F * (Matra does NOT move, stays to the left.) - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1070 - + Test case added with Adobe Devanagari. - src/hb-ot-shape-complex-indic.cc | 37 - +++++++++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 37 +++++++++++++++++++++ .../8116e5d8fedfbec74e45dc350d2416d810bed8c4.ttf | Bin 0 -> 4364 bytes .../data/in-house/tests/indic-joiners.tests | 4 +++ 3 files changed, 41 insertions(+) @@ -27775,11 +27889,11 @@ Author: Behdad Esfahbod Date: Tue Jul 3 12:38:21 2018 +0430 Disable .dfont code for now - + The get_table imple was wrong, as table offsets in a dfont are relative to the resource. We were treating them as relative to the big blob itself. To be fixed. - + Part of https://github.com/harfbuzz/harfbuzz/pull/1085 src/hb-open-file-private.hh | 6 +++--- @@ -27790,7 +27904,7 @@ Author: Ebrahim Byagowi Date: Sun Jul 1 15:32:43 2018 +0430 Fix trak table apply logic - + In collaboration with Behdad src/hb-aat-layout-trak-table.hh | 4 ++-- @@ -27802,8 +27916,7 @@ Date: Sun Jul 1 14:32:00 2018 +0430 Support dfont font files (#949) - src/hb-open-file-private.hh | 196 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-open-file-private.hh | 196 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-open-type-private.hh | 1 + src/main.cc | 3 + 3 files changed, 200 insertions(+) @@ -27812,8 +27925,7 @@ commit 5d8cafcf6a47ce73afff06499f6be23c72ab6797 Author: Ebrahim Byagowi Date: Sun Jul 1 01:54:14 2018 +0430 - Improve nommap naming and use C style comments on create_from_file - (#1084) + Improve nommap naming and use C style comments on create_from_file (#1084) .circleci/config.yml | 2 +- src/hb-blob.cc | 16 ++++++++-------- @@ -27824,23 +27936,19 @@ Author: Behdad Esfahbod Date: Sat Jun 30 15:59:25 2018 +0430 Adjust MarkBasePos heuristic in presence of MultipleSubst - + From the issue: - "In this font, the virama,ya first forms a ligature, then decomposes - back to + "In this font, the virama,ya first forms a ligature, then decomposes back to virama,ya. This causes those two to be marked parts of a MultipleSubst - sequence. When attaching the matra, we look for the first of the - MultipleSubst - sequence because that's where we attach to (because of eg #740). In - this case, - the first glyph in the MultipleSubst sequence is a mark, so we skip - it and + sequence. When attaching the matra, we look for the first of the MultipleSubst + sequence because that's where we attach to (because of eg #740). In this case, + the first glyph in the MultipleSubst sequence is a mark, so we skip it and attach to the base char before it." - + Font in question is Nirmala UI from Windows 10. Test sequence: - + U+0926,U+094D,U+092F,U+0941 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1020 src/hb-ot-layout-gpos-table.hh | 5 ++++- @@ -27851,7 +27959,7 @@ Author: Behdad Esfahbod Date: Sat Jun 30 12:28:03 2018 +0430 [indic] Tweak for old-spec Bengali and halant-ya-halant - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1073 src/hb-ot-shape-complex-indic.cc | 13 ++++++++++--- @@ -27861,8 +27969,7 @@ commit 9541c9dae10156fb61e4786545d1976cdcfb6bda Author: punchcutter Date: Sun Jun 24 22:54:57 2018 -0700 - Rebase and update USE overrides for Bhaiksuki Gap Fillers and - Grantha Anusvara + Rebase and update USE overrides for Bhaiksuki Gap Fillers and Grantha Anusvara src/gen-use-table.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) @@ -27872,10 +27979,10 @@ Author: Behdad Esfahbod Date: Sat Jun 30 09:16:54 2018 +0430 [khmer] Fix infinite-loop in cluster merging - + Indic shaper already had this check. We removed it when forking Khmer shaper by mistake. - + Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1464623 src/hb-ot-shape-complex-khmer.cc | 31 +++++++++++++++++-------------- @@ -27886,7 +27993,7 @@ Author: Ebrahim Byagowi Date: Thu Jun 28 14:32:36 2018 +0430 armcc compatibility, don't use EINTR if doesn't exist - + Fixes #1081 src/hb-blob.cc | 2 ++ @@ -27897,7 +28004,7 @@ Author: Ebrahim Byagowi Date: Thu Jun 28 13:22:21 2018 +0430 Minor on hb_blob_create_from_file, reuse ferror result - + Oops src/hb-blob.cc | 2 +- @@ -27926,7 +28033,7 @@ Author: Ebrahim Byagowi Date: Wed Jun 27 14:13:26 2018 +0430 Minor touches on hb_blob_create_from_file (#1079) - + * Handle EINTR on fallback reader * Increase fallback reader limitation size limitation to 2 << 28 * Ensure _O_BINARY does exist if MMAP is used on Windows @@ -27940,7 +28047,7 @@ Author: Behdad Esfahbod Date: Tue Jun 26 18:00:58 2018 -0400 Make round() fallback portable to systems that do have round() - + Makes compiling without HAVE_ROUND on systems that do have it work. src/hb-private.hh | 3 ++- @@ -27951,9 +28058,8 @@ Author: Ebrahim Byagowi Date: Tue Jun 26 10:46:10 2018 +0430 Minor on hb_blob_create_from_file - - Add one more "unlikely" annotation and use explicit nullptr check - for more consistency. + + Add one more "unlikely" annotation and use explicit nullptr check for more consistency. src/hb-blob.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -27964,8 +28070,7 @@ Date: Fri Jun 22 15:29:34 2018 -0700 [subset] Add fuzzer test case that caused a timeout to the corpus. - ...testcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 -> - 72435 bytes + ...testcase-minimized-hb-subset-fuzzer-5750092395970560 | Bin 0 -> 72435 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 35ce8f31d37cf7c2a1f8265d36ba4c2c9a3efb2c @@ -27973,15 +28078,13 @@ Author: Ebrahim Byagowi Date: Mon Jun 25 22:23:43 2018 +0430 Unify our pipe reader with the fallback reader (#1068) - - And assign one bot to use the path always using NOMMAPFILEREADER - token. - + + And assign one bot to use the path always using NOMMAPFILEREADER token. + It's limited to 200mb so no more fun with using /dev/zero on hb-view! .circleci/config.yml | 6 +- - src/hb-blob.cc | 152 - ++++++++++++++++++++++----------------------------- + src/hb-blob.cc | 152 ++++++++++++++++++++++----------------------------- 2 files changed, 68 insertions(+), 90 deletions(-) commit f57804a8a596e88843ddc8b88afac7526349b89b @@ -27990,8 +28093,7 @@ Date: Mon Jun 25 18:45:49 2018 +0430 Resolve ttx absolute path before use (#1075) - test/subset/run-tests.py | 101 - ++++++++++++++++++++++++++--------------------- + test/subset/run-tests.py | 101 ++++++++++++++++++++++++++--------------------- 1 file changed, 57 insertions(+), 44 deletions(-) commit 159ddb872986f121818e816d2ea75d271075ba1f @@ -28008,10 +28110,10 @@ Author: Behdad Esfahbod Date: Sat Jun 23 10:32:28 2018 -0400 In Coverage iterator, bail out if table smells - + In particular, if CoverageFormat2 has unsorted ranges, bail out. Otherwise, 64k ranges of each 64k glyphs can DoS closure() method. - + We can do the same for CoverageFormat1, but that one does not expose the quadratic behavior, so, fine. @@ -28023,17 +28125,14 @@ Author: Ebrahim Byagowi Date: Mon Jun 18 20:35:40 2018 +0430 Support pipe and friends on hb_blob_create_from_file (#1061) - - With this hb-view/hb-shape support pipes and possibly socket and - named pipe + + With this hb-view/hb-shape support pipes and possibly socket and named pipe also, anything fails just on mmap. - + We can later do the same for Windows also. - - This however reveals two issues, the fact most of our bots don't - have HAVE_MMAP and using - this instead the other fread/fopen reader can make failure on CI. I - should look at them separately + + This however reveals two issues, the fact most of our bots don't have HAVE_MMAP and using + this instead the other fread/fopen reader can make failure on CI. I should look at them separately this change however is very low risk I believe. src/hb-blob.cc | 44 +++++++++++++++++++++++++++++++++++++++++++- @@ -28044,12 +28143,9 @@ Author: Ebrahim Byagowi Date: Mon Jun 18 19:59:33 2018 +0430 Revert file blob sanitization and index checking (#1062) - - As - https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812 - we - like to still work with blobs that harfbuzz itself can't handle - directly that are failing sanitization + + As https://github.com/harfbuzz/harfbuzz/pull/1059#issuecomment-397912812 we + like to still work with blobs that harfbuzz itself can't handle directly that are failing sanitization currently apparently. util/options.cc | 12 ++---------- @@ -28060,9 +28156,8 @@ commit c53697d3f2a3fae8b68ec4c5146c7000a07e0963 Author: Ebrahim Byagowi Date: Sun Jun 17 17:04:55 2018 +0430 - Verbose fail when something is wrong with hb-shape/hb-view input - font file (#1059) - + Verbose fail when something is wrong with hb-shape/hb-view input font file (#1059) + This checks if the blob isn't empty and uses `hb_face_count` to see if the font file passes the simple font file sanitization so can detect if the input is actually a font and checks also @@ -28076,20 +28171,20 @@ Author: Ebrahim Byagowi Date: Sun Jun 17 16:49:34 2018 +0430 Fix reading fonts from stdin (#1060) - + We were passing the font path directly to freetype so rendering was broken when we are getting the font from stdin. - + This fixes it by using FT_New_Memory_Face instead. - + This fixes: * build/util/hb-view /dev/stdin text < font.ttf * build/util/hb-view - text < font.ttf * cat font.ttf | build/util/hb-view - text - + but doesn't work on * cat font.ttf | build/util/hb-view /dev/stdin text - + which I will try to fix separately. util/helper-cairo.cc | 14 ++++++++++---- @@ -28123,11 +28218,10 @@ Author: Behdad Esfahbod Date: Tue Jun 12 19:20:20 2018 -0400 Move hb-version.h generation to Makefile - + Fixes https://github.com/harfbuzz/harfbuzz/issues/864 - - Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h - contents. + + Unfortunately 1.7.7 and 1.8.0 went out with the wrong hb-version.h contents. configure.ac | 1 - src/Makefile.am | 21 ++++++++++++++++----- @@ -28139,7 +28233,7 @@ Author: Behdad Esfahbod Date: Tue Jun 12 18:24:54 2018 -0400 [subset] Remove HB_SUBSET_BUILTIN - + Just include hb-static.cc in libharfbuzz-subset.so source list as well. Those building it built-in will include hb-static.cc once already. No need for any gymnastics. @@ -28208,7 +28302,7 @@ Author: Jonathan Kew Date: Mon Jun 11 20:55:14 2018 -0700 [hb-set] Don't shrink vectors until after processing their contents. - + Fixes #1054. src/hb-set-private.hh | 10 +++++++--- @@ -28219,9 +28313,8 @@ Author: Ebrahim Byagowi Date: Mon Jun 11 03:47:43 2018 +0430 Fetch the updated dwrite_1.h header from a better place - - Following to - https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc + + Following to https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1693/job/mfkjdhcdykjuqdfc appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -28231,7 +28324,7 @@ Author: Behdad Esfahbod Date: Sun Jun 10 17:22:38 2018 -0400 More fixes for SunStudio 12.6 build - + Followup to https://github.com/harfbuzz/harfbuzz/pull/1053 src/hb-ft.cc | 8 ++++---- @@ -28275,8 +28368,7 @@ Date: Thu Jun 7 15:32:52 2018 -0700 test/api/fonts/Roboto-Regular.gsub.fi.ttf | Bin 0 -> 2652 bytes test/api/fonts/Roboto-Regular.gsub.fil.ttf | Bin 0 -> 3228 bytes test/api/fonts/Roboto-Regular.nogsub.fi.ttf | Bin 0 -> 1856 bytes - test/api/test-subset-glyf.c | 52 - ++++++++++++++++++++++++++++ + test/api/test-subset-glyf.c | 52 ++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+) commit 37eab27be3b88079614f66e484c700bb2d40af10 @@ -28316,8 +28408,7 @@ commit 57badadb769d0bcdbee00afce3af4972bc5c6bf1 Author: Garret Rieger Date: Wed Jun 6 16:02:51 2018 -0700 - [subset] add a new closure call to hb-ot-layout that can compute - the closure over multiple lookups. + [subset] add a new closure call to hb-ot-layout that can compute the closure over multiple lookups. src/hb-ot-layout.cc | 26 ++++++++++++++++++++++++++ src/hb-ot-layout.h | 6 ++++++ @@ -28329,7 +28420,7 @@ Author: Behdad Esfahbod Date: Wed Jun 6 16:46:50 2018 -0700 [set] Add is_subset - + New API: +hb_set_is_subset() @@ -28365,7 +28456,7 @@ Author: Behdad Esfahbod Date: Wed Jun 6 15:23:35 2018 -0700 Compiler gymnastics - + Part of https://github.com/harfbuzz/harfbuzz/issues/630 src/hb-private.hh | 3 +++ @@ -28376,18 +28467,15 @@ Author: Behdad Esfahbod Date: Wed Jun 6 14:55:30 2018 -0700 Move prime_for back into map - - This was causing problem on systems without visibility when map - was used + + This was causing problem on systems without visibility when map was used from both libharfbuzz and libharfbuzz-subset. Sigh. - + https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/1.0.1669/job/dey47nmff0770vp3 - src/hb-map-private.hh | 53 - ++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-map-private.hh | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++- src/hb-private.hh | 3 --- - src/hb-static.cc | 51 - ------------------------------------------------- + src/hb-static.cc | 51 ------------------------------------------------- 3 files changed, 52 insertions(+), 55 deletions(-) commit a2a1484ef93d5b5c3748b15219eca669d866b0a9 @@ -28395,9 +28483,8 @@ Author: David Corbett Date: Wed Jun 6 12:57:28 2018 -0400 Convert Consonant_Initial_Postfixed to CONS_FINAL - - Consonant_Initial_Postfixed was split off of - Consonant_Succeeding_Repha, + + Consonant_Initial_Postfixed was split off of Consonant_Succeeding_Repha, so it should correspond to the same USE class, CONS_FINAL. src/gen-use-table.py | 5 +++-- @@ -28419,12 +28506,11 @@ Author: Behdad Esfahbod Date: Tue Jun 5 17:59:31 2018 -0700 [ucdn] Update to Unicode 11 - + https://github.com/grigorig/ucdn/issues/19 src/hb-ucdn.cc | 7 + - src/hb-ucdn/ucdn_db.h | 2754 - ++++++++++++++++++++++++++----------------------- + src/hb-ucdn/ucdn_db.h | 2754 ++++++++++++++++++++++++++----------------------- 2 files changed, 1479 insertions(+), 1282 deletions(-) commit 060e6b4a13a4224de885214d374b079610224123 @@ -28432,7 +28518,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 17:31:46 2018 -0700 Update to Unicode 11.0.0 - + UCDN is not updated yet. src/gen-use-table.py | 13 +++-- @@ -28442,8 +28528,7 @@ Date: Tue Jun 5 17:31:46 2018 -0700 src/hb-ot-shape-complex-indic-table.cc | 77 ++++++++++++++------------- src/hb-ot-shape-complex-private.hh | 9 ++++ src/hb-ot-shape-complex-use-machine.rl | 2 +- - src/hb-ot-shape-complex-use-table.cc | 94 - +++++++++++++++++++++------------ + src/hb-ot-shape-complex-use-table.cc | 94 +++++++++++++++++++++------------ 8 files changed, 170 insertions(+), 84 deletions(-) commit 105a3b5e2d2ff228cdc1fbe8618f6c8fdfdabe9e @@ -28484,7 +28569,7 @@ Author: Behdad Esfahbod Date: Mon Jun 4 16:47:45 2018 -0700 [khmer] Fix Coeng vs Halant confusion - + Test suite results are unchanged (34). src/hb-ot-shape-complex-khmer.cc | 6 +++--- @@ -28495,7 +28580,7 @@ Author: Ebrahim Byagowi Date: Tue Jun 5 22:50:53 2018 +0430 Fix hb_face_count build issue - + I should've rebased #1002 before the merge, my bad src/hb-face.cc | 2 +- @@ -28506,16 +28591,15 @@ Author: Ebrahim Byagowi Date: Tue Jun 5 18:56:26 2018 +0430 Add hb_face_count, a new API (#1002) - + Simply, it returns the number of faces on a font blob. - + To be used on hb-sanitizer tool but other clients also can benefit from it. TODO | 2 - docs/harfbuzz-sections.txt | 1 + - src/hb-face.cc | 95 - ++++++++++++++++++++++++++++------------------ + src/hb-face.cc | 95 ++++++++++++++++++++++++++++------------------ src/hb-face.h | 4 ++ 4 files changed, 64 insertions(+), 38 deletions(-) @@ -28524,17 +28608,16 @@ Author: Behdad Esfahbod Date: Mon Jun 4 15:40:43 2018 -0700 [sinhala] Move reph to after post-consonants - + Apparently this changed between Win 7 and Win 10. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/967 - + To be continued in https://github.com/harfbuzz/harfbuzz/issues/1044 src/hb-ot-shape-complex-indic.cc | 2 +- test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/5af5361ed4d1e8305780b100e1730cb09132f8d1.ttf | Bin 0 -> - 3152 bytes + .../fonts/5af5361ed4d1e8305780b100e1730cb09132f8d1.ttf | Bin 0 -> 3152 bytes test/shaping/data/in-house/tests/sinhala.tests | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) @@ -28543,7 +28626,7 @@ Author: Behdad Esfahbod Date: Mon Jun 4 15:38:05 2018 -0700 [test] Fix record-test to use gids not glyph-names - + as those might not match what FontTools think of the glyphs if font does NOT have glyph names. @@ -28555,11 +28638,10 @@ Author: Behdad Esfahbod Date: Sat Jun 2 20:30:09 2018 -0700 Remove DISALLOW_* from vector, set, and map - - Some of the build bots, still fail on this. I suppose mine pass - because + + Some of the build bots, still fail on this. I suppose mine pass because I enable C++11... - + Anyway, remove these again. src/hb-map-private.hh | 3 --- @@ -28573,7 +28655,7 @@ Author: Behdad Esfahbod Date: Sat Jun 2 15:30:59 2018 -0700 Fix fallout from 975bdd5ef562e37655067b703b2b9ca7481f4985 - + Ouch! src/hb-ot-map-private.hh | 40 ++++++++++++++++++++++------------------ @@ -28624,7 +28706,7 @@ Author: Behdad Esfahbod Date: Fri Jun 1 17:32:07 2018 -0700 Another attempt at making every compiler happy... - + Sigh. src/hb-private.hh | 6 +++--- @@ -28636,11 +28718,9 @@ Date: Fri Jun 1 17:28:47 2018 -0700 [map] Move prime_for to hb-static - src/hb-map-private.hh | 53 - +-------------------------------------------------- + src/hb-map-private.hh | 53 +-------------------------------------------------- src/hb-private.hh | 2 ++ - src/hb-static.cc | 51 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-static.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 52 deletions(-) commit 33d6f46bbbb4fdee110f1cb024a37ed2e46e5e22 @@ -28666,11 +28746,9 @@ commit a070dfd333f411bf720120eb332f7da93077054f Author: Garret Rieger Date: Thu May 31 16:47:39 2018 -0700 - [subset] Have the subset fuzzer pull the text string to subset to - from the end of the fuzzer provided data. + [subset] Have the subset fuzzer pull the text string to subset to from the end of the fuzzer provided data. - test/fuzzing/hb-subset-fuzzer.cc | 54 - +++++++++++++++++++++++++--------------- + test/fuzzing/hb-subset-fuzzer.cc | 54 +++++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 20 deletions(-) commit bb6f4adac70a161505953414aa85ba78cd993c65 @@ -28687,9 +28765,9 @@ Author: Behdad Esfahbod Date: Fri Jun 1 16:07:55 2018 -0700 Revert "Remove HB_DISALLOW_COPY_AND_ASSIGN" - + This reverts commit ff92de766bf775bfdd3a01bda94de699180ff86a. - + Revert that and remove ASSERT_POD. Let's see which bots are unhappy with this configuration... @@ -28724,11 +28802,10 @@ Author: Behdad Esfahbod Date: Thu May 31 20:03:00 2018 -0700 Rename in_error to !successful - + Towards possibly using Null pool for some nil objects. - src/hb-buffer-deserialize-json.hh | 758 - +++++++++++++++++------------------ + src/hb-buffer-deserialize-json.hh | 758 +++++++++++++++++------------------ src/hb-buffer-deserialize-json.rl | 2 +- src/hb-buffer-deserialize-text.hh | 510 +++++++++++------------ src/hb-buffer-deserialize-text.rl | 2 +- @@ -28755,7 +28832,7 @@ Author: Behdad Esfahbod Date: Thu May 31 19:52:16 2018 -0700 Fix a whitespace inconsistency - + Null() and Crap() are only places that there's no space before '('... src/dump-fon.cc | 12 ++++++------ @@ -28778,7 +28855,7 @@ Author: Behdad Esfahbod Date: Thu May 31 19:28:04 2018 -0700 Use 0 as inert object reference value instead of -1 - + Towards using Null object for nil objects. src/hb-object-private.hh | 2 +- @@ -28789,7 +28866,7 @@ Author: Behdad Esfahbod Date: Thu May 31 17:58:40 2018 -0700 Add const OffsetTo<> dereference - + Unused, but now that we have CrapPool, implement it. src/hb-open-type-private.hh | 6 ++++++ @@ -28800,13 +28877,11 @@ Author: Ebrahim Byagowi Date: Thu May 31 12:27:31 2018 +0430 Fix symbol export issue of prime_mod on Alpine bot - - Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like - defining static const + + Apparently our gcc-6.4.0 on Alpine Linux distribution doesn't like defining static const inside a method, lets put that on outside the classes. - src/hb-map-private.hh | 89 - ++++++++++++++++++++++++++------------------------- + src/hb-map-private.hh | 89 ++++++++++++++++++++++++++------------------------- 1 file changed, 45 insertions(+), 44 deletions(-) commit 54800f8322e8ab106d801fc332b7e813c58138ac @@ -28814,7 +28889,7 @@ Author: Behdad Esfahbod Date: Wed May 30 16:26:50 2018 -0700 [map] Mark prime_for HB_INTERNAL - + Trying to see if it fixes gcc-4.2 bots. src/hb-map-private.hh | 2 +- @@ -28843,8 +28918,7 @@ Date: Wed May 30 12:23:51 2018 -0700 src/hb-ot-os2-table.hh | 35 +++-------- src/hb-ot-post-table.hh | 2 +- src/hb-subset-glyf.cc | 9 ++- - src/hb-subset-plan.cc | 159 - ++++++++++++++++-------------------------------- + src/hb-subset-plan.cc | 159 ++++++++++++++++-------------------------------- src/hb-subset-plan.hh | 68 +++++++++++++-------- src/hb-subset.cc | 2 +- 11 files changed, 139 insertions(+), 188 deletions(-) @@ -28854,7 +28928,7 @@ Author: Behdad Esfahbod Date: Wed May 30 14:02:49 2018 -0700 [map] Fix size calculation - + Don't know why I thought I should subtract one there... src/hb-map-private.hh | 2 +- @@ -28865,15 +28939,11 @@ Author: Behdad Esfahbod Date: Tue May 29 18:48:45 2018 -0700 Remove HB_DISALLOW_COPY_AND_ASSIGN - + llvm-gcc-4.2 bot had this problem: - hb-private.hh:812: error: initializer specified for non-virtual method - 'void hb_vector_t::operator=(const hb_vector_t&) [with Type = hb_user_data_array_t::hb_user_data_item_t, - unsigned int StaticSize = 1u]' - - Removing the delete didn't work with a constructor. So, remove - constructor. + hb-private.hh:812: error: initializer specified for non-virtual method 'void hb_vector_t::operator=(const hb_vector_t&) [with Type = hb_user_data_array_t::hb_user_data_item_t, unsigned int StaticSize = 1u]' + + Removing the delete didn't work with a constructor. So, remove constructor. Just disallow assignment. Still better than nothing. src/hb-map-private.hh | 2 +- @@ -28896,13 +28966,11 @@ Author: Behdad Esfahbod Date: Tue May 29 18:21:55 2018 -0700 Disable use of thread_local - + Clang build was failing with: - - /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 - against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used - when making a shared object - + + /usr/bin/ld: .libs/libharfbuzz_la-hb-blob.o: relocation R_X86_64_PC32 against undefined hidden symbol `_ZTH12_hb_CrapPool' can not be used when making a shared object + Instead of fighting it, just disable use of it. src/hb-private.hh | 4 ++-- @@ -28924,10 +28992,8 @@ Date: Tue May 29 18:13:13 2018 -0700 [map] Move prime_mod to header to avoid linkage issues in subset.so - src/hb-map-private.hh | 53 - +++++++++++++++++++++++++++++++++++++++++++++++++-- - src/hb-map.cc | 52 - -------------------------------------------------- + src/hb-map-private.hh | 53 +++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-map.cc | 52 -------------------------------------------------- 2 files changed, 51 insertions(+), 54 deletions(-) commit 6baebc5d559e15c7903a81f21be08b45537e7903 @@ -29029,7 +29095,7 @@ Author: Behdad Esfahbod Date: Tue May 29 16:45:06 2018 -0700 Revert "[map] Return bool from set()" - + This reverts commit face7cf55d4895ffca314c8448c0a749a26cc182. src/hb-map-private.hh | 7 +++---- @@ -29040,7 +29106,7 @@ Author: Behdad Esfahbod Date: Tue May 29 16:44:55 2018 -0700 Revert "[map] Make hb_map_set() return bool" - + This reverts commit 7bf1980146cfc081b06264ac367b23ae9397adf1. src/hb-map.cc | 4 ++-- @@ -29080,13 +29146,12 @@ Author: Behdad Esfahbod Date: Tue May 29 16:28:48 2018 -0700 [map] First try at implementing an integer-to-integer hashmap - + Fully untested. src/Makefile.sources | 3 + src/hb-map-private.hh | 180 ++++++++++++++++++++++++++++++++ - src/hb-map.cc | 279 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-map.cc | 279 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-map.h | 110 ++++++++++++++++++++ src/hb.h | 1 + 5 files changed, 573 insertions(+) @@ -29096,7 +29161,7 @@ Author: Ebrahim Byagowi Date: Sat May 26 23:50:10 2018 +0430 [blob] Use MAP_NORESERVE if available (#1039) - + MAP_NORESERVE is not available on macOS for example so set the flag to zero if not defined on the headers. @@ -29145,10 +29210,9 @@ Author: Behdad Esfahbod Date: Thu May 24 14:09:04 2018 -0700 Fix Uniscribe build - + If a pointer type was passed to Null(), reinterpret_cast<> was - complaining about qualifiers being removed. Turns out I need the - const on + complaining about qualifiers being removed. Turns out I need the const on the other side of "Type" to fix that. Also remove unused const from NullPool type. @@ -29174,7 +29238,7 @@ Author: Behdad Esfahbod Date: Thu May 24 11:46:57 2018 -0700 Mark CrapPool thread_local - + Not sure if I like to keep it. For now, aim for correctness. src/dump-emoji.cc | 2 +- @@ -29190,7 +29254,7 @@ Author: Behdad Esfahbod Date: Thu May 24 11:33:15 2018 -0700 Add CrapPool - + Common Regoin for Access Protection. Like the NullPool, but writable. src/dump-emoji.cc | 1 + @@ -29208,8 +29272,7 @@ Date: Wed May 23 20:12:23 2018 -0700 Move code around - src/hb-private.hh | 91 - ++++++++++++++++++++++++++++++------------------------- + src/hb-private.hh | 91 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 49 insertions(+), 42 deletions(-) commit 65aeabd62275b37c6bb6715f3341e45625f4ba6e @@ -29217,7 +29280,7 @@ Author: Behdad Esfahbod Date: Wed May 23 16:15:28 2018 -0700 Add hb_vector_t::push(const Type &v) - + Makes for cleaner code. src/hb-coretext.cc | 3 +-- @@ -29232,10 +29295,9 @@ Author: Ebrahim Byagowi Date: Wed May 23 13:37:57 2018 +0430 [ci] Revive the SunCC bot - + * Adds libnsl to the bot as it is now needed apparently - * Disables hb-icu, apparently the newer ICU itself is not compatible - with SunCC + * Disables hb-icu, apparently the newer ICU itself is not compatible with SunCC .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -29245,7 +29307,7 @@ Author: Behdad Esfahbod Date: Tue May 22 22:00:05 2018 -0700 Actually enable vectorized operations - + Fixup for previous commit. Was accidentally turned off. src/hb-private.hh | 2 +- @@ -29256,7 +29318,7 @@ Author: Behdad Esfahbod Date: Tue May 22 21:36:07 2018 -0700 Another try at smart vectorization - + Make clang happy. Also, don't use anonymous union. src/hb-private.hh | 36 +++++++++++++++++++++++++----------- @@ -29267,7 +29329,7 @@ Author: Behdad Esfahbod Date: Tue May 22 21:06:22 2018 -0700 Try enabling vectorization smartly - + We'll see if this sticks to the bots. src/hb-private.hh | 25 +++++++++++++++++-------- @@ -29291,12 +29353,9 @@ Date: Tue May 22 18:28:13 2018 -0700 test/shaping/data/text-rendering-tests/DISABLED | 2 ++ test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++ - .../text-rendering-tests/fonts/TestMORXTwentyeight.ttf | Bin 0 -> - 2660 bytes - .../text-rendering-tests/fonts/TestMORXTwentyseven.ttf | Bin 0 -> - 2432 bytes - .../data/text-rendering-tests/fonts/TestShapeKndaV3.ttf | Bin 0 -> - 89400 bytes + .../text-rendering-tests/fonts/TestMORXTwentyeight.ttf | Bin 0 -> 2660 bytes + .../text-rendering-tests/fonts/TestMORXTwentyseven.ttf | Bin 0 -> 2432 bytes + .../data/text-rendering-tests/fonts/TestShapeKndaV3.ttf | Bin 0 -> 89400 bytes .../data/text-rendering-tests/tests/MORX-27.tests | 3 +++ .../data/text-rendering-tests/tests/MORX-28.tests | 5 +++++ 7 files changed, 12 insertions(+) @@ -29306,11 +29365,9 @@ Author: Ebrahim Byagowi Date: Fri May 11 22:44:44 2018 +0430 Minor, make CreateFile compatible with the disabled writable flag - - "writable" is not in use and probably we can go in the reverse - direction - and remove the flags that are useful for enabled writable, this - is just + + "writable" is not in use and probably we can go in the reverse direction + and remove the flags that are useful for enabled writable, this is just for the sake of completeness however. src/hb-blob.cc | 5 +++-- @@ -29321,7 +29378,7 @@ Author: Ebrahim Byagowi Date: Fri May 11 14:36:41 2018 +0430 Remove unnecessary headers and definitions of hb-blob (#1028) - + It removes io.h and other polyfills which we no longer need as 7e76d74 src/hb-blob.cc | 22 ++++------------------ @@ -29332,24 +29389,23 @@ Author: Ebrahim Byagowi Date: Fri May 11 13:40:33 2018 +0430 Make hb_blob_create_from_file more portable (#1027) - + This makes it compatible with ARMCC which I had access in a collaboration with @imgtec, thanks! - + Basically hb_blob_create_from_file features three code paths, mmap, Win32 and fallback. - + We had fallback implementation even before this but it was relied to "open" which is not available on some environments. This change improved the situtation by using only fopen and friends for fallback path. - + Interestingly we could use "open" on Windows but in fact it was emulated by MSVCRT so I've completely split that from Unix path now that we have a distinct path for fallback path also. - src/hb-blob.cc | 64 - +++++++++++++++++++++++++++++++++++++++------------------- + src/hb-blob.cc | 64 +++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 21 deletions(-) commit e99d75ea9c4fe1f64d7f8408093741a682ed5243 @@ -29366,7 +29422,7 @@ Author: Behdad Esfahbod Date: Wed May 9 15:27:17 2018 -0700 Reinstante DEFINE_NULL_DATA - + Seems like I messed up; buffer overrun got reported. src/hb-open-type-private.hh | 2 ++ @@ -29378,9 +29434,8 @@ commit 93bdf9b2dfe18af0f1aa93b890f0be260f31d90e Author: Ebrahim Byagowi Date: Wed May 9 23:24:17 2018 +0430 - Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots - (#1024) - + Use arrayZ on hb-coretext and hb-uniscribe and fix macOS/Win bots (#1024) + Following to 63f57f4 src/hb-coretext.cc | 2 +- @@ -29402,8 +29457,7 @@ Date: Tue May 8 16:56:11 2018 -0700 src/hb-ot-color-cbdt-table.hh | 10 +++--- src/hb-ot-layout-common-private.hh | 12 +++---- src/hb-ot-layout-gsub-table.hh | 16 ++++----- - src/hb-ot-layout-gsubgpos-private.hh | 64 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 64 ++++++++++++++++++------------------ src/hb-ot-post-table.hh | 4 +-- src/hb-ot-var-avar-table.hh | 26 +++++++-------- src/hb-private.hh | 54 +++++++++++++++--------------- @@ -29416,7 +29470,7 @@ Author: Behdad Esfahbod Date: Tue May 8 16:42:45 2018 -0700 Use UnsizedArrayOf<> in one place where [VAR] was used - + Trying to see how many can converted meaningfully. src/hb-ot-layout-common-private.hh | 10 +++++----- @@ -29428,7 +29482,7 @@ Author: Behdad Esfahbod Date: Tue May 8 15:21:09 2018 -0700 Merge pull request #1018 from googlefonts/cmap4 - + [subset] Add cmap format 4 subsetting. commit 2a2e28e701319b4053a5c95f06c68f859e4ce99b @@ -29466,8 +29520,7 @@ commit eba1c16a604d1be774f22541bf3e417f27a27c68 Author: Behdad Esfahbod Date: Tue May 8 02:47:42 2018 -0700 - Always lock blob in sanitize. Remove blob->lock_as() in favor of - blob->lock() + Always lock blob in sanitize. Remove blob->lock_as() in favor of blob->lock() src/dump-emoji.cc | 4 ++-- src/dump-fon.cc | 2 +- @@ -29522,8 +29575,7 @@ Date: Tue May 8 02:23:36 2018 -0700 src/dump-emoji.cc | 6 ++--- src/dump-fon.cc | 14 +++++------ src/hb-aat-layout.cc | 8 +++---- - src/hb-open-type-private.hh | 48 - +++----------------------------------- + src/hb-open-type-private.hh | 48 +++----------------------------------- src/hb-ot-cmap-table.hh | 4 ++-- src/hb-ot-color.cc | 4 ++-- src/hb-ot-layout-common-private.hh | 13 ++++++++--- @@ -29560,9 +29612,8 @@ Author: Behdad Esfahbod Date: Tue May 8 01:47:05 2018 -0700 Allocate user-data-array on the heap - - This saves each object allocation 72 bytes. Now object overhead - is just + + This saves each object allocation 72 bytes. Now object overhead is just 16 bytes (on x86) instead of 88 bytes. Neat. src/hb-object-private.hh | 36 ++++++++++++++++++++++++++++-------- @@ -29573,11 +29624,10 @@ Author: Behdad Esfahbod Date: Tue May 8 01:28:19 2018 -0700 Oops - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1023 - src/hb-blob-private.hh | 77 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-blob-private.hh | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit f673cfbd64d0c9d97123500a7b851b9cfc09deb3 @@ -29585,9 +29635,9 @@ Author: Behdad Esfahbod Date: Mon May 7 13:58:32 2018 -0700 Support scripts that are written both LTR and RTL - + Right now only Old Italic is marked as such. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/1000 src/hb-buffer.cc | 4 ++++ @@ -29595,8 +29645,7 @@ Date: Mon May 7 13:58:32 2018 -0700 src/hb-ot-shape.cc | 7 +++++-- test/api/test-common.c | 1 + test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/73e84dac2fc6a2d1bc9250d1414353661088937d.ttf | Bin 0 -> - 1136 bytes + .../fonts/73e84dac2fc6a2d1bc9250d1414353661088937d.ttf | Bin 0 -> 1136 bytes test/shaping/data/in-house/tests/none-directional.tests | 3 +++ 7 files changed, 20 insertions(+), 2 deletions(-) @@ -29615,8 +29664,7 @@ Date: Thu May 3 22:14:54 2018 -0400 Move some blob functions to methods - src/hb-blob.cc | 80 - +++++++++++++++++++++++++--------------------------------- + src/hb-blob.cc | 80 +++++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 46 deletions(-) commit 5c64d61475f15d7f8de8993a52639735b2bcf750 @@ -29624,7 +29672,7 @@ Author: Behdad Esfahbod Date: Thu May 3 21:10:57 2018 -0400 Add hb-blob-private.hh - + Towards making blob more memory-allocation-friendly src/Makefile.sources | 1 + @@ -29636,9 +29684,8 @@ Author: Behdad Esfahbod Date: Thu May 3 21:03:27 2018 -0400 [ot-layout] Remove unused members - - We should hang those off somewhere else. For now, the unused ones - can go. + + We should hang those off somewhere else. For now, the unused ones can go. src/hb-aat-layout-common-private.hh | 2 +- src/hb-aat-layout.cc | 6 ++++++ @@ -29651,9 +29698,8 @@ Author: Ebrahim Byagowi Date: Tue May 8 01:05:15 2018 +0430 Set inline hidden flag only on shared library building - - To avoid need of CMP0063 which is not available on older CMake - versions + + To avoid need of CMP0063 which is not available on older CMake versions CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) @@ -29680,8 +29726,7 @@ commit 95eb0f3bafb7ab0e2451e3e2f8afc5008e18e88e Author: Garret Rieger Date: Thu May 3 13:00:19 2018 -0700 - [subset] Switch to a non-log using implementation of caculating - searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4. + [subset] Switch to a non-log using implementation of caculating searchRangeZ, entrySelectorZ, and rangeShiftZ in cmap4. src/hb-ot-cmap-table.hh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) @@ -29690,72 +29735,43 @@ commit b0d7971be0fa3c9393b04038b8d0a76398b0d8d7 Author: Garret Rieger Date: Thu May 3 11:22:51 2018 -0700 - [subset] Updated expected files for japanese subset integration - tests to include cmap4. - - ...gular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3032 -> - 3112 bytes - ...gular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3268 -> - 3356 bytes - .../Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2584 -> - 2656 bytes - ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3564 -> - 3652 bytes - .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2348 -> - 2396 bytes - ...ar.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2304 -> - 2384 bytes - ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2540 -> - 2628 bytes - .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1856 -> - 1928 bytes - ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2836 -> - 2924 bytes - .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1620 -> - 1668 bytes - test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 1758820 -> - 1757292 bytes + [subset] Updated expected files for japanese subset integration tests to include cmap4. + + ...gular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3032 -> 3112 bytes + ...gular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3268 -> 3356 bytes + .../Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2584 -> 2656 bytes + ...gular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3564 -> 3652 bytes + .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2348 -> 2396 bytes + ...ar.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2304 -> 2384 bytes + ...ar.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2540 -> 2628 bytes + .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1856 -> 1928 bytes + ...ar.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2836 -> 2924 bytes + .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1620 -> 1668 bytes + test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 1758820 -> 1757292 bytes 11 files changed, 0 insertions(+), 0 deletions(-) commit 79479273170275447042aa50912acee74bbacdf6 Author: Garret Rieger Date: Thu May 3 11:18:02 2018 -0700 - [subset] Update expected files for subset integration tests to - include cmap4. - - .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 2120 -> - 2168 bytes - .../basics/Roboto-Regular.abc.default.61,63.ttf | Bin 1932 -> - 1988 bytes - .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 1744 -> - 1792 bytes - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> - 1740 bytes - .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 1668 -> - 1716 bytes - .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 876 -> - 924 bytes - .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 792 -> - 848 bytes - .../basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 684 -> - 732 bytes - .../basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 652 -> - 700 bytes - .../basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 656 -> - 704 bytes - .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 3700 -> - 3772 bytes - .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 3320 -> - 3368 bytes - .../Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 3668 -> - 3732 bytes - .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 2152 -> - 2224 bytes - .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 1968 -> - 2016 bytes - .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 2188 -> - 2252 bytes + [subset] Update expected files for subset integration tests to include cmap4. + + .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 2120 -> 2168 bytes + .../basics/Roboto-Regular.abc.default.61,63.ttf | Bin 1932 -> 1988 bytes + .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 1744 -> 1792 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> 1740 bytes + .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 1668 -> 1716 bytes + .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 876 -> 924 bytes + .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 792 -> 848 bytes + .../basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 684 -> 732 bytes + .../basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 652 -> 700 bytes + .../basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 656 -> 704 bytes + .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 3700 -> 3772 bytes + .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 3320 -> 3368 bytes + .../Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 3668 -> 3732 bytes + .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 2152 -> 2224 bytes + .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 1968 -> 2016 bytes + .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 2188 -> 2252 bytes 16 files changed, 0 insertions(+), 0 deletions(-) commit a8e7f9b958dcb4e00226f78d0ff83f031bc1323d @@ -29772,8 +29788,7 @@ commit c817992f495cba21bf468014f22afe349fbc799f Author: Garret Rieger Date: Thu May 3 10:53:20 2018 -0700 - [subset] Write out a format 4, plat 0 encoding record to match - fontTools. + [subset] Write out a format 4, plat 0 encoding record to match fontTools. src/hb-ot-cmap-table.hh | 24 +++++++++++++++--------- test/api/test-subset-cmap.c | 2 +- @@ -29785,8 +29800,7 @@ Date: Wed May 2 18:50:56 2018 -0700 [subset] A few bug fixes for cmap format 4 subsetting. - src/hb-ot-cmap-table.hh | 57 - ++++++++++++++++++++++++++++--------------------- + src/hb-ot-cmap-table.hh | 57 ++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 24 deletions(-) commit 81ea75f5c860ef682184bd2c9d0ff8b48251e3ce @@ -29822,27 +29836,23 @@ Date: Wed May 2 16:12:04 2018 -0700 [subset] WIP cmap format 4 subsetting. - src/hb-ot-cmap-table.hh | 104 - ++++++++++++++++++++++++++++++++++++++++-------- + src/hb-ot-cmap-table.hh | 104 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 88 insertions(+), 16 deletions(-) commit 0053d13283458996372f04bd501001d450523605 Author: Garret Rieger Date: Wed May 2 15:42:43 2018 -0700 - [subset] Refactor cmap subsetting to make it possible to add support - for more sub tables. + [subset] Refactor cmap subsetting to make it possible to add support for more sub tables. - src/hb-ot-cmap-table.hh | 161 - ++++++++++++++++++++++++++++++------------------ + src/hb-ot-cmap-table.hh | 161 ++++++++++++++++++++++++++++++------------------ 1 file changed, 102 insertions(+), 59 deletions(-) commit 03b27548123756dfd9988a8fc74bc78733fb2c44 Author: Garret Rieger Date: Wed May 2 15:42:08 2018 -0700 - [subset] Add const to the hb_subset_plan_t input to a couple functions - in hb-subset-plan. + [subset] Add const to the hb_subset_plan_t input to a couple functions in hb-subset-plan. src/hb-subset-plan.cc | 4 ++-- src/hb-subset-plan.hh | 18 +++++++++--------- @@ -29853,7 +29863,7 @@ Author: Behdad Esfahbod Date: Wed May 2 14:59:14 2018 -0400 Rename some X-terminated members to Z-terminated - + X-terminated means don't access this, it's not located correctly. Z-terminated means this is a C array with no bound checking. @@ -29869,7 +29879,7 @@ Author: Behdad Esfahbod Date: Wed May 2 12:56:21 2018 -0400 [set] Fix init/fini of set on the stack to call object init/fini - + Part of https://github.com/harfbuzz/harfbuzz/issues/1017 src/hb-set-private.hh | 14 ++++++++++++-- @@ -29881,7 +29891,7 @@ Author: Behdad Esfahbod Date: Tue May 1 19:09:00 2018 -0400 Remove hb_auto_array_t - + Part of https://github.com/harfbuzz/harfbuzz/issues/1017 src/hb-coretext.cc | 8 ++++---- @@ -29896,7 +29906,7 @@ Author: Behdad Esfahbod Date: Tue May 1 19:07:04 2018 -0400 s/hb_prealloced_array_t/hb_vector_t/g - + Part of https://github.com/harfbuzz/harfbuzz/issues/1017 src/hb-ot-cmap-table.hh | 6 +++--- @@ -29917,7 +29927,7 @@ Author: Behdad Esfahbod Date: Tue May 1 19:05:58 2018 -0400 Add hb_auto_t - + Part of https://github.com/harfbuzz/harfbuzz/issues/1017 src/hb-private.hh | 11 ++++++++--- @@ -29928,7 +29938,7 @@ Author: Behdad Esfahbod Date: Tue May 1 19:01:25 2018 -0400 s/finish/fini - + For consistency. src/hb-common.cc | 8 ++++---- @@ -29961,7 +29971,7 @@ Author: Behdad Esfahbod Date: Tue May 1 18:27:41 2018 -0400 [set] Cache population - + Part of https://github.com/harfbuzz/harfbuzz/issues/1017 src/hb-set-private.hh | 24 +++++++++++++++++++++++- @@ -29973,9 +29983,8 @@ Author: violet-sippial <38817272+violet-sippial@users.noreply.github.com> Date: Sat Apr 28 20:29:13 2018 +0200 [subset] Do not compare ttx progress output in the tests - - Suppress progress messages of ttx. This avoids comparing this output - to the reference file which lets the test fail. + + Suppress progress messages of ttx. This avoids comparing this output to the reference file which lets the test fail. test/subset/run-tests.py | 1 + 1 file changed, 1 insertion(+) @@ -29994,13 +30003,12 @@ Author: Ebrahim Byagowi Date: Fri Apr 13 12:43:29 2018 +0430 Don't decompose Bengali Rra and Rha - + Fixes #779 and follow up to b01d9b3d90e892341ee4463f2eda4600850b97d8 src/hb-ot-shape-complex-indic.cc | 3 +++ test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/932ad5132c2761297c74e9976fe25b08e5ffa10b.ttf | Bin 0 -> - 22980 bytes + .../fonts/932ad5132c2761297c74e9976fe25b08e5ffa10b.ttf | Bin 0 -> 22980 bytes test/shaping/data/in-house/tests/indic-decompose.tests | 1 + 4 files changed, 5 insertions(+) @@ -30009,7 +30017,7 @@ Author: Ebrahim Byagowi Date: Wed Apr 25 16:44:04 2018 +0430 Minor, improve file reading failing condition comment - + https://bugzilla.gnome.org/show_bug.cgi?id=659212 for more context src/hb-blob.cc | 3 ++- @@ -30019,8 +30027,7 @@ commit 2eaba80cbd3afb32363da93ebf6e60b11509d3f8 Author: Ebrahim Byagowi Date: Tue Apr 24 09:04:15 2018 +0430 - Minor, re-add unused mark to some of ragel defined state machines - (#1005) + Minor, re-add unused mark to some of ragel defined state machines (#1005) src/hb-ot-shape-complex-indic-machine.hh | 2 +- src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -30037,7 +30044,7 @@ Author: Ebrahim Byagowi Date: Tue Apr 24 08:11:13 2018 +0430 Minor, re-add unused mark for two TRACE_ macros - + To revive Travis CI bot src/hb-debug.hh | 4 ++-- @@ -30114,8 +30121,7 @@ Date: Fri Apr 20 21:12:58 2018 +0430 [aat/kerx] Minor (#1003) - src/hb-aat-layout-kerx-table.hh | 46 - +++++++++++++++++++++-------------------- + src/hb-aat-layout-kerx-table.hh | 46 +++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 22 deletions(-) commit ce17340b23d96f543cd88e400e631bdb5656331c @@ -30128,8 +30134,7 @@ Date: Fri Apr 20 10:29:06 2018 +0430 docs/harfbuzz-sections.txt | 1 + src/dump-emoji.cc | 33 +---------- src/dump-fon.cc | 11 +--- - src/hb-blob.cc | 131 - ++++++++++++++++++++++++++++++++++++++++--- + src/hb-blob.cc | 131 ++++++++++++++++++++++++++++++++++++++++--- src/hb-blob.h | 2 + src/main.cc | 26 +-------- src/test-buffer-serialize.cc | 42 +------------- @@ -30147,21 +30152,18 @@ commit 4fa1c6705a1bc5299adb5a848ceaf6ac8f33c0ba Author: Garret Rieger Date: Thu Apr 19 15:30:35 2018 -0700 - [subset] Check instruction offsets in glyph to ensure they are - in bounds. + [subset] Check instruction offsets in glyph to ensure they are in bounds. src/hb-ot-glyf-table.hh | 18 ++++++++++-- .../oom-ccc61c92d589f895174cdef6ff2e3b20e9999a1a | Bin 0 -> 63302 bytes - test/api/test-subset-glyf.c | 31 - +++++++++++++++++++++ + test/api/test-subset-glyf.c | 31 +++++++++++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) commit 3c97614598ecd0bbccb2c90a8e0e99f010952b76 Author: Garret Rieger Date: Thu Apr 19 13:39:57 2018 -0700 - [subset] In subset fuzzer run through drop hints and keep hints - pathways. + [subset] In subset fuzzer run through drop hints and keep hints pathways. test/fuzzing/hb-subset-fuzzer.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) @@ -30171,9 +30173,9 @@ Author: Khaled Hosny Date: Thu Apr 19 23:41:37 2018 +0300 [util] Check all specified shapers are known (#993) - + A bit brute force and requires all shapers to be known, not just one. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/956 util/options.cc | 22 ++++++++++++++++++++-- @@ -30185,10 +30187,8 @@ Date: Wed Apr 18 17:37:39 2018 -0700 [subset] Add integration tests for cmap breakge. - .../full-font/Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 0 -> - 3668 bytes - .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 0 -> - 2188 bytes + .../full-font/Roboto-Regular.default.D7,D8,D9,DA,DE.ttf | Bin 0 -> 3668 bytes + .../Roboto-Regular.drop-hints.D7,D8,D9,DA,DE.ttf | Bin 0 -> 2188 bytes test/subset/data/tests/full-font.tests | 1 + 3 files changed, 1 insertion(+) @@ -30199,8 +30199,7 @@ Date: Wed Apr 18 17:32:43 2018 -0700 [subset] Add a test for previous cmap breakage. test/api/fonts/Roboto-Regular.D7,D8,D9,DA,DE.ttf | Bin 0 -> 2972 bytes - test/api/test-subset-cmap.c | 23 - +++++++++++++++++++++++ + test/api/test-subset-cmap.c | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+) commit 5e318e09ba590eef7b7ec047d7857f7f1eb7d787 @@ -30208,8 +30207,7 @@ Author: Garret Rieger Date: Wed Apr 18 17:13:37 2018 -0700 [subset] Fix broken cmap creation. - It was ignoring the restriction that gids must be consecutive to be - placed into a single group. + It was ignoring the restriction that gids must be consecutive to be placed into a single group. src/hb-ot-cmap-table.hh | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) @@ -30257,13 +30255,11 @@ commit c02b40e58f35ecd10c4945d2fa2b7074137c2c04 Author: Garret Rieger Date: Tue Apr 17 08:21:22 2018 -0600 - [subset] add a fuzzer target for subset_get_all_codepoints - method. (#987) + [subset] add a fuzzer target for subset_get_all_codepoints method. (#987) test/fuzzing/CMakeLists.txt | 7 ++++++- test/fuzzing/Makefile.am | 16 ++++++++++++++++ - test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 24 - ++++++++++++++++++++++++ + test/fuzzing/hb-subset-get-codepoints-fuzzer.cc | 24 ++++++++++++++++++++++++ test/fuzzing/run-subset-fuzzer-tests.py | 19 ++++++++++++++++++- 4 files changed, 64 insertions(+), 2 deletions(-) @@ -30280,13 +30276,11 @@ commit 5dadbb0fa096574b6bccd75cced203baf615fedf Author: Garret Rieger Date: Tue Apr 17 07:00:23 2018 -0600 - [subset] Add implementation of cmap format 12 codepoint - listing. (#988) + [subset] Add implementation of cmap format 12 codepoint listing. (#988) src/hb-ot-cmap-table.hh | 21 +++++++++++- test/api/fonts/Roboto-Regular.abc.format12.ttf | Bin 0 -> 2412 bytes - test/api/test-subset-codepoints.c | 44 - +++++++++++++++++++++++++ + test/api/test-subset-codepoints.c | 44 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) commit 6771e79bcc2166b5c03ca615d271c8508d692416 @@ -30294,9 +30288,8 @@ Author: Ebrahim Byagowi Date: Tue Apr 17 09:36:52 2018 +0430 Add pre-opentype font pages detection code (#986) - - As Khaled's finding on #981 this is the way Uniscribe detects those - fonts. This is its detection part. + + As Khaled's finding on #981 this is the way Uniscribe detects those fonts. This is its detection part. src/hb-ot-os2-table.hh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) @@ -30306,11 +30299,9 @@ Author: Ebrahim Byagowi Date: Tue Apr 17 09:13:35 2018 +0430 Make some of implicit header uses explicit (#989) - - Splitted from #950 and #986 IIRC Chromium had a policy about this - encouraging it, - not sure about automated way to detect and add them but for now lets - have the needed + + Splitted from #950 and #986 IIRC Chromium had a policy about this encouraging it, + not sure about automated way to detect and add them but for now lets have the needed ones of them. src/hb-aat-layout-morx-table.hh | 1 + @@ -30326,9 +30317,8 @@ Author: Ebrahim Byagowi Date: Tue Apr 17 09:13:03 2018 +0430 Add round to F2DOT14 inner store setter (#990) - - It uses floor implicitly without it but explicit use of round will - be more correct. + + It uses floor implicitly without it but explicit use of round will be more correct. src/hb-open-type-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -30337,8 +30327,7 @@ commit 39754fb65981fa8d11615e1dced852285ad09e4e Author: Garret Rieger Date: Mon Apr 16 15:09:27 2018 -0700 - [subset] Don't assume the last segment in cmap 4 can be skipped, - actually check it. + [subset] Don't assume the last segment in cmap 4 can be skipped, actually check it. src/hb-ot-cmap-table.hh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) @@ -30347,17 +30336,14 @@ commit 21a181af2bf1582991c55de5f9281494733c5d12 Author: Garret Rieger Date: Tue Apr 10 15:40:24 2018 -0700 - [subset] sketch out support for a call that lists all codepoints - present in a font. Implement support for it in format 4 cmap sub - table. + [subset] sketch out support for a call that lists all codepoints present in a font. Implement support for it in format 4 cmap sub table. src/hb-ot-cmap-table.hh | 37 ++++++++++++++-- src/hb-subset.cc | 14 ++++++ src/hb-subset.h | 5 ++- test/api/Makefile.am | 2 + test/api/fonts/Roboto-Regular.abc.format4.ttf | Bin 0 -> 2424 bytes - test/api/test-subset-codepoints.c | 59 - ++++++++++++++++++++++++++ + test/api/test-subset-codepoints.c | 59 ++++++++++++++++++++++++++ 6 files changed, 113 insertions(+), 4 deletions(-) commit aef96e246cb695c4c83b8b6daed06a0d14fe1d32 @@ -30366,8 +30352,7 @@ Date: Mon Apr 16 18:30:25 2018 +0430 Further improvements on dump-fon (#985) - src/dump-fon.cc | 153 - +++++++++++++++++++++++++++++++++++++++++++++----------- + src/dump-fon.cc | 153 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 123 insertions(+), 30 deletions(-) commit 67dfb1937b703b3f1dc45251f4f884abf35c8576 @@ -30377,8 +30362,7 @@ Date: Mon Apr 16 14:25:45 2018 +0430 Add dump-fon, a prototype on how to work with .fon/.fnt files (#981) src/Makefile.am | 4 + - src/dump-fon.cc | 475 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/dump-fon.cc | 475 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 479 insertions(+) commit ce99dd04de830c8426af14c11dbee45f8bcc9e60 @@ -30407,7 +30391,7 @@ Author: Ebrahim Byagowi Date: Fri Apr 13 23:19:19 2018 +0430 Merge pull request #979 from ebraminio/msvc05 - + Reinstate support for Visual Studio 2005 commit 8f4c12308a8d9e61922fb352e913acae46b28a88 @@ -30426,7 +30410,7 @@ Author: Ebrahim Byagowi Date: Thu Apr 12 14:17:03 2018 +0430 Always enable atexit on Android (#971) - + Obviously one can use a newer NDK for building an updated HarfBuzz instead that now pretty old version however I am concerned if that version checking is working with clang that is used with the newer @@ -30565,8 +30549,7 @@ Date: Wed Apr 11 17:13:20 2018 +0430 src/hb-open-type-private.hh | 1 - src/hb-ot-color-cbdt-table.hh | 10 +++++----- src/hb-ot-color-cpal-table.hh | 4 ++-- - src/hb-ot-color-sbix-table.hh | 41 - ++++++++++++++++++++--------------------- + src/hb-ot-color-sbix-table.hh | 41 ++++++++++++++++++++--------------------- src/hb-ot-color-svg-table.hh | 37 +++++++++++++++++++------------------ 5 files changed, 46 insertions(+), 47 deletions(-) @@ -30586,8 +30569,7 @@ Date: Tue Apr 10 00:53:50 2018 +0430 [colr/cpal] Improvements and add a sample renderer (#927) src/Makefile.am | 13 ++- - src/dump-emoji.cc | 181 - +++++++++++++++++++++++++++++++++++++++--- + src/dump-emoji.cc | 181 +++++++++++++++++++++++++++++++++++++++--- src/hb-ot-color-colr-table.hh | 43 +++++++++- src/hb-ot-color-cpal-table.hh | 70 +++++++++------- 4 files changed, 259 insertions(+), 48 deletions(-) @@ -30597,9 +30579,8 @@ Author: Ebrahim Byagowi Date: Tue Apr 10 00:51:57 2018 +0430 [ci] Don't fail on brew warnings - - Not the best fix but it works and we don't care about brew warnings, - so + + Not the best fix but it works and we don't care about brew warnings, so .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -30620,8 +30601,7 @@ Date: Sun Apr 1 12:16:42 2018 +0430 [aat] Further improvements on feat (#948) src/Makefile.sources | 2 +- - ...t-feat-table.hh => hb-aat-layout-feat-table.hh} | 48 - +++++++++++----------- + ...t-feat-table.hh => hb-aat-layout-feat-table.hh} | 48 +++++++++++----------- src/hb-aat-layout.cc | 2 +- 3 files changed, 25 insertions(+), 27 deletions(-) @@ -30641,8 +30621,7 @@ Date: Sat Mar 31 16:51:36 2018 +0430 [aat] Implement feat table parsing (#947) src/Makefile.sources | 3 +- - src/hb-aat-feat-table.hh | 122 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-feat-table.hh | 122 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 1 + 3 files changed, 125 insertions(+), 1 deletion(-) @@ -30651,7 +30630,7 @@ Author: Behdad Esfahbod Date: Sat Mar 31 12:15:50 2018 +0200 Another try at fixing linker issue - + Fixes https://github.com/harfbuzz/harfbuzz/issues/880 configure.ac | 11 +++++++++-- @@ -30676,8 +30655,7 @@ Date: Fri Mar 30 21:57:10 2018 +0430 [aat] Implement gcid table parsing (#944) src/Makefile.sources | 1 + - src/hb-aat-gcid-table.hh | 73 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-gcid-table.hh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 1 + 3 files changed, 75 insertions(+) @@ -30688,8 +30666,7 @@ Date: Fri Mar 30 19:36:00 2018 +0430 [aat] Implement bsln table parsing (#943) src/Makefile.sources | 1 + - src/hb-aat-layout-bsln-table.hh | 156 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-bsln-table.hh | 156 ++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 3 +- 3 files changed, 159 insertions(+), 1 deletion(-) @@ -30699,8 +30676,7 @@ Date: Fri Mar 30 05:00:28 2018 +0430 Make atexit callbacks threadsafe (#930) - src/hb-common.cc | 60 - +++++++++++++++++++++++++++++------------------------ + src/hb-common.cc | 60 +++++++++++++++++++++++++++++------------------------ src/hb-ft.cc | 44 ++++++++++++++++++++++++--------------- src/hb-glib.cc | 7 ++++++- src/hb-icu.cc | 7 ++++++- @@ -30751,8 +30727,7 @@ Date: Thu Mar 29 12:48:47 2018 +0430 Make more gen-* scripts py3 compatible (#940) src/Makefile.am | 2 +- - src/gen-arabic-table.py | 163 - +++++++++++---------- + src/gen-arabic-table.py | 163 +++++++++++---------- src/gen-def.py | 2 +- src/gen-indic-table.py | 120 +++++++-------- src/gen-unicode-ranges.py | 8 +- @@ -30775,8 +30750,7 @@ Date: Thu Mar 29 04:22:53 2018 +0430 Makefile.am | 3 ++- README.python => README.python.md | 12 +++++++++--- - README.wine.md | 40 - +++++++++++++++++++++++++++++++++++++++ + README.wine.md | 40 +++++++++++++++++++++++++++++++++++++++ RELEASING.md | 25 +++++++++++++----------- 4 files changed, 65 insertions(+), 15 deletions(-) @@ -30785,7 +30759,7 @@ Author: Behdad Esfahbod Date: Wed Mar 28 15:33:51 2018 -0700 [atexit] Make hb_languate_item_t *langs freeing threadsafe - + Part of https://github.com/harfbuzz/harfbuzz/issues/923 src/hb-common.cc | 15 ++++++++++----- @@ -30796,7 +30770,7 @@ Author: Behdad Esfahbod Date: Wed Mar 28 14:06:58 2018 -0700 Fix one UBSan warning - + Fixes https://github.com/harfbuzz/harfbuzz/issues/935 src/hb-font-private.hh | 6 +++++- @@ -30807,7 +30781,7 @@ Author: Behdad Esfahbod Date: Wed Mar 28 13:38:51 2018 -0700 [uniscribe] Fixup for previous commit - + Fixes https://github.com/harfbuzz/harfbuzz/issues/934 src/hb-uniscribe.cc | 5 +++-- @@ -30818,13 +30792,12 @@ Author: Behdad Esfahbod Date: Wed Mar 28 10:44:52 2018 -0700 [uniscribe] Fix assertion fail in checksum calc - - Program: - Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe + + Program: Z:\Users\ebrahim\Desktop\harfbuzz\winbuild\util\.libs\hb-shape.exe File: ../../src/hb-open-type-private.hh, Line 769 - + Expression: 0 == (Length & 3) - + abnormal program termination src/hb-uniscribe.cc | 2 +- @@ -30836,21 +30809,18 @@ Date: Wed Mar 28 19:08:19 2018 +0430 Make gen-use-table.py py3 compatible (#932) - src/gen-use-table.py | 105 - ++++++++++++++++++++++++++------------------------- + src/gen-use-table.py | 105 ++++++++++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 52 deletions(-) commit 1c3372786c503f3f9108971dfa8956e4cb95f65d Author: Garret Rieger Date: Tue Mar 27 10:42:19 2018 -0700 - [subset] fix infinite loop bug in looping through tables for - subsetting. + [subset] fix infinite loop bug in looping through tables for subsetting. src/hb-subset.cc | 2 +- ...ase-minimized-hb-subset-fuzzer-5521982557782016 | Bin 0 -> 1228 bytes - test/api/test-subset.c | 23 - +++++++++++++++++++++ + test/api/test-subset.c | 23 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) commit 8fd55422c3fa2279991d93875d912fca4ee89cf5 @@ -30858,14 +30828,12 @@ Author: Ebrahim Byagowi Date: Tue Mar 27 16:57:09 2018 +0430 Implement an internal emojis dumper tool (#909) - - Later to be expanded to a more general tool but for now it only - supports CBDT, SVG and CBDT. + + Later to be expanded to a more general tool but for now it only supports CBDT, SVG and CBDT. CMakeLists.txt | 2 +- src/Makefile.am | 4 ++ - src/dump-emoji.cc | 141 - ++++++++++++++++++++++++++++++++++++++++++ + src/dump-emoji.cc | 141 ++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-color-cbdt-table.hh | 71 +++++++++++++++++++++ src/hb-ot-color-sbix-table.hh | 79 ++++++++++++++--------- src/hb-ot-color-svg-table.hh | 56 ++++++++++++----- @@ -30885,16 +30853,15 @@ Author: Garret Rieger Date: Mon Mar 26 20:56:56 2018 -0600 [subset] Couple of fixes for fuzzer discovered issues. (#924) - - * [subset] sanitize individual DeviceRecord's as part of hdmx - sanitization. - + + * [subset] sanitize individual DeviceRecord's as part of hdmx sanitization. + * [subset] Fix out of bounds read with non-two byte align glyphs. - + * [subset] Just use size_device_record >= DeviceRecord::min_size. - + * [subset] Add TODO. - + * [subset] Re-order checks in hdmx sanitize. src/hb-ot-hdmx-table.hh | 1 + @@ -30902,8 +30869,7 @@ Date: Mon Mar 26 20:56:56 2018 -0600 src/hb-subset.cc | 6 +++++- ...ase-minimized-hb-subset-fuzzer-5609911946838016 | Bin 0 -> 313 bytes ...ase-minimized-hb-subset-fuzzer-6651660668502016 | Bin 0 -> 15229 bytes - test/api/test-subset-hdmx.c | 23 - +++++++++++++++++++++ + test/api/test-subset-hdmx.c | 23 +++++++++++++++++++++ 6 files changed, 32 insertions(+), 4 deletions(-) commit 6f46883f5b74b206a3b77246891ab2ac57a27c4e @@ -30929,7 +30895,7 @@ Author: Behdad Esfahbod Date: Mon Mar 26 15:09:54 2018 -0700 Fix previous commit - + Automake has this stupid behavior where if your Makefile.am has syntactic error, it can get to a state that make succeeds but just ignores broken Makefile.am. Ouch. @@ -30942,12 +30908,11 @@ Author: Behdad Esfahbod Date: Mon Mar 26 14:26:45 2018 -0700 Try fixing linking again - - Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In - 1.7.6 + + Before 1.7.5, we were setting -fno-exceptions etc on CXXFLAGS. In 1.7.6 we set it as CPPFLAGS. Try fixing. Also, I'm fairly sure it's safe to set these unconditionally. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/880 (or so I hope) src/Makefile.am | 19 +++++++------------ @@ -30959,7 +30924,7 @@ Author: Behdad Esfahbod Date: Mon Mar 26 14:09:29 2018 -0700 Add HB_SUBSET_BUILTIN - + Fixes https://github.com/harfbuzz/harfbuzz/issues/865 src/hb-subset.cc | 2 +- @@ -31013,8 +30978,7 @@ Date: Mon Mar 26 12:04:30 2018 +0430 src/Makefile.sources | 2 ++ src/hb-aat-layout-fmtx-table.hh | 6 ++-- src/hb-aat-layout-kerx-table.hh | 4 +-- - src/hb-aat-layout-ltag-table.hh | 80 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-ltag-table.hh | 80 +++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout-morx-table.hh | 4 +-- src/hb-aat-layout-trak-table.hh | 4 +-- src/hb-aat-layout.cc | 3 +- @@ -31026,8 +30990,7 @@ Date: Sun Mar 25 23:56:02 2018 +0430 [aat/fmtx] Implement the table parsing (#910) - src/hb-aat-layout-fmtx-table.hh | 67 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-fmtx-table.hh | 67 +++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout-trak-table.hh | 4 +-- src/hb-aat-layout.cc | 1 + 3 files changed, 70 insertions(+), 2 deletions(-) @@ -31048,8 +31011,7 @@ Date: Sun Mar 25 18:19:23 2018 +0430 [dwrite] minor src/dev-run.sh | 5 ++- - src/hb-directwrite.cc | 118 - ++++++++++++++++++++------------------------------ + src/hb-directwrite.cc | 118 ++++++++++++++++++++------------------------------ 2 files changed, 50 insertions(+), 73 deletions(-) commit ebccd019749e24e6c045518ee1ffbfc947744204 @@ -31057,7 +31019,7 @@ Author: Behdad Esfahbod Date: Sat Mar 24 17:51:55 2018 -0700 More ULL fixes - + Fixes https://github.com/harfbuzz/harfbuzz/issues/901 src/hb-private.hh | 12 ++++++------ @@ -31068,7 +31030,7 @@ Author: Behdad Esfahbod Date: Sat Mar 24 14:12:12 2018 -0700 Define uint64_t constants with ULL suffix - + Fixes https://github.com/harfbuzz/harfbuzz/issues/901 src/hb-private.hh | 2 +- @@ -31079,12 +31041,12 @@ Author: Chun-wei Fan Date: Mon Mar 12 13:33:03 2018 +0800 hb-private.hh: Add fallback implementation for round() - + For pre-C99 compilers that do not support round(), we need to have a simplistic implementation for it, when it is not detected during build configuration, either via CMake or autotools, by using floor() and ceil(), which are provided in the pre-C99 compilers. - + Please see discussion at commit 86a0ac2 for more details for re-adding this patch. @@ -31096,7 +31058,7 @@ Author: Nikolaus Waxweiler Date: Fri Mar 23 19:38:11 2018 +0000 Policy 0063 must be enabled to have hidden inline visibility... (#900) - + ...on static builds. CMakeLists.txt | 2 ++ @@ -31120,16 +31082,14 @@ Date: Thu Mar 22 16:04:38 2018 +0430 [dwrite] Replace rest of 'malloc/free's with 'new/delete' (#897) - src/hb-directwrite.cc | 251 - +++++++++++++++++++++++++------------------------- + src/hb-directwrite.cc | 251 +++++++++++++++++++++++++------------------------- 1 file changed, 127 insertions(+), 124 deletions(-) commit 3f55e0e74680c246819233a7250df612821698d7 Author: Garret Rieger Date: Tue Mar 20 17:36:52 2018 -0700 - [subset] Check for the Null table and not nullptr to detect failure - to find a table in glyf accelerator. + [subset] Check for the Null table and not nullptr to detect failure to find a table in glyf accelerator. src/hb-ot-glyf-table.hh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) @@ -31147,12 +31107,10 @@ commit 139661404006b8be039436a81cb6b1a73ec44042 Author: Garret Rieger Date: Tue Mar 20 16:55:42 2018 -0700 - [subset] don't use pointers returned from push after array has - resized in hb-subset-glyf.cc + [subset] don't use pointers returned from push after array has resized in hb-subset-glyf.cc src/hb-subset-glyf.cc | 9 +++++++-- - .../crash-b577db318b30f2851828a4c9ef97cb30678b1b54 | Bin 0 -> - 22473 bytes + .../crash-b577db318b30f2851828a4c9ef97cb30678b1b54 | Bin 0 -> 22473 bytes 2 files changed, 7 insertions(+), 2 deletions(-) commit 3531efdb4c641ef543ea0686fef9289307d52096 @@ -31161,8 +31119,7 @@ Date: Tue Mar 20 16:31:21 2018 -0700 [subset] Fixed out of bounds read when subsetting hdmx. - src/hb-ot-hdmx-table.hh | 30 - ++++++++++++++++----- + src/hb-ot-hdmx-table.hh | 30 ++++++++++++++++----- .../crash-ccc61c92d589f895174cdef6ff2e3b20e9999a1a | Bin 0 -> 63302 bytes test/api/test-subset-hdmx.c | 23 ++++++++++++++++ 3 files changed, 47 insertions(+), 6 deletions(-) @@ -31171,13 +31128,11 @@ commit e597436b994c0a553e85e4c2dbd74aa037e69b60 Author: Garret Rieger Date: Tue Mar 20 13:00:49 2018 -0700 - [subset] Disable glyf accelerator_t methods if it didn't successfully - init. + [subset] Disable glyf accelerator_t methods if it didn't successfully init. src/hb-ot-glyf-table.hh | 7 ++++++- .../crash-4b60576767ee4d9fe1cc10959d89baf73d4e8249 | Bin 0 -> 3140 bytes - test/api/test-subset.c | 23 - +++++++++++++++++++++ + test/api/test-subset.c | 23 +++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) commit 7251181b56af564e2a9444f002f8ac03f98c7ee3 @@ -31189,8 +31144,7 @@ Date: Tue Mar 20 11:21:06 2018 -0700 src/hb-subset.cc | 1 + test/api/Makefile.am | 1 + .../oom-6ef8c96d3710262511bcc730dce9c00e722cb653 | Bin 0 -> 24233 bytes - test/api/test-subset.c | 62 - +++++++++++++++++++++ + test/api/test-subset.c | 62 +++++++++++++++++++++ 4 files changed, 64 insertions(+) commit 1a94804d35d533d39849d21a177039c4cbfade98 @@ -31210,8 +31164,7 @@ Date: Mon Mar 19 17:47:57 2018 -0700 [subset] Add a test demonstrating a seg fault while subsetting hmtx. .../crash-e4e0bb1458a91b692eba492c907ae1f94e635480 | Bin 0 -> 63302 bytes - test/api/test-subset-hmtx.c | 22 - +++++++++++++++++++++ + test/api/test-subset-hmtx.c | 22 +++++++++++++++++++++ 2 files changed, 22 insertions(+) commit b5c7d6cffc2098dafa06822b28a5fd4f6218b60c @@ -31248,12 +31201,10 @@ commit 7b4333b090a3adf04519ec853456cafff07dedf0 Author: Ebrahim Byagowi Date: Fri Mar 16 22:45:09 2018 +0330 - Do feature test before adding -Bsymbolic-functions, autotools part - (#892) + Do feature test before adding -Bsymbolic-functions, autotools part (#892) configure.ac | 2 +- - m4/ax_check_link_flag.m4 | 74 - ++++++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_check_link_flag.m4 | 74 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) commit d68f00e4d8b061f56d3bd46d5ed1bc51406a4f1a @@ -31270,7 +31221,7 @@ Author: Ebrahim Byagowi Date: Fri Mar 16 22:39:58 2018 +0330 [cmake] Don't hide symbols by default (#891) - + But keep use of cmake idiomatic way of making inlines hidden CMakeLists.txt | 17 ++--------------- @@ -31280,8 +31231,7 @@ commit 584693e0cb3585a910b18d7916d7e554ecdf619a Author: Garret Rieger Date: Thu Mar 15 18:27:01 2018 -0700 - [subset] Test not linking libharfbuzz-subset-fuzzing into - hb-subset-fuzzer. + [subset] Test not linking libharfbuzz-subset-fuzzing into hb-subset-fuzzer. test/fuzzing/Makefile.am | 2 +- test/fuzzing/hb-subset-fuzzer.cc | 2 ++ @@ -31328,8 +31278,7 @@ commit 64bab8b3d009ed4327c2db9fa3425682de225810 Author: Garret Rieger Date: Thu Mar 15 16:12:00 2018 -0700 - [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect - paths for input fonts. + [subset] Fix run-shape-fuzzer-tests.py. It was generating incorrect paths for input fonts. test/fuzzing/run-shape-fuzzer-tests.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) @@ -31350,13 +31299,10 @@ Date: Thu Mar 15 13:04:31 2018 -0700 [subset] Rename hb-fuzzer -> hb-shape-fuzzer. - test/fuzzing/CMakeLists.txt | 16 - ++++++++-------- - test/fuzzing/Makefile.am | 16 - ++++++++-------- + test/fuzzing/CMakeLists.txt | 16 ++++++++-------- + test/fuzzing/Makefile.am | 16 ++++++++-------- test/fuzzing/{hb-fuzzer.cc => hb-shape-fuzzer.cc} | 0 - .../{run-fuzzer-tests.py => run-shape-fuzzer-tests.py} | 12 - ++++++------ + .../{run-fuzzer-tests.py => run-shape-fuzzer-tests.py} | 12 ++++++------ 4 files changed, 22 insertions(+), 22 deletions(-) commit 1e9bd6d5ff0af0189b6398c5e13cff11ee70762b @@ -31372,13 +31318,11 @@ commit 474afaafd908a9c8174e05d693ac214ef2cc2597 Author: Garret Rieger Date: Wed Mar 14 19:15:33 2018 -0700 - [subset] Add a test runner for hb-subset-fuzzer and cmake build - config. + [subset] Add a test runner for hb-subset-fuzzer and cmake build config. test/fuzzing/CMakeLists.txt | 9 +++++++++ test/fuzzing/Makefile.am | 3 ++- - test/fuzzing/run-subset-fuzzer-tests.py | 31 - +++++++++++++++++++++++++++++++ + test/fuzzing/run-subset-fuzzer-tests.py | 31 +++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) commit aa9612d35f59f7f269fba4797c8da491844c56ec @@ -31408,8 +31352,7 @@ Date: Mon Mar 12 16:08:16 2018 -0700 src/Makefile.am | 24 +++++++++++++++++++++++- test/fuzzing/Makefile.am | 15 +++++++++++++++ - test/fuzzing/hb-subset-fuzzer.cc | 37 - +++++++++++++++++++++++++++++++++++++ + test/fuzzing/hb-subset-fuzzer.cc | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) commit 127096e4748d6381339342fc2750dd540e815fa5 @@ -31417,9 +31360,9 @@ Author: Behdad Esfahbod Date: Thu Mar 15 13:23:27 2018 -0700 [util] Remove line buffering - + Something weird seems to be going on. Just kill it. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/888 configure.ac | 2 +- @@ -31431,7 +31374,7 @@ Author: Behdad Esfahbod Date: Thu Mar 15 09:05:22 2018 -0700 Remove extra stdbool includes - + They are handled in our common header. test/api/test-subset-post.c | 2 -- @@ -31456,8 +31399,7 @@ Date: Wed Mar 14 16:26:33 2018 +0100 [color/COLR] Simplify - src/hb-ot-color-colr-table.hh | 48 - +++---------------------------------------- + src/hb-ot-color-colr-table.hh | 48 +++---------------------------------------- 1 file changed, 3 insertions(+), 45 deletions(-) commit 6418ae4e8a3f4681cb4e7d54c589562930bc0678 @@ -31466,10 +31408,8 @@ Date: Wed Mar 14 16:18:42 2018 +0100 [color/COLR] Clean up - src/hb-aat-layout-common-private.hh | 84 - ------------------------------------- - src/hb-open-type-private.hh | 84 - +++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-common-private.hh | 84 ------------------------------------- + src/hb-open-type-private.hh | 84 +++++++++++++++++++++++++++++++++++++ src/hb-ot-color-colr-table.hh | 30 ++++++------- 3 files changed, 99 insertions(+), 99 deletions(-) @@ -31478,9 +31418,8 @@ Author: Behdad Esfahbod Date: Wed Mar 14 16:08:12 2018 +0100 [color/COLR] Fix bad sanitize - - Bad bad bad bad code. Don't do that. If compiler's not happy, - understand why. + + Bad bad bad bad code. Don't do that. If compiler's not happy, understand why. src/hb-ot-color-colr-table.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -31500,8 +31439,7 @@ Date: Wed Mar 14 15:52:53 2018 +0100 [color/cbdt] Clean up - src/hb-ot-color-cbdt-table.hh | 112 - ++++++++++++++++++++---------------------- + src/hb-ot-color-cbdt-table.hh | 112 ++++++++++++++++++++---------------------- 1 file changed, 54 insertions(+), 58 deletions(-) commit 86a0ac284fc4c2ce96354bfdf32878b6db5c77bd @@ -31509,13 +31447,11 @@ Author: Behdad Esfahbod Date: Wed Mar 14 15:51:33 2018 +0100 Revert "hb-private.hh: Add fallback implementation for round()" - + This reverts commit b9dcbb1f8312d8606b230f75594d40b7d4087004. - - This is gross. Should be only done if a specific macro is defined. Not - the other way - around. This fails my build as autotools companions where not - added anyway. + + This is gross. Should be only done if a specific macro is defined. Not the other way + around. This fails my build as autotools companions where not added anyway. src/hb-private.hh | 13 ------------- 1 file changed, 13 deletions(-) @@ -31526,7 +31462,7 @@ Author: Ebrahim Byagowi Date: Thu Mar 15 11:40:52 2018 +0330 Merge pull request #886 from madig/only-export-visible-symbols - + CMake: hide symbols by default on non-MSVC, define export attribute commit 22de9bf56d80dbf6a13a06beafd21711bdab78af @@ -31534,7 +31470,7 @@ Author: Nikolaus Waxweiler Date: Wed Mar 14 10:29:24 2018 +0000 Enable implicit symbol hiding for all libraries, static and shared - + This covers all built libraries now and both static and shared builds. CMakeLists.txt | 35 +++++++++++++++++++++++------------ @@ -31563,7 +31499,7 @@ Author: Nikolaus Waxweiler Date: Wed Mar 14 00:50:32 2018 +0000 CMake: hide symbols by default on non-MSVC, define export attribute - + This change makes sure that non-MSVC builds using CMake properly hide non-exported functions. @@ -31576,7 +31512,7 @@ Author: Ebrahim Byagowi Date: Wed Mar 14 02:54:07 2018 +0330 Merge pull request #877 from fanc999/master.msvc - + Fix CMake builds on Windows, MSVC in particular commit 7c43adab6deb9302a24cc857c4aaa9b6b62215d2 @@ -31584,9 +31520,8 @@ Author: Chun-wei Fan Date: Mon Mar 12 16:43:53 2018 +0800 CMake: Fix utility program installation - - Put in the utility program that was missed in installation by - replacing + + Put in the utility program that was missed in installation by replacing the one that was duplicated. CMakeLists.txt | 2 +- @@ -31597,12 +31532,10 @@ Author: Chun-wei Fan Date: Mon Mar 12 16:23:57 2018 +0800 CMake: Fix introspection on Windows - + The list of source files to pass to g-ir-scanner is becoming too - long for Windows, as Windows imposes a 8192-character limit for - command - lines, so we need to first transform that list into a listings - file, and + long for Windows, as Windows imposes a 8192-character limit for command + lines, so we need to first transform that list into a listings file, and then use the --filelist option for g-ir-scanner to build the introspection files. @@ -31614,11 +31547,11 @@ Author: Chun-wei Fan Date: Mon Mar 12 13:48:55 2018 +0800 test/api: Fix building subset tests - + Include stdbool.h in hb-setset-test.h instead of in the individual sources, if it is found; otherwise use a simplistic fallback for it if it is not found. - + Also declare variables at the top of the block, to build on pre-C99 compiliers. @@ -31635,7 +31568,7 @@ Author: Chun-wei Fan Date: Mon Mar 12 13:38:01 2018 +0800 CMake: Fix running tests on Windows - + For the API tests, output the test programs at $(TOP_BUILDDIR) so that the freshly-built DLLs will be available for the test programs. For those that are run through the Python wrapper scripts, use @@ -31653,9 +31586,8 @@ Author: Chun-wei Fan Date: Mon Mar 12 13:33:03 2018 +0800 hb-private.hh: Add fallback implementation for round() - - Add a simplistic round() implementation for our purposes, used - when the + + Add a simplistic round() implementation for our purposes, used when the compiler does not support round() directly. src/hb-private.hh | 13 +++++++++++++ @@ -31666,16 +31598,13 @@ Author: Chun-wei Fan Date: Mon Mar 12 13:27:38 2018 +0800 configure.ac/CMake: Check for round() and stdbool.h - - Not all the compilers that HarfBuzz is buildable on supports round() - and - has the header stdbool.h, so we check for them and define HAVE_ROUND - and + + Not all the compilers that HarfBuzz is buildable on supports round() and + has the header stdbool.h, so we check for them and define HAVE_ROUND and HAVE_STDBOOL_H repsectively in our CFLAGS so that we include them only when they are found, or use fallback implementations when necessary. - - Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE - to be + + Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE to be set for running the tests. CMakeLists.txt | 12 ++++++++++-- @@ -31697,8 +31626,7 @@ Date: Sun Mar 11 20:38:40 2018 +0100 [sbix] Clean up - src/hb-ot-color-sbix-table.hh | 70 - +++++++++++++++++++++++-------------------- + src/hb-ot-color-sbix-table.hh | 70 +++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 33 deletions(-) commit 218fa7166e9626f2036d08882854a86d753e4192 @@ -31708,8 +31636,7 @@ Date: Sat Mar 10 11:13:52 2018 +0330 [ot-color] SVG table implementation (#874) src/Makefile.sources | 3 +- - src/hb-ot-color-svg-table.hh | 111 - +++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-color-svg-table.hh | 111 +++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 1 + 3 files changed, 114 insertions(+), 1 deletion(-) @@ -31720,8 +31647,7 @@ Date: Sat Mar 10 11:07:56 2018 +0330 [ot-color] sbix table implementation (#870) src/Makefile.sources | 1 + - src/hb-ot-color-sbix-table.hh | 128 - ++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-color-sbix-table.hh | 128 ++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 1 + 3 files changed, 130 insertions(+) @@ -31740,7 +31666,7 @@ Author: Garret Rieger Date: Fri Mar 9 12:06:52 2018 -0700 Merge pull request #872 from googlefonts/drop-tables - + [subset] Drop the same tables by default as fontTools does. commit 9206762bbd4033e97d6d35ef1cce1b7940fbc935 @@ -31748,7 +31674,7 @@ Author: Ebrahim Byagowi Date: Fri Mar 9 15:43:03 2018 +0330 Make subset test runner compatible with py3 - + Fixes #873 test/subset/run-tests.py | 4 ++-- @@ -31759,7 +31685,7 @@ Author: Ebrahim Byagowi Date: Fri Mar 9 15:25:59 2018 +0330 [ci] Enable subset tests on ArchLinux to test - + This makes ArchLinux bots fail, a starting point to #873 .circleci/config.yml | 7 ++++--- @@ -31780,7 +31706,7 @@ Author: Garret Rieger Date: Thu Mar 8 15:50:25 2018 -0700 Merge pull request #871 from googlefonts/mplus - + [subset] Add a Japanese font to the subset integration tests. commit 8548fa152241d6c5b020146f97aac15934ba0065 @@ -31789,34 +31715,23 @@ Date: Wed Mar 7 12:37:03 2018 -0800 [subset] Drop cmap 12, platform 0 tables from Mplus1p expected files. - ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3040 -> - 3032 bytes - ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3276 -> - 3268 bytes - .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2592 -> - 2584 bytes - ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> - 3564 bytes - .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2356 -> - 2348 bytes - ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2312 -> - 2304 bytes - ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2548 -> - 2540 bytes - .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1864 -> - 1856 bytes - ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2844 -> - 2836 bytes - .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1628 -> - 1620 bytes + ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 3040 -> 3032 bytes + ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 3276 -> 3268 bytes + .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 2592 -> 2584 bytes + ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> 3564 bytes + .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 2356 -> 2348 bytes + ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 2312 -> 2304 bytes + ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 2548 -> 2540 bytes + .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 1864 -> 1856 bytes + ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 2844 -> 2836 bytes + .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 1628 -> 1620 bytes 10 files changed, 0 insertions(+), 0 deletions(-) commit 9b00b9a10d5fdfd2d9deb1b0e847695797b7e09b Author: Garret Rieger Date: Tue Mar 6 17:47:40 2018 -0800 - [subset] Fix deadlock waiting for process output in subset test - runner. + [subset] Fix deadlock waiting for process output in subset test runner. test/subset/run-tests.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) @@ -31838,30 +31753,18 @@ Date: Thu Mar 1 18:20:00 2018 -0800 test/subset/data/Makefile.am | 1 + test/subset/data/Makefile.sources | 1 + - ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> - 3040 bytes - ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> - 3276 bytes - .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 0 -> - 2592 bytes - ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> - 3572 bytes - .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 0 -> - 2356 bytes - ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> - 2312 bytes - ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> - 2548 bytes - .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 0 -> - 1864 bytes - ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> - 2844 bytes - .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 0 -> - 1628 bytes - test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 0 -> - 1758820 bytes - test/subset/data/tests/japanese.tests | 16 - ++++++++++++++++ + ...-Regular.default.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> 3040 bytes + ...-Regular.default.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> 3276 bytes + .../japanese/Mplus1p-Regular.default.61,63,65,6B.ttf | Bin 0 -> 2592 bytes + ...-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 3572 bytes + .../japanese/Mplus1p-Regular.default.660E.ttf | Bin 0 -> 2356 bytes + ...gular.drop-hints.3042,3044,3046,3048,304A,304B.ttf | Bin 0 -> 2312 bytes + ...gular.drop-hints.3042,3044,3046,73E0,5EA6,8F38.ttf | Bin 0 -> 2548 bytes + .../Mplus1p-Regular.drop-hints.61,63,65,6B.ttf | Bin 0 -> 1864 bytes + ...gular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 2844 bytes + .../japanese/Mplus1p-Regular.drop-hints.660E.ttf | Bin 0 -> 1628 bytes + test/subset/data/fonts/Mplus1p-Regular.ttf | Bin 0 -> 1758820 bytes + test/subset/data/tests/japanese.tests | 16 ++++++++++++++++ 14 files changed, 18 insertions(+) commit 2ebf4c69b18452caa0c871aebec9785e80348166 @@ -31870,15 +31773,14 @@ Author: Garret Rieger Date: Thu Mar 8 14:41:59 2018 -0700 Merge pull request #868 from googlefonts/post - + [subset] Drop glyph names from post when subsetting. commit 869ccac5ab69060f2db2893014b5538539fd4f45 Author: Garret Rieger Date: Thu Mar 8 11:06:49 2018 -0800 - [subset] use create_sub_blob instead of manually copying the post - table. + [subset] use create_sub_blob instead of manually copying the post table. src/hb-ot-post-table.hh | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) @@ -31890,10 +31792,8 @@ Date: Wed Mar 7 10:33:02 2018 -0800 [subset] Unit test to check that post subsetting drops glyph names. test/api/Makefile.am | 2 + - ...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> - 3724 bytes - test/api/test-subset-post.c | 61 - +++++++++++++++++++++ + ...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 3572 -> 3724 bytes + test/api/test-subset-post.c | 61 +++++++++++++++++++++ 3 files changed, 63 insertions(+) commit dd107699938740e261948e4b525fa0ad501beb03 @@ -31912,7 +31812,7 @@ Author: Garret Rieger Date: Wed Mar 7 12:36:00 2018 -0700 Merge pull request #867 from googlefonts/vmtx - + [subset] Add vmtx subsetting. commit 362f28240683fde395ff52f4fc1216fbc7131452 @@ -31952,8 +31852,7 @@ Date: Tue Mar 6 15:40:35 2018 -0800 test/api/Makefile.am | 2 + ...lus1p-Regular.660E,6975,73E0,5EA6,8F38,6E05.ttf | Bin 0 -> 3572 bytes test/api/fonts/Mplus1p-Regular.660E.ttf | Bin 0 -> 2356 bytes - test/api/test-subset-vmtx.c | 100 - +++++++++++++++++++++ + test/api/test-subset-vmtx.c | 100 +++++++++++++++++++++ 4 files changed, 102 insertions(+) commit 0e8f9430c83c076993a0c7a320713bb484051343 @@ -32009,13 +31908,12 @@ Author: Behdad Esfahbod Date: Wed Mar 7 15:51:42 2018 +0100 Remove hb-ot-color.h - + So I can make a release. src/Makefile.sources | 1 - src/hb-ot-color-cpal-table.hh | 48 +++++++++++++++++++++++++ - src/hb-ot-color.h | 81 - ------------------------------------------- + src/hb-ot-color.h | 81 ------------------------------------------- src/hb-ot.h | 1 - 4 files changed, 48 insertions(+), 83 deletions(-) @@ -32024,12 +31922,11 @@ Author: Behdad Esfahbod Date: Wed Mar 7 15:31:15 2018 +0100 [ot] Remove hb-ot-base.h - + BASE table API will go into hb-ot-layout.h. src/Makefile.sources | 1 - - src/hb-ot-base.h | 56 - ------------------------------------------ + src/hb-ot-base.h | 56 ------------------------------------------ src/hb-ot-layout-base-table.hh | 1 - src/hb-ot-layout.h | 16 ++++++++++++ src/hb-ot.h | 1 - @@ -32040,9 +31937,9 @@ Author: Behdad Esfahbod Date: Wed Mar 7 10:49:26 2018 +0100 [set] Fix algebra - + Was totally b0rked. Ouch! - + Fixes https://github.com/harfbuzz/harfbuzz/issues/863 src/hb-set-private.hh | 20 +++++++++++++++++--- @@ -32053,9 +31950,9 @@ Author: Behdad Esfahbod Date: Wed Mar 7 09:55:22 2018 +0100 [set] Minor - + In preparation to fix https://github.com/harfbuzz/harfbuzz/issues/863 - + Binary operations are sets are completely broken. Ouch. src/hb-set-private.hh | 21 ++++++++++++++------- @@ -32103,13 +32000,12 @@ Author: Ebrahim Byagowi Date: Tue Mar 6 16:41:08 2018 +0330 [ot-color] Further improvements on COLR/CPAL implementation (#859) - + * Implemented a bsearch on get_base_glyph_record * Made get_color_record_argb actually work src/hb-ot-color-colr-table.hh | 35 ++++++++++++++----------- - src/hb-ot-color-cpal-table.hh | 59 - +++++++++++++++---------------------------- + src/hb-ot-color-cpal-table.hh | 59 +++++++++++++++---------------------------- src/hb-ot-color.h | 12 ++------- 3 files changed, 42 insertions(+), 64 deletions(-) @@ -32212,8 +32108,7 @@ Date: Sat Mar 3 22:55:09 2018 +0330 Enable coverage test on autotools (#857) configure.ac | 1 + - m4/ax_code_coverage.m4 | 264 - +++++++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_code_coverage.m4 | 264 +++++++++++++++++++++++++++++++++++++++++++++++++ src/Makefile.am | 6 +- 3 files changed, 269 insertions(+), 2 deletions(-) @@ -32236,8 +32131,7 @@ Date: Sat Mar 3 22:00:29 2018 +0330 [COLR/CPAL] Provide enough helper for rasterization (#855) - src/hb-ot-colr-table.hh | 47 - ++++++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-colr-table.hh | 47 ++++++++++++++++++++++++++++++++++++++++++++--- src/hb-ot-cpal-table.hh | 18 +++++++++++++++--- 2 files changed, 59 insertions(+), 6 deletions(-) @@ -32246,9 +32140,8 @@ Author: Ebrahim Byagowi Date: Sat Mar 3 01:05:59 2018 +0330 [COLR] Revert previous sanitization on the table - - That sanitization wasn't right, firstLayerIndex is an index from - beginning of the Layer Records + + That sanitization wasn't right, firstLayerIndex is an index from beginning of the Layer Records not the table itself. src/hb-ot-colr-table.hh | 23 ++++++----------------- @@ -32269,8 +32162,7 @@ Date: Fri Mar 2 00:07:26 2018 +0330 [aat/kerx] Make parsing of the table actually work (#850) - src/hb-aat-layout-kerx-table.hh | 298 - +++++++++++++++++----------------------- + src/hb-aat-layout-kerx-table.hh | 298 +++++++++++++++++----------------------- 1 file changed, 124 insertions(+), 174 deletions(-) commit a570edcde2f89e59b5ccd4867a8c0eed084bf35d @@ -32296,11 +32188,10 @@ Author: Behdad Esfahbod Date: Wed Feb 28 16:31:46 2018 -0800 [test] Add test suite for Brahmi Number Joiners - + https://github.com/harfbuzz/harfbuzz/pull/660 - .../fonts/1ed7e9064f008f62de6ff0207bb4dd29409597a5.ttf | Bin 0 -> - 2768 bytes + .../fonts/1ed7e9064f008f62de6ff0207bb4dd29409597a5.ttf | Bin 0 -> 2768 bytes test/shaping/data/in-house/tests/use-syllable.tests | 1 + test/shaping/record-test.sh | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) @@ -32309,8 +32200,7 @@ commit b4ba71ea7ccce70e24138373774741c7f03dd24e Author: Garret Rieger Date: Wed Feb 28 15:44:00 2018 -0800 - [subset] In subset integration test pass output through ots-sanitize - if present. + [subset] In subset integration test pass output through ots-sanitize if present. test/subset/run-tests.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) @@ -32321,7 +32211,7 @@ Author: rsheeter Date: Wed Feb 28 13:52:29 2018 -0800 Merge pull request #845 from googlefonts/drophints - + [subset] drop hints from composites commit b3f1a045a8b86747afce6bc154f2a166ea678efb @@ -32347,7 +32237,7 @@ Author: Ebrahim Byagowi Date: Wed Feb 28 15:43:23 2018 +0330 Use old project location of coverity - + https://github.com/harfbuzz/harfbuzz/commit/8089711a61687d565f207c56d3d2b658f514d7ab#commitcomment-27835452 .travis.yml | 4 ++-- @@ -32359,7 +32249,7 @@ Author: Ebrahim Byagowi Date: Wed Feb 28 13:30:17 2018 +0330 Merge pull request #847 from ebraminio/colr - + [colr] Implement commit f671f7f0a8caa7b5763e00146e1ec4b9a7258227 @@ -32371,8 +32261,7 @@ Date: Wed Feb 28 13:19:40 2018 +0330 src/Makefile.sources | 1 + src/hb-ot-color.cc | 9 +++++ src/hb-ot-color.h | 9 ----- - src/hb-ot-colr-table.hh | 98 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-colr-table.hh | 98 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-cpal-table.hh | 6 +-- src/hb-ot-layout-private.hh | 6 ++- src/hb-ot-layout.cc | 11 +++-- @@ -32384,7 +32273,7 @@ Author: Ebrahim Byagowi Date: Wed Feb 28 12:05:49 2018 +0330 Merge pull request #841 from ebraminio/color - + Support CPAL table commit 0eec33154a418fba97a08be7169b59e748b7e785 @@ -32393,8 +32282,7 @@ Date: Wed Feb 28 11:53:39 2018 +0330 [cmake] cleanup (#846) - CMakeLists.txt | 70 - ++++++++++++++++++++----------------------------- + CMakeLists.txt | 70 ++++++++++++++++++++----------------------------- test/api/CMakeLists.txt | 2 +- 2 files changed, 30 insertions(+), 42 deletions(-) @@ -32408,8 +32296,7 @@ Date: Tue Feb 27 22:56:17 2018 +0330 src/Makefile.am | 1 - src/hb-ot-color.cc | 70 +++---------- src/hb-ot-color.h | 31 +++--- - src/hb-ot-cpal-table.hh | 116 - +++++++++++++++------ + src/hb-ot-cpal-table.hh | 116 +++++++++++++++------ src/hb-ot-layout-private.hh | 3 +- src/hb-ot-layout.cc | 5 +- test/api/hb-test.h | 2 + @@ -32422,8 +32309,7 @@ commit 6836a821428b714b9f2e95d5c4ebbd73867d9a53 Author: Rod Sheeter Date: Tue Feb 27 20:51:12 2018 -0800 - [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping - hints + [subset] remove WE_HAVE_INSTRUCTIONS from composites when dropping hints src/hb-subset-glyf.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) @@ -32435,8 +32321,7 @@ Date: Tue Feb 27 20:17:04 2018 -0800 [subset] update the test file for composite, fix an offset calculation src/hb-ot-glyf-table.hh | 2 +- - test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf | Bin 0 -> - 932 bytes + test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf | Bin 0 -> 932 bytes test/api/test-subset-glyf.c | 5 ++--- 3 files changed, 3 insertions(+), 4 deletions(-) @@ -32445,8 +32330,7 @@ Merge: b3790a65 904dd7be Author: Rod Sheeter Date: Tue Feb 27 17:25:32 2018 -0800 - Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz - into drophints + Merge branch 'expand-tests' of github.com:googlefonts/harfbuzz into drophints commit 904dd7beea756fd7429fad36f5c37321aedb4e81 Author: Garret Rieger @@ -32454,10 +32338,8 @@ Date: Tue Feb 27 14:33:36 2018 -0800 [subset] Add drop hinting profile to full-font.tests - .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 0 -> - 2152 bytes - .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 0 -> - 1968 bytes + .../Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf | Bin 0 -> 2152 bytes + .../full-font/Roboto-Regular.drop-hints.61,62,63.ttf | Bin 0 -> 1968 bytes test/subset/data/tests/full-font.tests | 1 + 3 files changed, 1 insertion(+) @@ -32467,16 +32349,11 @@ Date: Tue Feb 27 14:28:50 2018 -0800 [subset] Add a drop hints profile to basics.tests - .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 0 -> - 876 bytes - .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 0 -> - 792 bytes - .../expected/basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 0 -> - 684 bytes - .../expected/basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 0 -> - 652 bytes - .../expected/basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 0 -> - 656 bytes + .../basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf | Bin 0 -> 876 bytes + .../basics/Roboto-Regular.abc.drop-hints.61,63.ttf | Bin 0 -> 792 bytes + .../expected/basics/Roboto-Regular.abc.drop-hints.61.ttf | Bin 0 -> 684 bytes + .../expected/basics/Roboto-Regular.abc.drop-hints.62.ttf | Bin 0 -> 652 bytes + .../expected/basics/Roboto-Regular.abc.drop-hints.63.ttf | Bin 0 -> 656 bytes test/subset/data/profiles/drop-hints.txt | 1 + test/subset/data/tests/basics.tests | 1 + 7 files changed, 2 insertions(+) @@ -32485,8 +32362,7 @@ commit 5241d7f4b999d5457de564bd950b60d70f9d0e19 Author: Garret Rieger Date: Tue Feb 27 13:15:40 2018 -0800 - [subset] apply subset profiles (flags) to the subset integration - tests. + [subset] apply subset profiles (flags) to the subset integration tests. test/subset/generate-expected-outputs.py | 27 ++++++++++++++------------- test/subset/run-tests.py | 3 ++- @@ -32509,12 +32385,9 @@ Date: Mon Feb 26 18:51:56 2018 -0800 [subset] Add subset integration tests using the full roboto font. test/subset/data/Makefile.sources | 1 + - .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 0 -> - 3700 bytes - .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 0 -> - 3320 bytes - test/subset/data/fonts/Roboto-Regular.ttf | Bin 0 -> - 171676 bytes + .../Roboto-Regular.default.1FC,21,41,20,62,63.ttf | Bin 0 -> 3700 bytes + .../full-font/Roboto-Regular.default.61,62,63.ttf | Bin 0 -> 3320 bytes + test/subset/data/fonts/Roboto-Regular.ttf | Bin 0 -> 171676 bytes test/subset/data/tests/full-font.tests | 10 ++++++++++ test/subset/generate-expected-outputs.py | 12 ++++++++---- 6 files changed, 19 insertions(+), 4 deletions(-) @@ -32525,14 +32398,10 @@ Date: Mon Feb 26 18:39:09 2018 -0800 [subset] Add some more variations of the basic test. - .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 0 -> - 2120 bytes - .../expected/basics/Roboto-Regular.abc.default.61,63.ttf | Bin 0 -> - 1932 bytes - .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 0 -> - 1744 bytes - .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 0 -> - 1668 bytes + .../basics/Roboto-Regular.abc.default.61,62,63.ttf | Bin 0 -> 2120 bytes + .../expected/basics/Roboto-Regular.abc.default.61,63.ttf | Bin 0 -> 1932 bytes + .../expected/basics/Roboto-Regular.abc.default.61.ttf | Bin 0 -> 1744 bytes + .../expected/basics/Roboto-Regular.abc.default.63.ttf | Bin 0 -> 1668 bytes test/subset/data/tests/basics.tests | 4 ++++ 5 files changed, 4 insertions(+) @@ -32552,7 +32421,7 @@ Author: Garret Rieger Date: Tue Feb 27 17:06:27 2018 -0700 Merge pull request #842 from googlefonts/maxp - + [subset] when dropping hints, clear hint related fields in maxp. commit 921b65cbc29f0c2c9c13e9fb272dafe4c8a14591 @@ -32577,11 +32446,9 @@ commit a76344da796670f33b2fa48a9b1676545dac93c2 Author: Garret Rieger Date: Tue Feb 27 14:11:36 2018 -0800 - [subset] Add maxpV1Tail instead of defining a struct inside maxp - for v1 data. + [subset] Add maxpV1Tail instead of defining a struct inside maxp for v1 data. - src/hb-ot-maxp-table.hh | 81 - ++++++++++++++++++++++++++++++------------------- + src/hb-ot-maxp-table.hh | 81 ++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 32 deletions(-) commit f14d1b64c2d148ffdec95c17adbee3f185d5d436 @@ -32590,8 +32457,7 @@ Date: Tue Feb 27 13:49:00 2018 -0800 [subset] when dropping hints, clear hint related fields in maxp. - src/hb-ot-maxp-table.hh | 43 - ++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-maxp-table.hh | 43 ++++++++++++++++++++++++++++++++++++++++--- test/api/test-subset-glyf.c | 30 +++++++++++++++++++++++------- 2 files changed, 63 insertions(+), 10 deletions(-) @@ -32601,8 +32467,7 @@ Date: Tue Feb 27 12:50:57 2018 -0800 [BASE] More - src/hb-ot-layout-base-table.hh | 153 - ++++------------------------------------- + src/hb-ot-layout-base-table.hh | 153 ++++------------------------------------- 1 file changed, 12 insertions(+), 141 deletions(-) commit 7a70c20fec6ece9e729dc2634e2896a8d8eb9962 @@ -32611,8 +32476,7 @@ Date: Tue Feb 27 12:45:26 2018 -0800 [BASE] Clean up first 29% - src/hb-ot-layout-base-table.hh | 262 - +++++++++++++++++++---------------------- + src/hb-ot-layout-base-table.hh | 262 +++++++++++++++++++---------------------- src/hb-ot-layout-gsub-table.hh | 2 +- 2 files changed, 125 insertions(+), 139 deletions(-) @@ -32629,7 +32493,7 @@ Author: Ebrahim Byagowi Date: Tue Feb 27 11:41:12 2018 +0330 Merge pull request #838 from harfbuzz/BASE - + BASE table commit 0ad8c663e0b4602e2a413e77a8158bf8a46755d5 @@ -32640,8 +32504,7 @@ Date: Mon Feb 26 12:45:08 2018 +0330 src/hb-ot-base.h | 4 ++-- src/hb-ot-layout-base-table.hh | 20 +++++++++--------- - src/hb-ot-layout.cc | 48 - ++++++++++++++++++++---------------------- + src/hb-ot-layout.cc | 48 ++++++++++++++++++++---------------------- 3 files changed, 35 insertions(+), 37 deletions(-) commit 4a1d51ef15a423706406f784a146078073147885 @@ -32650,15 +32513,14 @@ Author: rsheeter Date: Mon Feb 26 20:23:41 2018 -0800 Merge pull request #818 from googlefonts/drophints - + [subset] Drop hints commit 903771b6c7689b9eee9a11bac128c42f39833b2e Author: Rod Sheeter Date: Mon Feb 26 19:50:06 2018 -0800 - [subset] clearer name for trim() and better comment about composite - handling, per review feedback + [subset] clearer name for trim() and better comment about composite handling, per review feedback src/hb-ot-glyf-table.hh | 8 +++++--- src/hb-subset-glyf.cc | 17 ++++++++--------- @@ -32670,7 +32532,7 @@ Author: Garret Rieger Date: Mon Feb 26 19:24:18 2018 -0700 Merge pull request #840 from googlefonts/os2 - + [subset] During os2 subsetting update ulUnicodeRange[]c commit 44dc36dd82fc948a15e2ad0d605eb4a466b3553d @@ -32706,8 +32568,7 @@ commit 0c0fe2ff8209228f2ddfce464b7b6f1b1ee1654a Author: Garret Rieger Date: Mon Feb 26 17:47:10 2018 -0800 - [subset] Move util/generated-unicode-ranges.py to - src/gen-unicode-ranges.py + [subset] Move util/generated-unicode-ranges.py to src/gen-unicode-ranges.py util/generate-unicode-ranges.py => src/gen-unicode-ranges.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) @@ -32762,11 +32623,9 @@ commit ddc4f2b9fc5566e70558a57133289f84d467cc98 Author: Garret Rieger Date: Mon Feb 26 15:59:32 2018 -0800 - [subset] Add python util that was used to generated - hb-ot-os2-unicode-ranges.hh + [subset] Add python util that was used to generated hb-ot-os2-unicode-ranges.hh - util/generate-unicode-ranges.py | 50 - +++++++++++++++++++++++++++++++++++++++++ + util/generate-unicode-ranges.py | 50 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) commit f757757eda5f00a89a156e3427bdf8c4313611ef @@ -32797,23 +32656,19 @@ Date: Mon Feb 26 15:50:13 2018 -0800 src/Makefile.sources | 1 - src/hb-ot-os2-table.hh | 23 ++++- - src/hb-ot-os2-unicode-ranges.cc | 221 - ++-------------------------------------- - src/hb-ot-os2-unicode-ranges.hh | 210 - +++++++++++++++++++++++++++++++++++++- + src/hb-ot-os2-unicode-ranges.cc | 221 ++-------------------------------------- + src/hb-ot-os2-unicode-ranges.hh | 210 +++++++++++++++++++++++++++++++++++++- 4 files changed, 236 insertions(+), 219 deletions(-) commit a570142d0c6d819feeeeb9e209fc90a33c1c2b48 Author: Garret Rieger Date: Mon Feb 26 15:20:23 2018 -0800 - [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper - methods and tests. + [subset] Move hb-ot-os2-unicode-ranges into a cc file with a helper methods and tests. src/Makefile.am | 9 +- src/Makefile.sources | 2 + - src/hb-ot-os2-unicode-ranges.cc | 279 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-os2-unicode-ranges.cc | 279 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-os2-unicode-ranges.hh | 189 +-------------------------- 4 files changed, 292 insertions(+), 187 deletions(-) @@ -32823,8 +32678,7 @@ Date: Fri Feb 23 18:35:41 2018 -0800 [subset] Add hb-ot-os2-unicode-ranges.hh, a map of os2 unicode ranges. - src/hb-ot-os2-unicode-ranges.hh | 220 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-os2-unicode-ranges.hh | 220 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) commit 6c844ae8e89f52f5f40eace66bb987544fc316e3 @@ -32860,9 +32714,8 @@ Author: Behdad Esfahbod Date: Mon Feb 26 01:04:16 2018 -0800 [aat/ankr] Minor - - DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size - structs + + DEFINE_SIZE_MIN is to be used only in rare cases. For fixed-size structs we want DEFINE_SIZE_STATIC. src/hb-aat-layout-ankr-table.hh | 2 +- @@ -32892,8 +32745,7 @@ Date: Mon Feb 26 00:32:11 2018 -0800 [aat/trak] Simplify sanitize() - src/hb-aat-layout-trak-table.hh | 67 - ++++++++++------------------------------- + src/hb-aat-layout-trak-table.hh | 67 ++++++++++------------------------------- 1 file changed, 16 insertions(+), 51 deletions(-) commit f0bc6c0992c4302ae1a20f155ad256bfa331087c @@ -32901,10 +32753,10 @@ Author: Behdad Esfahbod Date: Mon Feb 26 00:18:17 2018 -0800 [aat/trak] Clean up - + We always just used "unsigned int" for counter values. There's no use for uint16_t outside of a struct. - + Also, no need for explict casting where implicit does. src/hb-aat-layout-trak-table.hh | 12 ++++++------ @@ -32917,8 +32769,7 @@ Date: Sun Feb 25 12:30:33 2018 +0330 [aat] trak sanitization src/dev-run.sh | 4 +- - src/hb-aat-layout-trak-table.hh | 95 - ++++++++++++++++++++++++++++++++--------- + src/hb-aat-layout-trak-table.hh | 95 ++++++++++++++++++++++++++++++++--------- src/hb-aat-layout.cc | 2 +- util/options.hh | 2 +- 4 files changed, 78 insertions(+), 25 deletions(-) @@ -32928,7 +32779,7 @@ Author: Ebrahim Byagowi Date: Mon Feb 26 11:29:48 2018 +0330 [aat] minor - + Ops, this was done for testing src/hb-aat-layout-ankr-table.hh | 2 +- @@ -32949,11 +32800,10 @@ Author: Behdad Esfahbod Date: Sun Feb 25 18:54:52 2018 -0800 [aat/trak] Minor - + Maybe we should make DEFINE_* make structs uncopyable. - src/hb-aat-layout-trak-table.hh | 56 - +++++++++++++++++++++++------------------ + src/hb-aat-layout-trak-table.hh | 56 +++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 24 deletions(-) commit ae14dd0fb0a176f6f0143690907b51626999d248 @@ -32963,8 +32813,7 @@ Date: Mon Feb 26 00:31:09 2018 +0330 [aat] Implement ankr src/Makefile.sources | 3 +- - src/hb-aat-layout-ankr-table.hh | 86 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-ankr-table.hh | 86 +++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout-kerx-table.hh | 2 +- src/hb-aat-layout.cc | 37 +++++++++++++----- src/hb-ot-layout-private.hh | 6 ++- @@ -32979,8 +32828,7 @@ Date: Sun Feb 25 16:32:17 2018 -0800 src/Makefile.sources | 1 - src/hb-ot-base.cc | 58 ----------------------- - src/hb-ot-layout-base-table.hh | 103 - ++++++++++++++++++++++++++++------------- + src/hb-ot-layout-base-table.hh | 103 ++++++++++++++++++++++++++++------------- src/hb-ot-layout.cc | 34 ++++++++++++++ src/hb-ot-layout.h | 1 + 5 files changed, 105 insertions(+), 92 deletions(-) @@ -33006,7 +32854,7 @@ Author: Khaled Hosny Date: Sat Feb 24 00:44:07 2018 +0200 Workaround for old automake on Travis Linux images - + https://github.com/harfbuzz/harfbuzz/pull/821#issuecomment-368116538 .ci/fail.sh | 10 ++++++++-- @@ -33031,8 +32879,7 @@ Date: Sat Feb 24 12:49:42 2018 +0330 src/hb-aat-layout-kerx-table.hh | 7 ++++ src/hb-aat-layout-private.hh | 3 ++ - src/hb-aat-layout-trak-table.hh | 78 - +++++++++++++++++++++++++++++++++++++++-- + src/hb-aat-layout-trak-table.hh | 78 +++++++++++++++++++++++++++++++++++++++-- src/hb-aat-layout.cc | 46 ++++++++++++++++++++++++ src/hb-open-type-private.hh | 4 +-- src/hb-ot-layout-private.hh | 22 ++++++++++++ @@ -33049,8 +32896,7 @@ Date: Fri Feb 23 22:51:17 2018 -0800 CMakeLists.txt | 36 ++++++++++++++-------------- src/Makefile.am | 8 +++---- src/Makefile.sources | 3 --- - src/hb-version.h | 66 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-version.h | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 26 deletions(-) commit 5267520e078ed413df78f3a6781fd5370b6da63a @@ -33077,8 +32923,7 @@ Merge: 1454d82a 83af6c23 Author: Rod Sheeter Date: Fri Feb 23 17:53:26 2018 -0800 - Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into - drophints + Merge branch 'master' of https://github.com/harfbuzz/harfbuzz into drophints commit 1454d82a9d3d9a47901b3d92ff7f2c05c596c0d5 Author: Rod Sheeter @@ -33094,8 +32939,7 @@ commit 0ac8c0c1e6a6c076ce33b16baa173ff8763ac04e Author: Rod Sheeter Date: Fri Feb 23 17:43:00 2018 -0800 - [subset] zero glyf and loca memory before writing so pads are - clean. Test just the part of maxp we care about + [subset] zero glyf and loca memory before writing so pads are clean. Test just the part of maxp we care about src/hb-ot-glyf-table.hh | 6 +++--- src/hb-subset-glyf.cc | 4 ++-- @@ -33108,7 +32952,7 @@ Author: Garret Rieger Date: Fri Feb 23 18:33:25 2018 -0700 Merge pull request #829 from googlefonts/test-checksum - + [subset] Caclculate head table checksum adjustment commit dc5c7927e75ea09461e46fe6e56897091b4b4f00 @@ -33116,12 +32960,11 @@ Author: Behdad Esfahbod Date: Fri Feb 23 16:42:06 2018 -0800 [subset] Caclculate head table checksum adjustment - + Test still fails, because we do not serialize tables in the same order that fonttools subsetter does. - src/hb-open-file-private.hh | 51 - ++++++++++++++++++++++++++++++++++----------- + src/hb-open-file-private.hh | 51 ++++++++++++++++++++++++++++++++++----------- src/hb-ot-head-table.hh | 2 ++ src/hb-subset.cc | 2 ++ 3 files changed, 43 insertions(+), 12 deletions(-) @@ -33132,7 +32975,7 @@ Author: Garret Rieger Date: Fri Feb 23 17:59:08 2018 -0700 Merge pull request #828 from googlefonts/mem-fixes - + [subset] Fix several memory leaks in subsetting. commit ec2538c8803be254b6e09ca0ea724b07c35126da @@ -33207,8 +33050,7 @@ Date: Fri Feb 23 16:55:53 2018 -0500 configure.ac | 2 ++ src/Makefile.am | 4 ++- - src/harfbuzz-config.cmake.in | 82 - ++++++++++++++++++++++++++++++++++++++++++++ + src/harfbuzz-config.cmake.in | 82 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) commit e0939d811f1fdeda9c5763e7e53887b3d3cb21eb @@ -33216,18 +33058,17 @@ Author: Behdad Esfahbod Date: Fri Feb 23 13:19:34 2018 -0800 Clean up check-defs and check-symbols (#821) - + Also, call c++filt on their results. - + Also build and fix and check harfbuzz-gobject.def - + Also changes harfbuzz-gobject to distribute generated enum sources. CMakeLists.txt | 3 +-- src/Makefile.am | 33 ++++++++++++++++------------ src/Makefile.sources | 9 +++++--- - src/check-defs.sh | 52 - --------------------------------------------- + src/check-defs.sh | 52 --------------------------------------------- src/check-symbols.sh | 30 ++++++++++++++++++++------ src/hb-gobject-enums.h.tmpl | 3 ++- src/hb-gobject-structs.h | 45 ++++++++++++++++++++++++++------------- @@ -33239,8 +33080,7 @@ Date: Fri Feb 23 13:05:58 2018 -0800 [subset] clone trim logic from fonttools glyf handling - src/hb-ot-glyf-table.hh | 92 - ++++++++++++++++++++++++++- + src/hb-ot-glyf-table.hh | 92 ++++++++++++++++++++++++++- src/hb-subset-glyf.cc | 26 ++++---- src/hb-subset-plan.cc | 3 + src/hb-subset.cc | 13 ++-- @@ -33255,7 +33095,7 @@ Author: Garret Rieger Date: Fri Feb 23 12:32:18 2018 -0700 Merge pull request #823 from googlefonts/hdmx - + [subset] Add hdmx subsetting. commit e15e41ef12e146333e355defef8db210378b5be0 @@ -33271,22 +33111,18 @@ commit 2b844803433bd1557a7fd0c93a91c66ef5319b21 Author: Garret Rieger Date: Thu Feb 22 18:38:44 2018 -0800 - [subset] Update expected files for subsetting integration test to - not include cmap 4. + [subset] Update expected files for subsetting integration test to not include cmap 4. - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> - 1692 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> 1692 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit a88504c601ac95601730bd602861c13e5ac4fdd8 Author: Garret Rieger Date: Thu Feb 22 14:28:18 2018 -0800 - [subset] Fix checksum clearning in subset test diff. Add an updated - expected file (has cmap4 restored). + [subset] Fix checksum clearning in subset test diff. Add an updated expected file (has cmap4 restored). - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> - 1740 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1692 -> 1740 bytes test/subset/run-tests.py | 7 +++++-- 2 files changed, 5 insertions(+), 2 deletions(-) @@ -33294,8 +33130,7 @@ commit 537698b60131bd3d7999919a04596c41dda6b2e4 Author: Garret Rieger Date: Thu Feb 22 14:07:52 2018 -0800 - [subset] Don't compare actual to itself in Fix - test/subset/run-tests. Print a diff on failure. + [subset] Don't compare actual to itself in Fix test/subset/run-tests. Print a diff on failure. test/subset/run-tests.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) @@ -33323,11 +33158,10 @@ Author: Behdad Esfahbod Date: Fri Feb 23 10:34:26 2018 -0800 [hdmx] Move DeviceRecord to toplevel again - + More readable. - src/hb-ot-hdmx-table.hh | 112 - ++++++++++++++++++++++++------------------------ + src/hb-ot-hdmx-table.hh | 112 ++++++++++++++++++++++++------------------------ 1 file changed, 57 insertions(+), 55 deletions(-) commit 96d7805a9235443972c6b6c5cd9502283c8836e9 @@ -33373,8 +33207,7 @@ Date: Wed Feb 21 17:59:57 2018 -0800 [subset] Add a unit test for hdmx subsetting. test/api/Makefile.am | 2 ++ - test/api/test-subset-hdmx.c | 81 - +++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-subset-hdmx.c | 81 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) commit aa4aa2353c52f86fd56446de6b7ff86a9e990b9c @@ -33392,8 +33225,7 @@ Date: Wed Feb 21 17:42:58 2018 -0800 [subset] Move DeviceRecord inside of hdmx. - src/hb-ot-hdmx-table.hh | 98 - +++++++++++++++++++++++++------------------------ + src/hb-ot-hdmx-table.hh | 98 +++++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 48 deletions(-) commit 6704cded65985b2de262bdd3bb0887929e5a3b0b @@ -33418,8 +33250,7 @@ commit dddf44279f610e77e8b9a0819fd91f48802158b6 Author: Garret Rieger Date: Wed Feb 21 15:36:09 2018 -0800 - [subset] When serializing a DeviceRecord in hdmx pad to make 32 - bit aligned. + [subset] When serializing a DeviceRecord in hdmx pad to make 32 bit aligned. src/hb-ot-hdmx-table.hh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) @@ -33430,8 +33261,7 @@ Date: Wed Feb 21 15:15:22 2018 -0800 [subset] Begin implementing serialize for hdmx. - src/hb-ot-hdmx-table.hh | 79 - +++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-hdmx-table.hh | 79 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 2 deletions(-) commit fe42862ab30d17483a1d0c2e2b1d859d01bbaff1 @@ -33441,8 +33271,7 @@ Date: Wed Feb 21 14:18:49 2018 -0800 [subset] Sketch out a basic hb-ot-hdmx.hh. src/Makefile.sources | 1 + - src/hb-ot-hdmx-table.hh | 77 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-hdmx-table.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset.cc | 1 + 3 files changed, 79 insertions(+) @@ -33478,13 +33307,10 @@ commit 4f07437dfebd3dc5923f40154c6f1b7e1dce1bd4 Author: Rod Sheeter Date: Wed Feb 21 22:23:05 2018 -0800 - [subset] sketch out dropping in-glyf instructions. Sometimes yields - differnet size glyphs than fonttools, possibly due to padding not - being corrected + [subset] sketch out dropping in-glyf instructions. Sometimes yields differnet size glyphs than fonttools, possibly due to padding not being corrected src/hb-ot-glyf-table.hh | 45 ++++++++++++++++ - src/hb-subset-glyf.cc | 78 - +++++++++++++++++++++------ + src/hb-subset-glyf.cc | 78 +++++++++++++++++++++------ src/hb-subset-input.cc | 6 +++ src/hb-subset.h | 2 + test/api/fonts/Roboto-Regular.ac.nohints.ttf | Bin 0 -> 1128 bytes @@ -33509,11 +33335,10 @@ Author: Behdad Esfahbod Date: Wed Feb 21 14:38:02 2018 -0800 Add two more ragel-generated headers - + Fixes https://github.com/harfbuzz/harfbuzz/issues/817 - src/hb-buffer-deserialize-json.hh | 643 - ++++++++++++++++++++++++++++++++++++++ + src/hb-buffer-deserialize-json.hh | 643 ++++++++++++++++++++++++++++++++++++++ src/hb-buffer-deserialize-text.hh | 571 +++++++++++++++++++++++++++++++++ 2 files changed, 1214 insertions(+) @@ -33521,8 +33346,7 @@ commit 74e0c13a4a55848e797242c02c8f067e587ea603 Author: Rod Sheeter Date: Wed Feb 21 11:19:18 2018 -0800 - [subset] drop hint tables if so flagged. Still need to dump glyf - instructions. + [subset] drop hint tables if so flagged. Still need to dump glyf instructions. src/hb-subset-plan.cc | 1 + src/hb-subset-plan.hh | 2 ++ @@ -33538,7 +33362,7 @@ Author: Ebrahim Byagowi Date: Wed Feb 21 22:13:58 2018 +0330 Add .editorconfig (#810) - + More information: http://editorconfig.org/ .editorconfig | 18 ++++++++++++++++++ @@ -33579,8 +33403,7 @@ commit 2cc845f311b6dc4f0feda8b8fc5609fbd51b5923 Author: Garret Rieger Date: Tue Feb 20 18:13:41 2018 -0800 - [subset] fix calculation of range shiftz. Should be 16 * len - - searchRange not 16 * (len - searchRange). + [subset] fix calculation of range shiftz. Should be 16 * len - searchRange not 16 * (len - searchRange). src/hb-open-type-private.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) @@ -33589,8 +33412,7 @@ commit 8e614ade5aef102baed56f91c2fcb1f3d1788ea9 Author: Garret Rieger Date: Tue Feb 20 17:36:54 2018 -0800 - [subset] Reverse table order for font serialization to match what - OTS expects. + [subset] Reverse table order for font serialization to match what OTS expects. src/hb-open-file-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -33599,8 +33421,7 @@ commit a998eeee4ad7bba4a1574c9735618891b6bd0948 Author: Garret Rieger Date: Tue Feb 20 16:48:52 2018 -0800 - [subset] sanity check glyph data writes during glyph subsetting to - ensure they are inbounds. + [subset] sanity check glyph data writes during glyph subsetting to ensure they are inbounds. src/hb-subset-glyf.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) @@ -33611,8 +33432,7 @@ Date: Tue Feb 20 15:33:03 2018 -0800 [subset] Sanity check that loca writes are inbounds. - src/hb-subset-glyf.cc | 55 - ++++++++++++++++++++++++++++++++++++++------------- + src/hb-subset-glyf.cc | 55 ++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 14 deletions(-) commit 73e20ec6e9ad86bea023fc8b6fc10287889ed048 @@ -33621,7 +33441,7 @@ Author: Garret Rieger Date: Tue Feb 20 17:34:59 2018 -0700 Merge pull request #812 from googlefonts/cleanup - + Clean up of glyf subsetting. commit 6ae4013f2e53d6496507a58b715298fee4eadcee @@ -33638,20 +33458,18 @@ Author: Behdad Esfahbod Date: Tue Feb 20 14:34:16 2018 -0800 Add Ragel-generated files to git - + I know it's bad form; I know I've said no to this multiple times... - But this is part of an experiment to see if we can make rolling - HarfBuzz + But this is part of an experiment to see if we can make rolling HarfBuzz into Chrome much faster. That will give us a lot more testing exposure that currently Chrome does. - + Doing this while those files are still considered ignored by our gitignore rules; will see how that flies. autogen.sh | 10 +- src/Makefile.am | 3 +- - src/hb-ot-shape-complex-indic-machine.hh | 1319 - ++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic-machine.hh | 1319 ++++++++++++++++++++++++++++ src/hb-ot-shape-complex-khmer-machine.hh | 294 +++++++ src/hb-ot-shape-complex-myanmar-machine.hh | 413 +++++++++ src/hb-ot-shape-complex-use-machine.hh | 502 +++++++++++ @@ -33673,10 +33491,8 @@ Date: Tue Feb 20 14:07:40 2018 -0800 [subset] Move glyf subsetting code into hb-ot-glyf-table.hh - src/hb-ot-glyf-table.hh | 49 - +++++++++++++++++++++++++++++++++++++++++++++++- - src/hb-subset.cc | 50 - +------------------------------------------------ + src/hb-ot-glyf-table.hh | 49 +++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-subset.cc | 50 +------------------------------------------------ 2 files changed, 49 insertions(+), 50 deletions(-) commit d1f16fce963092404bf0b59e449a3215ca031b54 @@ -33684,11 +33500,10 @@ Author: Behdad Esfahbod Date: Tue Feb 20 10:32:09 2018 -0800 Don't use %zu - - Some of our bots / compilers don't like it. Wasn't caught by bots - because this + + Some of our bots / compilers don't like it. Wasn't caught by bots because this is only in debug code. - + https://github.com/harfbuzz/harfbuzz/pull/809/commits/825ad378e0f0e6e6bb690894a0d5d25f198be21b src/hb-ot-cmap-table.hh | 2 +- @@ -33717,7 +33532,7 @@ Author: Dominik Röttsches Date: Tue Feb 20 10:26:07 2018 +0200 Use %zu format specifier for size_t to fix cross platform build - + Fixes Chromium Android builds, compare https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/491787 @@ -33740,8 +33555,7 @@ Date: Mon Feb 19 23:27:08 2018 +0330 [aat] First dig on 'trak' src/Makefile.sources | 3 +- - src/hb-aat-layout-trak-table.hh | 100 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-trak-table.hh | 100 ++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 3 +- src/hb-ot-layout-private.hh | 6 ++- 4 files changed, 108 insertions(+), 4 deletions(-) @@ -33798,7 +33612,7 @@ Author: Ebrahim Byagowi Date: Mon Feb 19 11:06:13 2018 +0330 Test debug builds on ArchLinux bot - + Fixes #805 .circleci/config.yml | 6 +++--- @@ -33809,14 +33623,12 @@ Author: Behdad Esfahbod Date: Sun Feb 18 17:28:53 2018 -0800 Limit how much work sanitize() can do - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6022 src/Makefile.am | 2 ++ - src/hb-open-type-private.hh | 16 - ++++++++++++++-- - .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 0 -> - 1048576 bytes + src/hb-open-type-private.hh | 16 ++++++++++++++-- + .../233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf | Bin 0 -> 1048576 bytes test/shaping/data/in-house/tests/fuzzed.tests | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) @@ -33834,7 +33646,7 @@ Author: Behdad Esfahbod Date: Sun Feb 18 16:27:59 2018 -0800 Fix debug build - + Context needs to be called 'c'. The TRACE_* rely on that. src/hb-ot-cmap-table.hh | 22 +++++++++++----------- @@ -33863,10 +33675,10 @@ Author: Behdad Esfahbod Date: Sun Feb 18 15:57:09 2018 -0800 Readjust mark attachment heuristic a bit more - + Previously adjusted logic could fail if nothing around was ligated, and something moved. This should take care of that. - + CC https://github.com/harfbuzz/harfbuzz/issues/740 src/hb-ot-layout-gpos-table.hh | 5 ++++- @@ -33878,8 +33690,7 @@ Date: Sun Feb 18 15:42:25 2018 -0800 [test] Add test for https://github.com/harfbuzz/harfbuzz/issues/740 - .../fonts/573d3a3177c9a8646e94c8a0d7b224334340946a.ttf | Bin 0 -> - 5680 bytes + .../fonts/573d3a3177c9a8646e94c8a0d7b224334340946a.ttf | Bin 0 -> 5680 bytes test/shaping/data/in-house/tests/use.tests | 1 + 2 files changed, 1 insertion(+) @@ -33890,8 +33701,7 @@ Date: Mon Feb 19 03:17:44 2018 +0330 [aat] First dig on 'kerx' (#704) src/Makefile.sources | 1 + - src/hb-aat-layout-kerx-table.hh | 377 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-kerx-table.hh | 377 ++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 1 + src/hb-ot-layout-private.hh | 2 + 4 files changed, 381 insertions(+) @@ -33902,7 +33712,7 @@ Author: Behdad Esfahbod Date: Sun Feb 18 14:04:33 2018 -0800 Merge pull request #796 from ebraminio/dev-run - + Add a continuous builder using fswatch commit e91644786bf7c278e75962b851d5d47011ff175c @@ -33939,7 +33749,7 @@ Author: Ebrahim Byagowi Date: Sun Feb 18 23:25:15 2018 +0330 Another attempt on fixing coverity - + I hope I am in a correct direction at least .travis.yml | 5 ++--- @@ -33951,7 +33761,7 @@ Author: Behdad Esfahbod Date: Sun Feb 18 11:35:51 2018 -0800 Merge pull request #800 from harfbuzz/bitops - + Optimize set through optimized bit operations commit 97a71102153d28982297a190739c7d82e76b109e @@ -33959,7 +33769,7 @@ Author: Behdad Esfahbod Date: Sun Feb 18 10:50:24 2018 -0800 Fix BitScanForward() usage - + Should fix Win64 bot. src/hb-private.hh | 4 ++-- @@ -33977,7 +33787,7 @@ Author: David Corbett Date: Fri Feb 16 12:08:55 2018 -0500 Do not mark the first glyph as unsafe to break - + Fixes #791. src/hb-buffer-private.hh | 3 +-- @@ -34019,11 +33829,10 @@ Author: Behdad Esfahbod Date: Fri Feb 16 16:58:17 2018 -0800 Misc fixes - + Should bring bag djgpp bot. - src/hb-ot-os2-table.hh | 54 - +++++++++++++++++++++++++------------------------- + src/hb-ot-os2-table.hh | 54 +++++++++++++++++++++++++------------------------- src/hb-subset-plan.cc | 16 +++++++-------- 2 files changed, 34 insertions(+), 36 deletions(-) @@ -34035,8 +33844,7 @@ Date: Fri Feb 16 17:02:51 2018 -0700 .../api/fonts/Roboto-Regular.components.subset.ttf | Bin 0 -> 2052 bytes test/api/fonts/Roboto-Regular.components.ttf | Bin 0 -> 2572 bytes - test/api/test-subset-glyf.c | 21 - +++++++++++++++++++++ + test/api/test-subset-glyf.c | 21 +++++++++++++++++++++ 3 files changed, 21 insertions(+) commit c36d015b0e9c363431cd9d228b776ad419fde474 @@ -34052,8 +33860,7 @@ commit 2130392dcc30784ee34c487ab16316006c91f16d Author: Garret Rieger Date: Fri Feb 16 17:01:00 2018 -0700 - [subset] Add support for updating reference gids in components to - their new values. + [subset] Add support for updating reference gids in components to their new values. src/hb-subset-glyf.cc | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) @@ -34062,11 +33869,9 @@ commit 49544eb860e523838892d6ce88eeca72ffd19da4 Author: Garret Rieger Date: Fri Feb 16 16:56:15 2018 -0700 - [subset] Refactor composite glyf iteration code into an Iterator - outside of the accelerator. + [subset] Refactor composite glyf iteration code into an Iterator outside of the accelerator. - src/hb-ot-glyf-table.hh | 110 - +++++++++++++++++++++++++----------------------- + src/hb-ot-glyf-table.hh | 110 +++++++++++++++++++++++++----------------------- src/hb-subset-plan.cc | 6 +-- 2 files changed, 60 insertions(+), 56 deletions(-) @@ -34074,8 +33879,7 @@ commit dc6d67df1395faf38d7587b1dd3c6661ee7cd6f0 Author: Garret Rieger Date: Fri Feb 16 15:20:14 2018 -0700 - [subset] Use gids_to_retain_sorted to produce old gid -> new gid - mapping since it now has the more complete set. + [subset] Use gids_to_retain_sorted to produce old gid -> new gid mapping since it now has the more complete set. src/hb-subset-plan.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) @@ -34094,8 +33898,7 @@ commit 58a54c9d4f72e228c012451c4469da730742d3d8 Author: Garret Rieger Date: Fri Feb 16 11:20:38 2018 -0700 - [subset] add constant to get_composite and in_table methods in - hb-ot-glyf-table + [subset] add constant to get_composite and in_table methods in hb-ot-glyf-table src/hb-ot-glyf-table.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -34113,11 +33916,9 @@ commit d3684141437fad6ebf5f9945f92125c9a42ea853 Author: Garret Rieger Date: Thu Feb 15 14:03:34 2018 -0800 - [subset] add helper methods to glyf accelerator for reading composite - glyph information. + [subset] add helper methods to glyf accelerator for reading composite glyph information. - src/hb-ot-glyf-table.hh | 115 - ++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-glyf-table.hh | 115 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 112 insertions(+), 3 deletions(-) commit cd11107bb44ac719709e10264e9e6ba6a1cfae0c @@ -34125,7 +33926,7 @@ Author: Behdad Esfahbod Date: Fri Feb 16 18:28:58 2018 -0800 Another bitops fallback fix - + I'm confident that all bugs are hashed out now. src/hb-private.hh | 4 ++-- @@ -34146,8 +33947,7 @@ Date: Fri Feb 16 18:14:41 2018 -0800 [set] Implement iteration using bitop intrinsics - src/hb-set-private.hh | 55 - ++++++++++++++++++--------------------------------- + src/hb-set-private.hh | 55 ++++++++++++++++++--------------------------------- 1 file changed, 19 insertions(+), 36 deletions(-) commit 6a91a2eb04951f6e33706c2b8e9cd987b429fce9 @@ -34183,8 +33983,7 @@ Date: Fri Feb 16 16:52:09 2018 -0800 Flesh out other bit ops some more for 128bit as well - src/hb-private.hh | 165 - +++++++++++++++++++++++++++++++++++++++++------------- + src/hb-private.hh | 165 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 126 insertions(+), 39 deletions(-) commit 864a2dddae9eb1303c59d0d3717fce307a72a524 @@ -34192,7 +33991,7 @@ Author: Behdad Esfahbod Date: Fri Feb 16 14:21:40 2018 -0800 Clean up bit functions - + Compile all code-paths possible, to better catch errors. Also enable MSVC ones on mingw which seems to support them. @@ -34204,14 +34003,13 @@ Author: Behdad Esfahbod Date: Fri Feb 16 16:06:17 2018 -0800 Improve _hb_popcount() - + Support 128bit type. configure.ac | 3 ++- src/hb-ot-layout-gpos-table.hh | 2 +- src/hb-ot-map.cc | 2 +- - src/hb-private.hh | 61 - +++++++++++++++++++++++++++--------------- + src/hb-private.hh | 61 +++++++++++++++++++++++++++--------------- 4 files changed, 44 insertions(+), 24 deletions(-) commit 7b5ce7404716a17f91ff86d374c7b76ee7ce3247 @@ -34230,9 +34028,8 @@ Author: Behdad Esfahbod Date: Fri Feb 16 15:36:20 2018 -0800 Enable C99 if available - - Hopefully we can now mix-and-match code and declaration in the C - test files. + + Hopefully we can now mix-and-match code and declaration in the C test files. configure.ac | 1 + 1 file changed, 1 insertion(+) @@ -34243,7 +34040,7 @@ Author: rsheeter Date: Fri Feb 16 15:27:29 2018 -0800 Merge pull request #792 from googlefonts/master - + Support more tables in subsetter commit 882a3bf4abcdac60414db41d54dbbb7d2368c908 @@ -34271,9 +34068,8 @@ Author: Arkady Shapkin Date: Fri Feb 16 21:45:08 2018 +0300 Remove checking macros __OPTIMIZE__ for MSVC - - Visual C++ compiler doesn't define macros __OPTIMIZE__ when - optimizations enabled + + Visual C++ compiler doesn't define macros __OPTIMIZE__ when optimizations enabled src/hb-private.hh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) @@ -34411,7 +34207,7 @@ Author: Khaled Hosny Date: Thu Feb 15 02:52:15 2018 +0200 Move collect_logs to .ci dir - + Next to other CI scripts. .collect_logs => .ci/collect-logs.sh | 0 @@ -34435,8 +34231,7 @@ Date: Wed Feb 14 19:36:33 2018 -0800 [subset] cmap space bracket - src/hb-ot-cmap-table.hh | 72 - ++++++++++++++++++++++++------------------------- + src/hb-ot-cmap-table.hh | 72 ++++++++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) commit e158739bfb9e5d60989e179fcc8744f3125e2067 @@ -34488,8 +34283,7 @@ commit 83f57e24bfc2000373192ec44b067fdd7dee8a65 Author: Behdad Esfahbod Date: Wed Feb 14 18:43:53 2018 -0800 - [test] Reinstate - test/shaping/data/in-house/tests/myanmar-syllable.tests + [test] Reinstate test/shaping/data/in-house/tests/myanmar-syllable.tests test/shaping/data/in-house/tests/myanmar-syllable.tests | 1 + 1 file changed, 1 insertion(+) @@ -34505,11 +34299,9 @@ commit 04c1ec2b7396c05f6e8afc9d87679422782aa1e8 Author: Garret Rieger Date: Wed Feb 14 17:00:18 2018 -0800 - [subset] Don't fail on different checksum adjustment in subsetting - tests. + [subset] Don't fail on different checksum adjustment in subsetting tests. - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> - 1692 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1740 -> 1692 bytes test/subset/run-tests.py | 8 ++++++++ 2 files changed, 8 insertions(+) @@ -34526,8 +34318,7 @@ commit b56c9384bcc177236debd26fdbbf14319e4c62b9 Author: Garret Rieger Date: Wed Feb 14 16:05:39 2018 -0800 - [subset] Add missing face reference in hb-subset-plan plus ensure - all struct members are cleaned up on destroy. + [subset] Add missing face reference in hb-subset-plan plus ensure all struct members are cleaned up on destroy. src/hb-subset-plan.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) @@ -34536,8 +34327,7 @@ commit e0ffebead6230b8e1ee8dd97425505706321793e Author: Garret Rieger Date: Wed Feb 14 16:01:08 2018 -0800 - [subset] In hb-subset-test use hb_set_union instead of manually - copying set. + [subset] In hb-subset-test use hb_set_union instead of manually copying set. test/api/hb-subset-test.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) @@ -34566,11 +34356,10 @@ Author: Behdad Esfahbod Date: Wed Feb 14 15:46:27 2018 -0800 Another linker tweaking - + Trying to fix this warning: - cc1: warning: command line option ‘-fno-threadsafe-statics’ is - valid for C++/ObjC++ but not for C - + cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C + Let's see what the clang bots think of it. src/Makefile.am | 4 ++-- @@ -34581,7 +34370,7 @@ Author: Behdad Esfahbod Date: Wed Feb 14 15:44:48 2018 -0800 [set] Tune size again - + Switch from a 128+64 hierarchy, to 32+32. New page size is 1024. This should make set iteration faster, without affecting other op performances much. @@ -34623,8 +34412,7 @@ commit 88d56e241bd6bb768656d77cf8f99ccc97fb2446 Author: Rod Sheeter Date: Wed Feb 14 15:20:43 2018 -0800 - [subset] Use a supplier instead of memcpy and fix a few unnecessary - {}s for cmap + [subset] Use a supplier instead of memcpy and fix a few unnecessary {}s for cmap src/hb-ot-cmap-table.hh | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) @@ -34655,8 +34443,7 @@ Date: Wed Feb 14 14:16:25 2018 -0800 src/hb-ot-cmap-table.hh | 19 +-- src/hb-ot-hhea-table.hh | 6 +- - src/hb-ot-hmtx-table.hh | 163 - ++++++++++++++++++--- + src/hb-ot-hmtx-table.hh | 163 ++++++++++++++++++--- src/hb-ot-maxp-table.hh | 8 +- src/hb-ot-os2-table.hh | 8 +- src/hb-subset-glyf.cc | 5 +- @@ -34672,16 +34459,14 @@ Date: Wed Feb 14 14:16:25 2018 -0800 test/api/fonts/Inconsolata-Regular.ac.ttf | Bin 0 -> 4940 bytes test/api/fonts/Inconsolata-Regular.ac.widerc.ttf | Bin 0 -> 4944 bytes test/api/fonts/README | 2 + - test/api/test-subset-hmtx.c | 164 - ++++++++++++++++++++++ + test/api/test-subset-hmtx.c | 164 ++++++++++++++++++++++ 19 files changed, 422 insertions(+), 79 deletions(-) commit 20022575c658b29796db80c387641309d0c49586 Author: Ebrahim Byagowi Date: Thu Feb 15 01:15:39 2018 +0330 - Redirect email notifications to another mailing list dedicated for - this (#790) + Redirect email notifications to another mailing list dedicated for this (#790) .travis.yml | 4 ++-- appveyor.yml | 5 +++++ @@ -34749,7 +34534,7 @@ Author: Behdad Esfahbod Date: Wed Feb 14 10:55:25 2018 -0800 [subset] Allow linking to libstdc++ - + We want to use it. src/Makefile.am | 2 +- @@ -34775,11 +34560,9 @@ commit b0eefacf4cb885f510f9551bf2e9216808ca61e8 Author: Garret Rieger Date: Mon Feb 12 18:15:58 2018 -0800 - [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected - test outputs. + [subset] Drop GSUB, GDEF, GPOS, and DSIG from subsetter expected test outputs. - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 2460 -> - 1740 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 2460 -> 1740 bytes test/subset/generate-expected-outputs.py | 1 + 2 files changed, 1 insertion(+) @@ -34811,8 +34594,7 @@ Date: Mon Feb 12 17:42:20 2018 -0800 test/api/Makefile.am | 2 ++ test/api/fonts/Roboto-Regular.b.ttf | Bin 0 -> 1996 bytes - test/api/test-subset-os2.c | 59 - ++++++++++++++++++++++++++++++++++++ + test/api/test-subset-os2.c | 59 ++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) commit 343dfe89655683966836e44afb4fd32c47377844 @@ -34828,8 +34610,7 @@ commit 24904383df03c472c865bd97bfe844f5e86a7172 Author: Garret Rieger Date: Mon Feb 12 17:31:01 2018 -0800 - [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table - when subsetting. + [subset] Correct usFirstCharIndex and usLastCharIndex in OS2 table when subsetting. src/hb-ot-os2-table.hh | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset.cc | 16 ++++++++++------ @@ -34849,14 +34630,13 @@ Author: Behdad Esfahbod Date: Wed Feb 14 01:00:10 2018 -0800 [set] Add backwards iterator - + New API: - hb_set_previous() - hb_set_previous_range() docs/harfbuzz-sections.txt | 2 ++ - src/hb-set-private.hh | 79 - +++++++++++++++++++++++++++++++++++++++++++++- + src/hb-set-private.hh | 79 +++++++++++++++++++++++++++++++++++++++++++++- src/hb-set.cc | 49 +++++++++++++++++++++++++++- src/hb-set.h | 19 ++++++++--- test/api/test-set.c | 53 +++++++++++++++++++++++++++++-- @@ -34876,7 +34656,7 @@ Author: Behdad Esfahbod Date: Tue Feb 13 22:12:36 2018 -0800 Add hb_blob_copy_writable_or_fail() - + New API: - hb_blob_copy_writable_or_fail() @@ -34890,7 +34670,7 @@ Author: Behdad Esfahbod Date: Tue Feb 13 22:07:12 2018 -0800 [subset] Rename constructor to hb_subset_input_create_or_fail() - + To signify that unlike rest of library, returns nullptr on failure. src/hb-subset-input.cc | 6 ++---- @@ -34907,8 +34687,7 @@ Date: Tue Feb 13 21:46:28 2018 -0800 [use] Add dump-use-data src/Makefile.am | 4 ++++ - src/dump-use-data.cc | 38 - ++++++++++++++++++++++++++++++++++ + src/dump-use-data.cc | 38 ++++++++++++++++++++++++++++++++++ src/gen-use-table.py | 2 +- src/hb-ot-shape-complex-use-private.hh | 2 +- src/hb-ot-shape-complex-use-table.cc | 2 +- @@ -34924,8 +34703,7 @@ Date: Tue Feb 13 21:41:51 2018 -0800 src/Makefile.am | 4 + src/Makefile.sources | 1 + src/dump-khmer-data.cc | 43 +++++++++++ - src/hb-ot-shape-complex-khmer-private.hh | 124 - +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-khmer-private.hh | 124 +++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-khmer.cc | 98 +----------------------- 5 files changed, 173 insertions(+), 97 deletions(-) @@ -34939,8 +34717,7 @@ Date: Tue Feb 13 21:38:15 2018 -0800 src/Makefile.sources | 1 + src/dump-myanmar-data.cc | 43 ++++++++ src/hb-ot-shape-complex-indic-private.hh | 8 +- - src/hb-ot-shape-complex-myanmar-private.hh | 171 - +++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-myanmar-private.hh | 171 +++++++++++++++++++++++++++++ src/hb-ot-shape-complex-myanmar.cc | 138 +---------------------- 6 files changed, 225 insertions(+), 140 deletions(-) @@ -34949,7 +34726,7 @@ Author: Behdad Esfahbod Date: Tue Feb 13 21:23:38 2018 -0800 [indic] Rename print-indic-table to dump-indic-data - + Makes more sense given what this prints, err, dumps. src/Makefile.am | 8 ++++---- @@ -34961,11 +34738,10 @@ Author: Behdad Esfahbod Date: Tue Feb 13 21:22:47 2018 -0800 [indic] Explicitly number indic_position_t - + So it's easier to cross-reference from output of print-indic-table. - src/hb-ot-shape-complex-indic-private.hh | 32 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-indic-private.hh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) commit 8634846a0a1049c42ea84ca34402957c981b4c73 @@ -34983,11 +34759,9 @@ Date: Tue Feb 13 19:01:03 2018 -0800 [indic] Share some copy/pasta code - src/hb-ot-shape-complex-indic-private.hh | 29 - +++++++++++++++++++++++++++-- + src/hb-ot-shape-complex-indic-private.hh | 29 +++++++++++++++++++++++++++-- src/hb-ot-shape-complex-indic.cc | 27 --------------------------- - src/hb-ot-shape-complex-khmer.cc | 30 - ++++++++---------------------- + src/hb-ot-shape-complex-khmer.cc | 30 ++++++++---------------------- src/hb-ot-shape-complex-myanmar.cc | 19 ++----------------- 4 files changed, 37 insertions(+), 68 deletions(-) @@ -34998,10 +34772,8 @@ Date: Tue Feb 13 18:54:26 2018 -0800 [indic] Add print-indic-table src/Makefile.am | 14 ++- - src/hb-ot-shape-complex-indic-private.hh | 185 - ++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-indic.cc | 187 - ------------------------------- + src/hb-ot-shape-complex-indic-private.hh | 185 ++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 187 ------------------------------- src/print-indic-table.cc | 43 +++++++ 4 files changed, 239 insertions(+), 190 deletions(-) @@ -35010,7 +34782,7 @@ Author: Behdad Esfahbod Date: Tue Feb 13 16:35:30 2018 -0800 [subset] Fix loca offsets - + Was writing source font's offsets. Ouch. src/hb-subset-glyf.cc | 30 +++++++++++------------------- @@ -35021,11 +34793,10 @@ Author: Behdad Esfahbod Date: Tue Feb 13 14:02:59 2018 -0800 Another tweak at libstdc++ things - + To fix this warning: - - cc1: warning: command line option ‘-fno-threadsafe-statics’ is - valid for C++/ObjC++ but not for C + + cc1: warning: command line option ‘-fno-threadsafe-statics’ is valid for C++/ObjC++ but not for C src/Makefile.am | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) @@ -35057,8 +34828,7 @@ Date: Tue Feb 13 13:50:50 2018 -0800 src/Makefile.sources | 1 + src/hb-face.h | 1 - src/hb-set.cc | 14 +++--- - src/hb-subset-input.cc | 109 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset-input.cc | 109 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset-plan.cc | 2 +- src/hb-subset-private.hh | 11 ++++- src/hb-subset.cc | 40 ++-------------- @@ -35073,7 +34843,7 @@ Author: Behdad Esfahbod Date: Tue Feb 13 13:39:50 2018 -0800 Disable threadsafe static's for all libraries - + Even in libharfbuzz-subset, we still will handle our own threadsafety for statics. @@ -35103,7 +34873,7 @@ Author: Behdad Esfahbod Date: Mon Feb 12 18:51:10 2018 -0800 [subset] Allocate bulk memory with malloc(), not calloc() - + We use calloc() to allocate simple structs and set them to zero. For bulk memory, use malloc() that doesn't zero. @@ -35115,7 +34885,7 @@ Author: Behdad Esfahbod Date: Mon Feb 12 18:48:51 2018 -0800 Use hb_face_get_upem() instead of face->get_upem() - + Such that hmtx accelerator can be used from libharfbuzz-subset. src/hb-ot-cbdt-table.hh | 2 +- @@ -35127,7 +34897,7 @@ Author: Behdad Esfahbod Date: Mon Feb 12 18:43:42 2018 -0800 [subset] Remove unreachable code - + sanitizer.sanitize never return nullptr. src/hb-subset.cc | 4 ---- @@ -35138,9 +34908,9 @@ Author: Behdad Esfahbod Date: Mon Feb 12 18:41:36 2018 -0800 Allow libharfbuzz-subset to link to libstdc++ - + We want to use it instead of reinventing hashmap... - + Also, don't change linker for ICU since libicu also uses libstdc++. src/Makefile.am | 2 -- @@ -35185,8 +34955,7 @@ Date: Mon Feb 12 16:01:15 2018 -0800 .../Roboto-Regular.abc.cmap-format12-only.ttf | Bin 0 -> 2412 bytes .../fonts/Roboto-Regular.ac.cmap-format12-only.ttf | Bin 0 -> 2212 bytes test/api/hb-subset-test.h | 3 +- - test/api/test-subset-cmap.c | 82 - +++++++++++++++++++++ + test/api/test-subset-cmap.c | 82 +++++++++++++++++++++ test/api/test-subset-glyf.c | 5 +- .../data/in-house/tests/myanmar-syllable.tests | 1 - 8 files changed, 87 insertions(+), 7 deletions(-) @@ -35216,13 +34985,10 @@ commit 1639bdd33122dc8e5522b95c37660273d1fc609e Author: Garret Rieger Date: Mon Feb 12 13:40:42 2018 -0800 - [subset] Remove test-subset, testing is planned to be done at the - table level here with test/subset covering the complete subsetting - operation. + [subset] Remove test-subset, testing is planned to be done at the table level here with test/subset covering the complete subsetting operation. test/api/Makefile.am | 1 - - test/api/test-subset.c | 73 - -------------------------------------------------- + test/api/test-subset.c | 73 -------------------------------------------------- 2 files changed, 74 deletions(-) commit 4cdd1b16c99f2681eb11d626c4408eebcc1672be @@ -35238,31 +35004,26 @@ commit 1714feef4f7ec9e758e65edcbe5d5591562f46ee Author: Garret Rieger Date: Mon Feb 12 13:35:17 2018 -0800 - [subset] re-enable test-subset-glyf. Refactor to use common functions - in hb-subset-test.h + [subset] re-enable test-subset-glyf. Refactor to use common functions in hb-subset-test.h - test/api/test-subset-glyf.c | 109 - +++++++++++--------------------------------- + test/api/test-subset-glyf.c | 109 +++++++++++--------------------------------- 1 file changed, 27 insertions(+), 82 deletions(-) commit d8d8bd8405ec0db781c4c2bbb7ebd6ff520b3c2d Author: Garret Rieger Date: Mon Feb 12 13:33:55 2018 -0800 - [subset] Add some helper functions for writing tests around - subsetting. + [subset] Add some helper functions for writing tests around subsetting. test/api/Makefile.am | 2 +- - test/api/hb-subset-test.h | 123 - ++++++++++++++++++++++++++++++++++++++++++++++ + test/api/hb-subset-test.h | 123 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+), 1 deletion(-) commit e8318188c0e53a267a01c45b0fc8d29ad775738a Author: Garret Rieger Date: Mon Feb 12 11:38:28 2018 -0800 - [subset] Fix loca generation, was previously writing the original - glyph starting offset. + [subset] Fix loca generation, was previously writing the original glyph starting offset. src/hb-subset-glyf.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) @@ -35272,7 +35033,7 @@ Author: Khaled Hosny Date: Mon Feb 12 16:45:36 2018 +0200 Rename --with-stdcpp → --with-libstdc++ - + Also improve wording a bit and fix make check in --with-libstdc++=yes. configure.ac | 11 ++++++----- @@ -35356,8 +35117,7 @@ commit 91f0d51f0525097fef6173046379a89414cb515f Author: Ebrahim Byagowi Date: Mon Feb 12 17:20:12 2018 +0330 - Fix symbol exporting issue on msys2 and ✅ bringing all the bots - (#781) + Fix symbol exporting issue on msys2 and ✅ bringing all the bots (#781) src/Makefile.am | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) @@ -35426,13 +35186,12 @@ Author: Behdad Esfahbod Date: Sun Feb 11 19:12:52 2018 -0800 Remove linker selection from hb-ucdn - - Since this is a convenience library, it's not actually linked. Or - so I think. + + Since this is a convenience library, it's not actually linked. Or so I think. Hoping this might fix this Appveyor failure: - + https://ci.appveyor.com/project/harfbuzz/harfbuzz/build/job/9884jyb5vryja9pw - + Making all in hb-ucdn make[4]: Entering directory '/c/projects/harfbuzz/src/hb-ucdn' CC libhb_ucdn_la-ucdn.lo @@ -35465,7 +35224,7 @@ Author: Behdad Esfahbod Date: Sun Feb 11 18:28:10 2018 -0800 Add Sun compiler to no-visibility as well - + Fixes https://github.com/harfbuzz/harfbuzz/pull/776 src/hb-private.hh | 2 +- @@ -35485,7 +35244,7 @@ Author: Behdad Esfahbod Date: Sun Feb 11 18:24:22 2018 -0800 Another try at fixing multiple-defintion of NullPool - + This one might do it... src/hb-open-type-private.hh | 6 +++++- @@ -35505,7 +35264,7 @@ Author: Behdad Esfahbod Date: Sun Feb 11 19:46:06 2018 -0600 [subset] Another fixup - + I broke this in c31fcf4c58d96eb7d9781a986991b1a79ac7be44 src/hb-ot-cmap-table.hh | 2 +- @@ -35517,7 +35276,7 @@ Author: Behdad Esfahbod Date: Sun Feb 11 19:34:05 2018 -0600 Try at fixing multiple-definition of NullPool - + If we don't have visibility, make NullPool static. src/hb-open-type-private.hh | 8 +++++++- @@ -35530,7 +35289,7 @@ Author: Behdad Esfahbod Date: Sun Feb 11 19:01:44 2018 -0600 [subset] Use auto_array_t where it does make sense - + Better fix for https://github.com/harfbuzz/harfbuzz/pull/775 src/hb-subset-plan.cc | 3 +-- @@ -35578,7 +35337,7 @@ Author: Behdad Esfahbod Date: Sat Feb 10 21:50:26 2018 -0600 [gpos] Adjust mark attachment heuristic - + Hopefully it... fixes https://github.com/harfbuzz/harfbuzz/issues/740 @@ -35648,7 +35407,7 @@ Author: Behdad Esfahbod Date: Sat Feb 10 15:40:03 2018 -0600 More fixes - + test-subset-glyf still failing. No idea why :( src/hb-subset.cc | 3 +-- @@ -35660,7 +35419,7 @@ Author: Behdad Esfahbod Date: Sat Feb 10 15:17:28 2018 -0600 Fix more build issues - + Hopefully most bots come back with this... src/check-libstdc++.sh | 5 +++-- @@ -35686,9 +35445,8 @@ Author: Behdad Esfahbod Date: Sat Feb 10 14:20:10 2018 -0600 [subset] Replace auto_array with prealloced_array - - auto_array has constructor/destructor. Cannot be used in POD object, - as the clang + + auto_array has constructor/destructor. Cannot be used in POD object, as the clang bots all noticed... src/hb-ot-cmap-table.hh | 8 ++++---- @@ -35788,9 +35546,9 @@ Author: Behdad Esfahbod Date: Sat Feb 10 12:45:28 2018 -0600 [util] Use setlinebuf() if present - + To work around mysterious bug on OS X. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/727 configure.ac | 6 ++---- @@ -35810,8 +35568,7 @@ commit d18decd2013f24f315dbd3b15cdd80c5a734e7e9 Author: Garret Rieger Date: Fri Feb 9 18:41:21 2018 -0800 - In glyf subsetting add suport for writing out a short loca table - when possible. + In glyf subsetting add suport for writing out a short loca table when possible. src/hb-subset-glyf.cc | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) @@ -35822,8 +35579,7 @@ Date: Fri Feb 9 17:33:34 2018 -0800 First pass at building a cmap - src/hb-ot-cmap-table.hh | 103 - ++++++++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-cmap-table.hh | 103 ++++++++++++++++++++++++++++++++++++++++++++---- src/hb-subset.cc | 37 +++++++++-------- 2 files changed, 115 insertions(+), 25 deletions(-) @@ -35849,8 +35605,7 @@ commit 0089443756cdcef0182e55cf8480b96a64d31cc7 Author: Garret Rieger Date: Fri Feb 9 16:22:09 2018 -0800 - Keep a second set of glyph ids in subset plan which is sorted by - glyph id and always has gid 0 + Keep a second set of glyph ids in subset plan which is sorted by glyph id and always has gid 0 src/hb-subset-glyf.cc | 2 +- src/hb-subset-plan.cc | 34 +++++++++++++++++++++++++--------- @@ -35863,8 +35618,7 @@ Date: Fri Feb 9 16:06:33 2018 -0800 Formatting for hb-subset-plan. - src/hb-subset-plan.cc | 51 - +++++++++++++++++++++++++++------------------------ + src/hb-subset-plan.cc | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) commit 8cef3a61995317d3a5724221108647d7e66fe24a @@ -35872,10 +35626,10 @@ Author: Behdad Esfahbod Date: Fri Feb 9 16:04:23 2018 -0600 Try fixing build with Sun Studio - + Trying to fix: https://circleci.com/gh/harfbuzz/harfbuzz/6635 - + Also part of: https://github.com/harfbuzz/harfbuzz/issues/630 @@ -35886,8 +35640,7 @@ commit 86aa4b3ba7cd075f01614874dae88a771b8c54fd Author: Garret Rieger Date: Fri Feb 9 13:54:43 2018 -0800 - Return empty face on hb_subset failure instead of null. Plus some - minor cleanups for _add_head_and_set_loca_version + Return empty face on hb_subset failure instead of null. Plus some minor cleanups for _add_head_and_set_loca_version src/hb-subset.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) @@ -35915,13 +35668,8 @@ Author: bungeman Date: Thu Feb 1 13:31:25 2018 -0500 Documentation for HB_GLYPH_FLAG_UNSAFE_TO_BREAK. - - HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is - somehow affected by the previous logical glyph (the previous index - in the buffer if ltr and the next index if the buffer is rtl). If - these two glyphs are separated by a break (line or otherwise) then the - underlying text should be re-shaped on both sides up to corresponding - position in the text of some glyph not marked with this flag. + + HB_GLYPH_FLAG_UNSAFE_TO_BREAK means that the glyph with this flag is somehow affected by the previous logical glyph (the previous index in the buffer if ltr and the next index if the buffer is rtl). If these two glyphs are separated by a break (line or otherwise) then the underlying text should be re-shaped on both sides up to corresponding position in the text of some glyph not marked with this flag. src/hb-buffer.h | 6 ++++++ 1 file changed, 6 insertions(+) @@ -35952,16 +35700,14 @@ Date: Fri Feb 9 11:05:17 2018 -0600 [test/text-rendering-tests] Update from upstream - .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 3260 -> - 3252 bytes + .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 3260 -> 3252 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 1cd98d05e07498653ba60a68b6342d1a90429eba Author: Rod Sheeter Date: Thu Feb 8 19:39:57 2018 -0800 - Create the groups for a cmap format12. Does not yet build the - actual table. + Create the groups for a cmap format12. Does not yet build the actual table. src/hb-ot-cmap-table.hh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) @@ -35970,14 +35716,12 @@ commit 59c658c8d53481990fe0efa66422353d0687474b Author: Rod Sheeter Date: Thu Feb 8 19:22:47 2018 -0800 - capture codepoints sorted so we can use them for cmap later. one - day we will have a map + capture codepoints sorted so we can use them for cmap later. one day we will have a map src/hb-ot-cmap-table.hh | 14 --------- src/hb-private.hh | 61 +++++++++++++++++++++++++--------------- src/hb-subset-glyf.cc | 16 +++++------ - src/hb-subset-plan.cc | 75 - ++++++++++++++++++++++++++++++++++--------------- + src/hb-subset-plan.cc | 75 ++++++++++++++++++++++++++++++++++--------------- src/hb-subset-plan.hh | 8 ++++-- src/hb-subset.cc | 29 ++++++++++++------- 6 files changed, 123 insertions(+), 80 deletions(-) @@ -36013,8 +35757,7 @@ commit 5a34114f9685680d4a8cdf85a8ac90172c5620d7 Author: Garret Rieger Date: Thu Feb 8 18:32:24 2018 -0800 - Add an extra entry to the end of the loca table to identify the end - of the last glyph's data. + Add an extra entry to the end of the loca table to identify the end of the last glyph's data. src/hb-subset-glyf.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) @@ -36026,8 +35769,7 @@ Date: Thu Feb 8 18:18:16 2018 -0800 Apply per table subsetting while building the new face in hb_subset. src/hb-subset-glyf.cc | 1 + - src/hb-subset.cc | 105 - ++++++++++++++++++++++++++++++-------------------- + src/hb-subset.cc | 105 ++++++++++++++++++++++++++++++-------------------- 2 files changed, 65 insertions(+), 41 deletions(-) commit 3e81832432a1cae0dc28242bb6ff279753effd27 @@ -36093,8 +35835,7 @@ commit 42234424a0fc43d298be082b4c7b1e288e94bbb6 Author: Garret Rieger Date: Thu Feb 8 15:11:15 2018 -0800 - Fix include gaurds and include order in hb-subset-glyf and - hb-subset-plan + Fix include gaurds and include order in hb-subset-glyf and hb-subset-plan src/hb-subset-glyf.hh | 6 ++++-- src/hb-subset-plan.cc | 2 +- @@ -36133,9 +35874,7 @@ commit f9420d9effcfb3464d4b99e54decb3d90e4a410d Author: Garret Rieger Date: Thu Feb 8 11:30:36 2018 -0800 - In the hb-subset to fontTools comparison, use ttx to compare the - fonts. This allows for some binary differences such as re-ordered - tables. + In the hb-subset to fontTools comparison, use ttx to compare the fonts. This allows for some binary differences such as re-ordered tables. test/subset/run-tests.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) @@ -36146,8 +35885,7 @@ Date: Wed Feb 7 19:01:21 2018 -0800 Implement basic loca (long version only) subsetting. - src/hb-subset-glyf.cc | 66 - +++++++++++++++++++++++++++++++++++---------------- + src/hb-subset-glyf.cc | 66 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 20 deletions(-) commit f9c665fed1347f7af6d36ba129f9d174f4ac54dc @@ -36165,8 +35903,7 @@ commit f2ceb5ee4d745e0e6e754f0b0ea16b29dbedbf1b Author: Garret Rieger Date: Wed Feb 7 16:47:31 2018 -0800 - Comment out failing assert in test-subset-glyf for now. Should be - re-enabled once hb_subset is writing out a new face. + Comment out failing assert in test-subset-glyf for now. Should be re-enabled once hb_subset is writing out a new face. test/api/test-subset-glyf.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) @@ -36180,8 +35917,7 @@ Date: Wed Feb 7 16:32:56 2018 -0800 test/api/Makefile.am | 4 + test/api/fonts/Roboto-Regular.abc.ttf | Bin 0 -> 2460 bytes test/api/fonts/Roboto-Regular.ac.ttf | Bin 0 -> 2268 bytes - test/api/test-subset-glyf.c | 134 - ++++++++++++++++++++++++++++++++++ + test/api/test-subset-glyf.c | 134 ++++++++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+) commit 217ed5e3c885532fa8b332cc0d0f9cb4eef32e2b @@ -36208,8 +35944,7 @@ commit 0859a006695097c2a66a07284f3cc5b8de8edb05 Author: Rod Sheeter Date: Wed Feb 7 15:59:36 2018 -0800 - sketch a subset and call it for cmap. Add subset to cmap, albeit - not working even for the msot basic case just yet + sketch a subset and call it for cmap. Add subset to cmap, albeit not working even for the msot basic case just yet src/hb-ot-cmap-table.hh | 18 ++++++++++++++++-- src/hb-subset.cc | 30 ++++++++++++++++++++++++++++++ @@ -36220,7 +35955,7 @@ Author: Behdad Esfahbod Date: Thu Feb 8 17:22:07 2018 -0600 Fix overflow in space fallback shaping - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=657466 src/hb-ot-shape-fallback.cc | 2 +- @@ -36231,7 +35966,7 @@ Author: Behdad Esfahbod Date: Thu Feb 8 17:14:52 2018 -0600 Avoid undefined-behavior in fallback mark positioning - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5584 src/hb-ot-shape-fallback.cc | 11 ++++++----- @@ -36274,10 +36009,8 @@ Date: Thu Feb 8 14:10:01 2018 -0600 test/shaping/data/text-rendering-tests/DISABLED | 2 ++ test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++ - .../text-rendering-tests/fonts/TestMORXTwentyfive.ttf | Bin 0 -> - 3260 bytes - .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 0 -> - 3260 bytes + .../text-rendering-tests/fonts/TestMORXTwentyfive.ttf | Bin 0 -> 3260 bytes + .../text-rendering-tests/fonts/TestMORXTwentysix.ttf | Bin 0 -> 3260 bytes .../data/text-rendering-tests/tests/MORX-25.tests | 9 +++++++++ .../data/text-rendering-tests/tests/MORX-26.tests | 2 ++ 6 files changed, 15 insertions(+) @@ -36334,14 +36067,12 @@ Date: Wed Feb 7 21:13:10 2018 -0600 [subset] Assemble font - src/hb-open-file-private.hh | 50 - +++++++++++++++++++++++++++++++++++++++++++- + src/hb-open-file-private.hh | 50 +++++++++++++++++++++++++++++++++++++++++++- src/hb-open-type-private.hh | 33 +++++++++++++++++++++++------ src/hb-ot-map-private.hh | 10 ++++----- src/hb-private.hh | 20 +++++++++++------- src/hb-set-private.hh | 8 +++---- - src/hb-subset.cc | 51 - +++++++++++++++++++++++++++++++++++++++------ + src/hb-subset.cc | 51 +++++++++++++++++++++++++++++++++++++++------ test/api/test-subset.c | 9 ++++++-- 7 files changed, 150 insertions(+), 31 deletions(-) @@ -36350,7 +36081,7 @@ Author: Behdad Esfahbod Date: Wed Feb 7 18:07:45 2018 -0600 [set] Respect stride - + Ouch! src/hb-set-private.hh | 4 ++-- @@ -36379,9 +36110,8 @@ Author: Behdad Esfahbod Date: Wed Feb 7 16:44:52 2018 -0600 [subset] Create new face and copy all tables to it - - test-subset fails now because subset-face does not know how to - compile itself. + + test-subset fails now because subset-face does not know how to compile itself. src/hb-subset.cc | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) @@ -36392,8 +36122,7 @@ Date: Wed Feb 7 13:28:11 2018 -0800 Refactor subset glyf to remove multiple calls to glyf.fini() - src/hb-subset-glyf.cc | 52 - +++++++++++++++++++++++++++++---------------------- + src/hb-subset-glyf.cc | 52 +++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 22 deletions(-) commit 0a5d1440f829f07454592adde9dd3aa93ad74442 @@ -36402,8 +36131,7 @@ Date: Wed Feb 7 13:09:54 2018 -0800 Add implementation of glyf subsetting. - src/hb-subset-glyf.cc | 81 - +++++++++++++++++++++++++++++++++++++++++++++++---- + src/hb-subset-glyf.cc | 81 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 5 deletions(-) commit 05d65baa1bb64664ba838993fd35f3899d52eb8d @@ -36420,7 +36148,7 @@ Author: Behdad Esfahbod Date: Wed Feb 7 14:09:56 2018 -0600 Fix two undefined-behavior issues - + Fixes https://github.com/harfbuzz/harfbuzz/issues/761 Fixes https://github.com/harfbuzz/harfbuzz/issues/762 @@ -36453,13 +36181,12 @@ Author: Behdad Esfahbod Date: Wed Feb 7 13:47:35 2018 -0500 [subset] Add hb_subset_face - + It's a hb_face_t that has add_table() and in the future knows how to compile itself into a font blob. src/hb-private.hh | 9 ++++++ - src/hb-subset.cc | 88 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset.cc | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) commit af02812fc51812a7e2265a1100bbca1a5bf8af45 @@ -36471,8 +36198,7 @@ Date: Wed Feb 7 13:07:46 2018 -0500 src/hb-subset-plan.cc | 12 ++++++++--- src/hb-subset-plan.hh | 2 +- src/hb-subset-private.hh | 10 ---------- - src/hb-subset.cc | 52 - ++++++++---------------------------------------- + src/hb-subset.cc | 52 ++++++++---------------------------------------- src/hb-subset.h | 25 ++++++----------------- test/api/test-subset.c | 9 +++++---- util/hb-subset.cc | 12 ++++++----- @@ -36483,10 +36209,9 @@ Author: Behdad Esfahbod Date: Wed Feb 7 12:44:35 2018 -0500 Remove NullPool visibility hack - + We keep a separate private NullPool in libharfbuzz-subset.so - This can fire back later since now there are two separate null - objects, + This can fire back later since now there are two separate null objects, and comparisons to the null pool can be confused. Something to deal with when it comes up. Ouch! @@ -36498,8 +36223,7 @@ commit b95aa204ee284c47e63dc1e34b3c5b4bdf9e7ab7 Author: Rod Sheeter Date: Wed Feb 7 09:37:06 2018 -0800 - glyph ids to retain should most likely keep the glyph id not the - codepoint + glyph ids to retain should most likely keep the glyph id not the codepoint src/hb-subset-plan.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -36577,8 +36301,7 @@ commit d0ce3c66e2af2785203f7bbb1d4abca5c226045d Author: Rod Sheeter Date: Tue Feb 6 16:58:35 2018 -0800 - Resolve codepoints:glyph ids. Does not compile; undefined reference - to OT::_hb_NullPool + Resolve codepoints:glyph ids. Does not compile; undefined reference to OT::_hb_NullPool src/hb-subset-plan.cc | 25 +++++++++++++++++++------ src/hb-subset-plan.hh | 2 +- @@ -36623,8 +36346,7 @@ Date: Mon Feb 5 17:26:25 2018 -0800 Make hb-subset-plan private. src/Makefile.sources | 2 +- - src/hb-subset-plan.cc | 27 - ++++++++++++++++----------- + src/hb-subset-plan.cc | 27 ++++++++++++++++----------- src/{hb-subset-plan.h => hb-subset-plan.hh} | 22 +++++++++++++--------- 3 files changed, 30 insertions(+), 21 deletions(-) @@ -36659,8 +36381,7 @@ Date: Mon Feb 5 15:22:30 2018 -0800 Add a basic sketch of hb-subset-plan. src/Makefile.sources | 2 ++ - src/hb-subset-plan.cc | 72 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset-plan.cc | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset-plan.h | 49 +++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+) @@ -36679,7 +36400,7 @@ Author: Ebrahim Byagowi Date: Tue Feb 6 20:40:42 2018 +0330 [test] Fix test-subset on old distros (#758) - + https://developer.gnome.org/glib/stable/glib-Testing.html#g-assert-cmpmem test/api/test-subset.c | 4 ++++ @@ -36690,7 +36411,7 @@ Author: Behdad Esfahbod Date: Tue Feb 6 11:48:04 2018 -0500 [aat] Adjust unsafe-to-break logic some more - + I believe I'm happy with it now. src/hb-aat-layout-common-private.hh | 8 ++++---- @@ -36710,7 +36431,7 @@ Author: Behdad Esfahbod Date: Tue Feb 6 10:20:48 2018 -0500 [buffer] Tweak diff re glyph_flags again - + We expect the buffer to have no flags that the reference doesn't... Meh. Makes MORX tests pass now. Need to better define the behavior. @@ -36740,7 +36461,7 @@ Author: Behdad Esfahbod Date: Mon Feb 5 19:51:09 2018 -0500 Fix fallthrough compiler warning with gcc >= 7 - + Fixes https://github.com/harfbuzz/harfbuzz/issues/755 src/hb-private.hh | 3 +++ @@ -36770,7 +36491,7 @@ Author: Garret Rieger Date: Mon Feb 5 15:35:13 2018 -0800 Merge pull request #754 from googlefonts/master - + Fix build for subsetting code. commit 2ea228935d41b55fed45b7423b69bc15b42e3abc @@ -36786,8 +36507,7 @@ commit c25898eb54217e2a1c681233a6b9adcd7940652e Author: Garret Rieger Date: Mon Feb 5 14:35:32 2018 -0800 - Switch to fopen() instead of open() in subset test. open wasn't - compiling on windows. + Switch to fopen() instead of open() in subset test. open wasn't compiling on windows. util/hb-subset.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) @@ -36796,8 +36516,7 @@ commit fc04f11ce1999da042a39c5b271351223033292f Author: Garret Rieger Date: Mon Feb 5 11:12:33 2018 -0800 - Rename HB_SUBSET_sources -> HB_SUBSET_CLI_sources to match what - cmake is looking for. + Rename HB_SUBSET_sources -> HB_SUBSET_CLI_sources to match what cmake is looking for. util/Makefile.am | 3 +-- util/Makefile.sources | 2 +- @@ -36849,9 +36568,8 @@ Author: Behdad Esfahbod Date: Sun Feb 4 20:01:35 2018 -0500 Merge pull request #745 from googlefonts/master - - Interface for hb_subset, skeleton for the hb-subset cli, and basic - testing rigging. + + Interface for hb_subset, skeleton for the hb-subset cli, and basic testing rigging. commit 3615f344ec00059972d8ce75522022b5294764a7 Author: Behdad Esfahbod @@ -36861,8 +36579,7 @@ Date: Sun Feb 4 17:19:58 2018 -0500 test/shaping/data/text-rendering-tests/DISABLED | 1 + test/shaping/data/text-rendering-tests/Makefile.sources | 3 ++- - .../text-rendering-tests/fonts/TestMORXTwentythree.ttf | Bin 0 -> - 1836 bytes + .../text-rendering-tests/fonts/TestMORXTwentythree.ttf | Bin 0 -> 1836 bytes .../data/text-rendering-tests/tests/MORX-23.tests | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) @@ -36871,21 +36588,20 @@ Author: Behdad Esfahbod Date: Sun Feb 4 14:58:02 2018 -0500 [aat] Fix unsafe-to-break - + At any position, if state is not zero, mark unsafe-to-break before, unless we can reason it safe. - + At any position, if there's an action entry for end-of-text, mark unsafe to break. - + Also changes buffer diff impl to allow for flag differences as long as the buffer glyph flags are superset of reference glyph flags. - + With this, all MORX tests pass. src/hb-aat-layout-common-private.hh | 31 +++++++++++++++++++++++++------ - src/hb-aat-layout-morx-table.hh | 35 - +++++++++++++++++++++++------------ + src/hb-aat-layout-morx-table.hh | 35 +++++++++++++++++++++++------------ src/hb-buffer.cc | 2 +- 3 files changed, 49 insertions(+), 19 deletions(-) @@ -36895,8 +36611,7 @@ Date: Sun Feb 4 12:31:24 2018 -0800 Actually call hb_subset - util/hb-subset.cc | 51 - ++++++++++++++++++++++++++++++++++----------------- + util/hb-subset.cc | 51 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 17 deletions(-) commit 7b01761adef6f64f1139b30c985aa5f52314073a @@ -36948,8 +36663,7 @@ Date: Thu Feb 1 18:22:14 2018 -0800 test/subset/run-tests.py | 15 +++--- util/Makefile.sources | 3 ++ - util/hb-subset.cc | 131 - +++++++++++++++++++++++++---------------------- + util/hb-subset.cc | 131 +++++++++++++++++++++++++---------------------- 3 files changed, 82 insertions(+), 67 deletions(-) commit ede84ffa426edb950c4ec4f89833c85475a1c64f @@ -37011,11 +36725,9 @@ commit a2965f2ea5428c19be54f998ef9152c5ff6975ea Author: Garret Rieger Date: Wed Jan 31 14:53:09 2018 -0800 - Add a basic implementation of hb-subset to enable compilation of - test-subset. + Add a basic implementation of hb-subset to enable compilation of test-subset. - src/hb-subset.cc | 146 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset.cc | 146 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-subset.h | 5 +- test/api/Makefile.am | 1 + test/api/test-subset.c | 12 ++-- @@ -37025,11 +36737,9 @@ commit 38af23b8df1a84f24d379d27d1a1e20f9ce07f34 Author: Garret Rieger Date: Wed Jan 31 11:32:23 2018 -0800 - Make the expected output for subsetting basics test be equal to the - input file for now. + Make the expected output for subsetting basics test be equal to the input file for now. - .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1996 -> - 2460 bytes + .../expected/basics/Roboto-Regular.abc.default.62.ttf | Bin 1996 -> 2460 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit b59c08eb045db2b6c952de81510b8159a4f72fb1 @@ -37038,20 +36748,17 @@ Date: Wed Jan 31 11:14:53 2018 -0800 Add the beginning of a unit test for hb-subset - test/api/test-subset.c | 67 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-subset.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) commit e9d154ac8ddd2712a34c53c95a17e469f95e5b30 Author: Rod Sheeter Date: Tue Jan 30 19:27:11 2018 -0800 - tweak test failure output. write to a temp file not stdout. test - still fails because expected is not just an identical copy of input + tweak test failure output. write to a temp file not stdout. test still fails because expected is not just an identical copy of input test/subset/run-tests.py | 41 +++++++++++++++++++++++++++---------- - util/hb-subset.cc | 53 - +++++++++++++++++++++++++++++++++--------------- + util/hb-subset.cc | 53 +++++++++++++++++++++++++++++++++--------------- 2 files changed, 67 insertions(+), 27 deletions(-) commit cf403e1a53381f293aceac5cdbe031bbb2a7af77 @@ -37110,16 +36817,14 @@ Date: Fri Jan 26 16:57:42 2018 -0800 WIP test runner for subset tests. - test/subset/run-tests.py | 64 - ++++++++++++++++++++++++++++++++++++++++++++++++ + test/subset/run-tests.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) commit cc46cd88a1b84b02694fa6d88c4286e93336f096 Author: Garret Rieger Date: Fri Jan 26 14:25:39 2018 -0800 - In generate-expected-outputs read the test definition with utf8 - encoding. + In generate-expected-outputs read the test definition with utf8 encoding. test/subset/generate-expected-outputs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) @@ -37128,16 +36833,14 @@ commit 4cdae914e2e2fff1ff91e2f42648a8acb82a5494 Author: Garret Rieger Date: Fri Jan 26 13:57:48 2018 -0800 - Add basic directory structure for subsetter integration tests. Plus - a utility for generating expected output files. + Add basic directory structure for subsetter integration tests. Plus a utility for generating expected output files. .../basics/Roboto-Regular.abc.default.62.ttf | Bin 0 -> 1996 bytes test/subset/data/fonts/Roboto-Regular.abc.ttf | Bin 0 -> 2460 bytes test/subset/data/profiles/default.txt | 0 test/subset/data/tests/basics.txt | 8 ++ test/subset/generate-expected-outputs.py | 40 ++++++++++ - test/subset/subset_test_suite.py | 82 - +++++++++++++++++++++ + test/subset/subset_test_suite.py | 82 +++++++++++++++++++++ 6 files changed, 130 insertions(+) commit 9ccb8366f603a9e4a7a3c3f96420a19d4f6fb390 @@ -37149,8 +36852,7 @@ Date: Wed Jan 17 22:09:07 2018 -0800 src/Makefile.am | 2 ++ src/Makefile.sources | 4 +++ src/hb-subset.cc | 0 - src/hb-subset.h | 88 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-subset.h | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++ util/Makefile.am | 3 ++ util/Makefile.sources | 4 +++ util/hb-subset.cc | 61 +++++++++++++++++++++++++++++++++++ @@ -37161,9 +36863,9 @@ Author: Behdad Esfahbod Date: Sun Feb 4 14:45:02 2018 -0500 [aat] More adjustment to ContextualSubtable - + See comment. - + With this, MORX-20 passes if I turn --verify off. Our unsafe-to-break logic is currently broken in presence of end-of-text actions. That's, ugh, extra work to fix. Let me try... @@ -37194,7 +36896,7 @@ Author: Behdad Esfahbod Date: Sun Feb 4 12:38:18 2018 -0500 [configure] Fix wording - + Fixes https://github.com/harfbuzz/harfbuzz/issues/741 configure.ac | 4 ++-- @@ -37205,7 +36907,7 @@ Author: Behdad Esfahbod Date: Fri Feb 2 16:08:50 2018 -0500 [aat] In ContextualSubtable, mark mark after substituting mark - + Fixes MORX-21. src/hb-aat-layout-morx-table.hh | 16 ++++++++-------- @@ -37216,7 +36918,7 @@ Author: Behdad Esfahbod Date: Fri Feb 2 15:53:25 2018 -0500 [aat] Fix ContextualSubtable sanitization - + Fixes MORX-18, MORX-19, and MORX-22. src/hb-aat-layout-morx-table.hh | 6 ++++-- @@ -37227,11 +36929,10 @@ Author: Khaled Hosny Date: Sun Feb 4 12:05:12 2018 +0200 Correctly show documentation build status - - Correctly show if building documentation is enabled or not in - configure + + Correctly show if building documentation is enabled or not in configure summary. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/741 configure.ac | 2 +- @@ -37242,7 +36943,7 @@ Author: Bruce Mitchener Date: Sun Feb 4 01:26:57 2018 +0700 Enable use of atexit() on macOS and related platforms. - + The atexit() man page indicates that this is expected to behave in the expected way on unloading of shared libraries. @@ -37279,8 +36980,7 @@ Date: Fri Feb 2 12:04:04 2018 -0500 src/hb-ot-shape-complex-myanmar.cc | 5 +++++ test/shaping/README.md | 10 +++++----- test/shaping/data/in-house/Makefile.sources | 1 + - .../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf | Bin 0 -> - 1536 bytes + .../fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf | Bin 0 -> 1536 bytes test/shaping/data/in-house/tests/myanmar-syllable.tests | 1 + 6 files changed, 13 insertions(+), 6 deletions(-) @@ -37324,7 +37024,7 @@ Author: Bruce Mitchener Date: Wed Jan 31 22:24:51 2018 +0700 [ot-layout] Fix nullptr dereference. - + If the `calloc` for `gsub_accels` or `gpos_accels` fails, then the unlikely branch afterwards can be taken, which frees up the `hb_ot_layout_t`, but since those fields can now be `nullptr`, then @@ -37338,10 +37038,10 @@ Author: Bruce Mitchener Date: Wed Jan 31 20:24:27 2018 +0700 [coretext] Fix memory leaks. - + In `reference_table`, if the data is empty and we return early, we still need to release the data object. - + In `hb_coretext_shape`, there two edge cases where an early return should release the attributed string. @@ -37373,14 +37073,13 @@ Author: Behdad Esfahbod Date: Tue Jan 30 10:58:44 2018 -0800 [aat] Limit number of DontAdvance transitions - + Remove the faulty loop-detection logic. Use max-ops for breaking out of infinite loops or heavy work. - + https://twitter.com/behdadesfahbod/status/958065026262183936 - src/hb-aat-layout-common-private.hh | 33 - ++------------------------------- + src/hb-aat-layout-common-private.hh | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) commit e00743b47d25a2487b7f232a514a042e2962a089 @@ -37391,18 +37090,12 @@ Date: Mon Jan 29 10:07:05 2018 -0800 test/shaping/data/text-rendering-tests/DISABLED | 7 +++++++ test/shaping/data/text-rendering-tests/Makefile.sources | 7 +++++++ - .../data/text-rendering-tests/fonts/TestMORXEighteen.ttf | Bin 0 -> - 3256 bytes - .../text-rendering-tests/fonts/TestMORXSeventeen.ttf | Bin 0 -> - 1788 bytes - .../data/text-rendering-tests/fonts/TestMORXSixteen.ttf | Bin 0 -> - 1812 bytes - .../data/text-rendering-tests/fonts/TestMORXTwenty.ttf | Bin 0 -> - 3232 bytes - .../text-rendering-tests/fonts/TestMORXTwentyone.ttf | Bin 0 -> - 3244 bytes - .../text-rendering-tests/fonts/TestMORXTwentytwo.ttf | Bin 0 -> - 3256 bytes + .../data/text-rendering-tests/fonts/TestMORXEighteen.ttf | Bin 0 -> 3256 bytes + .../text-rendering-tests/fonts/TestMORXSeventeen.ttf | Bin 0 -> 1788 bytes + .../data/text-rendering-tests/fonts/TestMORXSixteen.ttf | Bin 0 -> 1812 bytes + .../data/text-rendering-tests/fonts/TestMORXTwenty.ttf | Bin 0 -> 3232 bytes + .../text-rendering-tests/fonts/TestMORXTwentyone.ttf | Bin 0 -> 3244 bytes + .../text-rendering-tests/fonts/TestMORXTwentytwo.ttf | Bin 0 -> 3256 bytes .../data/text-rendering-tests/tests/MORX-14.tests | 1 + .../data/text-rendering-tests/tests/MORX-16.tests | 1 + .../data/text-rendering-tests/tests/MORX-17.tests | 1 + @@ -37446,7 +37139,7 @@ Author: Behdad Esfahbod Date: Fri Jan 26 18:14:05 2018 -0800 Misc warning fixes - + Fixes https://github.com/harfbuzz/harfbuzz/issues/712 src/hb-ot-layout-gsubgpos-private.hh | 9 ++++----- @@ -37459,9 +37152,9 @@ Author: bungeman Date: Fri Jan 26 13:38:06 2018 -0500 Use KernSubTableFormat2::rightClassTable - + Issue originally reported at http://cppfiles.com/chromium.txt . - + This fixes what appears to be a copy - paste issue which causes both KernSubTableFormat2::rightClassTable and the 'right' argument to KernSubTableFormat2::get_kerning to go unused. @@ -37533,9 +37226,8 @@ Author: Behdad Esfahbod Date: Fri Jan 19 18:36:39 2018 -0800 [aat] Fix Ligature matching - - I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it - correctly though... + + I hope... Makes "ffi" work with Zapfino. I'm not sure if doing it correctly though... src/hb-aat-layout-morx-table.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -37554,12 +37246,11 @@ Author: Behdad Esfahbod Date: Fri Jan 19 18:08:56 2018 -0800 [aat] Implement LigatureSubtable - + We form the Zapfino ligature now. Yay! No further testing done. src/hb-aat-layout-common-private.hh | 25 ++++++--- - src/hb-aat-layout-morx-table.hh | 108 - +++++++++++++++++++++++++++++++++--- + src/hb-aat-layout-morx-table.hh | 108 +++++++++++++++++++++++++++++++++--- 2 files changed, 115 insertions(+), 18 deletions(-) commit f07ce661a2056965c573c99bdb721c065563ea7b @@ -37567,7 +37258,7 @@ Author: Behdad Esfahbod Date: Fri Jan 19 16:52:01 2018 -0800 [aat] Embed a sanitizer context in hb_aat_apply_context_t - + For run-time checking. src/hb-aat-layout-common-private.hh | 22 ++++++++++++++++------ @@ -37598,8 +37289,7 @@ Date: Wed Jan 17 16:46:51 2018 -0800 src/hb-aat-layout.cc | 2 +- src/hb-ot-layout-gpos-table.hh | 48 ++++++++++++------------- src/hb-ot-layout-gsub-table.hh | 24 ++++++------- - src/hb-ot-layout-gsubgpos-private.hh | 58 - +++++++++++++++--------------- + src/hb-ot-layout-gsubgpos-private.hh | 58 +++++++++++++++--------------- src/hb-ot-layout-private.hh | 4 +-- src/hb-ot-layout.cc | 16 ++++----- src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- @@ -37631,13 +37321,13 @@ Author: Cosimo Lupo Date: Thu Jan 18 22:49:40 2018 +0100 hb-common.cc: Hatran script is right-to-left (#714) - + "Hatran is written from right to left horizontally" - + http://www.unicode.org/L2/L2012/12312-n4324-hatran.pdf - + This ancient script was added with Unicode 8.0. - + Also this spreadsheet (referenced in an inline comment in the source code) has it as RTL: http://goo.gl/x9ilM @@ -37648,8 +37338,7 @@ commit 00806149b9b591e4ec15996d3d56bdbd60687821 Author: Ebrahim Byagowi Date: Fri Jan 19 01:12:31 2018 +0330 - Improve avoiding C++ linkage, definition creation and cmake tests - (#710) + Improve avoiding C++ linkage, definition creation and cmake tests (#710) .circleci/config.yml | 4 ++-- CMakeLists.txt | 46 ++++++++++++++++++++++++++-------------------- @@ -37683,7 +37372,7 @@ Author: Behdad Esfahbod Date: Wed Jan 17 09:47:50 2018 -0800 Typo - + Fixes https://github.com/harfbuzz/harfbuzz/issues/711 util/options.cc | 2 +- @@ -37722,7 +37411,7 @@ Author: Behdad Esfahbod Date: Mon Jan 15 20:46:58 2018 -0500 Disable MORX-13/14 - + Really, need better way to catch these :(. test/shaping/data/text-rendering-tests/DISABLED | 2 ++ @@ -37734,7 +37423,7 @@ Author: Behdad Esfahbod Date: Mon Jan 15 20:44:10 2018 -0500 Disallow sanitize recursing into Extension subtables multiple times - + Fixes https://oss-fuzz.com/v2/testcase-detail/5216838347653120 which is a stack overflow, not by way of infinite recursion, just being deep. That's disallowed anyway, so catch it as it happens, @@ -37779,8 +37468,7 @@ Date: Sun Jan 14 15:03:31 2018 -0500 [aat] Towards implementing LigatureSubtable - src/hb-aat-layout-morx-table.hh | 61 - +++++++++++++++++++++++++++++++++++++++-- + src/hb-aat-layout-morx-table.hh | 61 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 58 insertions(+), 3 deletions(-) commit c9e12a2b9b34d73d37def2261a5c1a7ef20b8349 @@ -37799,10 +37487,8 @@ Date: Sat Jan 13 14:44:39 2018 +0000 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++ - .../data/text-rendering-tests/fonts/TestMORXFourteen.ttf | Bin 0 -> - 1816 bytes - .../data/text-rendering-tests/fonts/TestMORXThirteen.ttf | Bin 0 -> - 1820 bytes + .../data/text-rendering-tests/fonts/TestMORXFourteen.ttf | Bin 0 -> 1816 bytes + .../data/text-rendering-tests/fonts/TestMORXThirteen.ttf | Bin 0 -> 1820 bytes .../data/text-rendering-tests/tests/MORX-13.tests | 1 + .../data/text-rendering-tests/tests/MORX-14.tests | 1 + 5 files changed, 4 insertions(+) @@ -37812,9 +37498,8 @@ Author: Behdad Esfahbod Date: Fri Jan 12 12:04:53 2018 +0100 [aat] Fix some struct sizes - - I hate it that with my compiler at least, it doesn't catch totally - uncompilable + + I hate it that with my compiler at least, it doesn't catch totally uncompilable statements in templates if they are not used... src/hb-aat-layout-common-private.hh | 2 +- @@ -37845,7 +37530,7 @@ Author: Behdad Esfahbod Date: Fri Jan 12 11:31:20 2018 +0100 [aat] Fix symbol visibility - + Not sure why only one of the bots sees this as visible... src/hb-aat-layout-morx-table.hh | 2 +- @@ -37885,8 +37570,7 @@ Date: Fri Jan 12 11:09:21 2018 +0100 [aat] Detect infinite-loops in state machine - src/hb-aat-layout-common-private.hh | 36 - +++++++++++++++++++++++++++++------- + src/hb-aat-layout-common-private.hh | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) commit d514f1480cffb81850ef212155c66ee9e0383350 @@ -37921,7 +37605,7 @@ Author: Behdad Esfahbod Date: Fri Jan 12 09:46:38 2018 +0100 Disable C++11 - + To better catch errors locally. configure.ac | 2 +- @@ -37932,9 +37616,8 @@ Author: Behdad Esfahbod Date: Fri Jan 12 09:45:42 2018 +0100 [aat] Fix more builds - - Maybe I should disable C++11 detection such that my compiler also - catches + + Maybe I should disable C++11 detection such that my compiler also catches these. Doesn't look like we can switch to it for a while anyway... src/hb-aat-layout-common-private.hh | 2 +- @@ -37955,7 +37638,7 @@ Author: Ting-Wei Lan Date: Fri Jan 12 15:33:16 2018 +0800 Update _POSIX_C_SOURCE to the latest version - + Defining _POSIX_C_SOURCE to an old version on FreeBSD can cause C99 to be disabled in libc. @@ -37968,8 +37651,7 @@ Date: Fri Jan 12 00:08:22 2018 +0100 [aat] Port RearrangementSubtable to StateTableDriver - src/hb-aat-layout-morx-table.hh | 91 - ++++++++++++++++++++--------------------- + src/hb-aat-layout-morx-table.hh | 91 ++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 47 deletions(-) commit 117cfe7bb7cef682eb151b94f1eb12363ba3af67 @@ -37979,8 +37661,7 @@ Date: Fri Jan 12 00:01:36 2018 +0100 [aat] Add StateTableDriver and convert ContextualSubtable to it src/hb-aat-layout-common-private.hh | 51 ++++++++++++++++++++ - src/hb-aat-layout-morx-table.hh | 93 - ++++++++++++++++++------------------- + src/hb-aat-layout-morx-table.hh | 93 ++++++++++++++++++------------------- 2 files changed, 95 insertions(+), 49 deletions(-) commit 0d39ac224c680b1f0134b58e78391497fbe47370 @@ -37997,7 +37678,7 @@ Author: Behdad Esfahbod Date: Thu Jan 11 22:46:19 2018 +0100 [test] Disable MORX-12 - + Ouch. I need a better workflow for this. test/shaping/data/text-rendering-tests/Makefile.sources | 1 - @@ -38008,12 +37689,11 @@ Author: Behdad Esfahbod Date: Thu Jan 11 22:43:57 2018 +0100 [aat] Remove 'mort' support - + It's dead, Jim! src/hb-aat-layout-common-private.hh | 55 +++++----------- - src/hb-aat-layout-morx-table.hh | 122 - ++++++++++-------------------------- + src/hb-aat-layout-morx-table.hh | 122 ++++++++++-------------------------- 2 files changed, 46 insertions(+), 131 deletions(-) commit 7e2fed6d73f89986e5777028cdcd24e3baf2f86c @@ -38021,10 +37701,10 @@ Author: Behdad Esfahbod Date: Thu Jan 11 19:25:21 2018 +0100 [aat] Allow DontAdvance - + Apparently CoreText does allow these. To be done: detect infinite loops. - + Fixes MORX-12 test. src/hb-aat-layout-morx-table.hh | 4 ++-- @@ -38038,8 +37718,7 @@ Date: Thu Jan 11 19:22:37 2018 +0100 test/shaping/data/text-rendering-tests/DISABLED | 1 + test/shaping/data/text-rendering-tests/Makefile.sources | 2 ++ - .../data/text-rendering-tests/fonts/TestMORXTwelve.ttf | Bin 0 -> - 2200 bytes + .../data/text-rendering-tests/fonts/TestMORXTwelve.ttf | Bin 0 -> 2200 bytes .../data/text-rendering-tests/tests/MORX-12.tests | 3 +++ 4 files changed, 6 insertions(+) @@ -38050,8 +37729,7 @@ Date: Thu Jan 11 18:54:49 2018 +0100 [aat] Sanitize ContextualSubtable src/hb-aat-layout-common-private.hh | 23 +++++++++++++++++++---- - src/hb-aat-layout-morx-table.hh | 34 - ++++++++++++++++++++++++---------- + src/hb-aat-layout-morx-table.hh | 34 ++++++++++++++++++++++++---------- 2 files changed, 43 insertions(+), 14 deletions(-) commit 9b82aa19d812e70b7fade4b7669a9ce27855951e @@ -38069,8 +37747,7 @@ Date: Thu Jan 11 18:15:53 2018 +0100 [aat] Sanitize StateTable - src/hb-aat-layout-common-private.hh | 43 - ++++++++++++++++++++++++++++++++++--- + src/hb-aat-layout-common-private.hh | 43 ++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) commit 0e3b3379a04a67a22e44e17d6bf849359f4fca68 @@ -38096,7 +37773,7 @@ Author: Behdad Esfahbod Date: Thu Jan 11 17:57:46 2018 +0100 [buffer] Fix compiler warnings - + line 323: Warning: info hides hb_buffer_t::info ... @@ -38108,14 +37785,12 @@ Author: Behdad Esfahbod Date: Thu Jan 11 17:41:34 2018 +0100 [aat] Make bots happy - - Don't know why this is not caught by my compiler. Looks like clang - catches it + + Don't know why this is not caught by my compiler. Looks like clang catches it while gcc doesn't. - + In file included from ../src/hb-aat-layout-morx-table.hh:31: - ../src/hb-aat-layout-common-private.hh:523:30: error: no member named - 'static_size' in 'AAT::ContextualSubtable::EntryData' + ../src/hb-aat-layout-common-private.hh:523:30: error: no member named 'static_size' in 'AAT::ContextualSubtable::EntryData' DEFINE_SIZE_STATIC (4 + T::static_size); ~~~^ @@ -38126,9 +37801,8 @@ commit f6be730994434e706cc27d68b796492d876e82b6 Author: Behdad Esfahbod Date: Thu Jan 11 15:23:24 2018 +0100 - [aat] In NoncontextualSubtable, handle MarkLast with end-of-line - transition - + [aat] In NoncontextualSubtable, handle MarkLast with end-of-line transition + Fixes MORX-11 test. src/hb-aat-layout-morx-table.hh | 4 ++-- @@ -38142,8 +37816,7 @@ Date: Thu Jan 11 15:18:22 2018 +0100 test/shaping/data/text-rendering-tests/DISABLED | 3 ++- test/shaping/data/text-rendering-tests/Makefile.sources | 3 ++- - .../data/text-rendering-tests/fonts/TestMORXEleven.ttf | Bin 0 -> - 1624 bytes + .../data/text-rendering-tests/fonts/TestMORXEleven.ttf | Bin 0 -> 1624 bytes .../data/text-rendering-tests/tests/MORX-11.tests | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) @@ -38152,11 +37825,10 @@ Author: Behdad Esfahbod Date: Thu Jan 11 15:15:07 2018 +0100 [aat] Implement ContextualSubtable - + Tested with Zapfino and text "2nd". Sascha will create tests later. - src/hb-aat-layout-morx-table.hh | 70 - ++++++++++++++++++++++++++++++++++++++--- + src/hb-aat-layout-morx-table.hh | 70 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) commit 335a9c1fe489db53549801b4996dd0f6f5eded62 @@ -38166,8 +37838,7 @@ Date: Thu Jan 11 14:50:47 2018 +0100 [aat] Towards implementing ContextualSubtable src/hb-aat-layout-common-private.hh | 58 ++++++++++++++++++++++-- - src/hb-aat-layout-morx-table.hh | 88 - ++++++++++++++++++++++++++----------- + src/hb-aat-layout-morx-table.hh | 88 ++++++++++++++++++++++++++----------- 2 files changed, 117 insertions(+), 29 deletions(-) commit 62348f647f7b1604e008dbed46a54eff245fc106 @@ -38175,7 +37846,7 @@ Author: Behdad Esfahbod Date: Thu Jan 11 12:00:28 2018 +0100 [aat] Implement end-of-text in state machine - + Passes MORX-10 test now. src/hb-aat-layout-morx-table.hh | 10 ++++++---- @@ -38188,10 +37859,8 @@ Date: Thu Jan 11 11:55:29 2018 +0100 [test/text-rendering-tests] Update from upstream test/shaping/data/text-rendering-tests/DISABLED | 1 + - test/shaping/data/text-rendering-tests/Makefile.sources | 11 - ++++++----- - .../data/text-rendering-tests/fonts/TestMORXTen.ttf | Bin 0 -> - 1620 bytes + test/shaping/data/text-rendering-tests/Makefile.sources | 11 ++++++----- + .../data/text-rendering-tests/fonts/TestMORXTen.ttf | Bin 0 -> 1620 bytes .../data/text-rendering-tests/tests/MORX-10.tests | 1 + 4 files changed, 8 insertions(+), 5 deletions(-) @@ -38218,7 +37887,7 @@ Author: Behdad Esfahbod Date: Thu Jan 11 11:49:07 2018 +0100 [aat] Generate finegrained unsafe-to-break in state-machine! - + Neato. src/hb-aat-layout-morx-table.hh | 11 +++++++++-- @@ -38248,10 +37917,8 @@ Date: Thu Jan 11 10:48:42 2018 +0100 [test/in-house] Add Makefile.sources - test/shaping/data/in-house/Makefile.am | 46 - ++--------------------------- - test/shaping/data/in-house/Makefile.sources | 46 - +++++++++++++++++++++++++++++ + test/shaping/data/in-house/Makefile.am | 46 ++--------------------------- + test/shaping/data/in-house/Makefile.sources | 46 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 44 deletions(-) commit 7c32e01d04deaab511d41f5dec0dfd9fc0469f39 @@ -38272,13 +37939,11 @@ Author: Behdad Esfahbod Date: Thu Jan 11 10:30:22 2018 +0100 [test/text-rendering-tests] Update from upstream - + Also adds an update.sh script that does this automatically. - test/shaping/data/text-rendering-tests/Makefile.am | 52 - +++------------------ - .../data/text-rendering-tests/Makefile.sources | 51 - ++++++++++++++++++++ + test/shaping/data/text-rendering-tests/Makefile.am | 52 +++------------------ + .../data/text-rendering-tests/Makefile.sources | 51 ++++++++++++++++++++ .../text-rendering-tests/fonts/TestMORXEight.ttf | Bin 0 -> 2184 bytes .../text-rendering-tests/fonts/TestMORXNine.ttf | Bin 0 -> 1624 bytes .../data/text-rendering-tests/tests/MORX-5.tests | 25 ++++++++++ @@ -38286,8 +37951,7 @@ Date: Thu Jan 11 10:30:22 2018 +0100 .../data/text-rendering-tests/tests/MORX-7.tests | 1 + .../data/text-rendering-tests/tests/MORX-8.tests | 3 ++ .../data/text-rendering-tests/tests/MORX-9.tests | 1 + - test/shaping/data/text-rendering-tests/update.sh | 48 - +++++++++++++++++++ + test/shaping/data/text-rendering-tests/update.sh | 48 +++++++++++++++++++ 10 files changed, 136 insertions(+), 46 deletions(-) commit c861daacc4255d41d2358868b917277422949dc9 @@ -38326,7 +37990,7 @@ Author: Behdad Esfahbod Date: Thu Jan 11 09:57:55 2018 +0100 [aat] Mark state-machine-based lookup as completely unsafe-to-break - + To be improved later. src/hb-aat-layout-morx-table.hh | 2 ++ @@ -38339,8 +38003,7 @@ Date: Thu Jan 11 09:15:34 2018 +0100 [aat] Implement RearrangementSubtable src/hb-aat-layout-common-private.hh | 89 ++++++++++++++++- - src/hb-aat-layout-morx-table.hh | 192 - +++++++++++++++++++++++++++++++----- + src/hb-aat-layout-morx-table.hh | 192 +++++++++++++++++++++++++++++++----- src/hb-open-type-private.hh | 2 - src/hb-private.hh | 7 +- 4 files changed, 254 insertions(+), 36 deletions(-) @@ -38350,7 +38013,7 @@ Author: Ebrahim Byagowi Date: Thu Jan 11 12:33:22 2018 +0330 Move the #define of _GNU_SOURCE to the top of hb-private.hh (#697) - + This fixes the build on Cygwin. src/hb-private.hh | 4 ++-- @@ -38370,7 +38033,7 @@ Author: Ebrahim Byagowi Date: Thu Jan 11 08:48:22 2018 +0330 [test] Better tests output by converting stderr to stdout (#696) - + https://gitlab.kitware.com/cmake/cmake/issues/17630 test/shaping/run-tests.py | 18 +++++++++--------- @@ -38392,8 +38055,7 @@ Date: Wed Jan 10 23:51:56 2018 +0330 [cmake] Another try on making sure feature testing is working (#691) - .circleci/config.yml | 131 - ++++++++++++++++++++++++++++----------------------- + .circleci/config.yml | 131 ++++++++++++++++++++++++++++----------------------- CMakeLists.txt | 17 ++++--- 2 files changed, 79 insertions(+), 69 deletions(-) @@ -38411,7 +38073,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 13:54:36 2018 +0100 [util] Set stdio files to line buffering - + So we can stream lines to hb-shape and read output. util/options.cc | 4 ++++ @@ -38422,7 +38084,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 11:09:53 2018 +0100 [aat] Add Class subtable thingy - + From old 'mort' table. src/hb-aat-layout-common-private.hh | 24 ++++++++++++++++++++++++ @@ -38435,8 +38097,7 @@ Date: Wed Jan 10 15:45:12 2018 +0330 [cmake] Add header existence tests (#685) .circleci/config.yml | 4 ++-- - CMakeLists.txt | 53 - ++++++++++++++++++++++++++++++--------------- + CMakeLists.txt | 53 ++++++++++++++++++++++++++++++--------------- test/shaping/CMakeLists.txt | 1 - 3 files changed, 37 insertions(+), 21 deletions(-) @@ -38454,7 +38115,7 @@ Author: Khaled Hosny Date: Wed Jan 10 07:12:07 2018 +0200 Improve HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES docs - + Add the note about absolute glyph positions from the commit message. src/hb-buffer.h | 3 ++- @@ -38467,8 +38128,7 @@ Date: Wed Jan 10 05:40:43 2018 +0100 [test] Move test handling to sundirectories configure.ac | 3 + - test/shaping/Makefile.am | 98 - +--------------------- + test/shaping/Makefile.am | 98 +--------------------- test/shaping/data/Makefile.am | 9 ++ test/shaping/data/in-house/Makefile.am | 58 +++++++++++++ test/shaping/data/text-rendering-tests/Makefile.am | 60 +++++++++++++ @@ -38488,13 +38148,12 @@ Author: Behdad Esfahbod Date: Wed Jan 10 05:13:47 2018 +0100 Calculate anchor positions in float, then round - + Hoping to reduce rounding error, to make tests happier... No luck. src/hb-font-private.hh | 6 ++++++ - src/hb-ot-layout-gpos-table.hh | 44 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-gpos-table.hh | 44 +++++++++++++++++++++--------------------- 2 files changed, 28 insertions(+), 22 deletions(-) commit 0b28e1199d62765db4e855756b96022e423dcc17 @@ -38511,7 +38170,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 04:33:08 2018 +0100 Round, instead of floor, when applying variations - + Hoping this would fix remaining text-rendering-tests failures, but so far no luck. @@ -38552,7 +38211,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:49:32 2018 +0100 [test] Another try - + Making cmake happy this time. test/shaping/Makefile.am | 4 +++- @@ -38563,7 +38222,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:48:09 2018 +0100 [test] Fix text disabling - + Ouch, make! test/shaping/Makefile.am | 27 ++++++++++++++------------- @@ -38592,11 +38251,11 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:35:20 2018 +0100 Add HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES - + New API: HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES hb-shape / hb-view --remove-default-ignorables - + One more text-rendering-tests test passing. Eleven failing. src/hb-buffer.h | 17 ++++-- @@ -38640,11 +38299,9 @@ Date: Wed Jan 10 03:35:20 2018 +0100 .../data/text-rendering-tests/tests/SHBALI-1.tests | 44 +++++++------- .../data/text-rendering-tests/tests/SHBALI-2.tests | 24 ++++---- .../data/text-rendering-tests/tests/SHBALI-3.tests | 18 +++--- - .../data/text-rendering-tests/tests/SHKNDA-1.tests | 68 - +++++++++++----------- + .../data/text-rendering-tests/tests/SHKNDA-1.tests | 68 +++++++++++----------- .../data/text-rendering-tests/tests/SHKNDA-2.tests | 32 +++++----- - .../data/text-rendering-tests/tests/SHKNDA-3.tests | 62 - ++++++++++---------- + .../data/text-rendering-tests/tests/SHKNDA-3.tests | 62 ++++++++++---------- util/options.cc | 1 + util/options.hh | 14 +++-- 46 files changed, 435 insertions(+), 419 deletions(-) @@ -38654,12 +38311,11 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:22:08 2018 +0100 [test/text-rendering-tests] Hook up font variations - + Six more passing. Twelve failing now. .../data/text-rendering-tests/extract-tests.py | 6 +++- - .../data/text-rendering-tests/tests/AVAR-1.tests | 34 - +++++++++++----------- + .../data/text-rendering-tests/tests/AVAR-1.tests | 34 +++++++++++----------- .../data/text-rendering-tests/tests/CFF2-1.tests | 18 ++++++------ .../data/text-rendering-tests/tests/CVAR-1.tests | 6 ++-- .../data/text-rendering-tests/tests/CVAR-2.tests | 6 ++-- @@ -38682,30 +38338,25 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:16:56 2018 +0100 [test] Add tests from text-rendering-tests repo - + https://github.com/unicode-org/text-rendering-tests test/shaping/Makefile.am | 44 ++++++++++++++- .../fonts/AdobeVFPrototype-Subset.otf | Bin 0 -> 7096 bytes - .../text-rendering-tests/fonts/FDArrayTest257.otf | Bin 0 -> 145212 - bytes - .../fonts/FDArrayTest65535.otf | Bin 0 -> 492740 - bytes + .../text-rendering-tests/fonts/FDArrayTest257.otf | Bin 0 -> 145212 bytes + .../fonts/FDArrayTest65535.otf | Bin 0 -> 492740 bytes .../fonts/NotoSansBalinese-Regular.ttf | Bin 0 -> 32304 bytes .../fonts/NotoSansKannada-Regular.ttf | Bin 0 -> 83868 bytes .../fonts/NotoSerifKannada-Regular.ttf | Bin 0 -> 96936 bytes - .../text-rendering-tests/fonts/Selawik-README.md | 60 - +++++++++++++++++++++ - .../fonts/Selawik-variable.ttf | Bin 0 -> 481504 - bytes + .../text-rendering-tests/fonts/Selawik-README.md | 60 +++++++++++++++++++++ + .../fonts/Selawik-variable.ttf | Bin 0 -> 481504 bytes .../data/text-rendering-tests/fonts/TestAVAR.ttf | Bin 0 -> 1608 bytes .../data/text-rendering-tests/fonts/TestCMAP14.otf | Bin 0 -> 1628 bytes .../fonts/TestCMAPMacTurkish.ttf | Bin 0 -> 19644 bytes .../text-rendering-tests/fonts/TestCVARGVAROne.ttf | Bin 0 -> 12336 bytes .../text-rendering-tests/fonts/TestCVARGVARTwo.ttf | Bin 0 -> 12256 bytes .../text-rendering-tests/fonts/TestGLYFOne.ttf | Bin 0 -> 1516 bytes - .../text-rendering-tests/fonts/TestGPOSFour.ttf | Bin 0 -> 315020 - bytes + .../text-rendering-tests/fonts/TestGPOSFour.ttf | Bin 0 -> 315020 bytes .../text-rendering-tests/fonts/TestGPOSOne.ttf | Bin 0 -> 10384 bytes .../text-rendering-tests/fonts/TestGPOSThree.ttf | Bin 0 -> 3500 bytes .../text-rendering-tests/fonts/TestGPOSTwo.otf | Bin 0 -> 1680 bytes @@ -38723,8 +38374,7 @@ Date: Wed Jan 10 03:16:56 2018 +0100 .../text-rendering-tests/fonts/TestMORXOne.ttf | Bin 0 -> 2404 bytes .../text-rendering-tests/fonts/TestMORXThree.ttf | Bin 0 -> 4104 bytes .../text-rendering-tests/fonts/TestMORXTwo.ttf | Bin 0 -> 4960 bytes - .../text-rendering-tests/fonts/TestShapeAran.ttf | Bin 0 -> 116044 - bytes + .../text-rendering-tests/fonts/TestShapeAran.ttf | Bin 0 -> 116044 bytes .../text-rendering-tests/fonts/TestShapeEthi.ttf | Bin 0 -> 5292 bytes .../data/text-rendering-tests/fonts/Zycon.ttf | Bin 0 -> 21036 bytes .../data/text-rendering-tests/tests/AVAR-1.tests | 17 ++++++ @@ -38775,7 +38425,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 03:07:30 2018 +0100 Prefix int types with HB - + Such a headache that Windows defines UINT8, ...; Just prefix it. src/hb-aat-layout-common-private.hh | 29 +++--- @@ -38792,8 +38442,7 @@ Date: Wed Jan 10 03:07:30 2018 +0100 src/hb-ot-layout-gdef-table.hh | 22 ++--- src/hb-ot-layout-gpos-table.hh | 94 +++++++++---------- src/hb-ot-layout-gsub-table.hh | 30 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 172 - +++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 172 +++++++++++++++++------------------ src/hb-ot-math-table.hh | 26 +++--- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-name-table.hh | 16 ++-- @@ -38810,15 +38459,10 @@ Author: Behdad Esfahbod Date: Wed Jan 10 02:56:29 2018 +0100 [aat] Try fixing VC bots - - c:\projects\harfbuzz\src\hb-aat-layout-common-private.hh(51): - error C2872: 'UINT16': ambiguous symbol - [C:\projects\harfbuzz\build\harfbuzz.vcxproj] - C:\Program Files (x86)\Windows - Kits\10\Include\10.0.14393.0\shared\basetsd.h(80): note: could be - 'unsigned short UINT16' - c:\projects\harfbuzz\src\hb-open-type-private.hh(648): note: or - 'OT::UINT16' + + c:\projects\harfbuzz\src\hb-aat-layout-common-private.hh(51): error C2872: 'UINT16': ambiguous symbol [C:\projects\harfbuzz\build\harfbuzz.vcxproj] + C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\shared\basetsd.h(80): note: could be 'unsigned short UINT16' + c:\projects\harfbuzz\src\hb-open-type-private.hh(648): note: or 'OT::UINT16' src/hb-aat-layout-common-private.hh | 3 +++ src/hb-aat-layout-morx-table.hh | 3 +++ @@ -38829,7 +38473,7 @@ Author: Behdad Esfahbod Date: Wed Jan 10 02:49:36 2018 +0100 Disable processing of morx table in ot shaper - + So I can merge this to master... src/hb-ot-shape.cc | 4 ++-- @@ -38840,14 +38484,12 @@ Author: Behdad Esfahbod Date: Wed Jan 10 02:48:04 2018 +0100 [util] Add hb-shape --ned - - For not displaying extra data: no clusters, no advance. Just data - pertaining + + For not displaying extra data: no clusters, no advance. Just data pertaining to where glyphs end up on the screen. test/shaping/data/text-rendering-tests/extract-tests.py | 2 +- - util/options.cc | 13 - +++++++++++++ + util/options.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) commit 7020130665316365c288d0960fc288faa8f5bdf7 @@ -38873,10 +38515,10 @@ Author: Behdad Esfahbod Date: Wed Jan 10 02:20:14 2018 +0100 Add option to buffer serialization to not output glyph advances - + When advances are not printed, glyph offsets reflect absolute glyph positions. - + New API: HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES hb-shape --no-advances @@ -38893,13 +38535,12 @@ Author: Behdad Esfahbod Date: Wed Jan 10 01:54:12 2018 +0100 [test] Add script for extracting tests from text-rendering-tests - + Work in progress... - + https://github.com/unicode-org/text-rendering-tests - .../data/text-rendering-tests/extract-tests.py | 45 - ++++++++++++++++++++++ + .../data/text-rendering-tests/extract-tests.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) commit 6b4d63f295f419f55983a8fc72f582802f55b09f @@ -38916,9 +38557,9 @@ Author: Behdad Esfahbod Date: Tue Jan 9 23:15:54 2018 +0100 [test] Simplify test runner - + Always pass hb-shape as first argument to run-tests.py. - + Also require automake 1.13. configure.ac | 3 +-- @@ -38941,12 +38582,11 @@ Author: Behdad Esfahbod Date: Tue Jan 9 21:58:57 2018 +0100 [test] Reorganize test suite - + In anticipation of importing more test suites. test/fuzzing/run-fuzzer-tests.py | 2 +- - test/shaping/Makefile.am | 86 - +++++++++--------- + test/shaping/Makefile.am | 86 +++++++++--------- test/shaping/{fonts => data/in-house}/COPYING | 7 +- .../0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin .../051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin @@ -39094,8 +38734,7 @@ Date: Tue Jan 9 21:58:57 2018 +0100 test/shaping/data/in-house/tests/use-marchen.tests | 35 ++++++++ .../shaping/data/in-house/tests/use-syllable.tests | 7 ++ test/shaping/data/in-house/tests/use.tests | 4 + - .../data/in-house/tests/variations-rvrn.tests | 100 - +++++++++++++++++++++ + .../data/in-house/tests/variations-rvrn.tests | 100 +++++++++++++++++++++ test/shaping/data/in-house/tests/vertical.tests | 3 + .../data/in-house/tests/zero-width-marks.tests | 11 +++ test/shaping/run-tests.py | 48 ++++------ @@ -39137,8 +38776,7 @@ Date: Tue Jan 9 21:58:57 2018 +0100 test/shaping/tests/misc/use-marchen.tests | 35 -------- test/shaping/tests/misc/use-syllable.tests | 7 -- test/shaping/tests/misc/use.tests | 4 - - test/shaping/tests/misc/variations-rvrn.tests | 100 - --------------------- + test/shaping/tests/misc/variations-rvrn.tests | 100 --------------------- test/shaping/tests/misc/vertical.tests | 3 - test/shaping/tests/misc/zero-width-marks.tests | 11 --- .../script-arabic/language-persian/mehran.txt | 14 +-- @@ -39360,8 +38998,7 @@ Date: Tue Jan 9 21:58:57 2018 +0100 .../script-tibetan/misc/contractions.txt | 0 .../shaper-tibetan/script-tibetan/misc/misc.txt | 0 .../shaper-use/script-batak/misc.txt | 0 - .../shaper-use/script-buginese/misc.txt | 92 - +++++++++---------- + .../shaper-use/script-buginese/misc.txt | 92 +++++++++---------- .../shaper-use/script-cham/misc.txt | 0 .../shaper-use/script-kaithi/misc.txt | 0 .../shaper-use/script-kharoshti/misc.txt | 0 @@ -39399,8 +39036,7 @@ Date: Tue Jan 9 18:23:19 2018 +0100 [test] Move test files around test/fuzzing/run-fuzzer-tests.py | 2 +- - test/shaping/Makefile.am | 82 - +++++++++++----------- + test/shaping/Makefile.am | 82 +++++++++++----------- .../tests/{ => misc}/arabic-fallback-shaping.tests | 0 .../tests/{ => misc}/arabic-feature-order.tests | 0 .../tests/{ => misc}/arabic-like-joining.tests | 0 @@ -39449,13 +39085,11 @@ Author: Behdad Esfahbod Date: Tue Jan 9 17:55:17 2018 +0100 [aat/morx] Implement NoncontextualSubtables - - Also makes hb-ot-shape call morx for now instead of GSUB... Just - for testing. + + Also makes hb-ot-shape call morx for now instead of GSUB... Just for testing. src/hb-aat-layout-common-private.hh | 34 +++++++-------- - src/hb-aat-layout-morx-table.hh | 82 - ++++++++++++++++++++++++++++++++++--- + src/hb-aat-layout-morx-table.hh | 82 ++++++++++++++++++++++++++++++++++--- src/hb-aat-layout-private.hh | 3 ++ src/hb-aat-layout.cc | 13 +++++- src/hb-ot-shape.cc | 6 +++ @@ -39475,11 +39109,10 @@ Author: Behdad Esfahbod Date: Tue Jan 9 15:48:51 2018 +0100 [aat] Implement Lookup table - + Untested, but compiles. - src/hb-aat-layout-common-private.hh | 308 - +++++++++++++++++++++++++++++++++++- + src/hb-aat-layout-common-private.hh | 308 +++++++++++++++++++++++++++++++++++- src/hb-aat-layout-morx-table.hh | 9 +- src/hb-aat-layout.cc | 14 ++ src/hb-face.cc | 6 +- @@ -39521,8 +39154,7 @@ Date: Thu Aug 17 16:55:54 2017 -0700 [aat] Start implementing common table formats src/Makefile.sources | 2 + - src/hb-aat-layout-common-private.hh | 134 - ++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-common-private.hh | 134 ++++++++++++++++++++++++++++++++++++ src/hb-aat-layout-morx-table.hh | 1 + src/hb-aat-layout-private.hh | 37 ++++++++++ src/hb-aat-layout.cc | 1 + @@ -39535,8 +39167,7 @@ Date: Mon Aug 14 17:24:36 2017 -0700 [aat] Start implementing Apple AAT morx table src/Makefile.sources | 2 + - src/hb-aat-layout-morx-table.hh | 275 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-aat-layout-morx-table.hh | 275 ++++++++++++++++++++++++++++++++++++++++ src/hb-aat-layout.cc | 42 ++++++ src/hb-open-type-private.hh | 5 + src/hb-ot-layout-private.hh | 5 + @@ -39567,7 +39198,7 @@ Author: Behdad Esfahbod Date: Fri Jan 5 18:09:29 2018 +0000 [khmer] Relax! - + Apparently we don't use OT_A either. src/hb-ot-shape-complex-khmer-machine.rl | 3 +-- @@ -39596,9 +39227,9 @@ Author: Behdad Esfahbod Date: Fri Jan 5 18:03:00 2018 +0000 [khmer] Simplify grammar some more - + Numbers down (from 38): - + KHMER: 299090 out of 299124 tests passed. 34 failed (0.0113665%) src/hb-ot-shape-complex-khmer-machine.rl | 2 +- @@ -39627,9 +39258,9 @@ Author: Behdad Esfahbod Date: Fri Jan 5 17:57:39 2018 +0000 [khmer] Relax number of consonants / matras allowed - + New numbers (down from 39): - + KHMER: 299086 out of 299124 tests passed. 38 failed (0.0127038%) src/hb-ot-shape-complex-khmer-machine.rl | 6 +++--- @@ -39640,9 +39271,9 @@ Author: Behdad Esfahbod Date: Fri Jan 5 17:52:24 2018 +0000 [khmer] Allow Independent Vowels where stacked consonants are allowed - + New numbers (down from 44): - + KHMER: 299085 out of 299124 tests passed. 39 failed (0.0130381%) src/hb-ot-shape-complex-khmer-machine.rl | 4 ++-- @@ -39722,8 +39353,7 @@ Date: Fri Jan 5 17:21:55 2018 +0000 [khmer] Shave off some more from the grammar src/hb-ot-shape-complex-khmer-machine.rl | 9 ++------- - src/hb-ot-shape-complex-khmer.cc | 34 - ++------------------------------ + src/hb-ot-shape-complex-khmer.cc | 34 ++------------------------------ 2 files changed, 4 insertions(+), 39 deletions(-) commit 014494d5c0469fe6b3112db3fdb3f2f262673ba1 @@ -39759,7 +39389,7 @@ Author: Behdad Esfahbod Date: Fri Jan 5 17:06:29 2018 +0000 [khmer] Better fix for dangling final Coeng - + This is how 1471cfee3bb2734dc44c58471362851ad27e8bd8 should have been done. @@ -39780,7 +39410,7 @@ Author: Behdad Esfahbod Date: Fri Jan 5 17:01:37 2018 +0000 [khmer] Remove forced_rakar from grammar - + Used by Sinhala only. src/hb-ot-shape-complex-khmer-machine.rl | 3 +-- @@ -39792,9 +39422,9 @@ Author: Behdad Esfahbod Date: Fri Jan 5 16:34:20 2018 +0000 [khmer] Allow a dangling final Coeng after matras - + Uniscribe seems to allow that. New numbers: - + KHMER: 299080 out of 299124 tests passed. 44 failed (0.0147096%) src/hb-ot-shape-complex-khmer-machine.rl | 2 +- @@ -39806,8 +39436,7 @@ Date: Fri Jan 5 16:28:00 2018 +0000 [khmer] Remove some more unused code - src/hb-ot-shape-complex-khmer.cc | 49 - ++-------------------------------------- + src/hb-ot-shape-complex-khmer.cc | 49 ++-------------------------------------- 1 file changed, 2 insertions(+), 47 deletions(-) commit bfad6ab897a38aedc82de694ee1a17132f90b25e @@ -39816,8 +39445,7 @@ Date: Fri Jan 5 16:13:09 2018 +0000 [khmer] Remove features not used by Khmer - src/hb-ot-shape-complex-khmer.cc | 60 - ++++------------------------------------ + src/hb-ot-shape-complex-khmer.cc | 60 ++++------------------------------------ 1 file changed, 5 insertions(+), 55 deletions(-) commit 92a99ce084b19dff32d434de446144f0c4796803 @@ -39835,8 +39463,7 @@ Date: Fri Jan 5 16:06:53 2018 +0000 [khmer] Remove non-Khmer matra positioning code - src/hb-ot-shape-complex-khmer.cc | 76 - +++++++--------------------------------- + src/hb-ot-shape-complex-khmer.cc | 76 +++++++--------------------------------- 1 file changed, 12 insertions(+), 64 deletions(-) commit f8553c898a414298403c335f8d2ed6c588a1189f @@ -39863,8 +39490,7 @@ Date: Fri Jan 5 16:01:17 2018 +0000 [khmer] Remove indic_config->reph_pos - src/hb-ot-shape-complex-khmer.cc | 333 - ++------------------------------------- + src/hb-ot-shape-complex-khmer.cc | 333 ++------------------------------------- 1 file changed, 10 insertions(+), 323 deletions(-) commit ffcd6c7efd21bf89b41ddbf148b05672a42ecadd @@ -39873,8 +39499,7 @@ Date: Fri Jan 5 15:50:05 2018 +0000 [khmer] Remove indic_config->base_pos - src/hb-ot-shape-complex-khmer.cc | 229 - ++------------------------------------- + src/hb-ot-shape-complex-khmer.cc | 229 ++------------------------------------- 1 file changed, 7 insertions(+), 222 deletions(-) commit 0c91638d48d6fb86d1e30fb94c15785707395b42 @@ -39883,8 +39508,7 @@ Date: Fri Jan 5 15:45:30 2018 +0000 [khmer] Remove other scripts - src/hb-ot-shape-complex-khmer.cc | 131 - ++++++++++----------------------------- + src/hb-ot-shape-complex-khmer.cc | 131 ++++++++++----------------------------- 1 file changed, 34 insertions(+), 97 deletions(-) commit 4c0199c573f79be5f40e7d4f8433ef6a1c9c24b2 @@ -39911,8 +39535,7 @@ Date: Fri Jan 5 15:41:31 2018 +0000 [khmer] Remove indic_config->has_old_spec - src/hb-ot-shape-complex-khmer.cc | 157 - ++++++--------------------------------- + src/hb-ot-shape-complex-khmer.cc | 157 ++++++--------------------------------- 1 file changed, 21 insertions(+), 136 deletions(-) commit 961ebf85f1e7d417e056c3927ee73857f6f4cde6 @@ -39923,8 +39546,7 @@ Date: Fri Jan 5 15:36:53 2018 +0000 src/hb-ot-shape-complex-indic-private.hh | 1 - src/hb-ot-shape-complex-khmer-machine.rl | 7 +++---- - src/hb-ot-shape-complex-khmer.cc | 32 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-khmer.cc | 32 ++++++++++++++++---------------- 3 files changed, 19 insertions(+), 21 deletions(-) commit 9761f9d78214323b9ad58dd0b8ba41851c9e2d54 @@ -39932,12 +39554,11 @@ Author: Behdad Esfahbod Date: Fri Jan 5 15:33:11 2018 +0000 [indic] Remove more Khmer-specific stuff from Indic shaper - + No numbers changed. src/hb-ot-shape-complex-indic-machine.rl | 8 ++--- - src/hb-ot-shape-complex-indic.cc | 57 - ++++++++++++-------------------- + src/hb-ot-shape-complex-indic.cc | 57 ++++++++++++-------------------- 2 files changed, 25 insertions(+), 40 deletions(-) commit 075895364435ee88936696bcb5457283c4bb1a29 @@ -39946,8 +39567,7 @@ Date: Fri Jan 5 15:08:28 2018 +0000 [indic] Remove main Khmer stuff - src/hb-ot-shape-complex-indic.cc | 73 - ++-------------------------------------- + src/hb-ot-shape-complex-indic.cc | 73 ++-------------------------------------- 1 file changed, 2 insertions(+), 71 deletions(-) commit dcf4d95fea45e19fbb3b39f0211b2aa96a907473 @@ -39955,21 +39575,20 @@ Author: Behdad Esfahbod Date: Fri Jan 5 14:54:31 2018 +0000 [khmer] Split off Khmer shaper from Indic - + Towards fixing https://github.com/harfbuzz/harfbuzz/issues/667 The Khmer spec is different enough from other Indic ones to require its own grammar. - + No change in functionality. Test numbers are: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%) KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) @@ -39977,8 +39596,7 @@ Date: Fri Jan 5 14:54:31 2018 +0000 src/Makefile.sources | 3 + src/hb-ot-shape-complex-khmer-machine.rl | 130 +++ - src/hb-ot-shape-complex-khmer.cc | 1867 - ++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-khmer.cc | 1867 ++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 5 +- 4 files changed, 2003 insertions(+), 2 deletions(-) @@ -39996,11 +39614,11 @@ Author: Behdad Esfahbod Date: Fri Jan 5 13:20:21 2018 +0000 [ot] Fix VariationStore evaluation algorithm - + Ouch! Missing coords should still be evaluated as coord=0, which most of the time results in a factor of 0. We were skipping these, which was equivalent to a factor of 1. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/652 src/hb-ot-layout-common-private.hh | 5 +++-- @@ -40030,8 +39648,7 @@ Date: Fri Jan 5 12:55:39 2018 +0000 Add test font for previous commit - .../sha1sum/21b7fb9c1eeae260473809fbc1fe330f66a507cd.ttf | Bin 0 -> - 4816 bytes + .../sha1sum/21b7fb9c1eeae260473809fbc1fe330f66a507cd.ttf | Bin 0 -> 4816 bytes 1 file changed, 0 insertions(+), 0 deletions(-) commit 127bcc6ece4da64e807f652dd84a17c6a8c5e300 @@ -40046,18 +39663,17 @@ Author: Behdad Esfahbod Date: Fri Jan 5 12:46:12 2018 +0000 Improve CGJ skipping logic - + Previously we made CGJ unskippable. Now, if CGJ did NOT prevent any reordering, allow skipping over it. To make this work we had to make changes to the Arabic mark reordering algorithm implementation to renumber moved MCM marks. See comments. - + Fixes https://github.com/harfbuzz/harfbuzz/issues/554 src/hb-buffer-private.hh | 1 + src/hb-ot-layout-private.hh | 11 ++++++++- - src/hb-ot-shape-complex-arabic.cc | 37 - ++++++++++++++++++++++-------- + src/hb-ot-shape-complex-arabic.cc | 37 ++++++++++++++++++++++-------- src/hb-ot-shape-normalize.cc | 30 +++++++++++++----------- test/shaping/tests/arabic-mark-order.tests | 4 ++++ 5 files changed, 58 insertions(+), 25 deletions(-) @@ -40069,8 +39685,7 @@ Date: Fri Jan 5 12:42:20 2018 +0330 Improve tests (#679) .circleci/config.yml | 2 +- - CMakeLists.txt | 52 - +++++++++++++++++++++++++++++++++++---------- + CMakeLists.txt | 52 +++++++++++++++++++++++++++++++++++---------- autogen.sh | 6 ++++-- src/Makefile.am | 3 +-- src/check-defs.sh | 2 +- @@ -40095,15 +39710,13 @@ Author: Bruce Mitchener Date: Thu Jan 4 18:40:10 2018 +0700 atomics: Favor compiler primitives over macOS APIs. (#676) - + In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated - in favor of using `std::atomic`. On the way to supporting - `std::atomic`, + in favor of using `std::atomic`. On the way to supporting `std::atomic`, we can favor using the "Intel primitives" which are also available on macOS. - src/hb-atomic-private.hh | 46 - +++++++++++++++++++++++----------------------- + src/hb-atomic-private.hh | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) commit 4f80078eb035054db0f6e33cf4f7345c6c85cb12 @@ -40111,7 +39724,7 @@ Author: Bruce Mitchener Date: Thu Jan 4 18:37:35 2018 +0700 [cmake] Colorize output when using cmake + ninja. (#674) - + Due to how ninja runs clang and gcc, it doesn't colorize the output like make does. This forces color output in this situation. @@ -40140,8 +39753,7 @@ Date: Wed Jan 3 14:27:34 2018 +0000 [use] Simplify more src/gen-use-table.py | 11 +------ - src/hb-ot-shape-complex-use-table.cc | 62 - +++++++++++++++++++++--------------- + src/hb-ot-shape-complex-use-table.cc | 62 +++++++++++++++++++++--------------- 2 files changed, 38 insertions(+), 35 deletions(-) commit 877d15e73c24159b26bb7cc6d2f62045d445d0fc @@ -40149,7 +39761,7 @@ Author: Behdad Esfahbod Date: Wed Jan 3 14:24:44 2018 +0000 [use] Simplify - + Fixes https://github.com/harfbuzz/harfbuzz/pull/661 src/gen-use-table.py | 2 +- @@ -40161,7 +39773,7 @@ Author: Behdad Esfahbod Date: Wed Jan 3 14:22:07 2018 +0000 [use] Fix Brahmi Number Joiner 1107F - + Fixes https://github.com/harfbuzz/harfbuzz/pull/660 src/gen-indic-table.py | 6 +++--- @@ -40242,8 +39854,7 @@ Date: Fri Dec 29 23:13:29 2017 +0330 [cmake] Run fuzzing and shaping tests (#666) .circleci/config.yml | 2 +- - CMakeLists.txt | 59 - ++++++++++++++++++++++++---------------- + CMakeLists.txt | 59 ++++++++++++++++++++++++---------------- appveyor.yml | 4 +-- test/CMakeLists.txt | 5 ++++ test/api/CMakeLists.txt | 48 +++++++++++++------------------- @@ -40261,8 +39872,7 @@ Date: Mon Dec 25 22:01:28 2017 +0330 [cmake] Use GNUInstallDirs values (#665) - CMakeLists.txt | 170 - ++++++++++++++++++++++++++++----------------------------- + CMakeLists.txt | 170 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 85 insertions(+), 85 deletions(-) commit 7d397c5d5ca684fae824a61dabf5bc422d0a516b @@ -40293,8 +39903,7 @@ Date: Wed Nov 22 16:32:52 2017 -0500 src/gen-use-table.py | 3 +++ src/hb-ot-shape-complex-use-table.cc | 2 +- - .../sha1sum/59a585a63b3df608fbeef00956c8c108deec7de6.ttf | Bin 0 -> - 1164 bytes + .../sha1sum/59a585a63b3df608fbeef00956c8c108deec7de6.ttf | Bin 0 -> 1164 bytes test/shaping/tests/use-syllable.tests | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) @@ -40312,7 +39921,7 @@ Author: Behdad Esfahbod Date: Sun Dec 24 16:05:07 2017 -0500 [use] Allow ZWJ before/after Halant - + https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-353169729 src/hb-ot-shape-complex-use-machine.rl | 3 ++- @@ -40360,7 +39969,7 @@ Author: Behdad Esfahbod Date: Tue Dec 19 14:48:26 2017 -0500 [set] Handle nil set in add_range() / add_sorted_array() - + Fixes https://github.com/harfbuzz/harfbuzz/issues/657 src/hb-set-private.hh | 5 +++-- @@ -40381,7 +39990,7 @@ Author: Behdad Esfahbod Date: Sun Dec 17 12:32:33 2017 -0500 [coretext] In hb_coretext_font_create() set ptem - + Otherwise setting the CTFont was ineffective as it would have been recreated anyway unless font size was set to 18 CSS points. @@ -40402,17 +40011,14 @@ Author: Behdad Esfahbod Date: Sat Dec 16 11:11:18 2017 -0500 [collect_glyphs] Bail if input data looks like garbage - - Specificaly, when a range or sorted array has unexpected order, - we take that as - font data being garbage and bail out. This fixes significant slowdown - on a bad + + Specificaly, when a range or sorted array has unexpected order, we take that as + font data being garbage and bail out. This fixes significant slowdown on a bad version of Chandas font which has a 600KB GPOS with garbage inside. - - Later on, I like to add a maximum-work counter for collect_glyphs - to protect + + Later on, I like to add a maximum-work counter for collect_glyphs to protect against malicious fonts as well. - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=794896 src/hb-ot-layout-common-private.hh | 14 +++++++------- @@ -40424,11 +40030,10 @@ Author: Behdad Esfahbod Date: Sat Dec 16 11:36:16 2017 -0500 [set] Optimize add_array() / add_sorted_array() - + Does page lookup as needed. - src/hb-set-private.hh | 54 - ++++++++++++++++++++++++++++++++++++--------------- + src/hb-set-private.hh | 54 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 16 deletions(-) commit 71e6adf1e2d65eb905a0ba247672fe36169955ef @@ -40437,8 +40042,7 @@ Date: Sat Dec 16 11:07:37 2017 -0500 [collect_glyphs] handle ClassDef better - src/hb-ot-layout-common-private.hh | 63 - ++++++++++++++++++++++++++++++------ + src/hb-ot-layout-common-private.hh | 63 ++++++++++++++++++++++++++++++------ src/hb-ot-layout-gdef-table.hh | 2 +- src/hb-ot-layout-gpos-table.hh | 5 +-- src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -40449,7 +40053,7 @@ Author: Behdad Esfahbod Date: Sat Dec 16 06:18:07 2017 -0800 [collect_glyphs] In PairPosFornat2 do not collect classDef1 - + The coverage already covered that. src/hb-ot-layout-gpos-table.hh | 8 ++------ @@ -40460,18 +40064,15 @@ Author: Behdad Esfahbod Date: Sat Dec 16 06:12:06 2017 -0800 More work towards improving collect_glyphs() against bad input - - The three "XXXXX"'s should be switched to false. Doing that - separately for ease + + The three "XXXXX"'s should be switched to false. Doing that separately for ease of bisecting... src/hb-ot-layout-common-private.hh | 7 +++---- src/hb-ot-layout-gpos-table.hh | 25 ++++++++++--------------- - src/hb-ot-layout-gsub-table.hh | 35 - +++++++++++++---------------------- + src/hb-ot-layout-gsub-table.hh | 35 +++++++++++++---------------------- src/hb-set-digest-private.hh | 6 ++++-- - src/hb-set-private.hh | 36 - ++++++++++++++++++------------------ + src/hb-set-private.hh | 36 ++++++++++++++++++------------------ 5 files changed, 48 insertions(+), 61 deletions(-) commit 5d02572034e3dafbe87000fd0aa34b858bd95075 @@ -40479,23 +40080,21 @@ Author: Behdad Esfahbod Date: Thu Dec 14 19:33:55 2017 -0800 [set] Add add_sorted_array() - - Not optimized to use sortedness yet. Also start putting in place - infra + + Not optimized to use sortedness yet. Also start putting in place infra to faster reject bad data. - + A version of Chandas.ttf found on some Chrome bots has 660kb of GPOS, mostly junk. That is causing 48 million of set->add() calls in collect_glyphs(), which is insane. - + In the upcoming commits, I'll be speeding that up by optimizing add_sorted_array(), while also reducing work by rejecting out-of-sort arrays quickly and propagate the rejection. - + Part of https://bugs.chromium.org/p/chromium/issues/detail?id=794896 - src/hb-ot-layout-common-private.hh | 51 - +++++++++++++++++++++++------------- + src/hb-ot-layout-common-private.hh | 51 +++++++++++++++++++++++------------- src/hb-ot-layout-gdef-table.hh | 2 +- src/hb-ot-layout-gpos-table.hh | 10 +++---- src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -40508,7 +40107,7 @@ Author: Behdad Esfahbod Date: Thu Dec 14 19:04:55 2017 -0800 [set] Reduce number of preallocated pages from 8 to 1 - + Now that pagesize is 8192, this feels better. src/hb-set-private.hh | 2 +- @@ -40538,13 +40137,13 @@ Author: Behdad Esfahbod Date: Thu Dec 14 13:30:38 2017 -0800 [set] Change pagesize from 512 bits to 8192 bits - + Fixes perf regression on some heavy fonts in Chrome's FT+HB interaction. - + See: https://bugs.chromium.org/p/chromium/issues/detail?id=782220 - + More work to be done: https://bugs.chromium.org/p/chromium/issues/detail?id=794896 @@ -40556,9 +40155,8 @@ Author: Behdad Esfahbod Date: Wed Dec 13 13:12:20 2017 -0800 [set] Add add_array() - - To be used to optimize adding a whole bunch of (sorted) items at - the same time, + + To be used to optimize adding a whole bunch of (sorted) items at the same time, as in CoverageFormat1. src/hb-ot-layout-common-private.hh | 4 +--- @@ -40591,8 +40189,7 @@ Date: Thu Dec 7 11:22:55 2017 +0330 Rewrite run-tests in python (#647) test/shaping/Makefile.am | 4 +- - test/shaping/run-tests.py | 115 - ++++++++++++++++++++++++++++++++++++++++++++++ + test/shaping/run-tests.py | 115 ++++++++++++++++++++++++++++++++++++++++++++++ test/shaping/run-tests.sh | 65 -------------------------- 3 files changed, 117 insertions(+), 67 deletions(-) @@ -40601,13 +40198,12 @@ Author: Khaled Hosny Date: Wed Dec 6 21:08:20 2017 +0200 [ci] Sort out Travis configuration - + Use a matrix to avoid a gazillion if's. .ci/deploy-docs.sh | 2 ++ .ci/run-coveralls.sh | 14 +++++++++++ - .travis.yml | 69 - ++++++++++++++++++++++++++++++++-------------------- + .travis.yml | 69 ++++++++++++++++++++++++++++++++-------------------- 3 files changed, 58 insertions(+), 27 deletions(-) commit 5a6d2b986a02fc47fa9dcbb330e6949af8e375ff @@ -40675,7 +40271,7 @@ Author: Behdad Esfahbod Date: Tue Dec 5 13:12:11 2017 -0800 [debug] Use %p to print pointers - + Fixes https://github.com/harfbuzz/harfbuzz/issues/640 src/hb-debug.hh | 2 +- @@ -40704,7 +40300,7 @@ Author: Behdad Esfahbod Date: Tue Dec 5 09:01:28 2017 -0800 Silence unused-variables warning on MSVC - + Fixes https://github.com/harfbuzz/harfbuzz/issues/635 src/hb-private.hh | 2 ++ @@ -40732,9 +40328,8 @@ commit 0fd89dc61c6a26253aa9bb85e8dfd9faded11440 Author: Olivier Blin Date: Mon Dec 4 18:58:41 2017 +0100 - [hb-ft] Fix build when Multiple Master font support is disabled - in freetype - + [hb-ft] Fix build when Multiple Master font support is disabled in freetype + FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master font interface" is disabled in freetype's modules.cfg @@ -40767,9 +40362,9 @@ Author: Behdad Esfahbod Date: Sat Dec 2 15:14:26 2017 -0800 [set] Fix recent changes - + Ouch! - + Add tests. test/api/test-set.c | 24 ++++++++++++++++++++++++ @@ -40789,14 +40384,13 @@ Author: Behdad Esfahbod Date: Tue Nov 28 23:11:34 2017 -0800 [coretext] Add hb_coretext_font_create() - + Fixes https://github.com/harfbuzz/harfbuzz/issues/628 - + New API: hb_coretext_font_create() - src/hb-coretext.cc | 55 - ++++++++++++++++++++++++++++++++++-------------------- + src/hb-coretext.cc | 55 ++++++++++++++++++++++++++++++++++-------------------- src/hb-coretext.h | 3 +++ 2 files changed, 38 insertions(+), 20 deletions(-) @@ -40805,11 +40399,10 @@ Author: Behdad Esfahbod Date: Fri Dec 1 13:56:06 2017 -0800 [set] Optimize add_range() some more - - It's as good as it gets, and seems to be on par with previous set - implementation + + It's as good as it gets, and seems to be on par with previous set implementation in my benchmark. - + Would be great if someone can double-check my bitops. src/hb-set-private.hh | 16 +++++++++++++--- @@ -40820,15 +40413,13 @@ Author: Behdad Esfahbod Date: Fri Dec 1 13:34:14 2017 -0800 [set] Optimize add_range() - + With new set implementation, this became really costy. Optimize it. There's more to be done, but this shaves off most of the fat. + + Part of fixing https://bugs.chromium.org/p/chromium/issues/detail?id=782220 - Part of fixing - https://bugs.chromium.org/p/chromium/issues/detail?id=782220 - - src/hb-set-private.hh | 56 - +++++++++++++++++++++++++++++++++++++-------------- + src/hb-set-private.hh | 56 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 41 insertions(+), 15 deletions(-) commit be9e307a889e04d198042ad39949d3971232ab26 @@ -40845,11 +40436,10 @@ Author: Behdad Esfahbod Date: Wed Nov 29 16:18:18 2017 -0800 Add another test for previous commit - + From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273 - .../sha1sum/bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 0 -> - 204 bytes + .../sha1sum/bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf | Bin 0 -> 204 bytes test/shaping/tests/fuzzed.tests | 1 + 2 files changed, 1 insertion(+) @@ -40857,19 +40447,15 @@ commit 16fba5b2158a0e093e6df32637eba5058942e299 Author: Behdad Esfahbod Date: Wed Nov 29 16:08:11 2017 -0800 - [ot] Fix Extension type recurse to disallow recursing to another - Extension - - Particularly hazardous if the second layer mixes forward and backward - lookups. - + [ot] Fix Extension type recurse to disallow recursing to another Extension + + Particularly hazardous if the second layer mixes forward and backward lookups. + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336 src/hb-ot-layout-gsub-table.hh | 6 ++++-- - .../sha1sum/9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 0 -> - 4545 bytes - .../sha1sum/ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 0 -> - 1152 bytes + .../sha1sum/9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf | Bin 0 -> 4545 bytes + .../sha1sum/ef2511f215aa3ca847cbfffbf861793b42170875.ttf | Bin 0 -> 1152 bytes test/shaping/tests/fuzzed.tests | 2 ++ 4 files changed, 6 insertions(+), 2 deletions(-) @@ -40878,7 +40464,7 @@ Author: Behdad Esfahbod Date: Wed Nov 29 14:20:09 2017 -0800 Try fixing Mac build with 10.12 - + Related https://github.com/harfbuzz/harfbuzz/issues/345 https://github.com/harfbuzz/harfbuzz/pull/629 @@ -40900,12 +40486,11 @@ Author: Behdad Esfahbod Date: Tue Nov 21 16:36:07 2017 -0800 [doc] Optimize HarfBuzz.png; add HarfBuzz.svg - + SVG is unused. Just keeping it here. docs/HarfBuzz.png | Bin 14203 -> 8814 bytes - docs/HarfBuzz.svg | 277 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + docs/HarfBuzz.svg | 277 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 277 insertions(+) commit 77efdecadddbd68bbbc0ff85ac84e24976ad4d4f @@ -40937,8 +40522,7 @@ Date: Tue Nov 21 14:16:10 2017 -0500 src/gen-use-table.py | 3 +++ src/hb-ot-shape-complex-use-table.cc | 2 +- - .../sha1sum/373e67bf41ca264e260a9716162b71a23549e885.ttf | Bin 0 -> - 1164 bytes + .../sha1sum/373e67bf41ca264e260a9716162b71a23549e885.ttf | Bin 0 -> 1164 bytes test/shaping/tests/use-syllable.tests | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) @@ -40946,8 +40530,7 @@ commit cd8c62fd41ca824c5db3c55fd1faa20318ca0bf9 Author: ebraminio Date: Tue Nov 21 01:07:26 2017 -0500 - [ci] Add Oracle Developer Studio (former Sun Studio) based compiler - (#621) + [ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621) .circleci/config.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) @@ -40957,12 +40540,11 @@ Author: Behdad Esfahbod Date: Mon Nov 20 19:43:22 2017 -0800 Fix fallback positioning of double diacritic marks - + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284 src/hb-ot-shape-fallback.cc | 4 ++-- - .../sha1sum/856ff9562451293cbeff6f396d4e3877c4f0a436.ttf | Bin 0 -> - 892 bytes + .../sha1sum/856ff9562451293cbeff6f396d4e3877c4f0a436.ttf | Bin 0 -> 892 bytes test/shaping/tests/fallback-positioning.tests | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) @@ -40984,8 +40566,7 @@ Date: Mon Nov 20 15:07:48 2017 -0800 docs/harfbuzz-docs.xml | 2 +- ...anual-buffers-language-script-and-direction.xml | 10 +++---- docs/usermanual-fonts-and-faces.xml | 2 +- - docs/usermanual-hello-harfbuzz.xml | 34 - +++++++++++----------- + docs/usermanual-hello-harfbuzz.xml | 34 +++++++++++----------- docs/usermanual-install-harfbuzz.xml | 2 +- docs/usermanual-what-is-harfbuzz.xml | 20 ++++++------- 6 files changed, 35 insertions(+), 35 deletions(-) @@ -40997,8 +40578,7 @@ Date: Mon Nov 20 13:19:34 2017 -0500 Categorize U+0C80 as Consonant_Placeholder src/hb-ot-shape-complex-indic.cc | 1 + - .../sha1sum/81c368a33816fb20e9f647e8f24e2180f4720263.ttf | Bin 0 -> - 1152 bytes + .../sha1sum/81c368a33816fb20e9f647e8f24e2180f4720263.ttf | Bin 0 -> 1152 bytes test/shaping/tests/indic-syllable.tests | 1 + 3 files changed, 2 insertions(+) @@ -41043,9 +40623,9 @@ Author: Behdad Esfahbod Date: Tue Nov 14 21:53:48 2017 -0800 Limit how much recursion GSUB/GPOS does - + This only counts recursions right now. Good start. - + Hopefully... Fixes https://github.com/behdad/harfbuzz/issues/429 @@ -41096,8 +40676,7 @@ Date: Tue Nov 14 21:06:07 2017 -0800 src/hb-ot-layout-gdef-table.hh | 22 ++-- src/hb-ot-layout-gpos-table.hh | 94 ++++++++-------- src/hb-ot-layout-gsub-table.hh | 30 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 172 - +++++++++++++++--------------- + src/hb-ot-layout-gsubgpos-private.hh | 172 +++++++++++++++--------------- src/hb-ot-math-table.hh | 26 ++--- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-name-table.hh | 16 +-- @@ -41126,7 +40705,7 @@ Author: Behdad Esfahbod Date: Tue Nov 14 20:25:29 2017 -0800 [glyf] Try fixing undefined-behavior - + Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463 src/hb-ot-glyf-table.hh | 17 ++++++++--------- @@ -41137,9 +40716,9 @@ Author: Behdad Esfahbod Date: Tue Nov 14 20:22:05 2017 -0800 [ot] Remove unneeded TODO item - + Looks like hb-ot-font is complete after all! - + CFF font names and CFF glyph metrics don't work though... src/hb-ot-font.cc | 2 +- @@ -41150,7 +40729,7 @@ Author: Behdad Esfahbod Date: Tue Nov 14 20:16:45 2017 -0800 [hmtx] Use curiously recurring template pattern - + https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern src/hb-ot-font.cc | 11 ++++------- @@ -41163,8 +40742,7 @@ Date: Tue Nov 14 20:06:19 2017 -0800 [ot] Move hb_ot_face_cmap_accelerator_t - src/hb-ot-cmap-table.hh | 149 - +++++++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-cmap-table.hh | 149 +++++++++++++++++++++++++++++++++++++++++++++--- src/hb-ot-font.cc | 130 +----------------------------------------- 2 files changed, 142 insertions(+), 137 deletions(-) @@ -41174,8 +40752,7 @@ Date: Tue Nov 14 20:02:24 2017 -0800 Shuffle - src/hb-ot-hmtx-table.hh | 76 - ++++++++++++++++++++++++------------------------- + src/hb-ot-hmtx-table.hh | 76 ++++++++++++++++++++++++------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) commit a85d7ead04aff81d2f9df9110316892dbbefe1c2 @@ -41184,10 +40761,8 @@ Date: Tue Nov 14 20:00:34 2017 -0800 [ot] Move hb_ot_face_metrics_accelerator_t - src/hb-ot-font.cc | 108 - +----------------------------------------------- - src/hb-ot-hmtx-table.hh | 108 - +++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-font.cc | 108 +----------------------------------------------- + src/hb-ot-hmtx-table.hh | 108 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 109 insertions(+), 107 deletions(-) commit f00a94e1ec73c08d4bde1f50bff57d2dc9583ca8 @@ -41207,8 +40782,7 @@ Date: Tue Nov 14 19:52:09 2017 -0800 [ot] Move hb_ot_face_glyf_accelerator_t src/hb-ot-font.cc | 75 +---------------------------------- - src/hb-ot-glyf-table.hh | 103 - +++++++++++++++++++++++++++++++++++++++++------- + src/hb-ot-glyf-table.hh | 103 +++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 90 insertions(+), 88 deletions(-) commit c4e18e54dc5ffecac7b327bde9f52dd0927d6a08 @@ -41217,10 +40791,8 @@ Date: Tue Nov 14 19:47:31 2017 -0800 [ot] Move hb_ot_face_cbdt_accelerator_t - src/hb-ot-cbdt-table.hh | 85 - +++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-font.cc | 87 - +------------------------------------------------ + src/hb-ot-cbdt-table.hh | 85 +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-font.cc | 87 +------------------------------------------------ src/hb-ot-post-table.hh | 1 + 3 files changed, 87 insertions(+), 86 deletions(-) @@ -41258,11 +40830,10 @@ Author: Behdad Esfahbod Date: Tue Nov 14 15:56:21 2017 -0800 Add test for previous commit - + At some point we should run tests under valgrind... - .../sha1sum/dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 0 -> - 2786 bytes + .../sha1sum/dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf | Bin 0 -> 2786 bytes test/shaping/tests/fuzzed.tests | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) @@ -41271,7 +40842,7 @@ Author: Behdad Esfahbod Date: Tue Nov 14 15:47:55 2017 -0800 Fix invalid buffer access in OOM times - + Hopefully fully fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1856 @@ -41303,8 +40874,7 @@ Date: Thu Nov 2 10:59:25 2017 -0400 Allow U+20F0 in USE clusters src/gen-use-table.py | 4 +++ - src/hb-ot-shape-complex-use-table.cc | 34 - +++++++++++++-------- + src/hb-ot-shape-complex-use-table.cc | 34 +++++++++++++-------- .../074a5ae6b19de8f29772fdd5df2d3d833f81f5e6.ttf | Bin 0 -> 2296 bytes test/shaping/tests/use-syllable.tests | 1 + 4 files changed, 26 insertions(+), 13 deletions(-) @@ -41324,15 +40894,15 @@ Author: Behdad Esfahbod Date: Tue Nov 14 10:59:54 2017 -0800 Revert "[glib/ucdn/icu/ft/ot] Make returned funcs inert" - + This reverts commit 5daf3bd4494cce6b4fb074533be9e99c4d9e0edd. - + If other atexit callbacks try to destruct the objects we destruct in atexit callbacks, bad things will happen. - + I'll come up with some other way to catch premature destruction of HB-owned objects. - + Fixes https://github.com/behdad/harfbuzz/issues/618 src/hb-ft.cc | 3 --- @@ -41357,11 +40927,11 @@ Author: Behdad Esfahbod Date: Mon Nov 13 20:25:02 2017 -0800 Clean up GlyphID - + After 4a27c17ea0234dfe33e62f5830d9f92c26d48d30 we do not need the special GlyphID.cmp(hb_codepoint_t), so just make GlyphID a typedef. - + Fixes https://github.com/behdad/harfbuzz/issues/612 src/hb-open-type-private.hh | 5 +---- @@ -41372,7 +40942,7 @@ Author: Behdad Esfahbod Date: Mon Nov 13 15:04:13 2017 -0800 Implement strtod_l() on MSVC - + Patch from Jean Ghali on mailing list. src/hb-common.cc | 21 +++++++++++++++------ @@ -41392,11 +40962,10 @@ commit e4da38020021a92afa4062ed676f286945070dc4 Author: Behdad Esfahbod Date: Fri Nov 10 17:14:27 2017 -0800 - [coretext/uniscribe/directwrite/graphite/fallback] Update for - unsafe-to-break - + [coretext/uniscribe/directwrite/graphite/fallback] Update for unsafe-to-break + Fixes https://github.com/behdad/harfbuzz/issues/615 - + We'll see which bots I broke. src/hb-buffer-private.hh | 17 +++++++++++++++-- @@ -41421,14 +40990,13 @@ Author: Behdad Esfahbod Date: Thu Nov 9 18:09:40 2017 -0800 [kern] Fix invalid memory access if offset is zero - + If offset is zero, we return Null() object. Wasn't prepared for that. - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4088 src/hb-ot-kern-table.hh | 9 +++++---- - .../sha1sum/243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 0 -> - 225 bytes + .../sha1sum/243798dd281c1c77c065958e1ff467420faa9bde.ttf | Bin 0 -> 225 bytes test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) @@ -41437,7 +41005,7 @@ Author: Khaled Hosny Date: Fri Nov 3 14:27:33 2017 +0200 [test] Use glyph ids instead of forcing ft funcs - + We were using ft funcs because these are CFF fonts, but we can avoid glyph names instead and keep testing both ot and ft. @@ -41450,13 +41018,11 @@ Author: Khaled Hosny Date: Thu Nov 2 09:45:06 2017 +0200 [test] Fix another instance of component rounding - + See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673 - .../sha1sum/7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 784 -> - 0 bytes - .../sha1sum/8228d035fcd65d62ec9728fb34f42c63be93a5d3.ttf | Bin 0 -> - 784 bytes + .../sha1sum/7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 784 -> 0 bytes + .../sha1sum/8228d035fcd65d62ec9728fb34f42c63be93a5d3.ttf | Bin 0 -> 784 bytes test/shaping/tests/fallback-positioning.tests | 3 +-- 3 files changed, 1 insertion(+), 2 deletions(-) @@ -41465,7 +41031,7 @@ Author: Behdad Esfahbod Date: Wed Nov 8 17:04:31 2017 -0800 Fix indexing in unsafe-to-break marking for 'stch' feature - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4099 src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -41476,7 +41042,7 @@ Author: Behdad Esfahbod Date: Wed Nov 8 17:03:55 2017 -0800 [tests/arabic-stch.tests] Don't show flags - + We don't need to test the actual flag values. For unsafe-to-break, the --verify in run-tests.sh checks what we are interested in. @@ -41498,11 +41064,9 @@ Date: Wed Nov 8 13:15:27 2017 -0500 Mark non-initial left matras as unsafe to break - src/hb-ot-shape-complex-indic.cc | 14 - +++++++++----- + src/hb-ot-shape-complex-indic.cc | 14 +++++++++----- test/shaping/Makefile.am | 1 + - .../sha1sum/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf | Bin 0 -> - 1380 bytes + .../sha1sum/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf | Bin 0 -> 1380 bytes test/shaping/tests/indic-init.tests | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) @@ -41520,7 +41084,7 @@ Author: Behdad Esfahbod Date: Mon Nov 6 15:28:24 2017 -0500 [kern] Allow subtables longer than 64kb - + Apparently calibri.ttf does this: https://github.com/fonttools/fonttools/pull/1094#discussion_r148933791 @@ -41535,8 +41099,7 @@ Date: Sat Nov 4 12:01:11 2017 -0400 [kern] Towards implementing format-2 src/hb-open-type-private.hh | 4 +-- - src/hb-ot-kern-table.hh | 69 - +++++++++++++++++++++++++++------------------ + src/hb-ot-kern-table.hh | 69 +++++++++++++++++++++++++++------------------ 2 files changed, 42 insertions(+), 31 deletions(-) commit 74e82adaea08ced18493e3341823dbd5b6cd493e @@ -41547,8 +41110,7 @@ Date: Mon Nov 6 14:41:55 2017 -0500 src/hb-ot-shape-complex-arabic.cc | 1 + test/shaping/Makefile.am | 1 + - .../sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf | Bin 0 -> - 1420 bytes + .../sha1sum/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf | Bin 0 -> 1420 bytes test/shaping/tests/arabic-stch.tests | 1 + 4 files changed, 3 insertions(+) @@ -41557,7 +41119,7 @@ Author: Behdad Esfahbod Date: Fri Nov 3 20:34:11 2017 -0400 [configure] Fix gobject default value in help output - + Fixes https://github.com/behdad/harfbuzz/issues/607 configure.ac | 2 +- @@ -41568,11 +41130,10 @@ Author: Behdad Esfahbod Date: Fri Nov 3 17:16:26 2017 -0400 Simplify tracing code when tracing is disabled - + Fixes https://github.com/behdad/harfbuzz/pull/605 - src/hb-debug.hh | 58 - +++++++++++++++++++++++++++++------- + src/hb-debug.hh | 58 +++++++++++++++++++++++++++++------- src/hb-ot-layout-gsubgpos-private.hh | 10 +++---- 2 files changed, 52 insertions(+), 16 deletions(-) @@ -41581,14 +41142,13 @@ Author: Behdad Esfahbod Date: Fri Nov 3 16:57:30 2017 -0400 Consolidate debug stuff into hb-debug.hh - + Part of fixing https://github.com/behdad/harfbuzz/pull/605 src/Makefile.sources | 1 + src/hb-blob.cc | 7 +- src/hb-coretext.cc | 8 +- - src/hb-debug.hh | 383 - +++++++++++++++++++++++++++++++++++ + src/hb-debug.hh | 383 +++++++++++++++++++++++++++++++++++ src/hb-directwrite.cc | 6 +- src/hb-ft.cc | 7 +- src/hb-object-private.hh | 8 +- @@ -41616,7 +41176,7 @@ Author: Unknown Date: Fri Nov 3 09:05:00 2017 -0400 Trivial typos - + Found using `codespell -i 3 -w -I '../harf-whitelist.txt'` whereas the whitelist contents were: ``` @@ -41665,9 +41225,9 @@ Author: Behdad Esfahbod Date: Wed Nov 1 19:41:29 2017 -0600 [ot] Hook up horizontal kerning to kern table - + Seems to work. Yay! - + Still to do: run kerning if GPOS doesn't have 'kern' feature. src/hb-ot-font.cc | 2 +- @@ -41678,12 +41238,11 @@ Author: Behdad Esfahbod Date: Wed Nov 1 19:33:09 2017 -0600 [kern] More... - + Almost there. src/hb-ot-font.cc | 14 +++++++++ - src/hb-ot-kern-table.hh | 75 - ++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-kern-table.hh | 75 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 88 insertions(+), 1 deletion(-) commit 49c0f35580946c74bc64dae2d2c65c7834e46ab2 @@ -41710,8 +41269,7 @@ Date: Wed Nov 1 18:12:26 2017 -0600 [kern] Implement Format0 - src/hb-ot-kern-table.hh | 51 - +++++++++++++++++++++++++++++++++++++++++++------ + src/hb-ot-kern-table.hh | 51 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) commit ac3d937c6cb0e2c7e019aa391b02da25aa6970de @@ -41720,8 +41278,7 @@ Date: Wed Nov 1 17:54:56 2017 -0600 [kern] Implement some more - src/hb-ot-kern-table.hh | 98 - ++++++++++++++++++++++++++++++++++++++----------- + src/hb-ot-kern-table.hh | 98 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 77 insertions(+), 21 deletions(-) commit 2a16f647ae4c5115a356ba82245c77e0d01fcebf @@ -41729,15 +41286,13 @@ Author: Behdad Esfahbod Date: Wed Nov 1 17:31:29 2017 -0600 [kern] Start implementing kern table - - Pushing this out early to catch bot errors since I'm using template - tricks + + Pushing this out early to catch bot errors since I'm using template tricks we were not using in HarfBuzz before. src/Makefile.sources | 1 + src/hb-ot-font.cc | 1 + - src/hb-ot-kern-table.hh | 184 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-kern-table.hh | 184 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+) commit 292ef2675edb2cb579210183e77ac30335318a21 @@ -41763,17 +41318,14 @@ Author: Khaled Hosny Date: Wed Nov 1 20:49:42 2017 +0200 [test] Fix difference between ft and ot font funcs - - See - https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673. - + + See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341194673. + I simply removed the composite glyph and use the referenced simple glyph directly. - .../sha1sum/4fac3929fc3332834e93673780ec0fe94342d193.ttf | Bin 0 -> - 804 bytes - .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 824 -> - 0 bytes + .../sha1sum/4fac3929fc3332834e93673780ec0fe94342d193.ttf | Bin 0 -> 804 bytes + .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 824 -> 0 bytes test/shaping/tests/cluster.tests | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) @@ -41782,7 +41334,7 @@ Author: Khaled Hosny Date: Wed Nov 1 20:33:43 2017 +0200 Revert "[test] We don’t care about glyph positions here" - + This reverts commit 70137e2b4b46918d9608f824a4b4b5cef2819158. test/shaping/tests/cluster.tests | 4 ++-- @@ -41802,14 +41354,12 @@ Author: Khaled Hosny Date: Wed Nov 1 12:03:39 2017 +0200 [test] We don’t care about glyph positions here - - Freetype and OT font functions give different positions for some - glyphs + + Freetype and OT font functions give different positions for some glyphs in this font (OT seems to be correct), but that is not what we are interested in in this test. - - See - https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223. + + See https://github.com/behdad/harfbuzz/pull/590#issuecomment-341045223. test/shaping/tests/cluster.tests | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -41819,7 +41369,7 @@ Author: Khaled Hosny Date: Wed Nov 1 10:34:36 2017 +0200 [test] Use ft functions for this test - + https://github.com/behdad/harfbuzz/pull/590#issuecomment-340967271 test/shaping/tests/vertical.tests | 2 +- @@ -41830,9 +41380,8 @@ Author: Khaled Hosny Date: Mon Oct 30 22:02:50 2017 +0200 [test] Always use ft font funcs for these tests - - These are CFF fonts and ot functions don’t support CFF glyph - names yet. + + These are CFF fonts and ot functions don’t support CFF glyph names yet. The next commit will run all tests with ot functions. test/shaping/tests/indic-consonant-with-stacker.tests | 8 ++++---- @@ -41865,7 +41414,7 @@ Author: Behdad Esfahbod Date: Wed Nov 1 01:15:27 2017 -0600 [CircleCI] Ignore gh-pages branch - + https://github.com/behdad/harfbuzz/pull/592 .circleci/config.yml | 4 ++++ @@ -41947,8 +41496,7 @@ Date: Fri Oct 27 12:14:00 2017 -0400 Categorize Grantha candrabindu for use in Tamil src/hb-ot-shape-complex-indic.cc | 2 +- - .../sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf | Bin 0 -> - 1120 bytes + .../sha1sum/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf | Bin 0 -> 1120 bytes test/shaping/tests/indic-script-extensions.tests | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) @@ -41957,7 +41505,7 @@ Author: Behdad Esfahbod Date: Tue Oct 31 14:25:46 2017 -0600 [CircleCI] Fix build - + Fixes https://github.com/behdad/harfbuzz/issues/589 .circleci/config.yml | 6 +++--- @@ -41975,11 +41523,10 @@ Author: Behdad Esfahbod Date: Tue Oct 31 14:02:32 2017 -0600 Simplify hb-sort-r.hh - + See https://github.com/behdad/harfbuzz/pull/592 - src/hb-sort-r.hh | 147 - ++++++------------------------------------------------- + src/hb-sort-r.hh | 147 ++++++------------------------------------------------- 1 file changed, 14 insertions(+), 133 deletions(-) commit b7982c9e65e0b58616cc8264dd52cac37753ef79 @@ -41988,8 +41535,7 @@ Date: Tue Oct 31 12:42:08 2017 -0700 [ci] Add CircleCI for cross-compiling (#592) - .circleci/config.yml | 61 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + .circleci/config.yml | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ README | 1 + 2 files changed, 62 insertions(+) @@ -41998,7 +41544,7 @@ Author: Behdad Esfahbod Date: Tue Oct 31 13:18:21 2017 -0600 Define _GNU_SOURCE - + Might help with https://github.com/behdad/harfbuzz/pull/592 Ie. bringing in qsort_r() prototype always. @@ -42010,7 +41556,7 @@ Author: Behdad Esfahbod Date: Tue Oct 31 11:17:43 2017 -0600 [coretext/uniscribe] Fix build - + https://travis-ci.org/behdad/harfbuzz/jobs/295039536#L3468 https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.697/job/dr1ujlntxafeqbej#L142 @@ -42023,7 +41569,7 @@ Author: Behdad Esfahbod Date: Mon Oct 30 14:11:59 2017 -0600 Fix Windows build - + (And prevent it from happening in the future.) src/hb-ot-layout.cc | 1 + @@ -42035,11 +41581,10 @@ Author: Behdad Esfahbod Date: Mon Oct 30 13:15:05 2017 -0600 [post] Implement glyph_from_name() - + This concludes https://github.com/behdad/harfbuzz/pull/568 - src/hb-ot-post-table.hh | 119 - ++++++++++++++++++++++++++++++++++++------------ + src/hb-ot-post-table.hh | 119 ++++++++++++++++++++++++++++++++++++------------ src/hb-private.hh | 10 ++-- src/hb-sort-r.hh | 2 +- 3 files changed, 96 insertions(+), 35 deletions(-) @@ -42080,8 +41625,7 @@ Date: Mon Oct 30 09:46:36 2017 -0600 [post] Minor; towards implementing get_glyph_from_name() - src/hb-ot-post-table.hh | 56 - +++++++++++++++++++++++++++---------------------- + src/hb-ot-post-table.hh | 56 +++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 25 deletions(-) commit 977679f229a10868dc668294082bd82125e4fe48 @@ -42114,8 +41658,7 @@ Date: Sun Oct 29 16:38:58 2017 -0600 Add hb-sort-r, a portable qsort_r() replacement src/Makefile.sources | 1 + - src/hb-sort-r.hh | 227 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-sort-r.hh | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 228 insertions(+) commit 923a8f520addba095384b975ba8934e5a18fb696 @@ -42141,12 +41684,11 @@ Author: Behdad Esfahbod Date: Sat Oct 28 19:54:04 2017 -0600 [ot] Speed up get_glyph_name() - + get_glyph_from_name() coming soon. src/hb-ot-font.cc | 13 ++-- - src/hb-ot-post-table.hh | 160 - +++++++++++++++++++------------------------ + src/hb-ot-post-table.hh | 160 +++++++++++++++++++------------------------ src/test-buffer-serialize.cc | 4 +- 3 files changed, 81 insertions(+), 96 deletions(-) @@ -42164,7 +41706,7 @@ Author: Behdad Esfahbod Date: Sat Oct 28 12:00:49 2017 -0600 More nullptr fix - + Fixes https://github.com/behdad/harfbuzz/issues/585 src/test.cc | 4 +--- @@ -42175,7 +41717,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 16:34:01 2017 -0600 [glib/ucdn/icu/ft/ot] Make returned funcs inert - + Such that client cannot accidentally destroy them, even though that will be a bug in their code... @@ -42192,7 +41734,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 16:03:51 2017 -0600 Fix previous commit - + Oops. src/hb-glib.cc | 2 +- @@ -42216,7 +41758,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 15:13:50 2017 -0600 Correctly mark NullPool const - + Saves some more code size as well! src/hb-open-type-private.hh | 2 +- @@ -42229,7 +41771,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 15:09:22 2017 -0600 Reduce prealloced number of user-data items from 2 to 1 - + Even 1 is too many but putting 0 breaks compile. Saves 3k in .so src/hb-private.hh | 2 +- @@ -42240,7 +41782,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 15:01:40 2017 -0600 Make the NullPool HB_INTERNAL shared - + Saves 2k of .bss section. src/hb-open-type-private.hh | 10 ++++++---- @@ -42253,7 +41795,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 14:42:59 2017 -0600 [ot] Remove shaper name - + In ten years we never used them... src/hb-ot-shape-complex-arabic.cc | 1 - @@ -42273,7 +41815,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 14:29:12 2017 -0600 Fix IntType.cmp() to avoid narrowing down integer types - + Fixes https://github.com/behdad/harfbuzz/issues/571 src/hb-open-type-private.hh | 5 +++-- @@ -42284,12 +41826,11 @@ Author: Behdad Esfahbod Date: Fri Oct 27 10:29:25 2017 -0600 Make c++11 optional - + Fixes https://github.com/behdad/harfbuzz/issues/585 configure.ac | 4 +- - m4/ax_cxx_compile_stdcxx.m4 | 982 - ++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_cxx_compile_stdcxx.m4 | 982 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 983 insertions(+), 3 deletions(-) commit 6c4689704071a76c49be819b8034feaf93e26a42 @@ -42315,7 +41856,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 09:29:20 2017 -0600 Use NULL instead of polyfill, if nullptr is not available - + Part of fixing https://github.com/behdad/harfbuzz/issues/585 src/hb-private.hh | 22 +++------------------- @@ -42326,7 +41867,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 09:22:30 2017 -0600 Include hb-private.hh more consistently - + Part of fixing https://github.com/behdad/harfbuzz/issues/585 src/test-buffer-serialize.cc | 4 +--- @@ -42346,7 +41887,7 @@ Author: Behdad Esfahbod Date: Fri Oct 27 00:25:11 2017 -0600 Towards compiling with pre-C++11 compilers and nullptr fallback - + https://github.com/behdad/harfbuzz/issues/585 src/hb-atomic-private.hh | 4 ++-- @@ -42359,8 +41900,7 @@ Date: Thu Oct 26 20:34:04 2017 -0600 [post] Make format1 names array avoid relocations src/Makefile.sources | 1 + - src/hb-ot-post-macroman.hh | 294 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-post-macroman.hh | 294 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-post-table.hh | 55 ++------- 3 files changed, 305 insertions(+), 45 deletions(-) @@ -42369,13 +41909,12 @@ Author: Behdad Esfahbod Date: Thu Oct 26 19:48:33 2017 -0600 Add hb-string-array.hh - + Used to build static string arrays that use no relocation. src/Makefile.sources | 1 + src/hb-private.hh | 6 ++-- - src/hb-string-array.hh | 74 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-string-array.hh | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 2 deletions(-) commit 6f08b12bc38166dee2f9740d396d617b32e887a3 @@ -42411,7 +41950,7 @@ Author: Behdad Esfahbod Date: Thu Oct 26 11:43:33 2017 -0600 Fix warning - + https://github.com/behdad/harfbuzz/commit/49a41dc75931cc2d2f7e74b7801f8cc327039e8e#commitcomment-25203194 test/api/test-set.c | 5 +++-- @@ -42422,7 +41961,7 @@ Author: Jonathan Kew Date: Thu Oct 26 16:59:50 2017 +0100 [set] Fix page_map[] indexing in backward loop. - + Fixes https://github.com/behdad/harfbuzz/issues/579. src/hb-set-private.hh | 4 ++-- @@ -42442,7 +41981,7 @@ Author: Jonathan Kew Date: Thu Oct 26 17:54:55 2017 +0100 [test] Additional coverage in test_set_iter. - + This adds a couple extra entries to the set used, such that iteration would fail in 1.6.2 due to the bug in hb_set_t::page_t::next(). @@ -42463,7 +42002,7 @@ Author: Behdad Esfahbod Date: Wed Oct 25 18:22:47 2017 -0600 [post] Oops! - + https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.668/job/ikfj8peowgrp059t src/hb-ot-post-table.hh | 4 ++-- @@ -42474,12 +42013,11 @@ Author: Behdad Esfahbod Date: Wed Oct 25 17:40:50 2017 -0600 [post] Touch up and fixes - + The get_glyph_from_name() is incorrect; needs fixing. src/hb-ot-font.cc | 9 ++-- - src/hb-ot-post-table.hh | 139 - +++++++++++++++++++++++++++--------------------- + src/hb-ot-post-table.hh | 139 +++++++++++++++++++++++++++--------------------- 2 files changed, 81 insertions(+), 67 deletions(-) commit d9e166f74c3ba3128c9ef3ccd8d7799e67f14eab @@ -42489,8 +42027,7 @@ Date: Wed Oct 18 20:49:16 2017 +0200 [ot-font] Implement hb_ot_get_glyph_from_name src/hb-ot-font.cc | 22 ++++++++++++++++++- - src/hb-ot-post-table.hh | 58 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-post-table.hh | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) commit 9d4d2fb9af446d5d41058fbb1da8117b3af048d3 @@ -42498,14 +42035,12 @@ Author: Khaled Hosny Date: Mon Oct 16 10:05:42 2017 +0200 [ot-font] Implement hb_ot_get_glyph_name - - Turns out we already have support for “post” table, it just - needed to be + + Turns out we already have support for “post” table, it just needed to be activated and put in use. src/hb-ot-font.cc | 46 ++++++++++++- - src/hb-ot-post-table.hh | 96 - +++++++++++++++++++++++++++ + src/hb-ot-post-table.hh | 96 +++++++++++++++++++++++++++ test/shaping/tests/fallback-positioning.tests | 2 +- test/shaping/tests/indic-syllable.tests | 2 +- test/shaping/tests/use.tests | 2 +- @@ -42523,7 +42058,7 @@ Author: Behdad Esfahbod Date: Wed Oct 25 16:17:45 2017 -0600 [test] Add more hb-set tests - + https://github.com/behdad/harfbuzz/issues/579 test/api/test-set.c | 40 ++++++++++++++++++++++++++++++++++++++++ @@ -42562,7 +42097,7 @@ Author: Behdad Esfahbod Date: Wed Oct 25 12:09:11 2017 -0400 Check for headers in builddir first, in check-*.sh - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=103346 src/check-c-linkage-decls.sh | 4 ++-- @@ -42576,12 +42111,11 @@ Author: Behdad Esfahbod Date: Tue Oct 24 10:06:25 2017 -0400 check-externs.sh: Make output more verbose - + Trying to figure out why this is failing on some Debian bots: https://bugs.freedesktop.org/show_bug.cgi?id=103346 - - Maybe I should check for GNU grep specifically now that I'm using - -n as well. + + Maybe I should check for GNU grep specifically now that I'm using -n as well. src/check-externs.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) @@ -42610,10 +42144,9 @@ Author: Behdad Esfahbod Date: Mon Oct 23 14:26:48 2017 -0400 [set] Fix crash - - Ouch! That's what happens when one plays with increment/decrement - operators! - + + Ouch! That's what happens when one plays with increment/decrement operators! + Fixes https://github.com/behdad/harfbuzz/issues/578 src/hb-set-private.hh | 10 ++++++---- @@ -42625,8 +42158,7 @@ Date: Mon Oct 23 13:10:21 2017 -0400 [RELEASING] Format - RELEASING.md | 67 - +++++++++++++++++++++++++++++++++++++++++++----------------- + RELEASING.md | 67 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 19 deletions(-) commit 6a2e1649debd992211bf96ef80d075d2d04a49ed @@ -42634,7 +42166,7 @@ Author: Behdad Esfahbod Date: Mon Oct 23 13:01:34 2017 -0400 [doap] Switch to github issues - + https://github.com/behdad/harfbuzz/pull/575#issuecomment-338514596 harfbuzz.doap | 2 +- @@ -42645,7 +42177,7 @@ Author: Behdad Esfahbod Date: Mon Oct 23 13:00:36 2017 -0400 [RELEASING] Minor - + https://github.com/behdad/harfbuzz/pull/575 RELEASING.md | 4 ++-- @@ -42665,7 +42197,7 @@ Author: Behdad Esfahbod Date: Mon Oct 23 08:36:40 2017 -0400 [set] Don't use major() - + Fixes https://github.com/behdad/harfbuzz/issues/577 src/hb-set-private.hh | 10 +++++----- @@ -42676,7 +42208,7 @@ Author: Behdad Esfahbod Date: Mon Oct 23 08:34:30 2017 -0400 [set] Don't use PAGE_SIZE - + Fixes https://github.com/behdad/harfbuzz/issues/576 src/hb-set-private.hh | 12 ++++++------ @@ -42704,7 +42236,7 @@ Author: ebraminio Date: Mon Oct 23 01:48:22 2017 +0330 Merge pull request #575 from behdad/releasing-edit - + Clarify the last step of release commit 19923279abd4c7615e8b02e05a02ba18f5c0b298 @@ -42785,7 +42317,7 @@ Author: ebraminio Date: Sat Oct 21 10:19:55 2017 +0330 Merge pull request #572 from fanc999/master.msvc - + builds: Support HarfBuzz-GObject and introspection in CMake builds commit d8adaa97fbf33071b8a4b5c05c3f2f15f2fd22ea @@ -42793,10 +42325,8 @@ Author: Behdad Esfahbod Date: Fri Oct 20 13:57:43 2017 -0400 Another try at fixing build bots - - hb-ot-shape.cc:287:18: error: comparison of constant 32 with - expression of type 'hb_unicode_general_category_t' is always true - [-Werror,-Wtautological-constant-out-of-range-compare] + + hb-ot-shape.cc:287:18: error: comparison of constant 32 with expression of type 'hb_unicode_general_category_t' is always true [-Werror,-Wtautological-constant-out-of-range-compare] src/hb-private.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -42806,7 +42336,7 @@ Author: Behdad Esfahbod Date: Thu Oct 19 11:39:52 2017 -0700 Remove FLAG_SAFE() - + No flag is safe, over time... See previous commit. src/hb-ot-shape-complex-arabic.cc | 4 ++-- @@ -42821,12 +42351,12 @@ Author: Behdad Esfahbod Date: Thu Oct 19 11:35:51 2017 -0700 [myanmar] Fix unsafe usage of FLAG_SAFE() - + The commit f559c633073f63b9d87cb2440048b4413cfa1c05 caused "undefined-shift" errors in Myanmar shaper as we changed the numeric value of type D from 19 to 32 there, making the "FLAG_SAFE (info.myanmar_category())" wrong. - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3546 src/hb-ot-shape-complex-myanmar.cc | 2 +- @@ -42837,13 +42367,11 @@ Author: Chun-wei Fan Date: Thu Oct 19 18:36:32 2017 +0800 CMake builds: Support introspection builds - - This adds support for introspection builds on Windows that is - enabled by - the HB_HAVE_INTROSPECTION option, which will also enable - HB_HAVE_GOBJECT + + This adds support for introspection builds on Windows that is enabled by + the HB_HAVE_INTROSPECTION option, which will also enable HB_HAVE_GOBJECT (and so HB_HAVE_GLIB) as they are required for introspection. - + In order for this to work one must ensure that the Python installation listed in PYTHON_EXECUTABLE is the same Python release series that was used to build _giscanner.pyd (the Python module that is used by @@ -42852,8 +42380,7 @@ Date: Thu Oct 19 18:36:32 2017 +0800 are not in the standard PATH and PKG_CONFIG_PATH, which is actually in-line with the *NIX builds. - CMakeLists.txt | 161 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- + CMakeLists.txt | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 154 insertions(+), 7 deletions(-) commit 53db221259b5eea4d2244321b2fe96beb39aef7d @@ -42861,28 +42388,24 @@ Author: Chun-wei Fan Date: Wed Oct 18 15:43:57 2017 +0800 CMake: Support building HarfBuzz-GObject - + This adds support to the CMake build files to support building HarfBuzz-GObject, which is actually a little bit complicated, as we need to: - + -Run glib-mkenums, which is a Python (for newer GLib/GObject) or PERL (for older, pre 2.53.4, GLib/GObject) script. This matters more for - Visual Studio builds as shebang lines are not supported, so we - need to + Visual Studio builds as shebang lines are not supported, so we need to test-run it with PERL or Python to determine which is the correct interpretor to use. - + -Next, we need to replace strings in the sources that we obtain from - running glib-mkenums. So, the solution here is to use a small - utility - CMake script for our purposes here, to maintain maximum - compatibility. - + running glib-mkenums. So, the solution here is to use a small utility + CMake script for our purposes here, to maintain maximum compatibility. + -Ensure that things do work in the Visual Studio IDE builds. - CMakeLists.txt | 128 - +++++++++++++++++++++++++++++++++++++++++++++ + CMakeLists.txt | 128 +++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 1 + replace-enum-strings.cmake | 21 ++++++++ 3 files changed, 150 insertions(+) @@ -42892,13 +42415,13 @@ Author: Chun-wei Fan Date: Wed Oct 18 22:27:28 2017 +0800 CMake builds: Fix builds - + Include the fallback sources in the build, and update src/Makefile.sources so that it can be read by the CMake build files. - + Fix a typo in the DirectWrite configure option so that we can properly enable DirectWrite builds. - + Also, when building the utility program, install them as well. CMakeLists.txt | 21 ++++++++++++++++++++- @@ -42919,13 +42442,12 @@ Author: Fredrik Roubert Date: Tue Oct 17 15:06:31 2017 -0700 Switch from ICU deprecated unorm_normalize to unorm2_normalize. (#569) - + The new unorm2_normalize has been public API since ICU 4.4, while the old unorm_normalize has been deprecated since ICU 56. - + Now, beginning with ICU 60, unorm_normalize will also be annotated - U_DEPRECATED and trigger the compiler -Wdeprecated-declarations - warning. + U_DEPRECATED and trigger the compiler -Wdeprecated-declarations warning. src/hb-icu.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) @@ -42944,10 +42466,8 @@ Author: Behdad Esfahbod Date: Tue Oct 17 11:16:36 2017 -0700 Try fixing build on VC - - c:\projects\harfbuzz\src\hb-set-private.hh(151): error C2327: - 'hb_set_t::page_t::v': is not a type name, static, or enumerator - [C:\projects\harfbuzz\build\harfbuzz.vcxproj] + + c:\projects\harfbuzz\src\hb-set-private.hh(151): error C2327: 'hb_set_t::page_t::v': is not a type name, static, or enumerator [C:\projects\harfbuzz\build\harfbuzz.vcxproj] src/hb-set-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -42957,7 +42477,7 @@ Author: Behdad Esfahbod Date: Tue Oct 17 11:14:48 2017 -0700 [coretext] Fix build - + error: static_assert expression is not an integral constant expression src/hb-coretext.cc | 2 +- @@ -42986,7 +42506,7 @@ Author: Behdad Esfahbod Date: Sun Oct 15 18:20:25 2017 -0400 [set] Disable vectorization - + Fixes clang "non-const reference cannot bind to vector element" error. src/hb-set-private.hh | 4 +++- @@ -43034,10 +42554,8 @@ Date: Sun Oct 15 16:21:03 2017 -0400 Properly detect vector_size attribute and use fallback otherwise - src/hb-private.hh | 67 - +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-set-private.hh | 62 - ++--------------------------------------------- + src/hb-private.hh | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-set-private.hh | 62 ++--------------------------------------------- 2 files changed, 69 insertions(+), 60 deletions(-) commit f8a0ec50e23264fdfe9e3a5a2e0453a87f415b3d @@ -43046,8 +42564,7 @@ Date: Sun Oct 15 16:10:35 2017 -0400 [set] Add fallback implementation of int-vector type - src/hb-set-private.hh | 64 - ++++++++++++++++++++++++++++++++++++--------------- + src/hb-set-private.hh | 64 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 19 deletions(-) commit deed4a48d15d4a475f8695aa3269547adf63867a @@ -43055,12 +42572,11 @@ Author: Behdad Esfahbod Date: Sun Oct 15 16:53:09 2017 +0200 Faster hb_set_t - + Fixes https://github.com/behdad/harfbuzz/pull/23 src/hb-private.hh | 56 ++++--- - src/hb-set-private.hh | 431 - +++++++++++++++++++++++++++++++++++++++++--------- + src/hb-set-private.hh | 431 +++++++++++++++++++++++++++++++++++++++++--------- test/api/test-set.c | 6 - 3 files changed, 391 insertions(+), 102 deletions(-) @@ -43110,8 +42626,7 @@ Date: Sun Oct 15 14:10:34 2017 +0200 Remove unused hb_cache_t src/Makefile.sources | 1 - - src/hb-cache-private.hh | 74 - ------------------------------------------------- + src/hb-cache-private.hh | 74 ------------------------------------------------- src/hb-ft.cc | 2 -- 3 files changed, 77 deletions(-) @@ -43121,8 +42636,7 @@ Date: Sun Oct 15 14:09:46 2017 +0200 Remove unused hb_frozen_set_t - src/hb-set-private.hh | 55 - --------------------------------------------------- + src/hb-set-private.hh | 55 --------------------------------------------------- 1 file changed, 55 deletions(-) commit 826a1daf2f2075459ff25a20ed8abec030d95c52 @@ -43133,8 +42647,7 @@ Date: Sun Oct 15 14:09:05 2017 +0200 src/Makefile.sources | 1 + src/hb-ot-layout-private.hh | 2 +- - src/hb-set-digest-private.hh | 144 - +++++++++++++++++++++++++++++++++++++++++++ + src/hb-set-digest-private.hh | 144 +++++++++++++++++++++++++++++++++++++++++++ src/hb-set-private.hh | 113 --------------------------------- 4 files changed, 146 insertions(+), 114 deletions(-) @@ -43233,8 +42746,7 @@ Date: Sun Oct 15 12:11:08 2017 +0200 util/hb-shape.cc | 14 ++-- util/helper-cairo.cc | 12 ++-- util/main-font-text.hh | 4 +- - util/options.cc | 110 - ++++++++++++++--------------- + util/options.cc | 110 ++++++++++++++--------------- util/options.hh | 56 +++++++-------- util/shape-consumer.hh | 10 +-- 65 files changed, 563 insertions(+), 568 deletions(-) @@ -43268,8 +42780,7 @@ Date: Sun Oct 15 12:02:00 2017 +0200 src/hb-ot-shape-complex-arabic-fallback.hh | 6 +++--- src/hb-ot-shape-complex-indic.cc | 2 +- src/hb-ot-shape-complex-use.cc | 2 +- - src/hb-private.hh | 34 - +++++++++++++----------------- + src/hb-private.hh | 34 +++++++++++++----------------- src/hb-set-private.hh | 8 +++---- src/hb-uniscribe.cc | 2 +- util/options.cc | 3 ++- @@ -43280,7 +42791,7 @@ Author: Behdad Esfahbod Date: Sun Oct 15 11:24:35 2017 +0200 Add polyfill for static_assert and nullptr - + Also fix hb_assert_constant_t. src/hb-private.hh | 38 ++++++++++++++++++++++++++++++++++---- @@ -43291,7 +42802,7 @@ Author: Behdad Esfahbod Date: Sun Oct 15 10:55:32 2017 +0200 [util] Include hb-private.hh - + Simplifies compatibility issues by centralizing all boilerplate code in hb-private.hh. @@ -43303,16 +42814,14 @@ Author: Behdad Esfahbod Date: Sun Oct 15 10:48:19 2017 +0200 Never skip over CGJ - + We might want to tweak this some more. For now, never skipping over it is better behavior than always skipping. - + Part of https://github.com/behdad/harfbuzz/issues/554 - src/hb-ot-layout-private.hh | 19 - +++++++++++-------- - .../bf962d3202883a820aed019d9b5c1838c2ff69c6.ttf | Bin 0 -> - 2468 bytes + src/hb-ot-layout-private.hh | 19 +++++++++++-------- + .../bf962d3202883a820aed019d9b5c1838c2ff69c6.ttf | Bin 0 -> 2468 bytes test/shaping/tests/default-ignorables.tests | 1 + 3 files changed, 12 insertions(+), 8 deletions(-) @@ -43350,7 +42859,7 @@ Author: Behdad Esfahbod Date: Fri Oct 13 10:21:07 2017 +0200 [coretext] Pass correct font size to CoreText - + CoreText "point"s are not typographic points, but CSS pixels. Ie. they are 96 per inch, not 72 per inch. @@ -43369,14 +42878,12 @@ Author: Behdad Esfahbod Date: Thu Oct 12 14:07:37 2017 +0200 [indic] Special-case Kannada Ra,H,ZWJ sequence - + Fixes https://github.com/behdad/harfbuzz/issues/435 - src/hb-ot-shape-complex-indic.cc | 15 - +++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 15 +++++++++++++++ test/shaping/Makefile.am | 1 + - .../sha1sum/3cae6bfe5b57c07ba81ddbd54c02fe4f3a1e3bf6.ttf | Bin 0 -> - 2984 bytes + .../sha1sum/3cae6bfe5b57c07ba81ddbd54c02fe4f3a1e3bf6.ttf | Bin 0 -> 2984 bytes test/shaping/tests/indic-special-cases.tests | 3 +++ 4 files changed, 19 insertions(+) @@ -43384,14 +42891,11 @@ commit 40b05d7b770b8045f176f66231c412b32482d874 Author: n8willis Date: Thu Oct 12 12:48:48 2017 +0100 - Replacing 'cluster' with 'syllable' when comments describe certain - Indic shaping behavior (#563) - - * Clarified wording of syllable/cluster behavior in Uniscribe in - final_reordering; changed one other probable typo. - - * Additional syllable/cluster swap in comments for final reordering - and for initial-reordering matra decomposition. + Replacing 'cluster' with 'syllable' when comments describe certain Indic shaping behavior (#563) + + * Clarified wording of syllable/cluster behavior in Uniscribe in final_reordering; changed one other probable typo. + + * Additional syllable/cluster swap in comments for final reordering and for initial-reordering matra decomposition. src/hb-ot-shape-complex-indic.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) @@ -43419,7 +42923,7 @@ Author: Dominik Röttsches Date: Thu Oct 12 11:49:37 2017 +0200 [coretext] Activate tracking for system fonts - + Another attempt at fully fixing https://github.com/behdad/harfbuzz/issues/360 @@ -43431,13 +42935,11 @@ Author: Khaled Hosny Date: Thu Oct 12 12:05:08 2017 +0300 CMakelists.txt fix for Freetype builds (#564) - - Instead of searching for freetype using pkg-config, use the - FindFreetype - feature of CMake. This allows for better integration with other - projects + + Instead of searching for freetype using pkg-config, use the FindFreetype + feature of CMake. This allows for better integration with other projects that make use of CMake. - + Fixes https://github.com/behdad/harfbuzz/issues/518 CMakeLists.txt | 24 +++++++----------------- @@ -43448,9 +42950,9 @@ Author: Behdad Esfahbod Date: Thu Oct 12 10:46:09 2017 +0200 [coretext] Use fabsf() instead of abs() - + Fixes bots. - + Link libharfbuzz.so with -lm. Surprising that we survived without it so far! @@ -43473,8 +42975,7 @@ Date: Thu Oct 12 12:11:47 2017 +0330 win32/Makefile.vc | 67 ------------ win32/README.txt | 97 ----------------- win32/build-rules-msvc.mak | 130 ----------------------- - win32/config-msvc.mak | 230 - ---------------------------------------- + win32/config-msvc.mak | 230 ---------------------------------------- win32/config.h.win32.in | 158 --------------------------- win32/create-lists-msvc.mak | 147 ------------------------- win32/create-lists.bat | 42 -------- @@ -43495,15 +42996,13 @@ Author: Behdad Esfahbod Date: Thu Oct 12 10:33:16 2017 +0200 [ft] Add hb_ft_font_changed() - - When the font size or variations settings on underlying FT_Face - change, - one can call hb_ft_font_changed() and continue using hb_font - created using + + When the font size or variations settings on underlying FT_Face change, + one can call hb_ft_font_changed() and continue using hb_font created using hb_ft_font_create(). - + Fixes https://github.com/behdad/harfbuzz/issues/559 - + New API: hb_ft_font_changed() @@ -43517,10 +43016,10 @@ Author: Behdad Esfahbod Date: Wed Oct 11 17:22:44 2017 +0200 Add hb_face_get_table_tags() - + New API: hb_face_get_table_tags() - + Fixes https://github.com/behdad/harfbuzz/issues/560 src/hb-face.cc | 29 +++++++++++++++++++++++++++++ @@ -43533,7 +43032,7 @@ Author: Behdad Esfahbod Date: Wed Oct 11 15:51:31 2017 +0200 Remove cast of functions to (hb_destroy_func_t) - + Fixes https://github.com/behdad/harfbuzz/issues/474 src/hb-blob.cc | 8 +++++++- @@ -43595,7 +43094,7 @@ Author: Behdad Esfahbod Date: Wed Oct 11 15:02:48 2017 +0200 [coretext-aat] Also pass through CoreText if font has kerx table - + SFNSText has kerx table which apparently is applied. src/hb-coretext.cc | 20 +++++++++----------- @@ -43617,7 +43116,7 @@ Author: Behdad Esfahbod Date: Wed Oct 11 13:35:32 2017 +0200 Merge branch 'coretext-optical-sizing' - + Should fix https://github.com/behdad/harfbuzz/issues/360 commit a5ebe1d4aec41bc5e289a7969e5e5f7bb57733b6 @@ -43625,7 +43124,7 @@ Author: Dominik Röttsches Date: Wed Oct 11 13:32:38 2017 +0200 [coretext] Recreate CTFont if pt size changed - + Attempt at fixing #360 src/hb-coretext.cc | 5 +++-- @@ -43654,13 +43153,12 @@ Author: Behdad Esfahbod Date: Wed Oct 11 13:05:59 2017 +0200 [coretext] Move CT_Font to font data - + Towards implementing optical sizing. Untested; won't compile. - + https://github.com/behdad/harfbuzz/issues/360 - src/hb-coretext.cc | 85 - ++++++++++++++++++++++++------------------------------ + src/hb-coretext.cc | 85 ++++++++++++++++++++++++------------------------------ 1 file changed, 37 insertions(+), 48 deletions(-) commit f9b4c6570a4725eec5393f86e6468a189ac8c6be @@ -43677,7 +43175,7 @@ Author: Behdad Esfahbod Date: Wed Oct 11 12:43:46 2017 +0200 Infrastructure for creating CTFont with correct font size - + https://github.com/behdad/harfbuzz/issues/360 src/hb-shaper-private.hh | 12 ++++++++++++ @@ -43697,10 +43195,10 @@ Author: Behdad Esfahbod Date: Wed Oct 11 12:23:35 2017 +0200 Remove dirty tracking - + Turns out I don't need this to resolve CoreText optical sizing issue after all. - + https://github.com/behdad/harfbuzz/issues/360 src/hb-face-private.hh | 9 --------- @@ -43714,11 +43212,11 @@ Author: Behdad Esfahbod Date: Wed Oct 11 11:47:47 2017 +0200 Add hb_font_[sg]et_ptem() to set/get point size on font - + New API: hb_font_set_ptem() hb_font_get_ptem() - + Needed for hb-coretext optical sizing: https://github.com/behdad/harfbuzz/issues/360 @@ -43751,7 +43249,7 @@ Author: Behdad Esfahbod Date: Sat Oct 7 12:56:53 2017 +0200 Add check for HB_EXTERNs - + https://github.com/behdad/harfbuzz/pull/555 src/Makefile.am | 1 + @@ -43762,41 +43260,33 @@ commit 48a9406839f086735a05a2f1a07987b8a6bd6d33 Author: fanc999 Date: Sat Oct 7 18:57:14 2017 +0800 - Fix build of HarfBuzz tools and HarfBuzz-GObject on Visual Studio - (#555) - + Fix build of HarfBuzz tools and HarfBuzz-GObject on Visual Studio (#555) + * hb-buffer.h: Mark hb_buffer_diff() for export - + This will fix the tools builds on Visual Studio, as the symbol is used by the tools. - + * build: Adapt NMake Makefiles for GLib 2.53.4 or later - + glib-mkenums was ported from a PERL script to a Python script, so we - need to update how we generate the enum sources for HarfBuzz-GObject - in - the NMake builds. Let this be known in the build documentation - for MSVC + need to update how we generate the enum sources for HarfBuzz-GObject in + the NMake builds. Let this be known in the build documentation for MSVC builds. - - One of the problems with the underlying cmd.exe that the NMake - Makefiles + + One of the problems with the underlying cmd.exe that the NMake Makefiles run on is that shebang lines are not recognized, so we need to to test run the script with Python and see whether it succeeded by outputing a source file that is larger than 0 in file size (since running the PERL version of the script will clearly fail and cause an empty file to be created). - - If it succeeds, we then run a small Python utility script that - makes the - necessary string replacements, and we are done. If that fails, - then we - run the glib-mkenums script with PERL, and do the replacements - with the + + If it succeeds, we then run a small Python utility script that makes the + necessary string replacements, and we are done. If that fails, then we + run the glib-mkenums script with PERL, and do the replacements with the PERL one-liners as we did before. - - We need to make replace.py use latin-1 encoding when using Python - 3.x to + + We need to make replace.py use latin-1 encoding when using Python 3.x to cope with the copyright sign that is in the generated enum sources. src/hb-buffer.h | 2 +- @@ -43813,7 +43303,7 @@ Author: Behdad Esfahbod Date: Wed Oct 4 16:59:22 2017 +0200 [ot] Remove 'mal' and 'gle' lang tags - + Fixes https://github.com/behdad/harfbuzz/issues/477 src/hb-ot-tag.cc | 2 -- @@ -43824,13 +43314,11 @@ Author: Behdad Esfahbod Date: Wed Oct 4 15:06:48 2017 +0200 Improve performance of ligature component matching - - This O(N^2) was introduced in - 8b2c94c43fd335b944d5e5487265706b8e0f9041. + + This O(N^2) was introduced in 8b2c94c43fd335b944d5e5487265706b8e0f9041. Make it O(N). - src/hb-ot-layout-gsubgpos-private.hh | 37 - +++++++++++++++++++++++------------- + src/hb-ot-layout-gsubgpos-private.hh | 37 +++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) commit ab8d70ec7023e51ba6fd7267d2b41c5f95ef0787 @@ -43838,11 +43326,10 @@ Author: Behdad Esfahbod Date: Wed Oct 4 14:47:10 2017 +0200 [arabic] Implement Unicode Arabic Mark Ordering Algorithm UTR#53 - + Fixes https://github.com/behdad/harfbuzz/issues/509 - src/hb-ot-shape-complex-arabic.cc | 75 - +++++++++++++++++++++ + src/hb-ot-shape-complex-arabic.cc | 75 +++++++++++++++++++++ src/hb-ot-shape-complex-default.cc | 1 + src/hb-ot-shape-complex-hangul.cc | 1 + src/hb-ot-shape-complex-hebrew.cc | 1 + @@ -43875,17 +43362,16 @@ Author: Behdad Esfahbod Date: Wed Oct 4 13:20:33 2017 +0200 Adjust normalizer for out-of-order marks - + We are going to implement Unicode Arabic Mark Ordering Algorithm: - + http://www.unicode.org/reports/tr53/tr53-1.pdf - + which will reorder marks out of their sorted ccc order. Adjust normalizer to stop combining as soon as dangerous ordering is detected. - src/hb-ot-shape-normalize.cc | 62 - ++++++++++++++++++++++++++------------------ + src/hb-ot-shape-normalize.cc | 62 ++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 25 deletions(-) commit a252ad61f077c3b7bbfd8335e1b105a57beb58ce @@ -43902,9 +43388,9 @@ Author: Behdad Esfahbod Date: Wed Oct 4 13:06:51 2017 +0200 Revert "Treat HAMZA ABOVE similar to SHADD for sorting purposes" - + This reverts commit 5a330575768f5a213072230b9ec8faabac9c5737. - + Proper fix coming soon. src/hb-unicode-private.hh | 4 ---- @@ -43915,7 +43401,7 @@ Author: Behdad Esfahbod Date: Wed Oct 4 11:33:47 2017 +0200 Shorthand format controls should not be ignored - + Fixes https://github.com/behdad/harfbuzz/issues/503 src/hb-unicode-private.hh | 4 ++-- @@ -43926,7 +43412,7 @@ Author: Behdad Esfahbod Date: Wed Oct 4 11:28:04 2017 +0200 Add Chinantec language tags - + Fixes https://github.com/behdad/harfbuzz/issues/516 src/hb-ot-tag.cc | 14 ++++++++++++++ @@ -43937,11 +43423,10 @@ Author: Behdad Esfahbod Date: Tue Oct 3 17:22:43 2017 +0200 Fix GPOS v_origin ordering - - This should affect mark attachment in vertical text. I have no font - to test, + + This should affect mark attachment in vertical text. I have no font to test, but this sounds the right order. - + Noticed while debugging https://github.com/behdad/harfbuzz/issues/532 src/hb-ot-shape.cc | 44 ++++++++++++++++++++------------------------ @@ -43952,7 +43437,7 @@ Author: Behdad Esfahbod Date: Tue Oct 3 16:00:18 2017 +0200 [indic] Fix shaping of U+0AFB GUJARATI SIGN SHADDA - + Fixes https://github.com/behdad/harfbuzz/issues/552 src/hb-ot-shape-complex-indic-private.hh | 2 +- @@ -43964,7 +43449,7 @@ Author: Behdad Esfahbod Date: Tue Oct 3 15:20:07 2017 +0200 [indic] Implement Consonent_With_Stacker - + Fixes https://github.com/behdad/harfbuzz/issues/528 src/hb-ot-shape-complex-indic-machine.rl | 5 +++-- @@ -43978,7 +43463,7 @@ Author: Behdad Esfahbod Date: Tue Oct 3 14:57:14 2017 +0200 [use] Implement Consonant_With_Stacker - + Related to https://github.com/behdad/harfbuzz/issues/528 src/gen-use-table.py | 7 ++++--- @@ -43994,8 +43479,7 @@ Date: Tue Oct 3 08:07:02 2017 -0400 Test Consonant_With_Stacker in Kannada (#530) test/shaping/Makefile.am | 1 + - test/shaping/fonts/COPYING | 100 - +++++++++++++++++++++ + test/shaping/fonts/COPYING | 100 +++++++++++++++++++++ .../341421e629668b1a1242245d39238ca48432d35d.ttf | Bin 0 -> 1084 bytes .../55c88ebbe938680b08f92c3de20713183e0c7481.ttf | Bin 0 -> 3300 bytes .../663aef6b019dbf45ffd74089e2b5f2496ceceb18.ttf | Bin 0 -> 1204 bytes @@ -44008,18 +43492,17 @@ Author: Behdad Esfahbod Date: Tue Oct 3 13:46:25 2017 +0200 Tweak mark-base attachment - + Apparently a base glyph can also become an attached component of a ligature if the ligature-forming lookup used IgnoreBase. This was being confused with a non-first component of a MultipleSubst and hence not matched for mark-attachment. Tweak test to fix. - + Fixes https://github.com/behdad/harfbuzz/issues/543 src/hb-ot-layout-gpos-table.hh | 4 +++- test/shaping/Makefile.am | 1 + - .../sha1sum/98b7887cff91f722b92a8ff800120954606354f9.ttf | Bin 0 -> - 1168 bytes + .../sha1sum/98b7887cff91f722b92a8ff800120954606354f9.ttf | Bin 0 -> 1168 bytes test/shaping/tests/mark-attachment.tests | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) @@ -44045,7 +43528,7 @@ Author: Behdad Esfahbod Date: Tue Oct 3 13:22:07 2017 +0200 Make bots happy - + Fixes https://github.com/behdad/harfbuzz/issues/551 test/shaping/tests/indic-syllable.tests | 2 +- @@ -44056,9 +43539,9 @@ Author: Behdad Esfahbod Date: Tue Oct 3 13:14:17 2017 +0200 Tweak input matching some more - + Followup to 8b2c94c43fd335b944d5e5487265706b8e0f9041 - + Allow matching sequences of marks attached to different ligatures, as supposedly the base of the subsequent marks were already jumped over. @@ -44081,30 +43564,26 @@ Author: Behdad Esfahbod Date: Mon Oct 2 20:28:56 2017 +0200 Add test for U+0A51 - + New Indic numbers are: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%) KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%) KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - - Before 71c0a1429db7c7e7e32507be248c9457e1cbfc7d GURMUKHI used to be - at 15, - because Uniscribe seems to allow this character standalone, but - that looks + + Before 71c0a1429db7c7e7e32507be248c9457e1cbfc7d GURMUKHI used to be at 15, + because Uniscribe seems to allow this character standalone, but that looks wrong. - .../sha1sum/1735326da89f0818cd8c51a0600e9789812c0f94.ttf | Bin 0 -> - 1008 bytes + .../sha1sum/1735326da89f0818cd8c51a0600e9789812c0f94.ttf | Bin 0 -> 1008 bytes test/shaping/tests/indic-syllable.tests | 2 ++ 2 files changed, 2 insertions(+) @@ -44113,23 +43592,20 @@ Author: Behdad Esfahbod Date: Mon Oct 2 20:02:45 2017 +0200 Tweak ligature component matching for ligature formation - - If two marks want to ligate and they belong to different components - of the - same ligature glyph, and said ligature glyph is to be ignored - according to + + If two marks want to ligate and they belong to different components of the + same ligature glyph, and said ligature glyph is to be ignored according to mark-filtering rules, then allow. - + Example Burmese senquence: - + U+1004,U+103A,U+1039,U+101B,U+103D,U+102D - + Test font provided by Norbert Lindenberg. - + Fixes https://github.com/behdad/harfbuzz/issues/545 - src/hb-ot-layout-gsubgpos-private.hh | 59 - +++++++++++++++++---- + src/hb-ot-layout-gsubgpos-private.hh | 59 +++++++++++++++++---- .../a6c76d1bafde4a0b1026ebcc932d2e5c6fd02442.ttf | Bin 0 -> 1384 bytes test/shaping/tests/ligature-id.tests | 1 + 3 files changed, 51 insertions(+), 9 deletions(-) @@ -44139,15 +43615,14 @@ Author: Behdad Esfahbod Date: Mon Oct 2 18:56:10 2017 +0200 [indic] Fix shaping of U+0A51 - + Mark it as matra below to allow the sequence U+0A15, U+0A51, U+0A47. Oh well... - + Fixes https://github.com/behdad/harfbuzz/issues/524 src/hb-ot-shape-complex-indic.cc | 6 ++++++ - .../sha1sum/85fe0be440c64ac77699e21c2f1bd933a919167e.ttf | Bin 0 -> - 1224 bytes + .../sha1sum/85fe0be440c64ac77699e21c2f1bd933a919167e.ttf | Bin 0 -> 1224 bytes test/shaping/tests/indic-syllable.tests | 1 + 3 files changed, 7 insertions(+) @@ -44157,8 +43632,7 @@ Date: Mon Oct 2 18:30:05 2017 +0200 [ucdn] Oops! - src/hb-ucdn/{unicodedata_db.h => ucdn_db.h} | 4324 - ++++++++++++++------------- + src/hb-ucdn/{unicodedata_db.h => ucdn_db.h} | 4324 ++++++++++++++------------- 1 file changed, 2175 insertions(+), 2149 deletions(-) commit cbec0cd65e1787b20ea55dd5583a7444938bd381 @@ -44194,7 +43668,7 @@ Author: Behdad Esfahbod Date: Mon Oct 2 18:20:51 2017 +0200 [use] Hack to fix shaping of U+1A7F - + Fixes https://github.com/behdad/harfbuzz/issues/525 src/gen-use-table.py | 3 +++ @@ -44206,14 +43680,13 @@ Author: Behdad Esfahbod Date: Mon Oct 2 17:15:46 2017 +0200 [ucdn] Update to Unicode 10 - + Update to commit c000ebf79c095a7d58cf90090bde5715592c4834 plus this bug-fix: https://github.com/grigorig/ucdn/issues/18 src/hb-ucdn.cc | 4 +++ src/hb-ucdn/Makefile.sources | 2 +- - src/hb-ucdn/ucdn.c | 69 - ++++++++++++++++++++++---------------------- + src/hb-ucdn/ucdn.c | 69 ++++++++++++++++++++++---------------------- src/hb-ucdn/ucdn.h | 7 +++++ 4 files changed, 47 insertions(+), 35 deletions(-) @@ -44224,8 +43697,7 @@ Date: Mon Oct 2 17:02:39 2017 +0200 [use] Update to Unicode 10 src/gen-use-table.py | 5 +-- - src/hb-ot-shape-complex-use-table.cc | 69 - ++++++++++++++++++++++++++---------- + src/hb-ot-shape-complex-use-table.cc | 69 ++++++++++++++++++++++++++---------- 2 files changed, 54 insertions(+), 20 deletions(-) commit 29c244aff6e3c359796bb033496c14ad5537dbe0 @@ -44253,8 +43725,7 @@ Date: Mon Oct 2 10:00:31 2017 -0400 [indic] Update table to Unicode 10 - src/hb-ot-shape-complex-indic-table.cc | 70 - +++++++++++++++++----------------- + src/hb-ot-shape-complex-indic-table.cc | 70 +++++++++++++++++----------------- 1 file changed, 36 insertions(+), 34 deletions(-) commit cc79b666bc4a81a0342ed1e706dd7db109739dc5 @@ -44262,11 +43733,10 @@ Author: Behdad Esfahbod Date: Mon Oct 2 09:19:15 2017 -0400 [indic] Add test for 1a0a356a0f2b2932581e4fd0437c01c058f4f6d1 - + https://github.com/behdad/harfbuzz/issues/538 - .../sha1sum/87f85d17d26f1fe9ad28d7365101958edaefb967.ttf | Bin 0 -> - 1000 bytes + .../sha1sum/87f85d17d26f1fe9ad28d7365101958edaefb967.ttf | Bin 0 -> 1000 bytes test/shaping/tests/indic-syllable.tests | 1 + 2 files changed, 1 insertion(+) @@ -44294,7 +43764,7 @@ Author: Behdad Esfahbod Date: Mon Oct 2 08:49:23 2017 -0400 [indic] Categorize U+0980 BENGALI ANJI as placeholder - + Fixes https://github.com/behdad/harfbuzz/issues/538 src/hb-ot-shape-complex-indic.cc | 1 + @@ -44304,11 +43774,9 @@ commit 19e77e01bc13f44138e1d50533327d314dd0a018 Author: jfkthame Date: Mon Oct 2 13:08:49 2017 +0100 - [shape-plan] Don't look for a cached plan if variation coords are - specified. Fixes #549. (#550) - - This is a temporary hack just to avoid incorrect shaping results, - pending proper support + [shape-plan] Don't look for a cached plan if variation coords are specified. Fixes #549. (#550) + + This is a temporary hack just to avoid incorrect shaping results, pending proper support for caching shape-plans with variation coordinates. src/hb-shape-plan.cc | 16 +++++++++------- @@ -44329,8 +43797,7 @@ Date: Sun Oct 1 19:35:24 2017 +0330 Add release checklist (#529) - RELEASING.md | 96 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + RELEASING.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) commit 66128d3cfb12705530141b5a4bd2706f0cbb9fc5 @@ -44338,9 +43805,9 @@ Author: mhosken Date: Wed Sep 27 01:29:45 2017 +0700 Fix missing xscale in rtl graphite unpacking (#541) - + * Fix missing xscale in rtl graphite unpacking - + * Oops didn't need to mess with yscale src/hb-graphite2.cc | 2 +- @@ -44350,16 +43817,13 @@ commit 3ca69c8c32b8408dd9f8e6e866cd07e58c0d79b7 Author: Behdad Esfahbod Date: Thu Sep 14 20:50:35 2017 -0400 - Use strtod_l() to correctly parse decimal numbers in French & - other locales - + Use strtod_l() to correctly parse decimal numbers in French & other locales + Test with, eg.: - $ LC_ALL=fr_FR.utf-8 ./hb-view NotoSansArabic-VF.ttf بهداد - --variations wght=1.2 + $ LC_ALL=fr_FR.utf-8 ./hb-view NotoSansArabic-VF.ttf بهداد --variations wght=1.2 configure.ac | 4 ++-- - src/hb-common.cc | 53 - +++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-common.cc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 4 deletions(-) commit 9355218f582a6c2425cadcb868204f81b17d5767 @@ -44367,7 +43831,7 @@ Author: Behdad Esfahbod Date: Sat Sep 9 11:21:07 2017 -0700 [util] Add a few shorthand forms for commandline options - + -o, -O, -u, -v, -V util/options.cc | 10 +++++----- @@ -44388,9 +43852,9 @@ Author: Behdad Esfahbod Date: Mon Sep 4 20:14:13 2017 -0700 Fix buffer_diff for empty buffers - + If buffers are empty, content type should be ignored. - + This fixes last of the failing tests: fuzzed.tests. Green again! src/hb-buffer.cc | 2 +- @@ -44403,7 +43867,7 @@ Author: Behdad Esfahbod Date: Mon Sep 4 20:04:59 2017 -0700 [unsafe-to-break] Fix unsafe-to-break for cluster-level=1 - + Fixes tests/shaping/tests/cluster.tests src/hb-ot-shape.cc | 17 +++++++++++------ @@ -44423,12 +43887,11 @@ Author: Behdad Esfahbod Date: Fri Sep 1 19:09:54 2017 -0700 [util] Add --unicodes to hb-view / hb-shape - + Fixes https://github.com/behdad/harfbuzz/issues/154 test/shaping/hb_test_tools.py | 2 +- - util/options.cc | 65 - ++++++++++++++++++++++++++++++++++++++++++- + util/options.cc | 65 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 2 deletions(-) commit 0e5b475d98dd67e927534508fe2cd8dc9765e24e @@ -44463,13 +43926,12 @@ Author: Behdad Esfahbod Date: Fri Sep 1 10:34:21 2017 -0700 [indic] Treat Consonant_With_Stacker as consonant - + Fixes https://github.com/behdad/harfbuzz/issues/528 "Kannada JIHVAMULIYA and UPADHMANIYA insert dotted circles" src/hb-ot-shape-complex-indic-private.hh | 2 +- - .../sha1sum/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf | Bin 0 -> - 988 bytes + .../sha1sum/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf | Bin 0 -> 988 bytes test/shaping/tests/indic-syllable.tests | 3 ++- 3 files changed, 3 insertions(+), 2 deletions(-) @@ -44478,7 +43940,7 @@ Author: Behdad Esfahbod Date: Wed Aug 30 17:28:22 2017 -0700 [unsafe-to-break] Mark during fraction-slash formation - + Fixes tests/automatic-fractions.tests src/hb-ot-shape.cc | 2 ++ @@ -44489,11 +43951,10 @@ Author: Behdad Esfahbod Date: Wed Aug 30 17:25:10 2017 -0700 [util] Fix cluster sweeping during --verify - - If *I* get this wrong in 2017, I have no idea how others get their - head around + + If *I* get this wrong in 2017, I have no idea how others get their head around cluster math... - + Fixes tests/arabic-fallback-shaping.tests util/options.hh | 11 ++++++++--- @@ -44514,11 +43975,9 @@ Author: Behdad Esfahbod Date: Wed Aug 30 16:45:06 2017 -0700 hb_buffer_diff() tweak - - I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE - are not - returned. Abused a value of -1 for that. hb-shape now uses it. - Fixes two + + I like to have a mode where CONTAINS_NOTDEF and CONTAINS_DOTTEDCIRCLE are not + returned. Abused a value of -1 for that. hb-shape now uses it. Fixes two of the six tests failing with --verify in test/shaping/run-tests.sh. src/hb-buffer.cc | 16 ++++++++-------- @@ -44552,7 +44011,7 @@ Author: Behdad Esfahbod Date: Wed Aug 23 14:35:58 2017 -0700 [test] Add --verify to hb-shape - + Disabled for now. Will enable and fix failures after next release. test/shaping/run-tests.sh | 3 ++- @@ -44563,7 +44022,7 @@ Author: Behdad Esfahbod Date: Wed Aug 23 13:12:54 2017 -0700 Add hb_glyph_info_get_glyph_flags() - + New API. src/hb-buffer.cc | 17 +++++++++++++++++ @@ -44574,8 +44033,7 @@ commit 3e8f4f145255a905029c6b5cb8f40e6dcca096f3 Author: Behdad Esfahbod Date: Tue Aug 22 17:56:25 2017 -0700 - Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to - HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH + Rename HB_BUFFER_DIFF_FLAG_MASK_MISMATCH to HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH src/hb-buffer.cc | 2 +- src/hb-buffer.h | 2 +- @@ -44615,11 +44073,9 @@ Author: Emil A Eklund (eae) Date: Tue Aug 15 16:25:18 2017 -0700 Fix signed/unsigned warning (#522) - - Change hb_buffer_diff to explicitly cast result of abs to unsigned - when - comparing with position_fuzz to avoid unsafe signed/unsigned - comparions + + Change hb_buffer_diff to explicitly cast result of abs to unsigned when + comparing with position_fuzz to avoid unsafe signed/unsigned comparions warnings on windows. src/hb-buffer.cc | 8 ++++---- @@ -44660,19 +44116,18 @@ Author: Jonathan Kew Date: Sat Jul 19 23:09:09 2014 +0100 Add function to compare two buffers - + Based on patch from Jonathan Kew. - + Needs more cleaning up and documentation. - + New API: hb_buffer_diff_flags_t hb_buffer_diff() src/hb-buffer-private.hh | 1 + src/hb-buffer-serialize.cc | 4 +-- - src/hb-buffer.cc | 82 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 82 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 39 ++++++++++++++++++++++ 4 files changed, 124 insertions(+), 2 deletions(-) @@ -44702,14 +44157,13 @@ Author: Behdad Esfahbod Date: Fri Aug 11 19:51:06 2017 -0700 [unsafe-to-break] Towards verifying unsafe-to-break in --verify - + We break and shape fragments and reconstruct shape result from them. Remains to compare to original buffer. Going to add some buffer comparison API and use here, instead of open-coding. src/hb-buffer.cc | 5 ++- - util/options.hh | 131 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++- + util/options.hh | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 133 insertions(+), 3 deletions(-) commit 6ce25f57c663f86326262a5ff7a42288f358ed51 @@ -44717,7 +44171,7 @@ Author: Behdad Esfahbod Date: Fri Aug 11 19:31:05 2017 -0700 Fix hb_buffer_append() - + Ouch! src/hb-buffer.cc | 2 +- @@ -44728,11 +44182,10 @@ Author: Behdad Esfahbod Date: Fri Aug 11 19:06:07 2017 -0700 [unsafe-to-break] Copy flag to all glyphs in a cluster - + Makes consumption easier. - src/hb-buffer-private.hh | 46 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer-private.hh | 46 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.cc | 28 ++++++--------------------- src/hb-ot-layout-private.hh | 3 +-- src/hb-ot-shape.cc | 27 ++++++++++++++++++++++++++ @@ -44743,9 +44196,8 @@ Author: Behdad Esfahbod Date: Fri Aug 11 18:24:27 2017 -0700 [unsafe-to-break] Mark unsafe is cluster merging is disabled - - We were relying on cluster merges not requiring unsafe flagging - because + + We were relying on cluster merges not requiring unsafe flagging because they get merged. If cluster level requests no merging, then we flag unsafe when merge would have happened. @@ -44758,8 +44210,7 @@ Date: Fri Aug 11 15:52:06 2017 -0700 New API: hb_buffer_append() - src/hb-buffer.cc | 52 - +++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-buffer.cc | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/hb-buffer.h | 6 ++++++ 2 files changed, 57 insertions(+), 1 deletion(-) @@ -44768,9 +44219,8 @@ Author: Behdad Esfahbod Date: Fri Aug 11 15:12:25 2017 -0700 [util] Add --verify to hb-shape / hb-view that verifies shape results - - Right now it checks for monotone cluster values. Other checks to - be added. + + Right now it checks for monotone cluster values. Other checks to be added. util/hb-shape.cc | 7 ++----- util/options.cc | 2 ++ @@ -44783,9 +44233,8 @@ commit 14a639ea592cba971e5548f0942dd395c602c7a8 Author: Behdad Esfahbod Date: Fri Aug 11 11:30:39 2017 -0700 - [unsafe-to-break] Fix Use-of-uninitialized-value in - unsafe_to_break_set_mask - + [unsafe-to-break] Fix Use-of-uninitialized-value in unsafe_to_break_set_mask + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3011 src/hb-ot-shape-complex-hangul.cc | 2 +- @@ -44858,8 +44307,7 @@ commit e2a2b5b229c92f1de3b9c3ea111cd1ffa75b18fc Author: Behdad Esfahbod Date: Thu Aug 10 20:10:12 2017 -0700 - [unsafe-to-break] Be careful with flag propagation when merging - clusters + [unsafe-to-break] Be careful with flag propagation when merging clusters src/hb-buffer-private.hh | 13 +++++++++++++ src/hb-buffer.cc | 17 ++++++++++------- @@ -44871,7 +44319,7 @@ Author: Behdad Esfahbod Date: Thu Aug 10 19:58:05 2017 -0700 Set mask to 0, instead of 1, by default - + This shouldn't matter. src/hb-buffer.cc | 2 +- @@ -44912,11 +44360,10 @@ Author: Behdad Esfahbod Date: Wed May 4 19:51:22 2016 +0200 [unsafe-to-break] Simplify logic - + Always use the algorithm for non-monotone case. It's more robust. - src/hb-buffer.cc | 57 - +++++++++++++------------------------------------------- + src/hb-buffer.cc | 57 +++++++++++++------------------------------------------- 1 file changed, 13 insertions(+), 44 deletions(-) commit 40bd7e9a1cf422b17f15d0f66547bde9098e6ef3 @@ -44924,17 +44371,16 @@ Author: Behdad Esfahbod Date: Mon May 2 14:47:45 2016 +0200 [unsafe-to-break] Add UNSAFE_TO_BREAK flag - + Not all shapers code is updated to set this properly. GSUB and Arabic shaper are updated. GPOS and other shapers are NOT. - + Fixes https://github.com/behdad/harfbuzz/issues/224 src/hb-buffer-private.hh | 26 ++++++++------ src/hb-buffer-serialize.cc | 24 +++++++++---- - src/hb-buffer.cc | 67 - ++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 67 ++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 10 ++++-- src/hb-ot-layout-gsub-table.hh | 7 ++-- src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++----- @@ -44977,7 +44423,7 @@ Author: Behdad Esfahbod Date: Wed Aug 9 17:23:28 2017 -0700 Treat HAMZA ABOVE similar to SHADD for sorting purposes - + Part of https://github.com/behdad/harfbuzz/issues/509 src/hb-unicode-private.hh | 4 ++++ @@ -44988,9 +44434,9 @@ Author: Behdad Esfahbod Date: Wed Aug 9 17:09:21 2017 -0700 Protect against div-by-zero in CBDT extent code - + Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1452#c5 - + CC https://github.com/behdad/harfbuzz/issues/139 src/hb-ft.cc | 4 ++-- @@ -45007,8 +44453,7 @@ Date: Tue Aug 8 18:37:03 2017 -0700 test/shaping/Makefile.am | 1 + .../d23d76ea0909c14972796937ba072b5a40c1e257.ttf | Bin 0 -> 1812 bytes test/shaping/record-test.sh | 1 + - test/shaping/tests/variations-rvrn.tests | 100 - +++++++++++++++++++++ + test/shaping/tests/variations-rvrn.tests | 100 +++++++++++++++++++++ 4 files changed, 102 insertions(+) commit 7917792f01603f91b703d12e12d8baced655a615 @@ -45026,11 +44471,11 @@ Author: Behdad Esfahbod Date: Mon Aug 7 21:37:07 2017 -0700 Two fixes to avar mapping - + 1. Handle segment with two entries correctly, - + 2. Fix rounding math. Ouch! - + Fixes https://github.com/behdad/harfbuzz/issues/521 src/hb-ot-var-avar-table.hh | 13 +++++++++---- @@ -45041,7 +44486,7 @@ Author: Behdad Esfahbod Date: Thu Aug 3 12:34:15 2017 +0100 [check-defs/symbols.sh] Drop empty-symbol lines - + Fixes https://github.com/behdad/harfbuzz/issues/510 src/check-defs.sh | 2 +- @@ -45053,7 +44498,7 @@ Author: Behdad Esfahbod Date: Wed Jul 19 17:20:55 2017 -0700 [hb-shape] Rename --show-messages to --trace - + https://github.com/behdad/harfbuzz/issues/506 util/hb-shape.cc | 2 +- @@ -45066,17 +44511,13 @@ Author: Behdad Esfahbod Date: Tue Jul 18 19:14:19 2017 -0700 [hb-shape] Improve shaping-debug output - - Before, that was printed using --debug (and in both hb-shape and - hb-view). - Changed it, now hb-shape has a new command-line argument called - --show-messages. - When invoked, it also respects other output formatting options. - The messages - are better formatted and printed to te same place that hb-shape - output is + + Before, that was printed using --debug (and in both hb-shape and hb-view). + Changed it, now hb-shape has a new command-line argument called --show-messages. + When invoked, it also respects other output formatting options. The messages + are better formatted and printed to te same place that hb-shape output is directed to. Previously they were written to stderr. - + Fixes https://github.com/behdad/harfbuzz/issues/506 util/hb-ot-shape-closure.cc | 10 +++++++--- @@ -45112,12 +44553,11 @@ Author: Behdad Esfahbod Date: Fri Jul 14 17:34:47 2017 +0100 [arabic] Adjust feature order again - + Fixes https://github.com/behdad/harfbuzz/issues/505 src/hb-ot-shape-complex-arabic.cc | 7 ++++++- - .../sha1sum/bf39b0e91ef9807f15a9e283a21a14a209fd2cfc.ttf | Bin 0 -> - 7312 bytes + .../sha1sum/bf39b0e91ef9807f15a9e283a21a14a209fd2cfc.ttf | Bin 0 -> 7312 bytes test/shaping/tests/arabic-feature-order.tests | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) @@ -45126,15 +44566,14 @@ Author: Cosimo Lupo Date: Fri Jul 14 17:11:46 2017 +0100 [coretext] Allow to disable kern (#508) - + * Minor - + * [coretext] Fix leak - + * [coretext] Do not reset num_features - - * [coretext] allow to disable kern; re-enabling doesn't seem to - be working + + * [coretext] allow to disable kern; re-enabling doesn't seem to be working src/hb-coretext.cc | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) @@ -45144,12 +44583,11 @@ Author: Behdad Esfahbod Date: Fri Jul 14 17:01:27 2017 +0100 [use] Allow up to two medial-below letters - + Fixes https://github.com/behdad/harfbuzz/issues/376 src/hb-ot-shape-complex-use-machine.rl | 3 ++- - .../sha1sum/e68a88939e0f06e34d2bc911f09b70890289c8fd.ttf | Bin 0 -> - 2192 bytes + .../sha1sum/e68a88939e0f06e34d2bc911f09b70890289c8fd.ttf | Bin 0 -> 2192 bytes test/shaping/tests/use-syllable.tests | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) @@ -45158,10 +44596,10 @@ Author: Behdad Esfahbod Date: Fri Jul 14 16:38:51 2017 +0100 [use] Fix shaping of U+AA29 CHAM VOWEL SIGN AA - + Part of https://github.com/behdad/harfbuzz/issues/376 Also see https://github.com/roozbehp/unicode-data/issues/6 - + Test added, using NotoSansCham built from Noto Phase III sources. src/gen-arabic-table.py | 2 +- @@ -45169,8 +44607,7 @@ Date: Fri Jul 14 16:38:51 2017 +0100 src/gen-use-table.py | 8 +++++--- src/hb-ot-shape-complex-use-table.cc | 4 ++-- test/shaping/Makefile.am | 1 + - .../sha1sum/96490dd2ff81233b335a650e7eb660e0e7b2eeea.ttf | Bin 0 -> - 1368 bytes + .../sha1sum/96490dd2ff81233b335a650e7eb660e0e7b2eeea.ttf | Bin 0 -> 1368 bytes test/shaping/tests/use-syllable.tests | 1 + 7 files changed, 11 insertions(+), 7 deletions(-) @@ -45192,8 +44629,7 @@ Date: Fri Jul 14 15:50:22 2017 +0100 src/hb-ot-shape-complex-indic-private.hh | 2 +- src/hb-ot-shape-complex-indic.cc | 8 ++++++++ test/shaping/Makefile.am | 1 + - .../sha1sum/54674a3111d209fb6be0ed31745314b7a8d2c244.ttf | Bin 0 -> - 1352 bytes + .../sha1sum/54674a3111d209fb6be0ed31745314b7a8d2c244.ttf | Bin 0 -> 1352 bytes test/shaping/tests/indic-syllable.tests | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) @@ -45202,34 +44638,32 @@ Author: Behdad Esfahbod Date: Fri Jul 14 14:14:35 2017 +0100 [indic] Disable automatic ZWNJ handling for Indic features - + Fixes https://github.com/behdad/harfbuzz/issues/294 - + Also fixes a bunch of other Indic issues. Test results after: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951201 out of 951913 tests passed. 712 failed (0.0747968%) KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - + Before: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -45237,8 +44671,7 @@ Date: Fri Jul 14 14:14:35 2017 +0100 src/hb-ot-shape-complex-indic.cc | 4 ++-- test/shaping/Makefile.am | 1 + - .../sha1sum/f443753e8ffe8e8aae606cfba158e00334b6efb1.ttf | Bin 0 -> - 3972 bytes + .../sha1sum/f443753e8ffe8e8aae606cfba158e00334b6efb1.ttf | Bin 0 -> 3972 bytes test/shaping/tests/indic-joiners.tests | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) @@ -45246,13 +44679,11 @@ commit cdf1fd0627c5517c948ca05d2e9427c3e441adf9 Author: Behdad Esfahbod Date: Fri Jul 14 12:43:34 2017 +0100 - [indic] Add infrastructure to disable ZWNJ-skipping in - context-matching - + [indic] Add infrastructure to disable ZWNJ-skipping in context-matching + Not used yet. - src/hb-ot-layout-gsubgpos-private.hh | 45 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gsubgpos-private.hh | 45 ++++++++++++++++++++---------------- src/hb-ot-layout.cc | 1 + src/hb-ot-map-private.hh | 10 +++++--- src/hb-ot-map.cc | 8 +++++-- @@ -45263,27 +44694,21 @@ Author: Dominik Schlösser Date: Fri Jul 14 13:14:55 2017 +0200 Shaping tests for Tibetan vowels (#446) - + * Shaping tests for Tibetan vowels - - * Test-cases for the Dzongkha contractions with multiple vowel-signs - added. - + + * Test-cases for the Dzongkha contractions with multiple vowel-signs added. + * going to be removed - - * Extended contraction-test-cases to all test cases in - contractions.txt that actually use multiple-vowels (113 cases) + + * Extended contraction-test-cases to all test cases in contractions.txt that actually use multiple-vowels (113 cases) test/shaping/Makefile.am | 3 ++ - .../2de1ab4907ab688c0cfc236b0bf51151db38bf2e.ttf | Bin 0 -> 125256 - bytes + .../2de1ab4907ab688c0cfc236b0bf51151db38bf2e.ttf | Bin 0 -> 125256 bytes .../82f4f3b57bb55344e72e70231380202a52af5805.ttf | Bin 0 -> 11116 bytes - .../a02a7f0ad42c2922cb37ad1358c9df4eb81f1bca.ttf | Bin 0 -> 106096 - bytes - test/shaping/tests/tibetan-contractions-1.tests | 60 - +++++++++++++++++++++ - test/shaping/tests/tibetan-contractions-2.tests | 53 - ++++++++++++++++++ + .../a02a7f0ad42c2922cb37ad1358c9df4eb81f1bca.ttf | Bin 0 -> 106096 bytes + test/shaping/tests/tibetan-contractions-1.tests | 60 +++++++++++++++++++++ + test/shaping/tests/tibetan-contractions-2.tests | 53 ++++++++++++++++++ test/shaping/tests/tibetan-vowels.tests | 11 ++++ 7 files changed, 127 insertions(+) @@ -45292,15 +44717,14 @@ Author: Dominik Schlösser Date: Fri Jul 14 13:14:23 2017 +0200 Fix for reordering of Tibetan vowel u (#443) - + * Undone change for Tibetan vowel u - + * removed comment on reordering that became invalid with roll-back - + * Support for Dzongkha contractions with multiple vowel-signs - - * Removed non-functional and unnecessary defines for - HB_MODIFIED_COMBINING_CLASS_CCC138,140 + + * Removed non-functional and unnecessary defines for HB_MODIFIED_COMBINING_CLASS_CCC138,140 src/hb-unicode-private.hh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) @@ -45310,21 +44734,17 @@ Author: fanc999 Date: Wed Jun 21 22:19:57 2017 +0800 Win32/NMake builds: Support builds from GIT (#498) - + Add Python scripts to generate the full win32/config.h.win32 and src/hb-version.h which can be used to build directly from a GIT - checkout. Since the scripts are currently intended for building - from a + checkout. Since the scripts are currently intended for building from a GIT checkout, these are not distributed in the release tarballs. - - Also, support the re-build of Ragel-generated .hh headers using - the NMake - build system, and allow one to specify the path of the Ragel - executable + + Also, support the re-build of Ragel-generated .hh headers using the NMake + build system, and allow one to specify the path of the Ragel executable if a suitable one cannot be found in the PATH. - - Update the Win32/NMake build documentation to let people know - about how + + Update the Win32/NMake build documentation to let people know about how these mechanisms can be utilized. win32/README.txt | 20 ++++++- @@ -45333,10 +44753,8 @@ Date: Wed Jun 21 22:19:57 2017 +0800 win32/create-lists-msvc.mak | 9 ++++ win32/generate-msvc.mak | 6 +++ win32/info-msvc.mak | 8 ++- - win32/pc_base.py | 124 - ++++++++++++++++++++++++++++++++++++++++++++ - win32/replace.py | 115 - ++++++++++++++++++++++++++++++++++++++++ + win32/pc_base.py | 124 ++++++++++++++++++++++++++++++++++++++++++++ + win32/replace.py | 115 ++++++++++++++++++++++++++++++++++++++++ win32/setup.py | 62 ++++++++++++++++++++++ 9 files changed, 353 insertions(+), 3 deletions(-) @@ -45358,8 +44776,7 @@ Date: Mon Jun 19 14:47:09 2017 +0430 src/hb-ot-shape-complex-indic.cc | 12 +++++----- src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-complex-thai.cc | 12 +++++----- - src/hb-ot-shape-complex-use-table.cc | 42 - ++++++++++++++++----------------- + src/hb-ot-shape-complex-use-table.cc | 42 ++++++++++++++++----------------- src/hb-unicode-private.hh | 16 ++++++------- src/hb-utf-private.hh | 18 +++++++------- 15 files changed, 110 insertions(+), 86 deletions(-) @@ -45387,7 +44804,7 @@ Author: Sebastian Rasmussen Date: Mon May 29 12:53:30 2017 -0500 Avoid using strdup inside library. (#488) - + If an application provides a malloc replacement through hb_malloc_impl() it is important that it is used to allocate everything, but the use of strdup() circumvents this and @@ -45403,17 +44820,15 @@ Author: Khaled Hosny Date: Wed May 17 21:32:47 2017 +0300 Do not skip TAG characters in glyph substitution (#487) - + Hide them like Mongolian Free Variation Selectors instead. - + Fixes https://github.com/behdad/harfbuzz/issues/463 src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout-private.hh | 13 - +++++++++---- + src/hb-ot-layout-private.hh | 13 +++++++++---- test/shaping/Makefile.am | 1 + - .../sha1sum/53374c7ca3657be37efde7ed02ae34229a56ae1f.ttf | Bin 0 -> - 5044 bytes + .../sha1sum/53374c7ca3657be37efde7ed02ae34229a56ae1f.ttf | Bin 0 -> 5044 bytes test/shaping/tests/emoji-flag-tags.tests | 2 ++ 5 files changed, 13 insertions(+), 5 deletions(-) @@ -45469,8 +44884,7 @@ Date: Wed Apr 19 22:59:46 2017 +0430 [cmake] Final touches (#473) - CMakeLists.txt | 113 - +++++++++++++++++++++++++++------------------------------ + CMakeLists.txt | 113 +++++++++++++++++++++++++++------------------------------ 1 file changed, 54 insertions(+), 59 deletions(-) commit aacca37590656e235218557ea509eb5624dfbff9 @@ -45478,15 +44892,14 @@ Author: Chris Peterson Date: Mon Apr 17 23:25:24 2017 -0700 Fix clang -Wcomma warnings (#471) (#472) - + clang's new -Wcomma compiler option warns about possible misuse of the comma operator such as between two statements. - + hb-common.cc:190:9 [-Wcomma] possible misuse of comma operator here hb-ot-layout-gsubgpos-private.hh:345:30 [-Wcomma] possible misuse of comma operator here - hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator - here + hb-shape-plan.cc:438:26 [-Wcomma] possible misuse of comma operator here src/hb-common.cc | 6 ++++-- src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -45497,8 +44910,7 @@ commit 4d7c52066b5b205b20ba2679cb57a4e593942102 Author: ebraminio Date: Mon Apr 17 15:53:46 2017 +0430 - [cmake] Remove HB_DISABLE_DEPRECATED as it seems needed for pango - build (#470) + [cmake] Remove HB_DISABLE_DEPRECATED as it seems needed for pango build (#470) CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) @@ -45508,7 +44920,7 @@ Author: William Hua Date: Mon Apr 17 01:33:42 2017 -0400 Use absolute paths of ragel generated headers (#467) - + https://github.com/behdad/harfbuzz/issues/455 src/Makefile.am | 4 ++-- @@ -45564,9 +44976,8 @@ Author: jfkthame Date: Tue Apr 11 22:29:13 2017 +0100 Blacklist GDEF table in additional Tahoma versions. (#459) - - There are more broken versions of Tahoma out there on various - Windows releases, + + There are more broken versions of Tahoma out there on various Windows releases, so we need to add them to our blacklist to avoid broken rendering. See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925 for details. @@ -45579,8 +44990,7 @@ Date: Tue Apr 11 23:18:18 2017 +0430 [cmake] Improve third party libraries support (#461) - CMakeLists.txt | 57 - ++++++++++++++++++++++++++++++++++++-------- + CMakeLists.txt | 57 ++++++++++++++++++++++++++++++++++++-------- src/hb-ucdn/Makefile.sources | 5 +++- 2 files changed, 51 insertions(+), 11 deletions(-) @@ -45590,8 +45000,7 @@ Date: Tue Apr 11 21:32:14 2017 +0430 [cmake] Add utils build support (#460) - CMakeLists.txt | 150 - +++++++++++++++++++++++++++++++++++++++++---------------- + CMakeLists.txt | 150 +++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 108 insertions(+), 42 deletions(-) commit bc1244e2395f844b2b41315cb1eef29570e46b29 @@ -45599,14 +45008,12 @@ Author: Chun-wei Fan Date: Thu Apr 6 18:44:28 2017 +0800 NMake Makefiles: Fix ICU builds - + Fix the check conditions in config-msvc.mak and info-msvc.mak so that - the ICU items does indeed get built into the HarfBuzz main DLL, - and that + the ICU items does indeed get built into the HarfBuzz main DLL, and that the correct configuration info is displayed. - - Also update the checks in detectenv-msvc.mak so that we can detect - that + + Also update the checks in detectenv-msvc.mak so that we can detect that we are using Visual Studio 2017 (although the 2015-built binaries use the same CRT DLL as the 2017 ones). @@ -45629,11 +45036,9 @@ commit d2acaf6d729727f47c5aacf7ee40097580b6f18d Author: ebraminio Date: Wed Apr 5 02:21:23 2017 -0700 - Split ragel generated files lists and remove hardcoded rl files lists - (#453) + Split ragel generated files lists and remove hardcoded rl files lists (#453) - CMakeLists.txt | 126 - +++++++++++++++++++++----------------------------- + CMakeLists.txt | 126 +++++++++++++++++++++----------------------------- src/Makefile.am | 2 + src/Makefile.sources | 16 +++++-- win32/config-msvc.mak | 8 ++-- @@ -45645,8 +45050,7 @@ Date: Tue Apr 4 15:03:51 2017 +0430 Add CMake build support (#444) - CMakeLists.txt | 254 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + CMakeLists.txt | 254 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 1 + appveyor.yml | 61 +++++++++----- 3 files changed, 295 insertions(+), 21 deletions(-) @@ -45656,7 +45060,7 @@ Author: jfkthame Date: Mon Apr 3 12:22:39 2017 +0100 avoid UBSan warning in get_stage_lookups (#450) - + See https://bugzilla.mozilla.org/show_bug.cgi?id=1336600 src/hb-ot-map-private.hh | 2 +- @@ -45666,8 +45070,7 @@ commit 8d256841ca7462fd596329abf6f71bafb56fd621 Author: Dominik Schloesser Date: Sun Mar 26 09:22:34 2017 +0200 - Current fonttools (3.9.1) generate subset-file called font.subset.ttf - instead of older font.ttf.subset + Current fonttools (3.9.1) generate subset-file called font.subset.ttf instead of older font.ttf.subset test/shaping/record-test.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) @@ -45686,7 +45089,7 @@ Author: Khaled Hosny Date: Sun Mar 26 10:48:53 2017 +0200 [tools] Make hb-unicode-code work with Python 3 - + Related to https://github.com/behdad/harfbuzz/pull/445 test/shaping/hb_test_tools.py | 13 ++++++++++++- @@ -45697,7 +45100,7 @@ Author: Behdad Esfahbod Date: Fri Mar 24 10:24:52 2017 -0700 Blacklist more versions of Padauk - + Patch from Phil Race. src/hb-ot-layout.cc | 8 ++++++++ @@ -45708,9 +45111,8 @@ Author: Khaled Hosny Date: Thu Mar 23 00:35:36 2017 +0200 [ci] Fix msys2 build on AppVeyor - - For whatever reason the env variables need to be the Windows way - or they + + For whatever reason the env variables need to be the Windows way or they end up being empty. appveyor.yml | 2 +- @@ -45730,11 +45132,9 @@ Author: Chun-wei Fan Date: Fri Feb 24 17:58:25 2017 +0800 src/hb-common.cc: Fix build on older Visual Studio - - Visual Studio only supported strtof() from Visual Studio 2013 - onwards, so - use strtod() instead to do the operation, which should do the - same thing, + + Visual Studio only supported strtof() from Visual Studio 2013 onwards, so + use strtod() instead to do the operation, which should do the same thing, sans going to a double, not a float. src/hb-common.cc | 4 ++++ @@ -45745,22 +45145,18 @@ Author: Chun-wei Fan Date: Fri Feb 24 17:47:44 2017 +0800 Visual Studio builds: Fix Introspection when UCDN enabled - + The sources in src/hb-ucdn and not included correctly into the NMake - Makefiles, as we need their explicit relative location as we pass - all the + Makefiles, as we need their explicit relative location as we pass all the sources we used into the introspection scanner. This was not an issue before as we excluded the UCDN sources in the build when we enabled introspection (meaning GLib is enabled), but since we default on using - UCDN on all builds unless explicitly disabled, we need to deal - with this. - - This did not affect builds using UCDN without introspection due to - the use + UCDN on all builds unless explicitly disabled, we need to deal with this. + + This did not affect builds using UCDN without introspection due to the use of NMake batch rules. - - Fix this by creating a NMake Makefile module on-the-fly with the - correct + + Fix this by creating a NMake Makefile module on-the-fly with the correct subdir info, and using that list in there instead. win32/Makefile.vc | 15 +++++++++++++++ @@ -45772,16 +45168,14 @@ Author: Chun-wei Fan Date: Thu Feb 23 13:02:49 2017 +0800 Update Visual Studio builds for UCDN usage - + We now use UCDN by default, so make it so in the build files; however don't hardcode HAVE_UCDN as one may still opt not to use it (but pass - it in as a CFLAG unless one explicitly disables UCDN by using - NO_UCDN=1 + it in as a CFLAG unless one explicitly disables UCDN by using NO_UCDN=1 on the NMake command line). - + Note that we are not blocking builds where UCDN is disabled along with - GLib and ICU, as that will trigger a build error anyways which - will tell + GLib and ICU, as that will trigger a build error anyways which will tell the user what needs to be done to remedy this. win32/README.txt | 6 +++--- @@ -45804,16 +45198,14 @@ commit 47e7a1800fba9b8bf042a1f4976a15ab012ebfc7 Author: Behdad Esfahbod Date: Fri Mar 10 13:23:02 2017 -0800 - Revert "Fix Context lookup application when moving back after a - glyph delete" - + Revert "Fix Context lookup application when moving back after a glyph delete" + This reverts commit b9b005f3a44ccf78a45b212b126287b69b9f4b40. - + This introduced invalid access cases. Revert until I fix correctly. src/hb-ot-layout-gsubgpos-private.hh | 7 ++++--- - .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 6400 -> - 0 bytes + .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 6400 -> 0 bytes test/shaping/tests/context-matching.tests | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) @@ -45822,7 +45214,7 @@ Author: Behdad Esfahbod Date: Tue Mar 7 18:13:28 2017 -0800 Fix buffer serialize of empty buffer - + Ouch! src/hb-buffer-serialize.cc | 2 ++ @@ -45864,10 +45256,8 @@ Date: Sun Mar 5 14:53:39 2017 +0100 BASE: start api src/Makefile.sources | 2 ++ - src/hb-ot-base.cc | 58 - ++++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-base.h | 56 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-base.cc | 58 ++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-base.h | 56 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-base-table.hh | 15 ++--------- 4 files changed, 118 insertions(+), 13 deletions(-) @@ -45885,13 +45275,12 @@ Author: Behdad Esfahbod Date: Wed Mar 1 14:27:23 2017 -0800 Fix Context lookup application when moving back after a glyph delete - + This was broken forever, since days that we did not allow moving tape backwards. Works now. Reported by Doug Felt. src/hb-ot-layout-gsubgpos-private.hh | 7 +++---- - .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 0 -> - 6400 bytes + .../sha1sum/5bbf3712e6f79775c66a4407837a90e591efbef2.ttf | Bin 0 -> 6400 bytes test/shaping/tests/context-matching.tests | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) @@ -45910,8 +45299,7 @@ Date: Sun Feb 26 15:07:53 2017 +0100 BASE: first complete version - src/hb-ot-layout-base-table.hh | 444 - +++++++++++++++++++++++++++++------------ + src/hb-ot-layout-base-table.hh | 444 +++++++++++++++++++++++++++++------------ 1 file changed, 317 insertions(+), 127 deletions(-) commit a11501444cfc4854bfe2b1d3ce0fc5a957e959d8 @@ -45920,14 +45308,10 @@ Date: Sat Feb 25 13:37:54 2017 -0800 Add few tests found by libFuzzer and oss-fuzz - .../sha1sum/a34a9191d9376bda419836effeef7e75c1386016.ttf | Bin 0 -> - 1010 bytes - .../sha1sum/a69118c2c2ada48ff803d9149daa54c9ebdae30e.ttf | Bin 0 -> - 820 bytes - .../sha1sum/b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 0 -> - 3301 bytes - .../sha1sum/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin 0 -> - 515 bytes + .../sha1sum/a34a9191d9376bda419836effeef7e75c1386016.ttf | Bin 0 -> 1010 bytes + .../sha1sum/a69118c2c2ada48ff803d9149daa54c9ebdae30e.ttf | Bin 0 -> 820 bytes + .../sha1sum/b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf | Bin 0 -> 3301 bytes + .../sha1sum/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf | Bin 0 -> 515 bytes test/shaping/tests/fuzzed.tests | 4 ++++ 5 files changed, 4 insertions(+) @@ -45936,10 +45320,10 @@ Author: Behdad Esfahbod Date: Sat Feb 25 13:30:38 2017 -0800 Fix buffer-overrun with Bengali reph positioning code - + This has no security implications whatsoever since we always keep and extra element at the end of buffer, just in case. - + Discovered by oss-fuzz CC https://github.com/behdad/harfbuzz/issues/139 Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=660 @@ -45953,8 +45337,7 @@ Date: Sat Feb 25 20:41:05 2017 +0100 BASE: WIP: more access functions - src/hb-ot-layout-base-table.hh | 212 - +++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-base-table.hh | 212 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 191 insertions(+), 21 deletions(-) commit 6685d281d6f50bf046bbfef4a5263e15d15f2f02 @@ -45973,8 +45356,7 @@ Date: Sat Feb 25 17:08:01 2017 +0100 BASE: align member's names - src/hb-ot-layout-base-table.hh | 70 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-base-table.hh | 70 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) commit 499b4bef2a5b6d49374ab4977509d1fbf7bd6038 @@ -45983,8 +45365,7 @@ Date: Sat Feb 25 16:48:22 2017 +0100 BASE: more consistent naming (with spec and Harfbuzz code base) - src/hb-ot-layout-base-table.hh | 44 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-base-table.hh | 44 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit a0bdd546c584eb7c7ea3ca7e19a178723e6fe77f @@ -46002,8 +45383,7 @@ Date: Sat Feb 25 16:19:35 2017 +0100 BASE: sanitize - src/hb-ot-layout-base-table.hh | 151 - ++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-base-table.hh | 151 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 3 deletions(-) commit a657f23ca31237d652b5c101ed24194b6aeadaf8 @@ -46011,7 +45391,7 @@ Author: Dominik Röttsches Date: Mon Feb 20 21:52:07 2017 +0200 Blacklist another instance of Padauk (#419) - + In https://crbug.com/681813 another instance of Padauk was identified triggering collapsed glyphs. Blacklist this version by patching hb-ot-layout.cc to print out gdef, gsub, and gpos table length, then @@ -46027,8 +45407,7 @@ Date: Sun Feb 19 10:12:22 2017 +0100 compile, move into hb-ot-layout.cc src/hb-ot-font.cc | 1 - - src/hb-ot-layout-base-table.hh | 57 - +++++++++++++++++++++++++++++++----------- + src/hb-ot-layout-base-table.hh | 57 +++++++++++++++++++++++++++++++----------- src/hb-ot-layout.cc | 1 + 3 files changed, 43 insertions(+), 16 deletions(-) @@ -46037,9 +45416,8 @@ Author: Elie Roux Date: Sun Feb 19 08:48:22 2017 +0100 hb-ot-base-table.hh -> hb-ot-layout-base-table.hh - - per - https://github.com/behdad/harfbuzz/issues/418#issuecomment-280873811 + + per https://github.com/behdad/harfbuzz/issues/418#issuecomment-280873811 src/Makefile.sources | 2 +- src/hb-ot-font.cc | 2 +- @@ -46053,8 +45431,7 @@ Date: Sat Feb 18 19:54:33 2017 +0100 bootstraping structure src/Makefile.sources | 1 + - src/hb-ot-base-table.hh | 238 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-base-table.hh | 238 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-font.cc | 1 + src/hb-ot-layout-private.hh | 2 + 4 files changed, 242 insertions(+) @@ -46073,22 +45450,19 @@ Author: jfkthame Date: Fri Feb 17 03:03:24 2017 +0000 Guard against underflow when adjusting length (#421) - + * Guard against underflow when adjusting length - - With the fuzz-testcase in mozilla bug 1295299, we end up with a - recursed lookup that removes 3 items, when `match_positions[idx]` - is 0, which results in (unsigned) `end` wrapping to a huge value. - + + With the fuzz-testcase in mozilla bug 1295299, we end up with a recursed lookup that removes 3 items, when `match_positions[idx]` is 0, which results in (unsigned) `end` wrapping to a huge value. + Making `end` a signed int is probably the simplest route to a fix. - + Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1295299. - + * Add testcase for #421. src/hb-ot-layout-gsubgpos-private.hh | 6 +++--- - .../sha1sum/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf | Bin 0 -> - 1358 bytes + .../sha1sum/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf | Bin 0 -> 1358 bytes test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) @@ -46096,22 +45470,18 @@ commit 45766b673f427bb791c9d5886cadedfac0447066 Author: jfkthame Date: Thu Feb 16 17:40:21 2017 +0000 - [indic] Add support for Grantha marks that may be used in Tamil to - th… (#401) - - * [indic] Add support for Grantha marks that may be used in Tamil - to the Indic table. - + [indic] Add support for Grantha marks that may be used in Tamil to th… (#401) + + * [indic] Add support for Grantha marks that may be used in Tamil to the Indic table. + See https://bugzilla.mozilla.org/show_bug.cgi?id=1331339. - + Testcase: U+0BA4,U+0BC6,U+1133c,U+0BAA,U+1133c,U+0BC6,U+1133c - - * [indic] Add test for Grantha nukta that is allowed in Tamil by - ScriptExtensions.txt + + * [indic] Add test for Grantha nukta that is allowed in Tamil by ScriptExtensions.txt src/hb-ot-shape-complex-indic-table.cc | 7 +++++++ - .../sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf | Bin 0 -> - 1400 bytes + .../sha1sum/3493e92eaded2661cadde752a39f9d58b11f0326.ttf | Bin 0 -> 1400 bytes test/shaping/tests/indic-script-extensions.tests | 1 + 3 files changed, 8 insertions(+) @@ -46130,7 +45500,7 @@ Author: Behdad Esfahbod Date: Wed Feb 8 14:36:18 2017 -0800 Merge pull request #357 from khaledhosny/graphite-scale - + [graphite] Fix shaping with varying font sizes commit 7c47474f209bdf84cf87844c277ed711cad78196 @@ -46138,7 +45508,7 @@ Author: Behdad Esfahbod Date: Wed Feb 8 14:33:28 2017 -0800 Set LC_ALL instead of LANG when creating harfbuzz.def - + Hopefully fixes Travis faliure? https://github.com/behdad/harfbuzz/pull/413#issuecomment-278481882 https://travis-ci.org/khaledhosny/harfbuzz/jobs/199785332#L1065 @@ -46151,16 +45521,15 @@ Author: Philip Withnall Date: Wed Feb 8 21:56:57 2017 +0000 hb-font: Fix a potentially undefined use of memcmp() (#413) - - While it’s fine to call memcmp(x, 0, 0) in practice, the C99 - standard + + While it’s fine to call memcmp(x, 0, 0) in practice, the C99 standard explicitly says that this is not allowed: even if the length is zero, the pointer arguments must be valid. - + http://stackoverflow.com/a/16363034 - + Coverity ID: 141178 - + Signed-off-by: Philip Withnall src/hb-font.cc | 3 ++- @@ -46171,11 +45540,10 @@ Author: Behdad Esfahbod Date: Tue Feb 7 18:25:12 2017 -0800 Update ax_pthread.m4 to latest upstream version - + Might help with https://github.com/behdad/harfbuzz/issues/399 - m4/ax_pthread.m4 | 394 - ++++++++++++++++++++++++++++++++++++++++--------------- + m4/ax_pthread.m4 | 394 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 285 insertions(+), 109 deletions(-) commit a6ced90efccf869defc0b310effca220f01cf318 @@ -46183,7 +45551,7 @@ Author: Philip Withnall Date: Wed Feb 8 02:18:33 2017 +0000 test: Fix some memory leaks in test-font.c (#409) - + Coverity IDs: 141039, 141040, 141041 test/api/test-font.c | 35 ++++++++++++++++++++++++++++++----- @@ -46194,7 +45562,7 @@ Author: Philip Withnall Date: Wed Feb 8 02:17:48 2017 +0000 util: Add missing field initialisers in constructor (#410) - + Coverity ID: 141042 util/hb-shape.cc | 4 +++- @@ -46205,7 +45573,7 @@ Author: Behdad Esfahbod Date: Tue Feb 7 16:53:21 2017 -0800 Silence Coverity warning - + Fixes https://github.com/behdad/harfbuzz/issues/408 src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -46266,7 +45634,7 @@ Author: Behdad Esfahbod Date: Fri Feb 3 10:39:40 2017 -0800 Add new API hb_font_set_face() - + For completeness. src/hb-font.cc | 29 +++++++++++++++++++++++++++++ @@ -46277,8 +45645,7 @@ commit 4ec19319ab195d852708661e12da2a6485fce544 Author: jfkthame Date: Thu Feb 2 18:48:23 2017 +0000 - Add Win10 Anniversary Update version of Tahoma to GDEF - blacklist. (#412) + Add Win10 Anniversary Update version of Tahoma to GDEF blacklist. (#412) src/hb-ot-layout.cc | 4 ++++ 1 file changed, 4 insertions(+) @@ -46288,7 +45655,7 @@ Author: Behdad Esfahbod Date: Wed Feb 1 11:57:21 2017 -0800 Minor - + Fixes https://github.com/behdad/harfbuzz/issues/411 src/hb-fallback-shape.cc | 2 +- @@ -46300,15 +45667,14 @@ Author: Behdad Esfahbod Date: Thu Jan 26 14:50:14 2017 -0800 Route Adlam through Arabic shaper - + Fixes joined Adlam rendering. - + Fixes https://github.com/googlei18n/noto-fonts/issues/828 src/hb-ot-shape-complex-private.hh | 3 +++ test/shaping/Makefile.am | 1 + - .../5dfad7735c6a67085f1b90d4d497e32907db4c78.ttf | Bin 0 -> - 21160 bytes + .../5dfad7735c6a67085f1b90d4d497e32907db4c78.ttf | Bin 0 -> 21160 bytes test/shaping/tests/arabic-like-joining.tests | 1 + 4 files changed, 5 insertions(+) @@ -46326,13 +45692,12 @@ Author: Behdad Esfahbod Date: Mon Jan 23 23:42:53 2017 -0800 [var] Implement MVAR table - + Unhooked. Untested. src/Makefile.sources | 1 + src/hb-font.cc | 2 +- - src/hb-ot-var-mvar-table.hh | 110 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-var-mvar-table.hh | 110 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-var.cc | 1 + 4 files changed, 113 insertions(+), 1 deletion(-) @@ -46360,7 +45725,7 @@ Author: Behdad Esfahbod Date: Mon Jan 23 17:55:31 2017 -0800 [var] Hook up advance variations to hb-ot-font - + Yay, works! src/hb-ot-font.cc | 6 +++++- @@ -46390,12 +45755,11 @@ Author: Behdad Esfahbod Date: Mon Jan 23 11:56:08 2017 -0800 [var] Implement DeltaSetIndexMap and advance delta fetching - + Not hooked up to hb-ot-font yet. src/hb-ot-layout-common-private.hh | 8 ++++++ - src/hb-ot-var-hvar-table.hh | 56 - ++++++++++++++++++++++++++++++++++++-- + src/hb-ot-var-hvar-table.hh | 56 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 3 deletions(-) commit 7b399f73efa76cd97131fd123a9a1566f8639cfd @@ -46408,8 +45772,7 @@ Date: Mon Jan 23 11:41:43 2017 -0800 src/hb-ot-font.cc | 1 + src/hb-ot-var-avar-table.hh | 1 - src/hb-ot-var-fvar-table.hh | 1 - - src/hb-ot-var-hvar-table.hh | 115 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-var-hvar-table.hh | 115 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 2 deletions(-) commit b732c53eb5bd0c2cc86f35a9d9623c92579a0b8c @@ -46443,7 +45806,7 @@ Author: Behdad Esfahbod Date: Sun Jan 22 20:16:51 2017 -0800 [var] Remove HB_OT_TAG_fvar/avar - + We're not going to define public macros for tags for tables. There's little use to those and they are implementation detail. @@ -46478,12 +45841,11 @@ Author: Behdad Esfahbod Date: Sun Jan 22 19:41:33 2017 -0800 [var] Implement 'avar' table mapping - + Untested! src/hb-ot-math.cc | 2 -- - src/hb-ot-var-avar-table.hh | 46 - ++++++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-var-avar-table.hh | 46 ++++++++++++++++++++++++++++++++++++++++++++- src/hb-ot-var.cc | 23 +++++++++++++++-------- 3 files changed, 60 insertions(+), 11 deletions(-) @@ -46493,8 +45855,7 @@ Date: Sun Jan 22 19:01:07 2017 -0800 [var] Flesh out --variations documentation - util/options.cc | 53 - ++++++++++++++--------------------------------------- + util/options.cc | 53 ++++++++++++++--------------------------------------- 1 file changed, 14 insertions(+), 39 deletions(-) commit 5ec96d30cad1592b5e468bd8ad1832dbaf0ad32b @@ -46502,10 +45863,10 @@ Author: Behdad Esfahbod Date: Sun Jan 22 18:52:00 2017 -0800 [var] Adjust API in prep for 'avar' implementation - + The 'avar' table does not allow random access to axis maps, so change API to avoid quadratic-time implementation. - + Removed -hb_ot_var_normalize_axis_value(), added +hb_ot_var_normalize_variations() and +hb_ot_var_normalize_coords() instead. @@ -46513,8 +45874,7 @@ Date: Sun Jan 22 18:52:00 2017 -0800 docs/harfbuzz-sections.txt | 3 ++- src/Makefile.sources | 1 + src/hb-font.cc | 20 +++++--------------- - src/hb-ot-var.cc | 45 - +++++++++++++++++++++++++++++++++++++++------ + src/hb-ot-var.cc | 45 +++++++++++++++++++++++++++++++++++++++------ src/hb-ot-var.h | 16 ++++++++++++---- 5 files changed, 59 insertions(+), 26 deletions(-) @@ -46524,8 +45884,7 @@ Date: Sun Jan 22 18:22:40 2017 -0800 [var] Stub implementation of avar table - src/hb-ot-var-avar-table.hh | 99 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-var-avar-table.hh | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) commit 7647a05a0b37c53465560952b412db4e590f2716 @@ -46573,7 +45932,7 @@ Author: Behdad Esfahbod Date: Sun Jan 22 16:41:45 2017 -0800 [hb-ft] Remove use of variable-length array - + Hopefully also fixes build failure on msvc. src/hb-ft.cc | 33 +++++++++++++++++++++------------ @@ -46584,7 +45943,7 @@ Author: Behdad Esfahbod Date: Sat Jan 21 18:10:08 2017 -0800 [var] Hook up variations to FreeType face - + hb-view correctly renders variations with ft font-funcs now. hb-ot-font needs HVAR implementation. @@ -46597,14 +45956,12 @@ Author: Behdad Esfahbod Date: Sat Jan 21 17:51:41 2017 -0800 [util] Add --variations - - Is hooked up to the font, but not to FreeType, so raster doesn't - show yet. - + + Is hooked up to the font, but not to FreeType, so raster doesn't show yet. + Documentation needs to be done. - util/options.cc | 91 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + util/options.cc | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ util/options.hh | 8 ++++- 2 files changed, 98 insertions(+), 1 deletion(-) @@ -46613,7 +45970,7 @@ Author: Behdad Esfahbod Date: Sat Jan 21 17:41:37 2017 -0800 [var] Rename var_coord to variation - + Looks much better. src/hb-common.cc | 36 ++++++++++++++++++------------------ @@ -46697,8 +46054,7 @@ Date: Fri Jan 20 20:30:03 2017 -0800 [var] Add hb_var_coord_t and parsing routines - src/hb-common.cc | 94 - +++++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/hb-common.cc | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- src/hb-common.h | 15 ++++++++- 2 files changed, 103 insertions(+), 6 deletions(-) @@ -46708,11 +46064,9 @@ Date: Fri Jan 20 20:16:53 2017 -0800 Move code around - src/hb-common.cc | 250 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-common.cc | 250 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-common.h | 18 ++++ - src/hb-shape.cc | 248 - ------------------------------------------------------ + src/hb-shape.cc | 248 ------------------------------------------------------ src/hb-shape.h | 16 ---- 4 files changed, 268 insertions(+), 264 deletions(-) @@ -46723,8 +46077,7 @@ Date: Fri Jan 20 19:57:27 2017 -0800 [var] Flesh out some more src/Makefile.am | 2 ++ - src/hb-ot-var-fvar-table.hh | 69 - ++++++++++++++++++++++++++++++++------------- + src/hb-ot-var-fvar-table.hh | 69 ++++++++++++++++++++++++++++++++------------- src/hb-ot-var.cc | 39 ++++++++++++++++++++++++- src/hb-ot-var.h | 21 +++++++++----- 4 files changed, 104 insertions(+), 27 deletions(-) @@ -46735,8 +46088,7 @@ Date: Fri Jan 20 19:14:54 2017 -0800 [var] Flesh out a bit - src/hb-ot-var-fvar-table.hh | 72 - ++++++++++++++++++++++++++++++++++++--------- + src/hb-ot-var-fvar-table.hh | 72 ++++++++++++++++++++++++++++++++++++--------- src/hb-ot-var.h | 10 ++++++- 2 files changed, 67 insertions(+), 15 deletions(-) @@ -46772,14 +46124,13 @@ Author: Behdad Esfahbod Date: Thu Jan 19 19:35:48 2017 -0800 Start adding hb-ot-var.h and implementation - + Supports enumerating variation axes, normalizing values, etc. src/Makefile.sources | 3 + src/hb-ot-layout-private.hh | 6 ++ src/hb-ot-layout.cc | 4 ++ - src/hb-ot-var-fvar-table.hh | 133 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-var-fvar-table.hh | 133 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-var.cc | 63 +++++++++++++++++++++ src/hb-ot-var.h | 81 +++++++++++++++++++++++++++ src/hb-ot.h | 1 + @@ -46835,19 +46186,16 @@ Author: Khaled Hosny Date: Wed Jan 18 22:48:13 2017 +0200 [ot] Fix automatic fraction for RTL scripts (#405) - + The numbers for right-to-left scripts are processed also from right to - left, so the order of applying “numr” and “dnom” features - should be + left, so the order of applying “numr” and “dnom” features should be reversed in such case. - + Fixes https://github.com/behdad/harfbuzz/issues/395 - src/hb-ot-shape.cc | 16 - ++++++++++++++-- + src/hb-ot-shape.cc | 16 ++++++++++++++-- test/shaping/Makefile.am | 1 + - .../15dfc433a135a658b9f4b1a861b5cdd9658ccbb9.ttf | Bin 0 -> - 4936 bytes + .../15dfc433a135a658b9f4b1a861b5cdd9658ccbb9.ttf | Bin 0 -> 4936 bytes test/shaping/tests/automatic-fractions.tests | 3 +++ 4 files changed, 18 insertions(+), 2 deletions(-) @@ -46856,11 +46204,10 @@ Author: Sascha Brawer Date: Wed Jan 18 13:51:02 2017 +0100 Update language tags to OpenType 1.8.1 (#403) - + Resolves https://github.com/behdad/harfbuzz/issues/324 - src/hb-ot-tag.cc | 77 - ++++++++++++++++++++++++++++++++++++++++++++------ + src/hb-ot-tag.cc | 77 ++++++++++++++++++++++++++++++++++++++++++++------ test/api/test-ot-tag.c | 58 +++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 9 deletions(-) @@ -46900,10 +46247,8 @@ Date: Mon Jan 9 22:22:37 2017 -0800 Move lazy-loader to more generic place - src/hb-open-type-private.hh | 47 - ++++++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-font.cc | 48 - ++------------------------------------------- + src/hb-open-type-private.hh | 47 ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-font.cc | 48 ++------------------------------------------- 2 files changed, 49 insertions(+), 46 deletions(-) commit ac274331c285e1b42632870e150e1d66a9e21933 @@ -46958,10 +46303,10 @@ Author: Behdad Esfahbod Date: Mon Jan 9 00:00:49 2017 -0800 Minor - + Should be enough to get -hangul.cc out of SOURCES in Firefox build: https://dxr.mozilla.org/mozilla-central/source/gfx/harfbuzz/src/moz.build - + No one else should care! src/hb-ot-shape-complex-hangul.cc | 2 +- @@ -46972,15 +46317,14 @@ Author: Behdad Esfahbod Date: Sun Jan 8 23:55:54 2017 -0800 [USE] Remove non-canonical decompositions - - We have had added this in Indic shaper to assist shaping these - scripts. + + We have had added this in Indic shaper to assist shaping these scripts. In Universal Shaping Engine however, it is up to font designer to decompose them. Hence moving them from Indic shaper to USE was wrong. - + Fixup for f6ba63b2e8eb577385f70758efdd3b8408c8a9cb - + Part of fixing https://github.com/behdad/harfbuzz/issues/387 src/hb-ot-shape-complex-use.cc | 22 ---------------------- @@ -46991,7 +46335,7 @@ Author: Khaled Hosny Date: Fri Nov 11 02:16:39 2016 +0200 [graphite] Stop creating unused gr_face - + It is unused after previous commit, hb_graphite2_font_get_gr_font() makes no sense now so deprecating it. @@ -47004,9 +46348,9 @@ Author: Khaled Hosny Date: Sun Oct 30 20:16:41 2016 +0200 [graphite] Fix shaping with varying font sizes - + Shape using design units and scale the output. - + See https://bugs.documentfoundation.org/show_bug.cgi?id=103403#c7 src/hb-graphite2.cc | 27 +++++++++++++++------------ @@ -47027,13 +46371,12 @@ Author: Behdad Esfahbod Date: Thu Jan 5 20:20:06 2017 -0800 Add tests for USE using Marchen font and text - + From http://www.babelstone.co.uk/Fonts/Marchen.html test/shaping/Makefile.am | 1 + .../85414f2552b654585b7a8d13dcc3e8fd9f7970a3.ttf | Bin 0 -> 66936 bytes - test/shaping/tests/use-marchen.tests | 35 - +++++++++++++++++++++ + test/shaping/tests/use-marchen.tests | 35 +++++++++++++++++++++ 3 files changed, 36 insertions(+) commit 53543f8b3e19456279c86f711feba42ce976668c @@ -47041,9 +46384,9 @@ Author: Behdad Esfahbod Date: Thu Jan 5 20:12:32 2017 -0800 Ship UCDN and use it by default - + So we are not relying on version of Unicode data in glib... - + Fixes https://github.com/behdad/harfbuzz/issues/386 Fixes https://github.com/behdad/harfbuzz/issues/388 @@ -47069,8 +46412,7 @@ Date: Tue Jan 3 05:55:09 2017 +0100 src/Makefile.sources | 1 + src/hb-ot-layout.cc | 244 --------------------------------------------- - src/hb-ot-math.cc | 272 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-math.cc | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 273 insertions(+), 244 deletions(-) commit e053ccc5bb7268fe5900dd364d906638c58b2908 @@ -47078,12 +46420,11 @@ Author: Behdad Esfahbod Date: Wed Dec 28 15:51:57 2016 -0500 Remove Android.mk - + Android uses its own file these days and third-party developers should be using the autotools-based system against Android NDK. - Android.mk | 107 - ------------------------------------------------------------ + Android.mk | 107 ------------------------------------------------------------ Makefile.am | 1 - 2 files changed, 108 deletions(-) @@ -47092,11 +46433,11 @@ Author: Behdad Esfahbod Date: Wed Dec 28 13:46:21 2016 -0500 Remove Tibetan decomposition rules from Indic shaper - + The decomposition is very obscure and unlikely to help any fonts. Just remove it since Uniscribe probably doesn't do this either. - + Fixes https://github.com/behdad/harfbuzz/issues/382 src/hb-ot-shape-complex-indic.cc | 4 ---- @@ -47107,7 +46448,7 @@ Author: Behdad Esfahbod Date: Wed Dec 28 13:45:32 2016 -0500 Port decompositions from Indic to USE shaper - + Part of https://github.com/behdad/harfbuzz/issues/382 src/hb-ot-shape-complex-indic.cc | 16 ---------------- @@ -47119,10 +46460,10 @@ Author: Behdad Esfahbod Date: Mon Dec 26 14:11:59 2016 -0500 [indic] Remove Chakma decomposition rule from Indic shaper - + This is now added to USE: https://github.com/behdad/harfbuzz/pull/383 - + See: https://github.com/behdad/harfbuzz/issues/381 https://github.com/behdad/harfbuzz/issues/382 @@ -47144,9 +46485,9 @@ Author: Behdad Esfahbod Date: Mon Dec 26 14:52:08 2016 -0500 Revert "[indic] Remove redundant Chakma decomposition rule" - + This reverts commit 805f76fc002d703acfcc4c5727f0b4d1baecefaa. - + Need to investigate why having this rule (with the reversed order) fixes decomposition as reported by punchcutter: https://github.com/behdad/harfbuzz/issues/381#issuecomment-269237796 @@ -47159,10 +46500,10 @@ Author: Behdad Esfahbod Date: Mon Dec 26 14:11:59 2016 -0500 [indic] Remove redundant Chakma decomposition rule - + This was not used BTW since Chakma doesn't go through Indic shaper anymore. - + See: https://github.com/behdad/harfbuzz/issues/381 https://github.com/behdad/harfbuzz/issues/382 @@ -47184,14 +46525,12 @@ Author: nvelinov Date: Sat Dec 24 02:46:37 2016 +0100 Compilation Error for ASSERT_STATIC on Some Compilers (#380) - + * this pointer in type definitions is not interpreted as a constant. - This rule is not enforced strictly by all compilers, but the Green - Hills Software compiler will regard this as an error. - + This rule is not enforced strictly by all compilers, but the Green Hills Software compiler will regard this as an error. + * Merging branches for the DEFINE_SIZE_UNION macro - Adding check for the existence of static_size field in the tested - member. + Adding check for the existence of static_size field in the tested member. src/hb-open-type-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -47201,19 +46540,17 @@ Author: Behdad Esfahbod Date: Thu Dec 22 14:40:19 2016 -0600 Disable OTL processing for Hebrew if GPOS doesn't have Hebrew subtable - + New approach to fix this: https://github.com/behdad/harfbuzz/commit/69f9fbc4200442a35484d3c790ae8f4979be5d60 - + Previous approach was reverted as it was too broad. See context: https://github.com/behdad/harfbuzz/issues/347#issuecomment-267838368 - - With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) - disable - GDEF and GPOS, so we get results very close to Uniscribe, but - slightly different + + With U+05E9,U+05B8,U+05C1,U+05DC and Arial Unicode, we now (correctly) disable + GDEF and GPOS, so we get results very close to Uniscribe, but slightly different since our fallback position logic is not exactly the same: - + Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434] After: [gid1166=3+991|gid1142=0@402,-26+0|gid5798=0+1434] Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434] @@ -47235,13 +46572,11 @@ commit 1a0f4aa6dfee69236b422f7c8825eff940f45c19 Author: Behdad Esfahbod Date: Thu Dec 22 13:33:54 2016 -0600 - Revert "Synthesize GDEF glyph class for any glyph that does not have - one in GDEF" - + Revert "Synthesize GDEF glyph class for any glyph that does not have one in GDEF" + This reverts commit 69f9fbc4200442a35484d3c790ae8f4979be5d60. - - See - https://github.com/behdad/harfbuzz/issues/347#issuecomment-268873401 + + See https://github.com/behdad/harfbuzz/issues/347#issuecomment-268873401 Fixes https://github.com/behdad/harfbuzz/issues/347 src/hb-ot-layout-gsub-table.hh | 22 ++-------------------- @@ -47253,15 +46588,14 @@ Author: Behdad Esfahbod Date: Wed Dec 21 23:10:43 2016 -0600 Fix assert fail with contextual matching - + As discovered by libFuzzer / Chromium fuzzing. - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=659496 CC https://github.com/behdad/harfbuzz/issues/139 src/hb-ot-layout-gsubgpos-private.hh | 6 +++++- - .../sha1sum/217a934cfe15c548b572c203dceb2befdf026462.ttf | Bin 0 -> - 1384 bytes + .../sha1sum/217a934cfe15c548b572c203dceb2befdf026462.ttf | Bin 0 -> 1384 bytes test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) @@ -47279,7 +46613,7 @@ Author: Behdad Esfahbod Date: Wed Dec 21 15:51:28 2016 -0600 Avoid infinite loop in CoverageFormat2 iteration with bad fonts - + Fixes https://github.com/behdad/harfbuzz/issues/363 src/hb-ot-layout-common-private.hh | 29 ++++++++++++++++++----------- @@ -47310,11 +46644,10 @@ Author: Behdad Esfahbod Date: Tue Dec 20 15:01:16 2016 -0600 Protect collect_glyphs() and closure() against malicious DDOS fonts - + Fixes https://github.com/behdad/harfbuzz/issues/363 - src/hb-ot-layout-gsub-table.hh | 58 - ++++++++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 10 deletions(-) commit 1c98ff87c76536553e53c131e75aba33033ee3a0 @@ -47322,23 +46655,23 @@ Author: Mike Hommey Date: Fri Sep 30 18:15:37 2016 +0900 Support building with older glib versions - + It is desirable to be able to build against older versions of glib. - + fd7a245 changed the configure check to require glib > 2.38 for G_TEST_DIST. Before that, version 2.16 was required, but in fact, since aafe395, G_PASTE is being used, which was introduced in 2.19.1. And since 0ef179e2, hb-glib uses GBytes, which were introduced in 2.31.10. - + 2.19.1 is rather old, but 2.38 is rather new. For Firefox, building against 2.22 is still supported, although we could probably get away with bumping that to 2.28. Either way, GBytes is not available. - + Arguably, if you build against a glib that doesn't support GBytes, you're not going to use the hb_glib_blob_create function, so we hide the function when building against such a glib. - + As for G_TEST_DIST, when building against versions of glib that don't support it, we can fallback to the previous behavior, which, AIUI, was just making the test not work when building in a separate directory. @@ -47354,7 +46687,7 @@ Author: Volker H. Simonis Date: Wed Dec 14 18:56:17 2016 +0100 Minor fixes to pacify Coverity code scan - + Fixes https://github.com/behdad/harfbuzz/pull/377 src/hb-ot-font.cc | 6 +++++- @@ -47367,8 +46700,7 @@ Date: Sat Dec 17 10:30:40 2016 +0330 [dwrite] Provide an experimental API for justification (#279) - src/hb-directwrite.cc | 48 - ++++++++++++++++++++++++++++++++++++++++-------- + src/hb-directwrite.cc | 48 ++++++++++++++++++++++++++++++++++++++++-------- src/hb-directwrite.h | 4 ++++ 2 files changed, 44 insertions(+), 8 deletions(-) @@ -47438,7 +46770,7 @@ Author: Behdad Esfahbod Date: Sat Sep 10 04:52:34 2016 -0700 [GX] Make FeatureVariations actually work - + Yay!!!! src/hb-ot-layout-common-private.hh | 19 +++++++------------ @@ -47450,7 +46782,7 @@ Author: Behdad Esfahbod Date: Sat Sep 10 03:57:24 2016 -0700 [GX] Hook up feature variations - + Shape-plan caching is not implemented. src/hb-coretext.cc | 8 +++- @@ -47463,8 +46795,7 @@ Date: Sat Sep 10 03:57:24 2016 -0700 src/hb-ot-shape-private.hh | 6 ++- src/hb-ot-shape.cc | 9 ++-- src/hb-shape-plan-private.hh | 9 +++- - src/hb-shape-plan.cc | 102 - +++++++++++++++++++++++++++++++++++++++---- + src/hb-shape-plan.cc | 102 +++++++++++++++++++++++++++++++++++++++---- src/hb-shape-plan.h | 19 ++++++++ src/hb-shape.cc | 5 ++- src/hb-uniscribe.cc | 4 +- @@ -47500,8 +46831,7 @@ Date: Sat Sep 10 02:44:20 2016 -0700 Shuffle code around - src/hb-ot-map.cc | 81 - ++++++++++++++++++++++++++++---------------------------- + src/hb-ot-map.cc | 81 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 40 deletions(-) commit bde5e3959c0ffdb92db87668035b01aaee9b2352 @@ -47509,7 +46839,7 @@ Author: Behdad Esfahbod Date: Sat Sep 10 02:43:20 2016 -0700 Move add_lookups from map to map-builder - + In prep for more changes. src/hb-ot-map-private.hh | 15 ++++++++------- @@ -47521,7 +46851,7 @@ Author: Behdad Esfahbod Date: Sat Sep 10 02:11:05 2016 -0700 [GX] Remove (partial) support for anisotropic variations - + It doesn't always work, not part of FreeType, and we were not going to expose it in the API anyway. Can always be added later. @@ -47544,11 +46874,10 @@ Author: Behdad Esfahbod Date: Sat Sep 10 01:24:28 2016 -0700 [GX] Implement Feature Variations - + Not hooked up to shaper yet. - src/hb-ot-layout-common-private.hh | 168 - ++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-common-private.hh | 168 ++++++++++++++++++++++++++++++++++- src/hb-ot-layout-gdef-table.hh | 1 - src/hb-ot-layout-gpos-table.hh | 2 - src/hb-ot-layout-gsub-table.hh | 2 - @@ -47560,7 +46889,7 @@ Author: Behdad Esfahbod Date: Sat Sep 10 00:25:16 2016 -0700 [GX] Fix another x/y thinko - + Thanks Werner! src/hb-ot-layout-common-private.hh | 2 +- @@ -47583,13 +46912,10 @@ Author: Behdad Esfahbod Date: Sat Sep 10 00:01:10 2016 -0700 [GX] Fix build with some compilers - - Eg. - https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.48/job/o9mnd33kcdeeg30r - - hb-open-type-private.hh:103:29: error: static data member - 'OT::Device::::::static_size' - in unnamed class [-fpermissive] + + Eg. https://ci.appveyor.com/project/behdad/harfbuzz/build/1.0.48/job/o9mnd33kcdeeg30r + + hb-open-type-private.hh:103:29: error: static data member 'OT::Device::::::static_size' in unnamed class [-fpermissive] src/hb-ot-layout-common-private.hh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) @@ -47618,7 +46944,7 @@ Author: Behdad Esfahbod Date: Fri Sep 9 22:23:34 2016 -0700 [GX] Add new API hb_font_set_var_coords_normalized() - + Will probably change. src/hb-font.cc | 23 +++++++++++++++++++++++ @@ -47630,13 +46956,12 @@ Author: Behdad Esfahbod Date: Fri Sep 9 17:03:11 2016 -0700 [GX] Hook up GPOS to Variation Store stored in GDEF - + Untested. src/hb-ot-layout-common-private.hh | 22 ++++++++++---------- src/hb-ot-layout-gdef-table.hh | 27 +++++++++++++++--------- - src/hb-ot-layout-gpos-table.hh | 40 - ++++++++++++++++-------------------- + src/hb-ot-layout-gpos-table.hh | 40 ++++++++++++++++-------------------- src/hb-ot-layout-gsubgpos-private.hh | 2 ++ 4 files changed, 48 insertions(+), 43 deletions(-) @@ -47654,11 +46979,10 @@ Author: Behdad Esfahbod Date: Fri Sep 9 16:27:03 2016 -0700 [GX] Pass apply-context down to get_anchor() - + Needed to access GDEF for varStore. - src/hb-ot-layout-gpos-table.hh | 57 - ++++++++++++++++++++++-------------------- + src/hb-ot-layout-gpos-table.hh | 57 ++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 27 deletions(-) commit f0c3fd8c9ab402be923fe0845fb51d99841829b6 @@ -47666,7 +46990,7 @@ Author: Behdad Esfahbod Date: Fri Sep 9 16:22:45 2016 -0700 [GX] Add varStore member to GDEF - + Still not hooked up from GPOS. src/hb-ot-layout-gdef-table.hh | 17 ++++++++++++++--- @@ -47686,11 +47010,10 @@ Author: Behdad Esfahbod Date: Fri Sep 9 15:40:15 2016 -0700 [GX] Port variation stuff to Variation Store design - + Not hooked up to GDEF yet. - src/hb-ot-layout-common-private.hh | 294 - +++++++++++++++++++++++-------------- + src/hb-ot-layout-common-private.hh | 294 +++++++++++++++++++++++-------------- src/hb-ot-layout-gpos-table.hh | 2 +- 2 files changed, 184 insertions(+), 112 deletions(-) @@ -47707,15 +47030,13 @@ commit 8dddc231cf9d934eb93a39f2657717cbdad43a64 Author: Behdad Esfahbod Date: Fri Sep 9 13:17:33 2016 -0700 - [GX] Revert "[GX] Add VariationAlternates, to allow conditional - lookups in GSUB/GPOS" - + [GX] Revert "[GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS" + This reverts commit 2859f1c7174d6f7ae5dcf0db5411bc0182b21594. We are going in a different direction. src/hb-open-type-private.hh | 1 - - src/hb-ot-layout-common-private.hh | 99 - +------------------------------------- + src/hb-ot-layout-common-private.hh | 99 +------------------------------------- 2 files changed, 2 insertions(+), 98 deletions(-) commit bb4d2e6ed562c248fff15313a013d49e38a18789 @@ -47732,26 +47053,23 @@ Author: Behdad Esfahbod Date: Fri Mar 18 15:52:24 2016 -0700 [GX] Add compact VariationDevice implementation - + Add compact format that uses signed bytes instead of shorts. src/hb-open-type-private.hh | 1 + - src/hb-ot-layout-common-private.hh | 35 - ++++++++++++++++++++++++----------- + src/hb-ot-layout-common-private.hh | 35 ++++++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 11 deletions(-) commit 71b06fd392680b6fcfece60d8a83ba6c56eada09 Author: Behdad Esfahbod Date: Sat Mar 12 23:49:09 2016 -0800 - [GX] Add VariationAlternates, to allow conditional lookups in - GSUB/GPOS - + [GX] Add VariationAlternates, to allow conditional lookups in GSUB/GPOS + Not hooked up to runtime yet. src/hb-open-type-private.hh | 1 + - src/hb-ot-layout-common-private.hh | 99 - +++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-common-private.hh | 99 +++++++++++++++++++++++++++++++++++++- 2 files changed, 98 insertions(+), 2 deletions(-) commit 976eeb8e025e2b7601a91e661d6e9a88bf8afbd2 @@ -47787,8 +47105,7 @@ Date: Wed Mar 2 12:21:36 2016 +0900 [GX] Hookup VariationDevice to Device table implementation - src/hb-ot-layout-common-private.hh | 65 - +++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-common-private.hh | 65 +++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) commit a0c2366075fcb894212b9bf137e4dd34bb65537c @@ -47796,7 +47113,7 @@ Author: Behdad Esfahbod Date: Tue Mar 1 19:42:24 2016 +0900 [GX] Break out early if factor is zero - + Also disable sanity-checking of variation records. src/hb-ot-layout-common-private.hh | 9 ++++++++- @@ -47807,7 +47124,7 @@ Author: Behdad Esfahbod Date: Tue Mar 1 19:29:36 2016 +0900 [GX] Towards anisotropic interpolation - + Also hookup to ValueRecord and Anchors. src/hb-font-private.hh | 5 +++-- @@ -47824,8 +47141,7 @@ Date: Tue Mar 1 19:12:08 2016 +0900 src/hb-font-private.hh | 10 ++++ src/hb-font.cc | 3 + - src/hb-ot-layout-common-private.hh | 113 - +++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-common-private.hh | 113 +++++++++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) commit b843c6d8b66c2833cd35407ee494546465e6d775 @@ -47843,7 +47159,7 @@ Author: Behdad Esfahbod Date: Sun Dec 4 20:28:38 2016 -0800 [hb-fuzzer] Get glyph extents for output glyphs - + To exercise glyph-extents codepaths (glyf / CBLC+CBDT). test/fuzzing/hb-fuzzer.cc | 13 +++++++++++++ @@ -47856,8 +47172,7 @@ Date: Sun Dec 4 19:55:17 2016 -0800 [CBDT] Add test for fetching glyph extents test/shaping/Makefile.am | 1 + - .../sha1sum/ee39587d13b2afa5499cc79e45780aa79293bbd4.ttf | Bin 0 -> - 3724 bytes + .../sha1sum/ee39587d13b2afa5499cc79e45780aa79293bbd4.ttf | Bin 0 -> 3724 bytes test/shaping/tests/color-fonts.tests | 1 + 3 files changed, 2 insertions(+) @@ -47895,8 +47210,7 @@ Date: Sun Dec 4 19:12:52 2016 -0800 [cbdt] Move some more code around - src/hb-ot-cbdt-table.hh | 61 - ++++++++++++++++++++++++++++++++++--------------- + src/hb-ot-cbdt-table.hh | 61 ++++++++++++++++++++++++++++++++++--------------- src/hb-ot-font.cc | 18 ++++++--------- 2 files changed, 49 insertions(+), 30 deletions(-) @@ -47905,7 +47219,7 @@ Author: Behdad Esfahbod Date: Sun Dec 4 18:56:24 2016 -0800 [cbdt] Fix sign bug - + Was introduced in d495fc5e38038f4cfb20425b1109324fa70bf2f9 src/hb-ot-cbdt-table.hh | 2 +- @@ -47916,7 +47230,7 @@ Author: Behdad Esfahbod Date: Fri Dec 2 22:43:05 2016 -0800 [cbdt] Last of sanitization fixes - + Should be all good now.. src/hb-ot-font.cc | 23 ++++++++++++++++------- @@ -47927,11 +47241,10 @@ Author: Behdad Esfahbod Date: Fri Dec 2 21:36:42 2016 -0800 [cbdt] Clean up some more - + Almost there.. - src/hb-ot-cbdt-table.hh | 134 - +++++++++++++++++++++++++++++++++++++++++++----- + src/hb-ot-cbdt-table.hh | 134 +++++++++++++++++++++++++++++++++++++++++++----- src/hb-ot-font.cc | 38 ++++---------- 2 files changed, 131 insertions(+), 41 deletions(-) @@ -47941,8 +47254,7 @@ Date: Fri Dec 2 20:12:57 2016 -0800 [cbdt] More sanitize work - src/hb-ot-cbdt-table.hh | 65 - +++++++++++++++++++++++++++++-------------------- + src/hb-ot-cbdt-table.hh | 65 +++++++++++++++++++++++++++++-------------------- src/hb-ot-font.cc | 46 ++++++++++++++++++---------------- 2 files changed, 63 insertions(+), 48 deletions(-) @@ -47961,8 +47273,7 @@ Date: Fri Dec 2 19:25:54 2016 -0800 [cbdt] Start fixing sanitization (or lack thereof) - src/hb-ot-cbdt-table.hh | 77 - ++++++++++++++++++++++++++++++++++++------------- + src/hb-ot-cbdt-table.hh | 77 ++++++++++++++++++++++++++++++++++++------------- src/hb-ot-font.cc | 22 +++++++------- 2 files changed, 68 insertions(+), 31 deletions(-) @@ -47992,14 +47303,13 @@ Author: Seigo Nonaka Date: Fri Dec 2 15:03:50 2016 -0800 Introduce get_extent support for color bitmap font. (#351) - + hb_font_get_glyph_extents now works for color bitmap fonts. Currently only font having index format 1 and image format 17 is supported. src/Makefile.sources | 1 + - src/hb-ot-ebdt-table.hh | 193 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-ebdt-table.hh | 193 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-font.cc | 96 ++++++++++++++++++++++++ 3 files changed, 290 insertions(+) @@ -48007,8 +47317,7 @@ commit 261837e7202ec584f653f379851e1c6457396b07 Author: Ebrahim Byagowi Date: Fri Oct 28 21:49:11 2016 +0330 - Fix "nmake install" when ADDITIONAL_LIB_DIR is provided and test it - on CI (#356) + Fix "nmake install" when ADDITIONAL_LIB_DIR is provided and test it on CI (#356) appveyor.yml | 1 + win32/detectenv-msvc.mak | 4 ++-- @@ -48021,8 +47330,7 @@ Date: Wed Oct 26 18:27:48 2016 +0200 [tests] Add tests for vertical origin with ft and ot font-funcs - .../sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf | Bin 0 -> - 1004 bytes + .../sha1sum/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf | Bin 0 -> 1004 bytes test/shaping/tests/vertical.tests | 2 ++ 2 files changed, 2 insertions(+) @@ -48059,8 +47367,7 @@ Date: Wed Oct 26 17:44:16 2016 +0200 Fix vertical glyph origin with hb-ot-font - src/hb-font-private.hh | 51 - ++++++++++++++++++++++++++++---------------------- + src/hb-font-private.hh | 51 ++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) commit b3b0816d5fc00298621f738cf400de60f8a42c5d @@ -48068,7 +47375,7 @@ Author: Behdad Esfahbod Date: Wed Oct 26 17:19:07 2016 +0200 Fix vertical font metrics - + Ouch! src/hb-font-private.hh | 4 ++-- @@ -48118,7 +47425,7 @@ Author: Khaled Hosny Date: Tue Oct 25 00:31:36 2016 +0300 Merge pull request #352 from fred-wang/makefile-am - + Remove inexistent file ttx file from test/api/Makefile.am commit c3fa5d0e03b57be131c66ea8720806c946d0e10f @@ -48136,7 +47443,7 @@ Author: Ebrahim Byagowi Date: Sat Oct 22 12:23:05 2016 +0330 Merge pull request #349 from ebraminio/mergebackvcpkgpatches - + [ci] Enable hb-freetype on Windows build tests commit 755a0c20798e3c3e6bb933a28e38f9667fccdadc @@ -48164,7 +47471,7 @@ Author: Ebrahim Byagowi Date: Fri Oct 14 13:54:55 2016 +0330 Merge pull request #340 from ebraminio/nouniscribe - + Make Uniscribe optional on nmake win32 builds commit d8e2eb9ee0f47af7e90056d8db5949d10a88786a @@ -48172,15 +47479,12 @@ Author: Ebrahim Byagowi Date: Sun Oct 9 09:06:05 2016 +0330 Make Uniscribe optional on nmake win32 builds - - Most of harfbuzz clients don't need Uniscribe and DirectWrite support - at all - as harfbuzz is a replacement for Uniscribe so Chromium and Firefox - are using + + Most of harfbuzz clients don't need Uniscribe and DirectWrite support at all + as harfbuzz is a replacement for Uniscribe so Chromium and Firefox are using harfbuzz without them on Windows. - - This removal also helps win32 nmake clients to have reduced binary - size and + + This removal also helps win32 nmake clients to have reduced binary size and libs count. appveyor.yml | 2 +- @@ -48195,7 +47499,7 @@ Author: Behdad Esfahbod Date: Tue Oct 11 13:45:22 2016 -0700 Fix configure on iOS - + Fixes https://github.com/behdad/harfbuzz/issues/342 configure.ac | 3 ++- @@ -48207,7 +47511,7 @@ Author: Ebrahim Byagowi Date: Tue Oct 11 17:23:41 2016 +0330 Merge pull request #344 from ebraminio/fixmacci - + [ci] Whitelist more symbols and unbreak mac CI commit bef240b36ee9086b0d92e351e4c5118c0bbb5df6 @@ -48215,7 +47519,7 @@ Author: Ebrahim Byagowi Date: Mon Oct 10 17:27:52 2016 +0330 [ci] Whitelist more symbols and unbreak mac CI - + Thanks to @khaledhosny, actually this is his work :) src/check-symbols.sh | 4 ++-- @@ -48226,7 +47530,7 @@ Author: Behdad Esfahbod Date: Tue Oct 4 14:53:17 2016 -0700 LFS (large file system?) support in hb-*shap*, hb-view - + Fixes https://github.com/behdad/harfbuzz/issues/336 configure.ac | 3 +++ @@ -48277,7 +47581,7 @@ Author: Behdad Esfahbod Date: Tue Sep 27 17:15:59 2016 +0200 Merge branch 'math' - + Supercedes https://github.com/behdad/harfbuzz/pull/326 Fixes https://github.com/behdad/harfbuzz/pull/331 @@ -48296,7 +47600,7 @@ Author: Behdad Esfahbod Date: Tue Sep 27 16:44:22 2016 +0200 [MATH] Rename hb_math_*_t types to hb_ot_math_*_t - + With this, I believe MATH table API is not ready to be merged. docs/harfbuzz-sections.txt | 6 +++--- @@ -48322,8 +47626,7 @@ Date: Tue Sep 27 15:28:35 2016 +0200 Document API for MathVariants (#330) - src/hb-ot-layout.cc | 56 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) commit 8d622f1114d6a0eca1786b94c7fc1a0bcd87f74b @@ -48332,8 +47635,7 @@ Date: Tue Sep 27 13:53:34 2016 +0200 Add tests for get_mathvariant (#329) - test/api/test-ot-math.c | 160 - ++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-ot-math.c | 160 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) commit f73a87d9a8c76a181794b74b527ea268048f78e3 @@ -48352,8 +47654,7 @@ Date: Tue Sep 27 13:18:00 2016 +0200 Add tests for hb_ot_math_get_glyph_variants (#328) - test/api/test-ot-math.c | 126 - ++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-ot-math.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) commit f16bf6c2dacf5b9c82b2d1ffacc092cc396189a7 @@ -48378,12 +47679,9 @@ commit edcfa789bf92c18f5badad31c0ad04a6a77d7226 Author: Frédéric Wang Date: Tue Sep 27 11:02:08 2016 +0200 - test-ot-math: Use different scales for vertical - and horizontal directions and add test for - hb_ot_math_get_min_connector_overlap. (#327) + test-ot-math: Use different scales for vertical and horizontal directions and add test for hb_ot_math_get_min_connector_overlap. (#327) - test/api/test-ot-math.c | 81 - ++++++++++++++++++++++++++++++------------------- + test/api/test-ot-math.c | 81 ++++++++++++++++++++++++++++++------------------- 1 file changed, 49 insertions(+), 32 deletions(-) commit bc19f7fe20e89823dba07a46c3d48c7406b781b6 @@ -48401,8 +47699,7 @@ Date: Mon Sep 26 22:18:41 2016 +0200 [MATH] Enable tests for glyph-assembly italics-correction - test/api/test-ot-math.c | 49 - ++++++++++++++++++++++++++++++------------------- + test/api/test-ot-math.c | 49 ++++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 19 deletions(-) commit 86106c7528d9bff8de6bc3e1487be780c31ea4fd @@ -48415,10 +47712,8 @@ Date: Mon Sep 26 22:12:48 2016 +0200 src/hb-ot-layout.cc | 69 ++++---- src/hb-ot-math.h | 56 +++--- test/api/Makefile.am | 6 +- - test/api/test-ot-layout-math.c | 382 - ----------------------------------------- - test/api/test-ot-math.c | 381 - ++++++++++++++++++++++++++++++++++++++++ + test/api/test-ot-layout-math.c | 382 ----------------------------------------- + test/api/test-ot-math.c | 381 ++++++++++++++++++++++++++++++++++++++++ 6 files changed, 447 insertions(+), 457 deletions(-) commit 1ba767cd4e3606beb9dc59806b83b1e61f5958d4 @@ -48427,10 +47722,8 @@ Date: Mon Sep 26 21:57:14 2016 +0200 [MATH] Move API from hb-ot-layout.h to hb-ot-math.h - src/hb-ot-layout.h | 52 - -------------------------------------------------- - src/hb-ot-math.h | 56 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.h | 52 -------------------------------------------------- + src/hb-ot-math.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot.h | 1 + 3 files changed, 57 insertions(+), 52 deletions(-) @@ -48449,8 +47742,7 @@ Date: Mon Sep 26 21:46:05 2016 +0200 [MATH] Wire up get_glyph_assembly() - src/hb-ot-layout-math-table.hh | 64 - ++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-math-table.hh | 64 ++++++++++++++++++++++++++++++++++++++---- src/hb-ot-layout.cc | 26 +++++++++-------- src/hb-ot-layout.h | 14 ++++----- 3 files changed, 81 insertions(+), 23 deletions(-) @@ -48462,8 +47754,7 @@ Date: Mon Sep 26 21:22:48 2016 +0200 [MATH] Wire up get_glyph_variants() src/hb-font-private.hh | 11 ++- - src/hb-ot-layout-math-table.hh | 178 - +++++++++++++++++++---------------------- + src/hb-ot-layout-math-table.hh | 178 +++++++++++++++++++---------------------- src/hb-ot-layout.cc | 7 +- src/hb-ot-layout.h | 2 +- 4 files changed, 95 insertions(+), 103 deletions(-) @@ -48476,8 +47767,7 @@ Date: Mon Sep 26 17:51:47 2016 +0100 src/hb-font-private.hh | 4 +++ src/hb-ot-layout-math-table.hh | 10 ++---- - src/hb-ot-layout.cc | 73 - +++++++++++++++--------------------------- + src/hb-ot-layout.cc | 73 +++++++++++++++--------------------------- src/hb-ot-layout.h | 20 ++++++++++++ src/hb-ot-math.h | 18 +++++++++++ 5 files changed, 71 insertions(+), 54 deletions(-) @@ -48497,8 +47787,7 @@ Date: Thu Aug 25 11:17:50 2016 +0200 MATH table: Add API to access math variants. - src/hb-ot-layout-math-table.hh | 253 - +++++++++++++++++++++++++++++++- + src/hb-ot-layout-math-table.hh | 253 +++++++++++++++++++++++++++++++- src/hb-ot-layout-private.hh | 10 ++ src/hb-ot-layout.cc | 54 +++++++ test/api/fonts/MathTestFontPartial4.otf | Bin 0 -> 14360 bytes @@ -48539,7 +47828,7 @@ Author: Behdad Esfahbod Date: Mon Sep 26 12:18:32 2016 +0100 [MATH] Clean up get_top_accent_attachment() - + Note, the function now returns "half of horizontal advance width" if top accent attachment for glyph is not explicitly defined. This is what the spec requires. Updated tests. @@ -48568,8 +47857,7 @@ Date: Mon Sep 26 12:07:29 2016 +0100 [MATH] Clean up a bit more src/hb-ot-layout-math-table.hh | 12 +-------- - src/hb-ot-layout.cc | 57 - ++++++++++++++++-------------------------- + src/hb-ot-layout.cc | 57 ++++++++++++++++-------------------------- 2 files changed, 22 insertions(+), 47 deletions(-) commit 54c0cc38fba24fa4370231408ba121589b190a28 @@ -48588,8 +47876,7 @@ Date: Mon Sep 26 11:47:05 2016 +0100 [MATH] Cleanup previous commit a bit - src/hb-ot-layout-math-table.hh | 186 - ++++++++++++++++++++--------------------- + src/hb-ot-layout-math-table.hh | 186 ++++++++++++++++++++--------------------- src/hb-ot-layout.cc | 30 +++---- src/hb-ot-layout.h | 14 ++-- 3 files changed, 113 insertions(+), 117 deletions(-) @@ -48600,8 +47887,7 @@ Date: Thu Aug 25 11:15:31 2016 +0200 MATH Table: Add API to access glyph info. - src/hb-ot-layout-math-table.hh | 271 - +++++++++++++++++++++++++++++++- + src/hb-ot-layout-math-table.hh | 271 +++++++++++++++++++++++++++++++- src/hb-ot-layout.cc | 114 ++++++++++++++ src/hb-ot-layout.h | 18 +++ src/hb-ot-math.h | 7 + @@ -48636,8 +47922,7 @@ Date: Thu Aug 25 11:06:41 2016 +0200 MATH Table: Add API to access math contants. src/Makefile.sources | 1 + - src/hb-ot-layout-math-table.hh | 146 - +++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-math-table.hh | 146 +++++++++++++++++++++++++++++++++++- src/hb-ot-layout.cc | 25 ++++++ src/hb-ot-layout.h | 5 ++ src/hb-ot-math.h | 100 ++++++++++++++++++++++++ @@ -48672,8 +47957,7 @@ Date: Thu Aug 25 10:47:15 2016 +0200 test/api/Makefile.am | 14 ++++- test/api/fonts/MathTestFontEmpty.otf | Bin 0 -> 14320 bytes test/api/fonts/MathTestFontNone.otf | Bin 0 -> 14284 bytes - test/api/test-ot-layout-math.c | 98 - +++++++++++++++++++++++++++++++++++ + test/api/test-ot-layout-math.c | 98 +++++++++++++++++++++++++++++++++++ 9 files changed, 227 insertions(+), 1 deletion(-) commit 02bfd965af588640250c47f344ad3096c8a373e0 @@ -48681,7 +47965,7 @@ Author: Gregory Morse Date: Mon Sep 12 10:22:15 2016 +0200 Update detectenv-msvc.mak (#316) - + Windows x86 ARM capability win32/detectenv-msvc.mak | 3 +++ @@ -48720,7 +48004,7 @@ Author: Dominik Röttsches Date: Wed Sep 7 23:56:57 2016 +0300 Do reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313) - + This seems to fix crash issues on 10.9.5 reported on Chrome, compare crbug.com/549610 @@ -48732,7 +48016,7 @@ Author: Dominik Röttsches Date: Mon Sep 5 11:27:25 2016 +0300 Blacklist Padauk 2.80 and 3.00 (#311) - + According to comments in issue #305 broken GDEF tables lead to incorrect rendering of Latin characters. Blacklisting this font. @@ -48784,7 +48068,7 @@ Author: Sascha Brawer Date: Thu Aug 18 22:33:14 2016 +0200 Merge pull request #303 from behdad/fonnapa - + Support Americanist Phonetic Notation commit e7ecbba2cc3c9369c5e7dc7296cb210018aca3bb @@ -48792,10 +48076,10 @@ Author: Sascha Brawer Date: Thu Aug 18 12:48:38 2016 +0200 Support Americanist Phonetic Notation - + OpenType language system tag: `APPH` https://www.microsoft.com/typography/otspec/languagetags.htm - + IETF BCP47 variant tag: `fonnapa` http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry @@ -48809,7 +48093,7 @@ Author: Sascha Brawer Date: Thu Aug 18 13:59:38 2016 +0200 Merge pull request #302 from khaledhosny/master - + [travis] Fix MacOS libtool issue commit a0f1b44b6c0e3b1e6a1ba63dde2be22e0425353f @@ -48826,7 +48110,7 @@ Author: Khaled Hosny Date: Tue Aug 16 02:49:48 2016 +0200 [travis] Fix MacOS libtool issue - + Reveals another MacOS build breakage in the Core Text shaper. .travis.yml | 1 + @@ -48855,13 +48139,11 @@ Author: Behdad Esfahbod Date: Mon Aug 8 18:06:09 2016 -0700 Add tests for Chinese language tags - + Using font from https://github.com/behdad/harfbuzz/issues/300 - .../sha1sum/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf | Bin 0 -> - 5596 bytes - test/shaping/tests/language-tags.tests | 12 - ++++++++++++ + .../sha1sum/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf | Bin 0 -> 5596 bytes + test/shaping/tests/language-tags.tests | 12 ++++++++++++ 2 files changed, 12 insertions(+) commit 37f21bdbb75c98d741e749b7f1e0f367941aef4e @@ -48869,7 +48151,7 @@ Author: Behdad Esfahbod Date: Mon Aug 8 17:57:06 2016 -0700 Map Macao to ZHH lang tag - + Fixes https://github.com/behdad/harfbuzz/issues/300 src/hb-ot-tag.cc | 3 ++- @@ -48880,10 +48162,9 @@ Author: Behdad Esfahbod Date: Mon Aug 8 17:28:54 2016 -0700 Limit bits-per-feature to eight - + Limits number of alternatives per glyph per feature to 255, so be it. - That's better than possibly breaking shaping because of one bad - feature + That's better than possibly breaking shaping because of one bad feature value. src/hb-ot-map.cc | 3 ++- @@ -48894,14 +48175,14 @@ Author: Behdad Esfahbod Date: Mon Aug 8 17:24:04 2016 -0700 Fix sign of shift operators - + This one: - + map->mask = (1 << (next_bit + bits_needed)) - (1 << next_bit); - + before the fix, the shift was done as an int, causing overflow if it ever got to 1 << 31. Sprinkle 'u's around. - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=634805 src/hb-buffer-private.hh | 6 +++--- @@ -48921,7 +48202,7 @@ Author: Behdad Esfahbod Date: Mon Aug 8 16:51:08 2016 -0700 Map zh-Hant-HK to ZHH - + Fixes https://github.com/behdad/harfbuzz/issues/300 src/hb-ot-tag.cc | 4 +++- @@ -48932,7 +48213,7 @@ Author: Khaled Hosny Date: Fri Jul 22 02:26:54 2016 +0300 Don’t build UCDN support when building with GLib (#296) - + Regression from: b424b6c372dfe4c0ed75a49761eb34a416819446. configure.ac | 2 +- @@ -48943,7 +48224,7 @@ Author: Behdad Esfahbod Date: Fri Jul 22 17:41:43 2016 -0700 [coretext] "Fix" crashes on CoreText < 10.10 - + Fixes https://github.com/behdad/harfbuzz/issues/297 src/hb-coretext.cc | 8 ++++++++ @@ -48964,15 +48245,14 @@ Author: Behdad Esfahbod Date: Thu Jul 21 01:23:33 2016 -0700 [ucdn] Update to Unicode 9.0.0 - + Fixes https://github.com/grigorig/ucdn/issues/12 src/hb-ucdn.cc | 6 + src/hb-ucdn/README | 1 - src/hb-ucdn/ucdn.c | 80 +- src/hb-ucdn/ucdn.h | 98 +- - src/hb-ucdn/unicodedata_db.h | 4750 - +++++++++++++++++++++++------------------- + src/hb-ucdn/unicodedata_db.h | 4750 +++++++++++++++++++++++------------------- 5 files changed, 2783 insertions(+), 2152 deletions(-) commit f3f6c1ccbf89e15cda03e0c3a2df4297e98adf60 @@ -48980,21 +48260,16 @@ Author: jfkthame Date: Thu Jun 16 00:10:42 2016 +0100 Blacklist GDEF tables of more fonts - - This is based on bug reports that have been filed against Firefox - since it - updated to a version of harfbuzz that uses zeroing by GDEF rather - than by - Unicode. I'm sure there are a bunch more font versions that should - also be - included; these are just the ones I have on hand and have confirmed - as having + + This is based on bug reports that have been filed against Firefox since it + updated to a version of harfbuzz that uses zeroing by GDEF rather than by + Unicode. I'm sure there are a bunch more font versions that should also be + included; these are just the ones I have on hand and have confirmed as having bad GDEF data. - - Given how the list here is growing, I think we should reconsider - the approach, + + Given how the list here is growing, I think we should reconsider the approach, and perhaps revert to zeroing by Unicode instead. - + Fixes https://github.com/behdad/harfbuzz/issues/264 Fixes https://github.com/behdad/harfbuzz/pull/266 @@ -49006,7 +48281,7 @@ Author: Behdad Esfahbod Date: Wed Jul 20 02:35:54 2016 -0700 Implement symbol cmap in ft and ot fonts - + Fixes https://github.com/behdad/harfbuzz/issues/236 Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953 @@ -49019,7 +48294,7 @@ Author: Behdad Esfahbod Date: Wed Jul 20 01:43:56 2016 -0700 Clean up buffer area when rewinding - + Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647 If allocation fails, we might be leaving junk behind. At least clear it up. @@ -49049,13 +48324,10 @@ commit 6bf9db4f1e1d51f9acb5e37b89caa8f4d275e7ce Author: Birunthan Mohanathas Date: Mon Jul 11 13:38:23 2016 -0700 - [ft] Fix unsafe cast of FT_Done_Face in - hb_ft_{face,font}_create_referenced (#289) - - Prior to this change the function `FT_Error FT_Done_Face(FT_Face - *)` was - called through a pointer with the signature `void (void *)` - resulting in + [ft] Fix unsafe cast of FT_Done_Face in hb_ft_{face,font}_create_referenced (#289) + + Prior to this change the function `FT_Error FT_Done_Face(FT_Face *)` was + called through a pointer with the signature `void (void *)` resulting in undefined behaviour. src/hb-ft.cc | 12 +++++++++--- @@ -49076,7 +48348,7 @@ Author: Behdad Esfahbod Date: Fri Jul 1 17:09:28 2016 -0700 Merge pull request #286 from khaledhosny/gi-tag_from_string - + [introspection] Fix hb_tag_from_string annotation commit e4d451ee55a57e1231b4076fcd1e87994f6b9528 @@ -49093,7 +48365,7 @@ Author: Behdad Esfahbod Date: Thu Jun 30 11:01:22 2016 -0700 [python] Use utf-32 / utf-16 based on build of Python - + Fixes https://github.com/behdad/harfbuzz/pull/271 src/sample.py | 22 +++++++++++++++++++++- @@ -49114,7 +48386,7 @@ Author: Behdad Esfahbod Date: Thu Jun 30 09:41:03 2016 -0700 Merge pull request #268 from drott/conflictingFontFix - + Discard reconfigured CTFont if URL changes commit 1bea49eb4b7a94ab6222f9c3c40320cbdb247b2d @@ -49129,7 +48401,7 @@ Author: Behdad Esfahbod Date: Tue Jun 28 21:00:37 2016 -0700 [gobject] Fix a few warnings - + Part of https://github.com/behdad/harfbuzz/issues/277 src/hb-buffer.cc | 2 +- @@ -49144,7 +48416,7 @@ Author: Behdad Esfahbod Date: Tue Jun 28 21:15:28 2016 -0700 Merge pull request #280 from behdad/revert-271-patch-2 - + Revert "use utf32" commit ae9054c740631e36b7582b44c5afb42ff4509461 @@ -49169,7 +48441,7 @@ Author: Behdad Esfahbod Date: Mon Jun 27 14:33:27 2016 -0400 Merge pull request #273 from ebraminio/master - + [dwrite] Use stream font loader instead GDI interop commit 8179ff5d7ba4a140cf6743729a22072800e98a79 @@ -49177,7 +48449,7 @@ Author: Ebrahim Byagowi Date: Mon Jun 27 03:54:15 2016 +0430 [dwrite] Don't allocate more than needed - + Addressing Nikolay Sivov reviews on harfbuzz mailing list src/hb-directwrite.cc | 15 ++++++--------- @@ -49188,11 +48460,11 @@ Author: Sascha Brawer Date: Fri Jun 24 16:42:27 2016 +0200 [CPAL] Return 0xFFFF as name id for unnamed palettes - + The name id 0 is used as Copyright notice. It's quite unlikely that a font supplies a color palette with the exact same name as the font's copyright notice, but the API should not prevent this. - + Also, try to fix a problem with GObject introspection, where the auto-generated Python bindings could not return palette colors. @@ -49205,7 +48477,7 @@ Author: Ebrahim Byagowi Date: Fri Jun 24 12:23:25 2016 +0430 [dwrite] Delete remained objects - + No longer noticeable memory increase on create/destroy iterations, highly better than current state of uniscribe backend @@ -49217,9 +48489,8 @@ Author: Ebrahim Byagowi Date: Fri Jun 24 11:42:01 2016 +0430 [dwrite] Release allocated blob on face destroy - - This reduces memory consumption of my iterated font create/destroy - cycle test + + This reduces memory consumption of my iterated font create/destroy cycle test significantly and makes it much better than uniscribe backend even src/hb-directwrite.cc | 5 ++++- @@ -49229,11 +48500,9 @@ commit f3f0ea980a359343ac0e3d359a95855c2cf7be25 Author: Ebrahim Byagowi Date: Thu Jun 23 16:41:37 2016 +0430 - [dwrite] Remove ifdefs without breaking execution on old Windows - versions + [dwrite] Remove ifdefs without breaking execution on old Windows versions - src/hb-directwrite.cc | 205 - +++++++++++++++++++++++++------------------------- + src/hb-directwrite.cc | 205 +++++++++++++++++++++++++------------------------- 1 file changed, 103 insertions(+), 102 deletions(-) commit 6b861dbd8b3662d0fa0e51fad1736d72192da868 @@ -49241,12 +48510,11 @@ Author: Ebrahim Byagowi Date: Tue Jun 21 13:57:26 2016 +0430 [dwrite] Use stream font loader instead GDI interop - + With help of https://dxr.mozilla.org/mozilla-central/source/gfx/2d/NativeFontResourceDWrite.cpp - src/hb-directwrite.cc | 350 - +++++++++++++++++++------------------------------- + src/hb-directwrite.cc | 350 +++++++++++++++++++------------------------------- src/hb-directwrite.h | 2 +- 2 files changed, 135 insertions(+), 217 deletions(-) @@ -49274,8 +48542,7 @@ Date: Mon Apr 25 18:20:57 2016 +0200 src/hb-ot.h | 1 + test/api/Makefile.am | 1 + test/api/hb-test.h | 30 ++ - test/api/test-ot-color.c | 318 - +++++++++++++++++++++ + test/api/test-ot-color.c | 318 +++++++++++++++++++++ .../319f5d7ebffbefc5c5e6569f8cea73444d7a7268.ttf | Bin 0 -> 2128 bytes .../e90374e5e439e00725b4fe7a8d73db57c5a97f82.ttf | Bin 0 -> 1948 bytes 14 files changed, 804 insertions(+), 1 deletion(-) @@ -49295,7 +48562,7 @@ Author: Khaled Hosny Date: Sun Jun 19 00:08:51 2016 +0300 Merge pull request #270 from khaledhosny/travis-failure - + Fix make check on Travis commit 988350586f607c7a46bbb658a2abecfd004f41fb @@ -49303,12 +48570,11 @@ Author: Khaled Hosny Date: Sat Jun 18 21:12:19 2016 +0200 [tests] Workaround Python 2 “narrow” builds - - The so-called Python 2 “narrow” builds support UCS2 only, this - is a + + The so-called Python 2 “narrow” builds support UCS2 only, this is a workaround to allow unichr to work with any Unicode character in such builds. This fixes Travis-CI failure as it has narrow Python 2 builds. - + Copied from: https://github.com/behdad/fonttools/blob/master/Lib/fontTools/misc/py23.py @@ -49320,7 +48586,7 @@ Author: Dominik Röttsches Date: Thu Jun 16 14:19:39 2016 +0200 Discard reconfigured CTFont if URL changes - + Fixes https://github.com/behdad/harfbuzz/issues/267 src/hb-coretext.cc | 24 +++++++++++++++++++++--- @@ -49331,7 +48597,7 @@ Author: Behdad Esfahbod Date: Mon Jun 6 23:08:54 2016 -0700 Round, not truncate, when scaling values - + Fixes https://github.com/behdad/harfbuzz/issues/255 src/hb-font-private.hh | 8 +++++++- @@ -49342,7 +48608,7 @@ Author: Behdad Esfahbod Date: Mon Jun 6 15:58:41 2016 -0700 Change bugreport URL to github - + That's where everything is happening these days. configure.ac | 2 +- @@ -49373,7 +48639,7 @@ Author: Behdad Esfahbod Date: Fri May 6 17:56:07 2016 +0100 [myanmar] Handle U+AA74..U+AA76 - + Fixes https://github.com/behdad/harfbuzz/issues/218 src/hb-ot-shape-complex-myanmar.cc | 5 +++++ @@ -49397,8 +48663,7 @@ Date: Fri May 6 17:41:49 2016 +0100 src/gen-use-table.py | 29 +++-- src/hb-ot-shape-complex-use-machine.rl | 15 +-- src/hb-ot-shape-complex-use-private.hh | 1 - - src/hb-ot-shape-complex-use-table.cc | 142 - ++++++++++----------- + src/hb-ot-shape-complex-use-table.cc | 142 ++++++++++----------- src/hb-ot-shape-complex-use.cc | 11 +- .../6ff0fbead4462d9f229167b4e6839eceb8465058.ttf | Bin 0 -> 1148 bytes test/shaping/tests/use.tests | 1 + @@ -49419,7 +48684,7 @@ Author: Behdad Esfahbod Date: Fri May 6 17:17:00 2016 +0100 [use] Fix 'Number-joiner terminated cluster' to use HN instead of H - + From draft update to USE. src/hb-ot-shape-complex-use-machine.rl | 2 +- @@ -49430,9 +48695,9 @@ Author: Behdad Esfahbod Date: Fri May 6 16:19:19 2016 +0100 Allow MultipleSubst to delete glyph - + Fixes https://github.com/behdad/harfbuzz/issues/253 - + Hopefully we got the logic right. src/hb-ot-layout-gsub-table.hh | 17 +++++++---------- @@ -49445,8 +48710,7 @@ Date: Fri May 6 16:05:07 2016 +0100 [indic] Remove more unused logic after Javanese is gone - src/hb-ot-shape-complex-indic.cc | 50 - +++++++++++++++------------------------- + src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++------------------------- 1 file changed, 18 insertions(+), 32 deletions(-) commit 8b5d6e755b271d0d22b31a7726d5bfbf2aae8b2f @@ -49465,23 +48729,22 @@ Author: Behdad Esfahbod Date: Fri May 6 15:52:27 2016 +0100 [indic/use] Move Javanese from Indic shaper to USE - + Fixes https://github.com/behdad/harfbuzz/issues/243 - + With javatext.ttf, the reodering medial Ra gets its advance width zero'ed in Uniscribe implementation, and the font adds the advance back. Our Indic shaper does not do that, but USE does. So, route Javanese through USE. That's what Microsoft does anyway. Test: - + U+A9A5,U+A9BA - + This also seems to fix the following sequence, and variations thereof: - + U+A99F,U+A9C0,U+A9A2,U+A9BF src/gen-indic-table.py | 1 - - src/hb-ot-shape-complex-indic-table.cc | 23 - ++++------------------ + src/hb-ot-shape-complex-indic-table.cc | 23 ++++------------------ src/hb-ot-shape-complex-private.hh | 5 +---- .../south-east-asian/script-javanese/misc.txt | 1 + 4 files changed, 6 insertions(+), 24 deletions(-) @@ -49492,8 +48755,7 @@ Date: Fri May 6 15:39:02 2016 +0100 Add Javanese sample text - .../south-east-asian/script-javanese/misc.txt | 53 - ++++++++++++++++++++++ + .../south-east-asian/script-javanese/misc.txt | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit e21921a68a959b7e929f71a4260a6cbe055ab4e6 @@ -49512,8 +48774,7 @@ Date: Fri May 6 11:50:02 2016 +0100 [indic] Remove data for scripts that don't go thorough this shaper src/gen-indic-table.py | 29 +- - src/hb-ot-shape-complex-indic-table.cc | 604 - +-------------------------------- + src/hb-ot-shape-complex-indic-table.cc | 604 +-------------------------------- 2 files changed, 43 insertions(+), 590 deletions(-) commit 7cd9269f4eba7b85cd72301a3fc39fab42a4e439 @@ -49521,12 +48782,11 @@ Author: Behdad Esfahbod Date: Fri May 6 11:34:46 2016 +0100 Update tables to Unicode 9.0.0 beta - + Fixes https://github.com/behdad/harfbuzz/issues/251 src/hb-ot-shape-complex-arabic-table.hh | 56 ++++++++----- - src/hb-ot-shape-complex-indic-table.cc | 137 - +++++++++++++++++++++++--------- + src/hb-ot-shape-complex-indic-table.cc | 137 +++++++++++++++++++++++--------- src/hb-ot-shape-complex-use-table.cc | 86 ++++++++++++++------ 3 files changed, 196 insertions(+), 83 deletions(-) @@ -49544,7 +48804,7 @@ Author: Behdad Esfahbod Date: Fri May 6 12:08:18 2016 +0100 Add Unicode 9 beta scripts - + These are frozen, so good time to add. src/hb-common.cc | 3 +++ @@ -49577,7 +48837,7 @@ Author: Behdad Esfahbod Date: Mon May 2 10:29:12 2016 +0200 [ot-font] Remove unused 'post' table include for now - + To make a release... src/hb-ot-font.cc | 2 +- @@ -49589,10 +48849,8 @@ Date: Mon May 2 10:28:24 2016 +0200 [tests] Fix test - test/shaping/Makefile.am | - 2 +- - .../tests/{fallback-positioning.test => fallback-positioning.tests} - | 0 + test/shaping/Makefile.am | 2 +- + .../tests/{fallback-positioning.test => fallback-positioning.tests} | 0 2 files changed, 1 insertion(+), 1 deletion(-) commit f00ab2a33ab34ba64f38cbbe65830c770a3e071e @@ -49600,15 +48858,12 @@ Author: Behdad Esfahbod Date: Mon May 2 10:24:00 2016 +0200 [hb-ot-font] Make 'glyf' table loading lazy - - Apparently some clients have reference-table callbacks that copy - the table. - As such, avoid loading 'glyf' table which is only needed if fallback - positioning + + Apparently some clients have reference-table callbacks that copy the table. + As such, avoid loading 'glyf' table which is only needed if fallback positioning happens. - src/hb-ot-font.cc | 45 - ++++++++++++++++++++- + src/hb-ot-font.cc | 45 ++++++++++++++++++++- test/shaping/Makefile.am | 1 + .../7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf | Bin 0 -> 784 bytes test/shaping/tests/fallback-positioning.test | 2 + @@ -49623,8 +48878,7 @@ Date: Sat Apr 30 19:20:56 2016 +0200 src/Makefile.sources | 1 + src/hb-open-type-private.hh | 12 ++++- src/hb-ot-font.cc | 1 + - src/hb-ot-post-table.hh | 119 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-post-table.hh | 119 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 132 insertions(+), 1 deletion(-) commit 9abaaac409b8e3a0a9182b67dc384133013f7878 @@ -49639,9 +48893,9 @@ Author: Behdad Esfahbod Date: Wed Apr 27 03:11:41 2016 -0700 [tibetan] Reorder marks to better match Uniscribe - + Fixes https://github.com/behdad/harfbuzz/issues/237 - + Note that Uniscribe enforces a certain syllable order. We don't. But with this change, I get all of the tibetan contractions pass with Microsoft Himalaya font. @@ -49654,11 +48908,10 @@ Author: Behdad Esfahbod Date: Wed Apr 27 02:44:35 2016 -0700 [test] Add text for Tibetan shorthand contractions - + From http://www.babelstone.co.uk/Tibetan/Contractions.html - .../script-tibetan/misc/contractions.txt | 612 - +++++++++++++++++++++ + .../script-tibetan/misc/contractions.txt | 612 +++++++++++++++++++++ 1 file changed, 612 insertions(+) commit 264b7a728a41becfbf23ce258fc2a3af19d0cbbe @@ -49667,7 +48920,7 @@ Author: Khaled Hosny Date: Wed Apr 27 03:48:23 2016 +0300 Merge pull request #247 from khaledhosny/update-opentype-language-tags - + Update opentype language tags commit adafdcddced076da4bfa3114a00e15a387aaf1f7 @@ -49676,8 +48929,7 @@ Date: Sat Nov 7 23:37:21 2015 +0000 Mass-added “difficult” tags – to be curated. - src/hb-ot-tag.cc | 69 - +++++++++++++++++++++++++++++--------------------------- + src/hb-ot-tag.cc | 69 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 33 deletions(-) commit 3d6a2c0d7d9f6c5b3097f78c1123f9e59dcc76e2 @@ -49686,8 +48938,7 @@ Date: Sat Nov 7 22:59:13 2015 +0000 Initial import of missing OpenType 1.7 language tags. - src/hb-ot-tag.cc | 67 - +++++++++++++++++++++++++++++++++++++++++++++++++++----- + src/hb-ot-tag.cc | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 6 deletions(-) commit 7e2da035f68e46ce8f4759b67b4ed3a1b211d793 @@ -49704,12 +48955,11 @@ Author: Behdad Esfahbod Date: Tue Apr 26 16:41:17 2016 -0700 Do NOT ignore Mongolian Free Variation Selectors during matching - + Fixes https://github.com/behdad/harfbuzz/issues/234 src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout-private.hh | 23 - +++++++++++++++++++-- + src/hb-ot-layout-private.hh | 23 +++++++++++++++++++-- src/hb-ot-shape-complex-arabic.cc | 2 +- .../a34a7b00f22ffb5fd7eef6933b81c7e71bc2cdfb.ttf | Bin 0 -> 3700 bytes .../tests/mongolian-variation-selector.tests | 1 + @@ -49720,7 +48970,7 @@ Author: Behdad Esfahbod Date: Tue Apr 26 16:02:04 2016 -0700 Move ZWJ/ZWNJ bits to top byte of unicode_props() - + To make room to remember Mongolian Free Variation Selectors. Part of fixing https://github.com/behdad/harfbuzz/issues/234 @@ -49751,7 +49001,7 @@ Author: Sascha Brawer Date: Tue Apr 26 11:38:16 2016 +0200 Merge pull request #245 from KonstantinRitt/fixes/ce - + Unbreak build on Windows CE commit 5069062d0a9342bb716eebf3ddc1efad91924caa @@ -49759,7 +49009,7 @@ Author: Konstantin Ritt Date: Tue Apr 26 12:02:26 2016 +0400 Unbreak build on Windows CE - + 0475ef2f97e3035a2eea9a0f96031331e07e8e29 broke the build by using vsnprintf(), which is not defined on Windows CE @@ -49809,7 +49059,7 @@ Author: Behdad Esfahbod Date: Fri Apr 8 13:16:33 2016 -0700 Merge pull request #239 from ebraminio/dwfix - + Improve DirectWrite backend commit d3134a66ad551ded726db9528d3c25459088f105 @@ -49838,8 +49088,7 @@ Date: Mon Apr 4 16:24:27 2016 -0700 Add test for 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8 test/shaping/Makefile.am | 1 + - .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf | Bin 0 -> - 16736 bytes + .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf | Bin 0 -> 16736 bytes test/shaping/tests/mark-filtering-sets.tests | 5 +++++ 3 files changed, 6 insertions(+) @@ -49857,9 +49106,9 @@ Author: Behdad Esfahbod Date: Mon Apr 4 14:34:25 2016 -0700 Fix FixedVersion::to_int() - + Ouch. Had broken it in 9a13ed453ef96822a47d6e6f58332b87f38d5c59 - + Fixes https://github.com/behdad/harfbuzz/issues/238 Will add test soon. @@ -49881,19 +49130,16 @@ Date: Fri Apr 1 15:47:07 2016 +0000 Use standard types instead Windows favourites ones - src/hb-directwrite.cc | 100 - +++++++++++++++++++++++++------------------------- + src/hb-directwrite.cc | 100 +++++++++++++++++++++++++------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) commit adf20ba0d18d1506e633dcd9b4827a6c93abcadd Author: Ebrahim Byagowi Date: Fri Apr 1 15:36:40 2016 +0000 - Limit GetJustifiedGlyphs only to scripts with custom justification - character + Limit GetJustifiedGlyphs only to scripts with custom justification character - src/hb-directwrite.cc | 98 - +++++++++++++++++++++++++++++++-------------------- + src/hb-directwrite.cc | 98 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 60 insertions(+), 38 deletions(-) commit 32ae9d1b3ffbe7e26e654437a56a26a95fe9f5a6 @@ -49902,8 +49148,7 @@ Date: Fri Apr 1 06:39:57 2016 +0000 Add justification support - src/hb-directwrite.cc | 321 - ++++++++++++++++++++++++++++++++------------------ + src/hb-directwrite.cc | 321 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 205 insertions(+), 116 deletions(-) commit 10c3d9e41520595c88dd2a8321590e03ce8fcf47 @@ -49912,8 +49157,7 @@ Date: Thu Mar 31 18:19:44 2016 +0000 Basic opentype features support - src/hb-directwrite.cc | 62 - ++++++++++++++++++++++++++++++++++----------------- + src/hb-directwrite.cc | 62 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 42 insertions(+), 20 deletions(-) commit d129897120d3ad414220d603557c15a60aa69fa6 @@ -49922,8 +49166,7 @@ Date: Thu Mar 31 13:45:37 2016 +0000 Refactor and remove dupe getglyphs call - src/hb-directwrite.cc | 106 - ++++++++++++++++++++++++-------------------------- + src/hb-directwrite.cc | 106 ++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 55 deletions(-) commit 5f1a8961008b93f72acc47336109af3a64e248d0 @@ -49949,7 +49192,7 @@ Author: Ebrahim Byagowi Date: Wed Mar 30 20:15:09 2016 +0000 Make DirectWrite backend to work with different font sizes - + Actually copyedited same logic from Uniscribe to make it just work src/hb-directwrite.cc | 7 ++++++- @@ -49969,43 +49212,40 @@ commit 69f9fbc4200442a35484d3c790ae8f4979be5d60 Author: Behdad Esfahbod Date: Thu Mar 17 11:59:43 2016 -0700 - Synthesize GDEF glyph class for any glyph that does not have one - in GDEF - + Synthesize GDEF glyph class for any glyph that does not have one in GDEF + Previously we only synthesized GDEF glyph classes if the glyphClassDef array in GDEF was null. This worked well enough, and is indeed what - OpenType requires: "If the font does not include a GlyphClassDef - table, + OpenType requires: "If the font does not include a GlyphClassDef table, the client must define and maintain this information when using the GSUB and GPOS tables." That sentence does not quite make sense since one needs Unicode properties as well, but is close enough. - + However, looks like Arial Unicode as shipped on WinXP, does have GDEF glyph class array, but defines no classes for Hebrew. This results - in Hebrew marks not getting their widths zeroed. So, with this - change, + in Hebrew marks not getting their widths zeroed. So, with this change, we synthesize glyph class for any glyph that is not specified in the GDEF glyph class table. Since, from our point of view, a glyph not being listed in that table is a font bug, any unwanted consequence of this change is a font bug :). - + Note that we still don't get the same rendering as Uniscribe, since Uniscribe seems to do fallback positioning as well, even though the font does have a GPOS table (which does NOT cover Hebrew!). We are not going to try to match that though. - + Test string for Arial Unicode: - + U+05E9,U+05B8,U+05C1,U+05DC - + Before: [gid1166=3+991|gid1142=0+737|gid5798=0+1434] After: [gid1166=3+991|gid1142=0+0|gid5798=0+1434] Uniscribe: [gid1166=3+991|gid1142=0@348,0+0|gid5798=0+1434] - + Note that our new output matches what we were generating until July 2014, because the Hebrew shaper used to zero mark advances based on Unicode, NOT GDEF. That's 9e834e29e0b657f0555df1ab9cea79ff7abcf08d. - + Reported by Greg Douglas. src/hb-ot-layout-gsub-table.hh | 22 ++++++++++++++++++++-- @@ -50018,7 +49258,7 @@ Author: Behdad Esfahbod Date: Sat Mar 12 19:15:15 2016 -0800 Merge pull request #232 from c0nk/wip-icu - + Add --with-icu=builtin option; fix compile error commit 01ea9eaac373d9f3de6e56c1ca26cdcd259ecc8e @@ -50026,7 +49266,7 @@ Author: Behdad Esfahbod Date: Fri Mar 11 18:50:02 2016 -0800 [build] Use tar-ustar instead of tar-pax - + The default tar-v7 is not good enough for us (99 char filename limit), so I have had bumped to tar-pax. We got one complaint that someone's tar couldn't handle tar-pax. Set to tar-ustar @@ -50049,7 +49289,7 @@ Author: Behdad Esfahbod Date: Tue Mar 8 12:16:41 2016 -0800 Remove default clause in minor switch statements - + Bending to clang warnings... https://bugs.chromium.org/p/chromium/issues/detail?id=593057 @@ -50063,7 +49303,7 @@ Author: Behdad Esfahbod Date: Fri Mar 4 17:20:35 2016 -0800 Merge pull request #231 from KonstantinRitt/post123buildfix - + Fix build with HB_DISABLE_DEPRECATED commit 731a430cd36caabcef04e099b21ebc6daedd536f @@ -50071,16 +49311,16 @@ Author: Behdad Esfahbod Date: Wed Mar 2 13:32:42 2016 -0800 Fix requiredFeature stage handling logic - + Originally the way Jonathan had written this was correct in "continue"ing: - + https://github.com/jfkthame/harfbuzz/commit/35e28c7a733eaffcd9f062b18d7db9fbb3d990fc#diff-ead86a33a5cc9ad7f6e6381031a0baddR199 - + When I rewrote his patch, I messed it up: - + https://github.com/behdad/harfbuzz/commit/da132937989acb4d8ca9bd41c79f98750e7dda30#diff-ead86a33a5cc9ad7f6e6381031a0baddR209 - + the intended behavior was NOT to set found=TRUE and NOT to continue. This was resulting in feature_index[table_index] being left unset. Oops! @@ -50102,7 +49342,7 @@ Author: Behdad Esfahbod Date: Tue Mar 1 16:41:26 2016 +0900 Use FWORD and UFWORD when it makes sense - + I had forgotten about those types. src/hb-ot-glyf-table.hh | 8 ++++---- @@ -50114,7 +49354,7 @@ Author: Kal Conley Date: Fri Feb 26 00:36:17 2016 +0100 Fix missing ICU #include - + Fix compile error in hb-icu.cc when ICU configured with U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 @@ -50136,7 +49376,7 @@ Author: Konstantin Ritt Date: Thu Feb 25 18:55:28 2016 +0400 Fix build with HB_DISABLE_DEPRECATED - + When HB_DISABLE_DEPRECATED is defined, no code from hb-deprecated.h should be used, even from within HB itself. @@ -50148,15 +49388,13 @@ Author: Behdad Esfahbod Date: Thu Feb 25 14:40:09 2016 +0900 Speed up buffer variable allocation sanity check - + This makes defining HB_NDEBUG much less relevant, to the point of irrelevance. Sorry about all the fuss in previous release! - src/hb-buffer-private.hh | 67 - ++++++++++++++++++++++++++++----------------- - src/hb-buffer.cc | 70 - ------------------------------------------------ + src/hb-buffer-private.hh | 67 ++++++++++++++++++++++++++++----------------- + src/hb-buffer.cc | 70 ------------------------------------------------ 2 files changed, 43 insertions(+), 94 deletions(-) commit 91dd11565221bdb108c138662ea013aac14bb968 @@ -50164,16 +49402,16 @@ Author: Behdad Esfahbod Date: Thu Feb 25 13:56:47 2016 +0900 Add HB_NDEBUG - + API changes: - If NDEBUG is defined, define HB_NDEBUG - Disable costlier sanity checks if HB_NDEBUG is defined. - + In 1.2.3 introduced some code to disable costly sanity checks if NDEBUG is defined. NDEBUG, however, disables all assert()s as well. With HB_NDEBUG, one can disable costlier checks but keep assert()s. - + I'll probably add a way to define HB_NDEBUG automatically in release tarballs. But for now, production systems that do NOT define NDEBUG, are encouraged to define HB_NDEBUG for our build. @@ -50199,7 +49437,7 @@ Author: Behdad Esfahbod Date: Thu Feb 25 12:23:02 2016 +0900 Disable internal buffer variable bookkeeping in NDEBUG builds - + Saves some sweet time and binary size! src/Makefile.am | 1 + @@ -50221,7 +49459,7 @@ Author: Behdad Esfahbod Date: Thu Feb 25 11:20:05 2016 +0900 [test] Pass closure to hb_font_set_glyph_func() - + Exercises fix in c335fd7986fe360ab8e1c032c9b988d0d30511eb test/api/test-shape.c | 2 +- @@ -50232,7 +49470,7 @@ Author: Behdad Esfahbod Date: Thu Feb 25 11:11:15 2016 +0900 Blacklist GDEF table of timesi.ttf and timesbi.ttf on Win 7 - + See discussion: https://lists.freedesktop.org/archives/harfbuzz/2016-February/005489.html @@ -50243,8 +49481,7 @@ commit c335fd7986fe360ab8e1c032c9b988d0d30511eb Author: Behdad Esfahbod Date: Thu Feb 25 09:16:05 2016 +0900 - In trampoline implementation of get_glyph(), don't destroy user - data twice! + In trampoline implementation of get_glyph(), don't destroy user data twice! src/hb-font.cc | 41 +++++++++++++++++++++++++++-------------- 1 file changed, 27 insertions(+), 14 deletions(-) @@ -50255,8 +49492,7 @@ Date: Wed Feb 24 20:27:13 2016 +0900 [ot-font] Accelerate cmap format4 get_glyph - src/hb-ot-cmap-table.hh | 111 - ++++++++++++++++++++++++++++-------------------- + src/hb-ot-cmap-table.hh | 111 ++++++++++++++++++++++++++++-------------------- src/hb-ot-font.cc | 14 +++++- 2 files changed, 77 insertions(+), 48 deletions(-) @@ -50284,7 +49520,7 @@ Author: Behdad Esfahbod Date: Wed Feb 24 19:10:06 2016 +0900 [TODO] Update - + This file is rather obsolete. Still, give it a refresh. TODO | 16 ++-------------- @@ -50294,9 +49530,8 @@ commit 8b5bc141cd3a6bfcea3c91a882a630426876ceb3 Author: Behdad Esfahbod Date: Wed Feb 24 19:05:23 2016 +0900 - Add get_nominal_glyph() and get_variation_glyph() instead of - get_glyph() - + Add get_nominal_glyph() and get_variation_glyph() instead of get_glyph() + New API: - hb_font_get_nominal_glyph_func_t - hb_font_get_variation_glyph_func_t @@ -50304,11 +49539,11 @@ Date: Wed Feb 24 19:05:23 2016 +0900 - hb_font_funcs_set_variation_glyph_func() - hb_font_get_nominal_glyph() - hb_font_get_variation_glyph() - + Deprecated API: - hb_font_get_glyph_func_t - hb_font_funcs_set_glyph_func() - + Clients that implement their own font-funcs are encouraged to replace their get_glyph() implementation with a get_nominal_glyph() and get_variation_glyph() pair. The variation version can assume that @@ -50317,8 +49552,7 @@ Date: Wed Feb 24 19:05:23 2016 +0900 src/hb-deprecated.h | 10 ++ src/hb-fallback-shape.cc | 4 +- src/hb-font-private.hh | 26 +++-- - src/hb-font.cc | 203 - ++++++++++++++++++++++++++++++++++--- + src/hb-font.cc | 203 ++++++++++++++++++++++++++++++++++--- src/hb-font.h | 55 +++++++--- src/hb-ft.cc | 38 ++++--- src/hb-ot-font.cc | 57 +++++++---- @@ -50345,7 +49579,7 @@ Author: Behdad Esfahbod Date: Wed Feb 24 16:06:40 2016 +0900 Fix recent test - + Not sure why the FT functions were returning advance 1024. This caused failure on drone.io. Switch to hb-ot-font and disable glyph names. @@ -50367,19 +49601,18 @@ Author: Behdad Esfahbod Date: Wed Feb 24 15:53:40 2016 +0900 Partially revert 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2 - + That commit moved the advance adjustment for mark positioning to be applied immediately, instead of doing late before. This breaks if mark advances are zeroed late, like in Arabic. Also, easier to hit it in RTL scripts since a single mark with non-zero advance is enough to hit the bug, whereas in LTR, at least two marks are needed. - + This reopens https://github.com/behdad/harfbuzz/issues/211 The cursive+mark interaction is broken again. To be fixed in a different way. - src/hb-ot-layout-gpos-table.hh | 28 - ++++++++++++---------------- + src/hb-ot-layout-gpos-table.hh | 28 ++++++++++++---------------- test/shaping/tests/cursive-positioning.tests | 2 +- 2 files changed, 13 insertions(+), 17 deletions(-) @@ -50388,12 +49621,11 @@ Author: Behdad Esfahbod Date: Wed Feb 24 15:52:37 2016 +0900 Add test for mark positioning in rtl with non-zero mark advance - + Apparently I broke this 86c68c7a2c971efe8e35b1f1bd99401dc8b688d2. Fix coming. - .../sha1sum/07f054357ff8638bac3711b422a1e31180bba863.ttf | Bin 0 -> - 848 bytes + .../sha1sum/07f054357ff8638bac3711b422a1e31180bba863.ttf | Bin 0 -> 848 bytes test/shaping/tests/cursive-positioning.tests | 1 + 2 files changed, 1 insertion(+) @@ -50449,12 +49681,11 @@ Author: Behdad Esfahbod Date: Tue Feb 23 13:45:38 2016 +0900 Remove MANIFEST files - + They are unused currently. We can add later if we hook them up to anything useful. - test/shaping/fonts/sha1sum/MANIFEST | 52 - ---------------------- + test/shaping/fonts/sha1sum/MANIFEST | 52 ---------------------- test/shaping/tests/MANIFEST | 19 -------- test/shaping/texts/MANIFEST | 1 - test/shaping/texts/in-tree/MANIFEST | 9 ---- @@ -50587,14 +49818,12 @@ Author: Behdad Esfahbod Date: Mon Feb 22 18:22:44 2016 +0900 In cluster-level=0, group ZWJ/ZWNJ with previous cluster - + This better emulates Unicode grapheme clusters. - - Note that Uniscribe does NOT do this, but should be harmless with - most clients, - and improve fallback with clients that use HarfBuzz cluster as unit - of fallback. - + + Note that Uniscribe does NOT do this, but should be harmless with most clients, + and improve fallback with clients that use HarfBuzz cluster as unit of fallback. + Fixes https://github.com/behdad/harfbuzz/issues/217 src/hb-ot-layout-private.hh | 6 ++++++ @@ -50619,8 +49848,7 @@ Date: Mon Feb 22 15:56:29 2016 +0900 [coretext] Move CTFont construction to face_data - src/hb-coretext.cc | 66 - +++++++++++++++++++++++++----------------------------- + src/hb-coretext.cc | 66 +++++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 36 deletions(-) commit ba3d49d9a56932d341bf1916a30f322be665e3a6 @@ -50629,8 +49857,7 @@ Date: Mon Feb 22 15:50:12 2016 +0900 [coretext] Move code around - src/hb-coretext.cc | 70 - +++++++++++++++++++++++++++++++----------------------- + src/hb-coretext.cc | 70 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 30 deletions(-) commit 90194efb8480d58c55b7a19962624c7aadbdca63 @@ -50691,8 +49918,7 @@ Date: Mon Feb 22 15:28:37 2016 +0900 [coretext] Move code around - src/hb-coretext.cc | 109 - ++++++++++++++++++++++++++++++----------------------- + src/hb-coretext.cc | 109 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 47 deletions(-) commit 04c64431530a4a6d9ebd33674c4665a8e6d25bdd @@ -50719,7 +49945,7 @@ Author: Behdad Esfahbod Date: Mon Feb 22 14:59:39 2016 +0900 [coretext] Fix shaping with varying font size - + Fixes https://github.com/libass/libass/issues/212 src/hb-coretext.cc | 8 ++++---- @@ -50740,14 +49966,12 @@ Author: Behdad Esfahbod Date: Fri Feb 19 15:13:07 2016 +0700 [fuzzing] Add test for recent fix - + Test from https://github.com/behdad/harfbuzz/issues/223 + + I forgot that we do run hb-fuzzer on tests in shaping/tests/fuzzed.tests. - I forgot that we do run hb-fuzzer on tests in - shaping/tests/fuzzed.tests. - - .../sha1sum/205edd09bd3d141cc9580f650109556cc28b22cb.ttf | Bin 0 -> - 1966 bytes + .../sha1sum/205edd09bd3d141cc9580f650109556cc28b22cb.ttf | Bin 0 -> 1966 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 2 insertions(+) @@ -50775,13 +49999,11 @@ Author: Behdad Esfahbod Date: Fri Feb 19 14:52:31 2016 +0700 Avoid buffer->move_to() in case of buffer error - + Fixes https://github.com/behdad/harfbuzz/issues/223 - - Right now we cannot test this because it has to be tested using - hb-fuzzer. - We should move all fuzzing tests from test/shaping/tests/fuzzed.tests - to + + Right now we cannot test this because it has to be tested using hb-fuzzer. + We should move all fuzzing tests from test/shaping/tests/fuzzed.tests to test/fuzzing/ and have its own test runner. At that point, should add test from this issue as well. @@ -50794,7 +50016,7 @@ Author: Behdad Esfahbod Date: Fri Feb 19 14:43:39 2016 +0700 [fuzzing] Make "make hb-fuzzer" build lib dependency - + Not going to do with util/, but is convenient here. test/fuzzing/Makefile.am | 3 +++ @@ -50805,7 +50027,7 @@ Author: Behdad Esfahbod Date: Thu Feb 18 19:31:51 2016 +0700 Remove pointless overflow check in pointer math - + Fixes https://github.com/behdad/harfbuzz/issues/227 src/hb-blob.cc | 1 - @@ -50816,7 +50038,7 @@ Author: Behdad Esfahbod Date: Thu Feb 18 17:06:25 2016 +0700 Emoji skin tone modifiers need to be treated as combining marks - + Fixes https://github.com/behdad/harfbuzz/issues/169 src/hb-ot-layout-private.hh | 15 ++++++++++++++- @@ -50828,16 +50050,14 @@ Author: Behdad Esfahbod Date: Tue Feb 16 17:16:33 2016 +0700 [USE] Zero mark advances by GDEF early - + This is what Microsoft's implementation does. Marks that need advance - need to add it back using 'dist' or other feature in GPOS. - Update tests to + need to add it back using 'dist' or other feature in GPOS. Update tests to match. src/hb-ot-shape-complex-use.cc | 2 +- test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf | Bin 0 -> - 1356 bytes + .../sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf | Bin 0 -> 1356 bytes test/shaping/tests/context-matching.tests | 2 +- test/shaping/tests/use.tests | 2 ++ 5 files changed, 5 insertions(+), 2 deletions(-) @@ -50847,57 +50067,52 @@ Author: Behdad Esfahbod Date: Tue Feb 16 16:07:20 2016 +0700 [GPOS] Fix interaction of mark attachments and cursive chaining - + Fixes https://github.com/behdad/harfbuzz/issues/211 - + What happens in that bug is that a mark is attached to base first, then a second mark is cursive-chained to the first mark. This only "works" because it's in the Indic shaper where mark advances are not zeroed. - + Before, we didn't allow cursive to run on marks at all. Fix that. We also where updating mark major offsets at the end of GPOS, such that changes in advance of base will not change the mark attachment - position. That was superior to the alternative (which is what - Uniscribe + position. That was superior to the alternative (which is what Uniscribe does BTW), but made it hard to apply cursive to the mark after it was positioned. We could track major-direction offset changes and apply that to cursive in the post process, but that's a much trickier thing to do than the fix here, which is to immediately apply the major-direction advance-width offsets... Ie.: - + https://github.com/behdad/harfbuzz/issues/211#issuecomment-183194739 - - If this breaks any fonts, the font should be fixed to do mark - attachment + + If this breaks any fonts, the font should be fixed to do mark attachment after all the advances are set up first (kerning, etc). - + Finally, this, still doesn't make us match Uniscribe, for I explained in that bug. Looks like Uniscribe applies minor-direction cursive adjustment immediate as well. We don't, and we like it our way, at least for now. Eg. the sequence in the test case does this: - + - The first subscript attaches with mark-to-base, moving in x only, - - The second subscript attaches with cursive attachment to first - subscript + - The second subscript attaches with cursive attachment to first subscript moving in x only, - A final context rule moves the first subscript up by 104 units. - + The way we do, the final shift-up, also shifts up the second subscript mark because it's cursively-attached. Uniscribe doesn't. We get: - + [ttaorya=0+1307|casubscriptorya=0@-242,104+-231|casubscriptnarroworya=0@20,104+507] - + while Uniscribe gets: - + [ttaorya=0+1307|casubscriptorya=0@-242,104+-211|casubscriptnarroworya=0+487] - - note the different y-offset of the last glyph. In our view, - after cursive, + + note the different y-offset of the last glyph. In our view, after cursive, things move together, period. - src/hb-ot-layout-gpos-table.hh | 31 - +++++++++++---------- + src/hb-ot-layout-gpos-table.hh | 31 +++++++++++---------- .../706c5d7b625f207bc0d874c67237aad6f1e9cd6f.ttf | Bin 0 -> 3868 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/cursive-positioning.tests | 1 + @@ -50917,7 +50132,7 @@ Author: Behdad Esfahbod Date: Thu Feb 11 16:57:52 2016 +0700 [GPOS] Minor - + No effect. src/hb-ot-layout-gpos-table.hh | 8 ++++---- @@ -50928,21 +50143,19 @@ Author: Behdad Esfahbod Date: Thu Feb 11 16:48:13 2016 +0700 [GPOS] Merge fixing of offsets for cursive and mark attachments - + Part of fixing https://github.com/behdad/harfbuzz/issues/211 src/hb-buffer-private.hh | 3 +- - src/hb-ot-layout-gpos-table.hh | 73 - ++++++++++++++++++------------------------ + src/hb-ot-layout-gpos-table.hh | 73 ++++++++++++++++++------------------------ 2 files changed, 33 insertions(+), 43 deletions(-) commit 7d8d58ac81fe267e29ea68cdc6f4a4fa8c22d40f Author: Behdad Esfahbod Date: Thu Feb 11 16:34:28 2016 +0700 - [GPOS] Divide position_finish() into two phases, for advances - and offsets - + [GPOS] Divide position_finish() into two phases, for advances and offsets + Right now the position_finish_advances() is empty. To be used for spacing attachments proposal later. @@ -50968,7 +50181,7 @@ Author: Behdad Esfahbod Date: Thu Feb 11 15:28:55 2016 +0700 [GPOS] Add harmless recursion in fix_mark_attachment() - + Will do nothing. Just useful for merging two functions. src/hb-ot-layout-gpos-table.hh | 2 ++ @@ -50979,11 +50192,10 @@ Author: Behdad Esfahbod Date: Thu Feb 11 15:25:28 2016 +0700 [GPOS] Merge attach_chain() and cursive_chain() - + Differentiate, using new attach_type(). - src/hb-ot-layout-gpos-table.hh | 50 - +++++++++++++++++++++++++++--------------- + src/hb-ot-layout-gpos-table.hh | 50 +++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 18 deletions(-) commit 806ad8dc65931ab7893bff7d5592a67a9bd237ca @@ -50999,11 +50211,9 @@ commit 0f6278d1fbb75856132f1fa2d29648979f033316 Author: Behdad Esfahbod Date: Thu Feb 11 14:49:10 2016 +0700 - [GPOS] Negate sign of attach_lookback(), and rename it to - attach_chain() - - No behavior change. Preparing to unify how cursive and mark - attachments + [GPOS] Negate sign of attach_lookback(), and rename it to attach_chain() + + No behavior change. Preparing to unify how cursive and mark attachments work. src/hb-ot-layout-gpos-table.hh | 17 +++++++++-------- @@ -51013,12 +50223,10 @@ commit 5b5dc2c0406d8180e72d97a54334c722fda325b1 Author: Behdad Esfahbod Date: Thu Feb 11 12:15:38 2016 +0700 - [tests] Add test for advance zeroing of an ASCII letter marked as - mark in GDEF + [tests] Add test for advance zeroing of an ASCII letter marked as mark in GDEF test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf | Bin 0 -> - 1016 bytes + .../sha1sum/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf | Bin 0 -> 1016 bytes test/shaping/tests/zero-width-marks.tests | 1 + 3 files changed, 2 insertions(+) @@ -51027,7 +50235,7 @@ Author: Behdad Esfahbod Date: Thu Feb 11 12:14:27 2016 +0700 Remove font-dependent ASCII-only perf hack - + Is confusing. I already hit it myself. Remove. We can optimize ASCII based on Unicode properties. But should not do based on assumptions on the font. @@ -51050,21 +50258,15 @@ Author: Behdad Esfahbod Date: Wed Feb 10 18:39:59 2016 +0700 [tests] Fix fonts in cc4a78bf22c4a735b84c89b04be3bb531f42135e - + They had an invalid LookupFlag (32). - .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 1412 -> - 0 bytes - .../sha1sum/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf | Bin 0 -> - 1412 bytes - .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 1448 -> - 0 bytes - .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 1448 -> - 0 bytes - .../sha1sum/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf | Bin 0 -> - 1448 bytes - .../sha1sum/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf | Bin 0 -> - 1448 bytes + .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 1412 -> 0 bytes + .../sha1sum/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf | Bin 0 -> 1412 bytes + .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 1448 -> 0 bytes + .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 1448 -> 0 bytes + .../sha1sum/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf | Bin 0 -> 1448 bytes + .../sha1sum/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf | Bin 0 -> 1448 bytes 6 files changed, 0 insertions(+), 0 deletions(-) commit eaadcbbc53e02838c847e53ef214a55d6915d677 @@ -51083,15 +50285,11 @@ Date: Wed Feb 10 18:24:08 2016 +0700 [tests] Add tests for Latin mark zeroing - .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 0 -> - 1412 bytes - .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 0 -> - 1448 bytes - .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 0 -> - 1448 bytes + .../sha1sum/0dd3a51c3ea50997cb1f72515d1060408f8b4b59.ttf | Bin 0 -> 1412 bytes + .../sha1sum/828114d00931885bc25abf7cdb878b2914a2e743.ttf | Bin 0 -> 1448 bytes + .../sha1sum/894e96a367f00c196d82e6243673a1d4414f4f6a.ttf | Bin 0 -> 1448 bytes test/shaping/fonts/sha1sum/MANIFEST | 4 ++++ - .../sha1sum/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf | Bin 0 -> - 1344 bytes + .../sha1sum/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf | Bin 0 -> 1344 bytes test/shaping/tests/zero-width-marks.tests | 4 ++++ 6 files changed, 8 insertions(+) @@ -51101,15 +50299,11 @@ Date: Wed Feb 10 18:20:02 2016 +0700 [tests] Add tests for Thai mark zeroing - .../sha1sum/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf | Bin 0 -> - 1088 bytes - .../sha1sum/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf | Bin 0 -> - 1080 bytes - .../sha1sum/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf | Bin 0 -> - 1024 bytes + .../sha1sum/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf | Bin 0 -> 1088 bytes + .../sha1sum/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf | Bin 0 -> 1080 bytes + .../sha1sum/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf | Bin 0 -> 1024 bytes test/shaping/fonts/sha1sum/MANIFEST | 4 ++++ - .../sha1sum/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf | Bin 0 -> - 976 bytes + .../sha1sum/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf | Bin 0 -> 976 bytes test/shaping/tests/zero-width-marks.tests | 4 ++++ 6 files changed, 8 insertions(+) @@ -51118,7 +50312,7 @@ Author: Behdad Esfahbod Date: Wed Feb 10 18:10:15 2016 +0700 Change default mark advance zeroing behavior from Unicode to GDEF - + See thread at: https://lists.freedesktop.org/archives/harfbuzz/2016-February/005462.html @@ -51142,7 +50336,7 @@ Author: Behdad Esfahbod Date: Wed Feb 10 11:11:36 2016 +0700 Merge pull request #164 from fanc999/msvc.build - + Enable Build of HarfBuzz under Visual Studio using NMake Makefiles commit a168db4739148459bc33c7dae88e73efa0153d72 @@ -51159,16 +50353,12 @@ Author: Chun-wei Fan Date: Wed Dec 9 14:57:15 2015 +0800 MSVC builds: Add support to build DirectWrite shaping backend - + Add into the NMake Makefiles to build the DirectWrite shaping backend, - but as PR #134 mentions, this is considered to be in an experimental - state, - so don't include this in the build by default for now. This is - most probably - going to replace the Uniscribe backend eventually, since DirectWrite - is meant - to be Uniscribe's replacement, and is needed for Windows Store apps - if a + but as PR #134 mentions, this is considered to be in an experimental state, + so don't include this in the build by default for now. This is most probably + going to replace the Uniscribe backend eventually, since DirectWrite is meant + to be Uniscribe's replacement, and is needed for Windows Store apps if a system shaping API is to be used. win32/README.txt | 4 ++++ @@ -51182,7 +50372,7 @@ Author: Chun-wei Fan Date: Wed Feb 3 18:31:23 2016 +0800 build: Build the DirectWrite sources if requested - + This adds to the autotools build system so that the (experimental) DirectWrite support for HarfBuzz is built (and dist'ed). @@ -51196,32 +50386,23 @@ Author: Chun-wei Fan Date: Tue Nov 3 19:00:42 2015 +0800 build: Support Visual Studio builds using NMake - - This adds a set of NMake Makefiles that can be used to build - HarfBuzz, from + + This adds a set of NMake Makefiles that can be used to build HarfBuzz, from the standard basic build building the minimal HarfBuzz DLL (consisting - of OpenType, fallback and Uniscribe support only), to a full - fledged build - consisting of GLib and FreeType support, as well as building the - utilities, + of OpenType, fallback and Uniscribe support only), to a full fledged build + consisting of GLib and FreeType support, as well as building the utilities, the test programs in src/ and test/api, and HarfBuzz-ICU and - HarfBuzz-GObject, and up to building the introspection files. - This means a - flexible build mechanism is supported here, so anything that is - supported + HarfBuzz-GObject, and up to building the introspection files. This means a + flexible build mechanism is supported here, so anything that is supported for a Windows build (code-wise), should all be supported by this build system. - - As in an earlier commit, the source listings are shared with the - autotools - builds with the various Makefile.sources in src/, src/hb-ucdn and - util/, and - this set of NMake Makefiles will transform these lists into the - form they + + As in an earlier commit, the source listings are shared with the autotools + builds with the various Makefile.sources in src/, src/hb-ucdn and util/, and + this set of NMake Makefiles will transform these lists into the form they want. - - In the current form, all the test programs in test/api pass, and - this has + + In the current form, all the test programs in test/api pass, and this has been checked successfully with 'make -j8 distcheck'. BUILD.md | 4 +- @@ -51231,8 +50412,7 @@ Date: Tue Nov 3 19:00:42 2015 +0800 win32/Makefile.vc | 52 +++++++++++ win32/README.txt | 75 ++++++++++++++++ win32/build-rules-msvc.mak | 140 ++++++++++++++++++++++++++++++ - win32/config-msvc.mak | 188 - ++++++++++++++++++++++++++++++++++++++++ + win32/config-msvc.mak | 188 ++++++++++++++++++++++++++++++++++++++++ win32/create-lists-msvc.mak | 151 ++++++++++++++++++++++++++++++++ win32/create-lists.bat | 42 +++++++++ win32/detectenv-msvc.mak | 136 +++++++++++++++++++++++++++++ @@ -51248,21 +50428,17 @@ Author: Chun-wei Fan Date: Tue Nov 3 18:52:46 2015 +0800 MSVC builds: Add a pre-configured config.h(.win32) template - - This adds a pre-configured config.h template that can be used - for Visual - Studio builds, where autotools is not normally available. This has - the + + This adds a pre-configured config.h template that can be used for Visual + Studio builds, where autotools is not normally available. This has the configs that are suitable for Visual Studio builds, as well as all the features used for Windows builds enabled (HAVE_OT, HAVE_FALLBACK and HAVE_UNISCRIBE). - - Note that the optional features are not enabled here, they are - enabled by + + Note that the optional features are not enabled here, they are enabled by /D's (or -D's) in the NMake Makefiles as requested. - win32/config.h.win32.in | 155 - ++++++++++++++++++++++++++++++++++++++++++++++++ + win32/config.h.win32.in | 155 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) commit 35ded3af74a5bc4b038a07308354d5f7501ae3c7 @@ -51270,14 +50446,13 @@ Author: Chun-wei Fan Date: Tue Nov 3 16:56:27 2015 +0800 build: Move source listings into separate Makefile snippets - + This moves all the source listings in src/Makefile.am, src/hb-ucdn/Makefile.am and util/Makefile.am into separate Makefile snippets, so that they may be shared between different Makefile-based build systems, such as NMake for Visual Studio. - src/Makefile.am | 165 - +++++++++---------------------------------- + src/Makefile.am | 165 +++++++++---------------------------------- src/Makefile.sources | 147 ++++++++++++++++++++++++++++++++++++++ src/hb-ucdn/Makefile.am | 6 +- src/hb-ucdn/Makefile.sources | 4 ++ @@ -51290,7 +50465,7 @@ Author: Behdad Esfahbod Date: Tue Feb 2 16:39:19 2016 +0800 Fix more hangs in case of buffer allocation errors - + Hopefully fixes https://github.com/behdad/harfbuzz/issues/214 @@ -51305,7 +50480,7 @@ Author: Behdad Esfahbod Date: Tue Feb 2 12:33:32 2016 +0800 Merge pull request #222 from n8willis/master - + Add usermanual chapter on cluster levels commit 498574e6c1a83bbd2768925af6e39806fe1ea8bb @@ -51324,8 +50499,7 @@ Date: Thu Jan 28 12:14:12 2016 -0600 Added initial usermanual chapter on cluster levels. docs/harfbuzz-docs.xml | 1 + - docs/usermanual-clusters.xml | 304 - +++++++++++++++++++++++++++++++++++++++++++ + docs/usermanual-clusters.xml | 304 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 305 insertions(+) commit 9a6a33ccbea8a2e23e779bd955958fa41974c1c7 @@ -51334,7 +50508,7 @@ Author: Behdad Esfahbod Date: Mon Jan 18 12:47:18 2016 +0100 Merge pull request #216 from mhosken/master - + Refactor graphite2 to make ovleraps into negative width spaces commit 146fe252c3ebd0253344ce20981554e40926497b @@ -51343,8 +50517,7 @@ Date: Sat Jan 16 17:24:00 2016 -0600 Refactor graphite2 to make ovleraps into negative width spaces - src/hb-graphite2.cc | 71 - ++++++++++++++++++++++++++++++++--------------------- + src/hb-graphite2.cc | 71 ++++++++++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 28 deletions(-) commit d05b783322d90208b2ddf06a5ebffc7c301be3d7 @@ -51352,7 +50525,7 @@ Author: Behdad Esfahbod Date: Tue Jan 12 16:17:21 2016 +0000 Fix compiler warning - + Fixes https://github.com/behdad/harfbuzz/issues/212 src/hb-ot-tag.cc | 2 +- @@ -51372,9 +50545,9 @@ Author: Behdad Esfahbod Date: Mon Jan 11 18:31:04 2016 +0000 [fuzzing] Fuzz input text - + Very rudimentary right now, but will get kcc's bot going. - + From https://github.com/behdad/harfbuzz/issues/139#issuecomment-163580783 @@ -51386,22 +50559,21 @@ Author: Behdad Esfahbod Date: Mon Jan 11 17:38:41 2016 +0000 [OT] Get list of lookup subtables once and loop through them - + This speeds up shaping the Amiri font by over 15%. - + This was primarily needed for my work on OpenType GX, since we will be collecting only sublookups that are "active" for current font instance; but it's a nice boost in general as well. - + We might, in the future, collect subtables in the lookup_accel. That would also allow us to do a per-subtbale set-digest, which should speed things up some more, specially for ContextChainFormat3 lookups... Amiri, for example, contains one lookup with 53 subtables! - src/hb-ot-layout.cc | 120 - +++++++++++++++++++++++++++++++++++----------------- + src/hb-ot-layout.cc | 120 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 81 insertions(+), 39 deletions(-) commit 11441291bbf4326dca9b14ec3e9cad3d4d229303 @@ -51428,7 +50600,7 @@ Author: Behdad Esfahbod Date: Mon Jan 11 12:28:37 2016 +0000 [coretext] Speed up CoreText font fallback - + Fixes https://code.google.com/p/chromium/issues/detail?id=547912 src/hb-coretext.cc | 45 ++++++++++++++++++++++++++++++++++++++++----- @@ -51457,7 +50629,7 @@ Author: Behdad Esfahbod Date: Thu Jan 7 19:11:41 2016 +0000 Add 9 reserved entries to hb_font_extents_t - + Might add italic-angle, underline/strikethrough-position/thickness in the future. Do this before new struct goes into a release. @@ -51469,7 +50641,7 @@ Author: Behdad Esfahbod Date: Wed Jan 6 12:29:50 2016 +0000 [uniscribe] Fix negative advance - + This happens with at least one test font I have. src/hb-uniscribe.cc | 2 +- @@ -51494,7 +50666,7 @@ Author: Behdad Esfahbod Date: Tue Jan 5 13:26:20 2016 +0000 Increase sanitize edit count from 8 to 32 - + See previous commit. src/hb-open-type-private.hh | 2 +- @@ -51505,14 +50677,14 @@ Author: Behdad Esfahbod Date: Tue Jan 5 13:23:45 2016 +0000 Don't count fixing-up FeatureParams offset as error - + The font Garamond Premier Pro Caption (and possibly many other Adobe fonts), have many FeatureParamsSize tables with the old wrong offset. We handle fixing those up, but they were still contributing to edit_count, and when I reduced HB_SANITIZE_MAX_EDIT from 100 to 8 in 14c2de321826c36037adde859ccca3e2011325a9, these fonts were now getting GPOS dropped and hence kerning disabled. - + Fix, by not counting edits made towareds offset fix-up. I'll also increase edit count again, in the next commit. @@ -51534,7 +50706,7 @@ Author: Behdad Esfahbod Date: Sat Jan 2 00:59:14 2016 +0000 Merge pull request #208 from khaledhosny/travis-trusty - + [travis] Try building on Trusty commit 4b4948d360a2141e0ffda2994aa308645dc32f59 @@ -51542,7 +50714,7 @@ Author: Khaled Hosny Date: Sat Jan 2 00:36:19 2016 +0400 [travis] Try building on Trusty - + Trusty has gtk-doc 1.20 which has better markdown support which should fix some of the brokenness in the newly added documentation. The build seems to be as fast as the current container-based build on Precise. @@ -51555,7 +50727,7 @@ Author: Behdad Esfahbod Date: Fri Jan 1 19:06:43 2016 +0000 [travis] Only run coveralls if testing behdad/harfbuzz - + Fixes failures in others' forks, like: https://travis-ci.org/khaledhosny/harfbuzz/jobs/99719710#L3912 @@ -51568,7 +50740,7 @@ Author: Behdad Esfahbod Date: Fri Jan 1 16:44:01 2016 +0000 Merge pull request #207 from khaledhosny/docs-4 - + [docs] More buffers documentation commit 9ab9f974d42e0001966e243a23a64e6aefbd4764 @@ -51578,10 +50750,8 @@ Date: Fri Jan 1 20:38:21 2016 +0400 [docs] More buffers documentation docs/harfbuzz-sections.txt | 4 +- - src/hb-buffer-serialize.cc | 85 - ++++++++++++++++++++++++++++++------------- - src/hb-buffer.cc | 91 - +++++++++++++++++++++++++++++++++++----------- + src/hb-buffer-serialize.cc | 85 ++++++++++++++++++++++++++++++------------- + src/hb-buffer.cc | 91 +++++++++++++++++++++++++++++++++++----------- src/hb-buffer.h | 78 +++++++++++++++++++++++++-------------- src/hb-shape.cc | 10 +++-- 5 files changed, 187 insertions(+), 81 deletions(-) @@ -51592,7 +50762,7 @@ Author: Behdad Esfahbod Date: Wed Dec 30 22:20:14 2015 +0100 Merge pull request #205 from khaledhosny/more-docs - + More docs commit d7ed6f50b4ff13a94701131913d931f13a4d1266 @@ -51601,7 +50771,7 @@ Author: Behdad Esfahbod Date: Wed Dec 30 22:20:00 2015 +0100 Merge pull request #206 from nico/patch-3 - + Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines. commit a7f0e25dafa90bd21b01c38cb0782ade54b75cdc @@ -51609,12 +50779,8 @@ Author: Nico Weber Date: Wed Dec 30 16:05:52 2015 -0500 Remove unused HB_SHAPER_DATA_ENSURE_DECLARE lines. - - The coretext_aat shaper delegates to the regular coretext_..._ensure() - functions, so coretext_aat_..._ensure() functions defined by these - macros are unused. The compiler warns about them, which in turn can - confuse people to think that the coretext_aat_..._ensure() functions - weren't called by accident. + + The coretext_aat shaper delegates to the regular coretext_..._ensure() functions, so coretext_aat_..._ensure() functions defined by these macros are unused. The compiler warns about them, which in turn can confuse people to think that the coretext_aat_..._ensure() functions weren't called by accident. src/hb-coretext.cc | 4 ---- 1 file changed, 4 deletions(-) @@ -51624,13 +50790,11 @@ Author: Khaled Hosny Date: Wed Dec 30 22:57:04 2015 +0400 [docs] Reduce gtkdoc-check errors - - Now it is just reporting one error about “503 undocumented or - incomplete + + Now it is just reporting one error about “503 undocumented or incomplete symbols”, that will be the easy part I guess. - docs/harfbuzz-docs.xml | 74 - ++++++++++++++++++++++++++++++++++++++++++++++ + docs/harfbuzz-docs.xml | 74 ++++++++++++++++++++++++++++++++++++++++++++++ docs/harfbuzz-sections.txt | 40 +++++++++++++++++++++++++ 2 files changed, 114 insertions(+) @@ -51649,7 +50813,7 @@ Author: Behdad Esfahbod Date: Wed Dec 30 16:44:19 2015 +0100 Merge pull request #203 from nico/patch-1 - + Remove unused `retry:` label. commit 266bfa3772e75fedcd93db22bf8672a13ad7a7d9 @@ -51694,7 +50858,7 @@ Author: Behdad Esfahbod Date: Wed Dec 30 15:45:43 2015 +0100 [docs] Shuffling code around in deploy-docs.sh - + Temporarily makes it rebuild docs on every change again. .ci/deploy-docs.sh | 46 +++++++++++++++++++++++++++------------------- @@ -51706,7 +50870,7 @@ Author: Behdad Esfahbod Date: Wed Dec 30 15:13:37 2015 +0100 Merge pull request #202 from khaledhosny/doc-fixes - + Doc fixes commit fb192c263e17081c87f4cc971274d9be42f19513 @@ -51717,8 +50881,7 @@ Date: Wed Dec 30 15:05:50 2015 +0400 docs/harfbuzz-sections.txt | 2 ++ src/hb-buffer.cc | 7 +++--- - src/hb-buffer.h | 56 - ++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-buffer.h | 56 ++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 60 insertions(+), 5 deletions(-) commit 8ab797c5b86c33eab6ee024471fd3c147325d26a @@ -51728,8 +50891,7 @@ Date: Tue Dec 29 17:42:16 2015 +0400 [docs] A bit more buffers documentation docs/harfbuzz-sections.txt | 60 +++++++++++++++--------------- - src/hb-buffer.cc | 93 - +++++++++++++++++++++++++++++++--------------- + src/hb-buffer.cc | 93 +++++++++++++++++++++++++++++++--------------- src/hb-buffer.h | 7 +++- src/hb-common.cc | 43 +++++++++++++-------- src/hb-common.h | 15 +++++--- @@ -51740,12 +50902,11 @@ Author: Khaled Hosny Date: Tue Dec 29 15:21:20 2015 +0400 [docs] Some documentation on buffers - + Some of it (create, reference, destroy) are adapted from Cairo docs. docs/harfbuzz-sections.txt | 55 +++++++------- - src/hb-buffer.cc | 174 - +++++++++++++++++++++++++++------------------ + src/hb-buffer.cc | 174 +++++++++++++++++++++++++++------------------ 2 files changed, 132 insertions(+), 97 deletions(-) commit d7bf9d05c519a369a7b3a02e9ed5ecc05a20cd3e @@ -51753,7 +50914,7 @@ Author: Khaled Hosny Date: Tue Dec 29 02:23:24 2015 +0400 [docs] Fix comment syntax - + To lower the number of gtk-doc warnings. .travis.yml | 2 +- @@ -51767,9 +50928,8 @@ Author: Nico Weber Date: Mon Dec 28 21:31:28 2015 -0500 Remove unused `retry:` label. - - Fixes a -Wunused-label warning when building harfbuzz with clang - -Wall. + + Fixes a -Wunused-label warning when building harfbuzz with clang -Wall. src/hb-coretext.cc | 1 - 1 file changed, 1 deletion(-) @@ -51779,7 +50939,7 @@ Author: Khaled Hosny Date: Tue Dec 29 02:15:21 2015 +0400 [docs] Ignore the new HB_EXTERN decoration - + Otherwise, almost all API functions are not extracted. docs/Makefile.am | 3 ++- @@ -51799,7 +50959,7 @@ Author: Khaled Hosny Date: Sat Dec 26 06:35:08 2015 +0400 [travis] Build docs only on tagged revisions - + Lets see if it works… .ci/deploy-docs.sh | 4 +++- @@ -51810,9 +50970,8 @@ Author: Behdad Esfahbod Date: Fri Dec 25 18:41:41 2015 +0100 [travis] Remove secure var - - I've set up a secure var for behdad/harfbuzz through Travis web - interface, no need + + I've set up a secure var for behdad/harfbuzz through Travis web interface, no need to set the var here. .ci/deploy-docs.sh | 2 +- @@ -51825,7 +50984,7 @@ Author: Behdad Esfahbod Date: Fri Dec 25 18:21:08 2015 +0100 Merge pull request #199 from behdad/travis-docs - + Deploy docs to gh-pages branch from Travis builds commit 6173c2a6fc6ea0bf812f7f398770b5342974f9bf @@ -51833,18 +50992,15 @@ Author: Behdad Esfahbod Date: Fri Dec 25 18:18:23 2015 +0100 Fix flaky test - - This test font had a upem of 769, which results in rounding-related - errors with + + This test font had a upem of 769, which results in rounding-related errors with the FreeType font funcs. Change the upem to 1024 to fix that. - + Fixes https://github.com/behdad/harfbuzz/issues/201 - ...> 1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf} | Bin 4064 -> - 4064 bytes + ...> 1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf} | Bin 4064 -> 4064 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 +- - test/shaping/tests/ligature-id.tests | 70 - ++++++++++----------- + test/shaping/tests/ligature-id.tests | 70 ++++++++++----------- 3 files changed, 36 insertions(+), 36 deletions(-) commit 3fcae6d82da389c9944386a8ab41eb1c13b99330 @@ -51864,8 +51020,7 @@ Date: Wed Dec 23 01:29:48 2015 +0400 docs/Makefile.am | 1 + docs/harfbuzz-docs.xml | 15 ++++---- - docs/usermanual-install-harfbuzz.xml | 70 - ++++++++++++++++++++++++++++++++++++ + docs/usermanual-install-harfbuzz.xml | 70 ++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 6 deletions(-) commit 493a92220844c8996be67c8a7a2c5447942fe2c1 @@ -51873,14 +51028,12 @@ Author: Khaled Hosny Date: Wed Dec 23 00:33:41 2015 +0400 Rename user manual files - + Use chapter ids instead of numbers, so that we can reorder them, introduce new ones etc. without the numbers becoming out of date. - docs/Makefile.am | 12 - ++++++------ - docs/harfbuzz-docs.xml | 12 - ++++++------ + docs/Makefile.am | 12 ++++++------ + docs/harfbuzz-docs.xml | 12 ++++++------ ... => usermanual-buffers-language-script-and-direction.xml} | 0 docs/{usermanual-ch04.xml => usermanual-fonts-and-faces.xml} | 0 ...{usermanual-ch06.xml => usermanual-glyph-information.xml} | 0 @@ -51905,7 +51058,7 @@ Author: Khaled Hosny Date: Mon Dec 14 23:33:51 2015 +0400 Deploy docs to gh-pages branch from Travis builds - + Build docs in Travis and push them to the gh-pages branch, which makes them available at http://behdad.github.io/harfbuzz/ @@ -51918,7 +51071,7 @@ Author: Behdad Esfahbod Date: Wed Dec 23 14:50:53 2015 +0100 [layout] Collect coverage glyphs in PairPos - + Apparently class=0 is used for ClassDef1. See: https://github.com/adobe-type-tools/afdko/issues/90 @@ -51939,16 +51092,13 @@ Author: Behdad Esfahbod Date: Fri Dec 18 18:17:07 2015 +0000 [buffer] Add debugging, aka, message, API - - Currently just announces lookup applications. Message-API *will* - change. - hb-shape / hb-view are updated to print-out messages to stder - if --debug + + Currently just announces lookup applications. Message-API *will* change. + hb-shape / hb-view are updated to print-out messages to stder if --debug is specified. src/hb-buffer-private.hh | 18 ++++++++++++++++++ - src/hb-buffer.cc | 44 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 15 +++++++++++++++ src/hb-ot-layout.cc | 12 ++---------- util/main-font-text.hh | 18 ++++++++++++++++++ @@ -51968,8 +51118,7 @@ commit 862b1644e9469a7e70555141f53729409d50d0d2 Author: Behdad Esfahbod Date: Fri Dec 18 13:54:06 2015 +0000 - [use] Only set syllable-based topographical features if not - Arabic-joining + [use] Only set syllable-based topographical features if not Arabic-joining src/hb-ot-shape-complex-use.cc | 3 +++ 1 file changed, 3 insertions(+) @@ -51979,18 +51128,17 @@ Author: Behdad Esfahbod Date: Fri Dec 18 13:47:16 2015 +0000 [indic] Followup fix for Malayalam context matching - + We regeressed Malayalam in 508cc3d3cfcfb0383df0fe795cc28db4e0fd5729 This brings down the failures to 198 (from 750). - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed - (0.0188871%) + MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -52005,31 +51153,28 @@ Author: Behdad Esfahbod Date: Fri Dec 18 11:05:11 2015 +0000 [indic] Update data tables to Unicode 8.0 - - Test stats remain unchanged, except for Malayalam, which we - investigate: - + + Test stats remain unchanged, except for Malayalam, which we investigate: + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed - (0.0715421%) + MALAYALAM: 1047584 out of 1048334 tests passed. 750 failed (0.0715421%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - + Myanmar, compared to Windows 10 mmrtext.ttf: - + MYANMAR: 1123865 out of 1123883 tests passed. 18 failed (0.00160159%) src/gen-indic-table.py | 1 + src/hb-ot-shape-complex-indic-private.hh | 40 ++-- - src/hb-ot-shape-complex-indic-table.cc | 372 - ++++++++++++++++++------------- + src/hb-ot-shape-complex-indic-table.cc | 372 ++++++++++++++++++------------- src/hb-ot-shape-complex-indic.cc | 23 +- src/hb-ot-shape-complex-myanmar.cc | 4 + 5 files changed, 244 insertions(+), 196 deletions(-) @@ -52039,7 +51184,7 @@ Author: Behdad Esfahbod Date: Thu Dec 17 17:47:35 2015 +0000 Remove HB_OT_SHAPE_ZERO_WIDTH_MARKS_DEFAULT - + The DEFAULT naming wasn't helpful, so just remove it. src/hb-ot-shape-complex-default.cc | 2 +- @@ -52053,14 +51198,13 @@ Author: Behdad Esfahbod Date: Thu Dec 17 17:31:17 2015 +0000 [indic] Allow context when matching for Malayalam new-spec - + Test sequence: U+0995,U+09CD,U+09B0 - - With Nirmala shipped on Windows 10, this failed to form the below - form. + + With Nirmala shipped on Windows 10, this failed to form the below form. Works now. - + Reported by Sairus. src/hb-ot-shape-complex-indic.cc | 11 +++++++++-- @@ -52071,14 +51215,13 @@ Author: Behdad Esfahbod Date: Thu Dec 17 16:57:47 2015 +0000 [uniscribe] Handle E_NOT_SUFFICIENT_BUFFER as well as E_OUTOFMEMORY - + On Windows 10 we are seeing that other error message... - + Test sequence: U+0995,U+-9CD,U+09B0 - With Nirmala shipped on Windows 10, this failed to form the below - form. + With Nirmala shipped on Windows 10, this failed to form the below form. Works now. - + Reported by Sairus. src/hb-uniscribe.cc | 2 +- @@ -52089,7 +51232,7 @@ Author: Behdad Esfahbod Date: Thu Dec 17 16:28:38 2015 +0000 [util] Use O_BINARY instead of _O_BINARY - + The latter doesn't seem to be available in Cygwin. I'm surprised it compiled before... @@ -52100,9 +51243,8 @@ commit 100fbeaf196515774c985ee839d0fa0695f9a6fa Author: Behdad Esfahbod Date: Thu Dec 17 15:23:09 2015 +0000 - Fix ligature component of a mark happening after a ligature within - a ligature! - + Fix ligature component of a mark happening after a ligature within a ligature! + Say, if we are ligating "A B_C m D", then previously 'm' was being attached to 'B' in the combined A_B_C_D ligature. Now we attach it to 'C'. No test for this though :(. @@ -52115,14 +51257,13 @@ Author: Behdad Esfahbod Date: Thu Dec 17 15:21:14 2015 +0000 Improve ligature-component handling - + We use three bits for lig_id these days, so we finally got a report of two separate ligatures with the same lig_id happening adjacent to each other, and then the component-handling code was breaking things. - Protect against that by ignoring same-lig-id but lig-comp=0 glyphs - after + Protect against that by ignoring same-lig-id but lig-comp=0 glyphs after a new ligature. - + Fixes https://github.com/behdad/harfbuzz/issues/198 src/hb-ot-layout-gsubgpos-private.hh | 12 +++++-- @@ -52130,8 +51271,7 @@ Date: Thu Dec 17 15:21:14 2015 +0000 test/shaping/fonts/sha1sum/MANIFEST | 1 + .../c78d1f25ea1df1210414f2fe2e0e1e53082bba76.ttf | Bin 0 -> 4064 bytes test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/ligature-id.tests | 35 - +++++++++++++++++++++ + test/shaping/tests/ligature-id.tests | 35 +++++++++++++++++++++ 6 files changed, 47 insertions(+), 3 deletions(-) commit 2ab0de9fbd03231b647345b01e31b136e2e00978 @@ -52139,7 +51279,7 @@ Author: Behdad Esfahbod Date: Thu Dec 17 11:59:15 2015 +0000 [use] Fix halant detection - + Before, we were just checking the use_category(). This detects as halant a ligature that had the halant as first glyph (as seen in NotoSansBalinese.) Change that to use the is_ligated() glyph prop @@ -52147,16 +51287,14 @@ Date: Thu Dec 17 11:59:15 2015 +0000 the rphf / pref tests. So we need to make sure the "ligated" bit survives those tests. Since those only check the "substituted" bit, we now only clear that bit for them and "ligated" survives. - + Fixes https://github.com/behdad/harfbuzz/issues/180 src/hb-ot-layout-private.hh | 6 ++---- - src/hb-ot-shape-complex-use.cc | 19 - ++++++++++++------- + src/hb-ot-shape-complex-use.cc | 19 ++++++++++++------- test/shaping/Makefile.am | 1 + test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf | Bin 0 -> - 2616 bytes + .../fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf | Bin 0 -> 2616 bytes test/shaping/tests/MANIFEST | 1 + test/shaping/tests/use.tests | 1 + 7 files changed, 18 insertions(+), 11 deletions(-) @@ -52166,7 +51304,7 @@ Author: Behdad Esfahbod Date: Thu Dec 17 11:04:33 2015 +0000 [arabic] Use glyph advance width in apply_stch() instead of extents - + That seems to be what Windows is doing, and makes more sense. src/hb-ot-shape-complex-arabic.cc | 24 +++++++----------------- @@ -52177,7 +51315,7 @@ Author: Behdad Esfahbod Date: Wed Dec 16 17:08:36 2015 +0100 Fix Since: tags for new API - + https://github.com/behdad/harfbuzz/commit/e1d4d0f1dbd8518b5672245c05d73f22a9ed03ea#commitcomment-15006653 src/hb-font.cc | 6 +++--- @@ -52189,7 +51327,7 @@ Author: Behdad Esfahbod Date: Mon Dec 14 14:19:03 2015 +0100 Merge pull request #196 from srl295/aix - + AIX fixes commit a13b023dbfd0532e8cd74c356fbbd4453d0ffaa0 @@ -52197,14 +51335,14 @@ Author: Steven R. Loomis Date: Fri Dec 11 10:21:27 2015 -0800 AIX fixes - + - use '-w' instead of '\<...\>' for check-header-guards grep manpage says these are the same - + - put '-q' first in the grep options - + - move VAR into hb-private.hh - + - hb-font-private.hh - use [VAR] instead of [] for variable array src/check-header-guards.sh | 5 ++--- @@ -52228,7 +51366,7 @@ Author: Behdad Esfahbod Date: Thu Dec 10 16:56:07 2015 +0100 Merge branch 'font-extents' - + Fixes https://github.com/behdad/harfbuzz/pull/165 commit 808d3fc0eadd379909f2a0308fd3db474f1efde8 @@ -52264,7 +51402,7 @@ Author: Behdad Esfahbod Date: Thu Dec 10 15:54:42 2015 +0100 Add atomic ops for AIX - + Patch from Volker Simonis. src/hb-atomic-private.hh | 25 +++++++++++++++++++++++++ @@ -52275,28 +51413,19 @@ Author: Behdad Esfahbod Date: Mon Dec 7 21:38:47 2015 +0100 Remove final pause from Arabic shaper - - Back in the old days, we used to apply 'calt' and 'cswh' in Arabic - shaper, - with a pause in between. Then we disabled the 'cswh' because - Microsoft + + Back in the old days, we used to apply 'calt' and 'cswh' in Arabic shaper, + with a pause in between. Then we disabled the 'cswh' because Microsoft disabled it, but forgot to remove the unnecessary pause. Do that now. - - This has the benefit that it fixes shaping with monbaiti from - Windows 10. - In that version of that font, the lookups from 'calt' are duplicated - in - 'rclt', and Mongolian was changed to go through Universal Shaping - Engine. - We still use the Arabic shaper for Mongolian. With a pause after - 'calt', - we were applying the duplicate lookups from 'calt' and 'rclt' twice. - It + + This has the benefit that it fixes shaping with monbaiti from Windows 10. + In that version of that font, the lookups from 'calt' are duplicated in + 'rclt', and Mongolian was changed to go through Universal Shaping Engine. + We still use the Arabic shaper for Mongolian. With a pause after 'calt', + we were applying the duplicate lookups from 'calt' and 'rclt' twice. It happened to be the case that these lookups were NOT idempotent. So we - were getting wrong shaping. See thread "Windows 10 monbaiti.ttf - upgrade - (5.01 -> 5.51) caused loss of diacritical marks when shaped with - harfbuz" + were getting wrong shaping. See thread "Windows 10 monbaiti.ttf upgrade + (5.01 -> 5.51) caused loss of diacritical marks when shaped with harfbuz" on the mailing list. This fixes that. src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -52308,7 +51437,7 @@ Author: Behdad Esfahbod Date: Mon Dec 7 10:44:08 2015 +0100 Merge pull request #192 from behdad/jfkthame-stch - + [issue 191] Make apply_stch() give a more precise fit commit 255df6801201fb22402420f7b7b7ea8b042df8ba @@ -52316,7 +51445,7 @@ Author: Behdad Esfahbod Date: Mon Dec 7 10:34:47 2015 +0100 Fix undefined behavior in cmp function - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93274 src/hb-ot-map-private.hh | 3 ++- @@ -52327,7 +51456,7 @@ Author: Behdad Esfahbod Date: Mon Dec 7 10:30:43 2015 +0100 Fix sorting order of ot_languages array - + Looks like the original sort was wrongly done. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93275 @@ -52339,7 +51468,7 @@ Author: Behdad Esfahbod Date: Mon Dec 7 10:28:46 2015 +0100 Add test to make sure ot-languages array is sorted - + Currently fails. Part of https://bugs.freedesktop.org/show_bug.cgi?id=93275 @@ -52353,7 +51482,7 @@ Author: Behdad Esfahbod Date: Mon Dec 7 09:34:58 2015 +0100 Merge pull request #134 from ebraminio/dwrite - + Add working but less prefect DirectWrite backend commit a7ffe3535836032dba5559080dffeec79473197b @@ -52361,11 +51490,8 @@ Author: jfkthame Date: Sat Dec 5 17:47:37 2015 +0000 Make apply_stch() give a more precise fit - - This aims to make Syriac Abbr Mark sizing more accurate when repeating - segments are used, by adding an extra repeat and tightening up the - spacing slightly rather than leaving a shortfall corresponding to - a partial repeat-width. + + This aims to make Syriac Abbr Mark sizing more accurate when repeating segments are used, by adding an extra repeat and tightening up the spacing slightly rather than leaving a shortfall corresponding to a partial repeat-width. src/hb-ot-shape-complex-arabic.cc | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) @@ -52375,7 +51501,7 @@ Author: Behdad Esfahbod Date: Mon Nov 30 16:53:21 2015 -0800 src/test.cc: wrong field printed - + Fixes https://github.com/behdad/harfbuzz/issues/188 Fixes https://bugs.freedesktop.org/show_bug.cgi?id=93182 @@ -52389,8 +51515,7 @@ Date: Mon Oct 26 16:23:22 2015 +0900 Get font ascender and descender metrics from OS/2 table. src/hb-font-private.hh | 39 ++++++++++++++++++- - src/hb-font.cc | 102 - ++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-font.cc | 102 ++++++++++++++++++++++++++++++++++++++++++++++++- src/hb-font.h | 62 ++++++++++++++++++++++++++++-- src/hb-ft.cc | 21 ++++++++++ src/hb-ot-font.cc | 58 ++++++++++++++++++++++++++-- @@ -52403,8 +51528,7 @@ Date: Mon Oct 26 16:22:38 2015 +0900 Parse the OS/2 table. src/Makefile.am | 1 + - src/hb-ot-os2-table.hh | 105 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-os2-table.hh | 105 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) commit d44d52bd0da033865641dfd39d94852119fd4fd7 @@ -52443,8 +51567,7 @@ commit ea512f71084296be3bd893f78650def894066de0 Author: Behdad Esfahbod Date: Thu Nov 26 19:22:22 2015 -0500 - Use C-style casts instead of compare to 0, to convert hb_bool_t - to bool + Use C-style casts instead of compare to 0, to convert hb_bool_t to bool src/hb-common.cc | 2 +- src/hb-fallback-shape.cc | 2 +- @@ -52463,11 +51586,11 @@ Author: Behdad Esfahbod Date: Thu Nov 26 18:48:42 2015 -0500 Fix vertical GPOS - + This was brorken earlier, though, it's really hard to notice it. Unlike the glyph_h_origin(), an unset glyph_v_origin() does NOT mean that the vertical origin is at 0,0. - + Related to https://github.com/behdad/harfbuzz/issues/187 src/hb-ot-shape.cc | 13 ++++++++----- @@ -52480,8 +51603,7 @@ Date: Thu Nov 26 18:48:30 2015 -0500 Add tests for previous commit test/shaping/Makefile.am | 1 + - .../sha1sum/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf | Bin 0 -> - 1496 bytes + .../sha1sum/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf | Bin 0 -> 1496 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/simple.tests | 2 ++ @@ -52492,12 +51614,12 @@ Author: Behdad Esfahbod Date: Thu Nov 26 18:43:15 2015 -0500 Make nil glyph_h_origin() function return true - + Fixes https://github.com/behdad/harfbuzz/issues/187 - + Funcs implementations that have a non-zero horizontal origin must implement the glyph_h_origin() callback, nothing new here. - + Other implementations (all I know of!) can simply not set glyph_h_origin() now. I did that for hb-ot and hb-ft in 44f82750807475aa5b16099ccccd917d488df703, though that broke the @@ -52512,7 +51634,7 @@ Author: Behdad Esfahbod Date: Tue Nov 24 15:38:43 2015 -0600 Merge pull request #114 from ThePhD/vc++-fixes - + Fix all VC++ warnings and errors commit b344af80ca95b9eddfd6017aa6ae103388d6b5f8 @@ -52521,7 +51643,7 @@ Author: Behdad Esfahbod Date: Tue Nov 24 15:30:27 2015 -0600 Merge pull request #177 from fanc999/exporting - + Enable use of compiler directives to export symbols commit 662acd26d10c38e96a9afcdaab2cb2979794966f @@ -52530,7 +51652,7 @@ Author: Behdad Esfahbod Date: Tue Nov 24 15:29:44 2015 -0600 Merge pull request #181 from mhosken/master - + Fix y_scale problems in hb-gr commit b24e93e3a4d98111c4684fa08e9080b471881d5c @@ -52549,7 +51671,7 @@ Author: Khaled Hosny Date: Tue Nov 24 18:37:35 2015 +0400 Merge pull request #185 from khaledhosny/travis-osx - + [travis] Enable Mac OS X support commit d538201918e6932ef7645f8d5b2c3491954936f8 @@ -52557,7 +51679,7 @@ Author: Khaled Hosny Date: Tue Nov 24 12:46:35 2015 +0400 [travis] Enable Mac OS X support - + Fixes https://github.com/behdad/harfbuzz/issues/182 .travis.yml | 22 ++++++++++++++++------ @@ -52568,7 +51690,7 @@ Author: Behdad Esfahbod Date: Mon Nov 23 16:46:14 2015 -0600 [travis] Remove coverity scan - + I never could get it to work, and it's a proprietary platform. .travis.yml | 11 ----------- @@ -52589,20 +51711,17 @@ Author: Chun-wei Fan Date: Thu Nov 19 18:34:12 2015 +0800 Public headers: Decorate public symbols with HB_EXTERN - + This prepares the headers for exporting symbols using visibility - attributes or __declspec(dllexport), so that we do not need to - maintain - symbols listing files, as this is what was and is done in GLib - and GTK+. + attributes or __declspec(dllexport), so that we do not need to maintain + symbols listing files, as this is what was and is done in GLib and GTK+. src/hb-blob.h | 24 +++++----- src/hb-buffer.h | 100 +++++++++++++++++++------------------- src/hb-common.h | 22 ++++----- src/hb-coretext.h | 6 +-- src/hb-face.h | 34 ++++++------- - src/hb-font.h | 114 - ++++++++++++++++++++++---------------------- + src/hb-font.h | 114 ++++++++++++++++++++++---------------------- src/hb-ft.h | 18 +++---- src/hb-glib.h | 8 ++-- src/hb-gobject-enums.h.tmpl | 2 +- @@ -52637,7 +51756,7 @@ Author: Behdad Esfahbod Date: Fri Nov 20 13:28:42 2015 -0800 Merge pull request #176 from behdad/missing-braces - + Add braces for subobject initializer in _hb_font_funcs_nil commit 1dc32ea4d2f294f9d1ae1c8fd19fb75f9278223b @@ -52654,16 +51773,15 @@ Author: Behdad Esfahbod Date: Fri Nov 20 13:21:29 2015 -0800 Define HB_MARK_AS_FLAG_T as a macro instead of using templates - - The generic template operator overloading was causing more problems - than it + + The generic template operator overloading was causing more problems than it solved. Eg: - + https://github.com/behdad/harfbuzz/pull/163 https://github.com/behdad/harfbuzz/issues/175 - + So, just use macros. - + Fixes https://github.com/behdad/harfbuzz/issues/175 Fixes https://github.com/behdad/harfbuzz/pull/178 @@ -52675,9 +51793,8 @@ Author: jfkthame Date: Fri Nov 20 08:43:49 2015 +0000 Add braces for subobject initializer in _hb_font_funcs_nil - - To avoid triggering -Wmissing-braces; see - https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8 + + To avoid triggering -Wmissing-braces; see https://bugzilla.mozilla.org/show_bug.cgi?id=1226175#c8 src/hb-font.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) @@ -52687,17 +51804,16 @@ Author: Behdad Esfahbod Date: Thu Nov 19 12:39:09 2015 -0800 Do not allow recursiving to same position and same lookup - + This is just to make it harder to be extremely slow. There definitely are ways still, just harder. Oh well... how do we tame this problem without solving halting problem?! - + Fixes https://github.com/behdad/harfbuzz/issues/174 src/hb-ot-layout-gsubgpos-private.hh | 5 +++++ test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin 0 -> - 1894 bytes + .../sha1sum/fab39d60d758cb586db5a504f218442cd1395725.ttf | Bin 0 -> 1894 bytes test/shaping/tests/fuzzed.tests | 1 + 4 files changed, 7 insertions(+) @@ -52715,9 +51831,9 @@ Author: Behdad Esfahbod Date: Thu Nov 19 11:59:03 2015 -0800 Revert "Fix hang in OOM situations" - + This reverts commit f0599db761d7fc2d585d86e757a797f75ebc7499. - + Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better fix for this. @@ -52729,9 +51845,9 @@ Author: Behdad Esfahbod Date: Thu Nov 19 11:50:58 2015 -0800 Revert "Make sure we make progress in OOM situations" - + This reverts commit 68b507a3c3c62c28c38e13fee733702bb703b6ca. - + Commit abadc1717d997b69f987fdf1be9e12156d2d13d6 provides a better fix for this. @@ -52763,10 +51879,10 @@ Author: Behdad Esfahbod Date: Wed Nov 18 23:23:35 2015 -0800 [travis] Only coverity-scan the coverity_scan branch - + This essentially disables coverity-scan right now, until we find a pattern to continuously submit branches there. - + For background reasoning, see: Fixes https://github.com/behdad/harfbuzz/issues/171 @@ -52778,16 +51894,14 @@ Author: Behdad Esfahbod Date: Wed Nov 18 23:09:13 2015 -0800 Add tests for previous two commits - + To fully test what these are supposed to test, they should be run against libharfbuzz-fuzzing.la instead of libharfbuzz.la, but for now just record the files. - .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 -> - 1804 bytes + .../sha1sum/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf | Bin 0 -> 1804 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 -> - 1804 bytes + .../sha1sum/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf | Bin 0 -> 1804 bytes test/shaping/tests/fuzzed.tests | 2 ++ 4 files changed, 4 insertions(+) @@ -52796,9 +51910,9 @@ Author: Behdad Esfahbod Date: Wed Nov 18 23:04:45 2015 -0800 Fix another move_to assertion failure - + If buf->idx is at end, don't set end past it... - + Fixes https://github.com/behdad/harfbuzz/issues/173 src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -52809,7 +51923,7 @@ Author: Behdad Esfahbod Date: Wed Nov 18 17:52:08 2015 -0800 Try to better handle OOM situations - + Fixes assert fail in https://github.com/behdad/harfbuzz/issues/161 with libharfbuzz-fuzzing. @@ -52837,7 +51951,7 @@ Author: Behdad Esfahbod Date: Wed Nov 18 16:27:32 2015 -0800 Enable building a bounded version of the library for fuzzing - + test/fuzzing/hb-fuzzer links against libharfbuzz-fuzzing.so now. src/Makefile.am | 16 ++++++++++++++++ @@ -52860,7 +51974,7 @@ Author: Behdad Esfahbod Date: Tue Nov 17 18:40:10 2015 -0800 Merge pull request #163 from fanc999/msvc.src - + Update the sources so they will compile under Visual Studio commit 167c3271778cd1a8c4433b9d2230901ce17c099e @@ -52868,24 +51982,17 @@ Author: Chun-wei Fan Date: Mon Nov 9 17:17:56 2015 +0800 Fix build on MSVC >= 2012 - + Use the DEFINE_ENUM_FLAG_OPERATORS macro in winnt.h on Visual Studio, - which defines the bitwise operators for the enumerations that we - want to - mark as hb_mark_as_flags_t, which will take care of the situation - on newer - Visual Studio (>= 2012), where the build breaks with C2057 errors - as the - underlying types of the enumerations is not clear to the compiler - when we + which defines the bitwise operators for the enumerations that we want to + mark as hb_mark_as_flags_t, which will take care of the situation on newer + Visual Studio (>= 2012), where the build breaks with C2057 errors as the + underlying types of the enumerations is not clear to the compiler when we do a bitwise op within the declaration of the enumerations themselves. - - Also disable the C4200 (nonstandard extension used : zero-sized - array in - struct/union) and C4800 ('type' : forcing value to bool 'true' or - 'false' - (performance warning)) warnings as the C4200 is the intended - scenario and + + Also disable the C4200 (nonstandard extension used : zero-sized array in + struct/union) and C4800 ('type' : forcing value to bool 'true' or 'false' + (performance warning)) warnings as the C4200 is the intended scenario and C4800 is harmless but is so far an unavoidable side effect of using DEFINE_ENUM_FLAG_OPERATORS. @@ -52901,7 +52008,7 @@ Author: Chun-wei Fan Date: Fri Nov 6 14:28:30 2015 +0800 hb-ot-shape-complex-arabic.cc: Fix build on Visual Studio - + Visual Studio does not like declaring a enum variable within a for statement, so fix the build by declaring the enum before doing the for loop. @@ -52914,11 +52021,9 @@ Author: Chun-wei Fan Date: Tue Nov 3 18:49:34 2015 +0800 MSVC builds: Add fallback implementation for pre-2013 MSVC - - Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used - in the - utility programs. Add fallback implementations for these, which - can be + + Pre-2013 MSVC does not have scalbn() and scalbnf(), which are used in the + utility programs. Add fallback implementations for these, which can be used when necessary. util/options.hh | 17 +++++++++++++++++ @@ -52929,19 +52034,18 @@ Author: Chun-wei Fan Date: Mon Nov 2 16:55:29 2015 +0800 util: Fix build on Visual Studio - + Use the fallback implementation for lround() only on pre-2013 Visual Studio, and ensure we are clear about the types of the parameters for lround() and scalbnf(), since Visual Studio can be quite picky on ambiguous parameter types. Also, use g_ascii_strcasecmp() rather than strcasecmp() as we are already using GLib for this code and we are assured that g_ascii_strcasemp() is available. - + For scalbnf() on pre-2013 Visaul Studio, a fallback implementation is - needed, but use another forced-included header for those compilers, - which + needed, but use another forced-included header for those compilers, which will be added later. - + Also use (char)27 on Visual Studio builds as '\e' is not a recognized escape sequence, which will do the same thing. @@ -52954,8 +52058,7 @@ commit e97835ad43f5c68e8cb29599246cae0f4461d663 Author: Behdad Esfahbod Date: Tue Nov 10 11:37:01 2015 -0800 - [util] Fix crash when --output-file is specified but not - --output-format + [util] Fix crash when --output-file is specified but not --output-format util/options.hh | 3 +++ 1 file changed, 3 insertions(+) @@ -52966,7 +52069,7 @@ Author: Behdad Esfahbod Date: Sat Nov 7 07:50:58 2015 -0800 Merge pull request #167 from KonstantinRitt/unicode_cp_opt - + Micro optimizations to UTF-16 and UTF-32 codecs commit 04ff23e73d847ab3a5da0e9fac4fbca19aefd284 @@ -52974,7 +52077,7 @@ Author: Behdad Esfahbod Date: Fri Nov 6 16:29:44 2015 -0800 [arabic] Improve stretch length calculation - + Err on the side of being too short, than too wide. Reduces chance of overlaps with neighboring glyphs. @@ -52986,14 +52089,12 @@ Author: Behdad Esfahbod Date: Fri Nov 6 16:27:44 2015 -0800 [arabic] Don't stretch over cased letters - + Addresses https://github.com/behdad/harfbuzz/commit/6e6f82b6f3dde0fc6c3c7d991d9ec6cfff57823d#commitcomment-14248516 - src/hb-ot-shape-complex-arabic.cc | 24 - +++++++++++++++++++++- - src/hb-unicode-private.hh | 20 - ------------------ + src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++++++++- + src/hb-unicode-private.hh | 20 ------------------ .../script-syriac/misc/abbreviation-mark.txt | 4 ++-- 3 files changed, 25 insertions(+), 23 deletions(-) @@ -53002,9 +52103,9 @@ Author: Behdad Esfahbod Date: Fri Nov 6 16:18:09 2015 -0800 Revert "Don't process lookups if buffer is in error" - + This reverts commit f92bd86cc8c11d262d1830c631cb7c63fc9d4bc8. - + We don't want to be like cairo, where as soon as there's an error, nothing works anymore. So, lets process lookups as long as there's no new memory needed. That's also a model that hides fewer bugs. @@ -53017,7 +52118,7 @@ Author: Konstantin Ritt Date: Sat Nov 7 02:00:04 2015 +0400 Micro optimization to hb_utf16_t and hb_utf32_t ::prev() - + Implement reverse lookup instead of re-using next() src/hb-utf-private.hh | 29 +++++++++++++++++++---------- @@ -53065,11 +52166,10 @@ Author: Behdad Esfahbod Date: Fri Nov 6 00:01:24 2015 -0800 [fuzzing] Add test case for OOM - + From https://github.com/behdad/harfbuzz/issues/161 - .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 -> - 1483 bytes + .../sha1sum/3511ff5c1647150595846ac414c595cccac34f18.ttf | Bin 0 -> 1483 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 +- test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 2 insertions(+), 1 deletion(-) @@ -53079,7 +52179,7 @@ Author: Behdad Esfahbod Date: Thu Nov 5 23:52:41 2015 -0800 Fix hang in OOM situations - + Fixes https://github.com/behdad/harfbuzz/issues/161 src/hb-buffer-private.hh | 6 +++++- @@ -53099,7 +52199,7 @@ Author: Behdad Esfahbod Date: Thu Nov 5 23:44:59 2015 -0800 Limit buffer max size growth - + https://github.com/behdad/harfbuzz/issues/161 src/hb-buffer-private.hh | 11 +++++++++++ @@ -53116,8 +52216,7 @@ Date: Thu Nov 5 23:08:50 2015 -0800 configure.ac | 1 + test/Makefile.am | 2 +- - test/fuzzing/Makefile.am | 44 - ++++++++++++++++++++++++++++++++++++++++++++ + test/fuzzing/Makefile.am | 44 ++++++++++++++++++++++++++++++++++++++++++++ test/fuzzing/README | 2 ++ test/fuzzing/hb-fuzzer.cc | 4 ++-- 5 files changed, 50 insertions(+), 3 deletions(-) @@ -53127,7 +52226,7 @@ Author: Behdad Esfahbod Date: Thu Nov 5 22:50:52 2015 -0800 [fuzzer] Add README - + https://github.com/behdad/harfbuzz/issues/139#issuecomment-154202645 test/fuzzing/README | 21 +++++++++++++++++++++ @@ -53138,16 +52237,15 @@ Author: Behdad Esfahbod Date: Thu Nov 5 17:29:03 2015 -0800 Implement SYRIAC ABBREVIATION MARK with 'stch' feature - + The feature is enabled for any character in the Arabic shaper. We should experiment with using it for Arabic subtending marks. Though, that has a directionality problem as well, since those are used with digits... - + Fixes https://github.com/behdad/harfbuzz/issues/141 - src/hb-ot-shape-complex-arabic.cc | 219 - ++++++++++++++++++++- + src/hb-ot-shape-complex-arabic.cc | 219 ++++++++++++++++++++- src/hb-unicode-private.hh | 19 ++ .../shaper-arabic/script-syriac/misc/MANIFEST | 1 + .../script-syriac/misc/abbreviation-mark.txt | 11 ++ @@ -53158,7 +52256,7 @@ Author: Behdad Esfahbod Date: Thu Nov 5 17:33:57 2015 -0800 [ft] Fix extents with negative scales - + Fixes https://github.com/behdad/harfbuzz/issues/162 src/hb-ft.cc | 10 ++++++++++ @@ -53178,9 +52276,9 @@ Author: Behdad Esfahbod Date: Thu Nov 5 13:24:15 2015 -0800 Add new shaper method postprocess_glyphs() - + Unused currently. To be used for Syriac stretch implementation. - + https://github.com/behdad/harfbuzz/issues/141 src/hb-ot-shape-complex-arabic.cc | 3 ++- @@ -53212,7 +52310,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 22:55:11 2015 -0800 Don't try zeroing marks by GDEF if there are no non-ASCII - + This one is a hack, but should be ok. src/hb-ot-shape.cc | 4 ++++ @@ -53242,7 +52340,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 22:42:41 2015 -0800 Skip GPOS cursive / attachment adjustmnent if none happened - + I'm starting to really like how free these new scratch_flags are. src/hb-ot-layout-gpos-table.hh | 3 +++ @@ -53271,7 +52369,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 22:00:25 2015 -0800 Move variable-sized struct member to end - + Hopefully makes clang build happy src/hb-font-private.hh | 21 ++++++++++----------- @@ -53292,7 +52390,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 21:42:55 2015 -0800 Add font->has_...() to check for individual nil font funcs - + Hopefully this wouldn't break any compiler. There was some magic moments to getting this to compile... @@ -53305,11 +52403,10 @@ Author: Behdad Esfahbod Date: Wed Nov 4 21:16:26 2015 -0800 Minor reshaping of hb_font_funcs_t implementation - + In anticipation of further changes. No functional changes. - src/hb-font-private.hh | 80 - ++++++++++++++++++++++++++------------------------ + src/hb-font-private.hh | 80 ++++++++++++++++++++++++++------------------------ src/hb-font.cc | 4 +-- 2 files changed, 43 insertions(+), 41 deletions(-) @@ -53328,8 +52425,7 @@ Date: Wed Nov 4 20:47:42 2015 -0800 [ot] Remove font funcs that do nothing - src/hb-ot-font.cc | 95 - ++++--------------------------------------------------- + src/hb-ot-font.cc | 95 ++++--------------------------------------------------- 1 file changed, 7 insertions(+), 88 deletions(-) commit 75ea2daa1d9bbe235cd4a8570efb1913d58c3c62 @@ -53364,12 +52460,11 @@ Author: Behdad Esfahbod Date: Wed Nov 4 20:22:44 2015 -0800 Separate nil font-funcs from parent-peeking font-funcs - + API change: all fonts created with hb_font_create() now inherit from (ie have parent) hb_font_get_empty(). - src/hb-font.cc | 211 - +++++++++++++++++++++++++++++++++++---------------- + src/hb-font.cc | 211 +++++++++++++++++++++++++++++++++++---------------- test/api/test-font.c | 2 +- 2 files changed, 145 insertions(+), 68 deletions(-) @@ -53378,12 +52473,11 @@ Author: Behdad Esfahbod Date: Wed Nov 4 19:28:17 2015 -0800 Optimize positioning direction calculations - + It makes the binary smaller AND faster. Yumm! src/hb-font-private.hh | 40 +++++++++++++++++++++++++++++++++++++++ - src/hb-ot-shape.cc | 51 - +++++++++++++++++++++++++++----------------------- + src/hb-ot-shape.cc | 51 +++++++++++++++++++++++++++----------------------- 2 files changed, 68 insertions(+), 23 deletions(-) commit e3e4bb011ae1a2f1ba05e7ea450595b185304bec @@ -53402,7 +52496,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 18:46:22 2015 -0800 Optimize runs without Default_Ignorable's - + Now that we have a buffer-wide scratch flags facility, use it to optimize away a few passes. @@ -53418,10 +52512,10 @@ Author: Behdad Esfahbod Date: Wed Nov 4 18:00:57 2015 -0800 Limit max edits during sanitize to 8 - + Used to be 100. If a tabe needs more than one or two edits, it's probably completely bogus... - + Might help with speeding up fuzzing for https://github.com/behdad/harfbuzz/issues/157 @@ -53442,7 +52536,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 17:45:06 2015 -0800 If font doesn't support U+2011, fall back to U+2010 - + Test passes now. src/hb-ot-shape-normalize.cc | 10 ++++++++++ @@ -53454,8 +52548,7 @@ Date: Wed Nov 4 17:43:36 2015 -0800 Untangle if/else waterfall - src/hb-ot-shape-normalize.cc | 40 - +++++++++++++++++++++++++++------------- + src/hb-ot-shape-normalize.cc | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) commit 04fd8517f85ae9aa05b44f25578d2b19abfef7cb @@ -53463,13 +52556,12 @@ Author: Behdad Esfahbod Date: Wed Nov 4 17:38:22 2015 -0800 Add tests for hyphen fallback - + U+2011 is equivaent of U+2010, so we should do the fallback for it. Currently fails. test/shaping/Makefile.am | 1 + - .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf | Bin 0 -> - 820 bytes + .../sha1sum/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf | Bin 0 -> 820 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ test/shaping/tests/MANIFEST | 1 + test/shaping/tests/hyphens.tests | 2 ++ @@ -53489,20 +52581,19 @@ Author: Behdad Esfahbod Date: Wed Nov 4 17:27:07 2015 -0800 Adjust the width of various spaces if font does not cover them - + See discussion here: https://github.com/behdad/harfbuzz/commit/81ef4f407d9c7bd98cf62cef951dc538b13442eb - + There's no way to disable this fallback, but I don't think it would be needed. Let's hope for the best! - + Fixes https://github.com/behdad/harfbuzz/issues/153 src/hb-buffer-private.hh | 7 ++++ src/hb-buffer.cc | 2 ++ src/hb-ot-shape-fallback-private.hh | 4 +++ - src/hb-ot-shape-fallback.cc | 67 - +++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-fallback.cc | 67 +++++++++++++++++++++++++++++++++++++ src/hb-ot-shape-normalize.cc | 1 + src/hb-ot-shape.cc | 3 ++ src/hb-unicode-private.hh | 56 +++++++++++++++++-------------- @@ -53528,23 +52619,21 @@ Author: Behdad Esfahbod Date: Wed Nov 4 14:48:46 2015 -0800 Normalize various spaces to space if font doesn't support - + This resurrects the space fallback feature, after I disabled the compatibility decomposition. Now I can release HarfBuzz again without breaking Pango! - + It also remembers which space character it was, such that later on we can approximate the width of this particular space character. That part is not implemented yet. - + We normalize all GC=Zs chars except for U+1680 OGHA SPACE MARK, which is better left alone. - src/hb-ot-layout-private.hh | 47 - +++------------------ + src/hb-ot-layout-private.hh | 47 +++------------------ src/hb-ot-shape-normalize.cc | 12 +++++- - src/hb-unicode-private.hh | 40 - ++++++++++++++++++ + src/hb-unicode-private.hh | 40 ++++++++++++++++++ test/shaping/Makefile.am | 1 + .../1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf | Bin 0 -> 316 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + @@ -53575,7 +52664,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 14:46:10 2015 -0800 Fix typo! - + Ouch! Fortunately that function was unused. src/hb-buffer-private.hh | 2 +- @@ -53586,11 +52675,10 @@ Author: Behdad Esfahbod Date: Wed Nov 4 14:18:39 2015 -0800 Add Unicode space category - + Unused so far. - src/hb-ot-layout-private.hh | 78 - +++++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-private.hh | 78 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 2 deletions(-) commit 8249ec3f86510fd24462ce71ed64a6978f0ade17 @@ -53617,7 +52705,7 @@ Author: Behdad Esfahbod Date: Wed Nov 4 13:17:33 2015 -0800 Add _hb_glyph_info_is_unicode_mark() - + Unused right now. src/hb-ot-layout-private.hh | 6 ++++++ @@ -53647,22 +52735,21 @@ Author: Behdad Esfahbod Date: Tue Nov 3 12:15:12 2015 -0800 [ot-font] Fix hmtx table length checking, *again* - + Exactly the same problem that I fixed in 63ef0b41dc48d6112d1918c1b1de9de8ea90adb5 - + I rewrote the table checking yesterday in 67f8821fb25d9bd55719f5e29a582ae1af4b02b3 and introduced the exact same issue again. :( Good thing we have ongoing fuzzing going now. Was discovered immediately by libFuzzer. Thanks kcc! - + https://github.com/behdad/harfbuzz/issues/139#issuecomment-153449473 Fixes https://github.com/behdad/harfbuzz/issues/156 src/hb-ot-font.cc | 4 ++-- - .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf | Bin 0 -> - 633 bytes + .../sha1sum/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf | Bin 0 -> 633 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/fuzzed.tests | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) @@ -53676,8 +52763,7 @@ Date: Tue Nov 3 11:34:47 2015 -0800 util/helper-cairo.cc | 7 +++++-- util/main-font-text.hh | 22 ++++++++++++++++++--- util/options.cc | 21 ++++++++++---------- - util/options.hh | 53 - +++++++++++++++++++++++++++++++++----------------- + util/options.hh | 53 +++++++++++++++++++++++++++++++++----------------- 4 files changed, 70 insertions(+), 33 deletions(-) commit 642135f3b2d6d6eb800153c76c4718239733c0e6 @@ -53685,11 +52771,11 @@ Author: Behdad Esfahbod Date: Tue Nov 3 11:26:34 2015 -0800 [util] In --debug mode, duplicate font data - + This has the effect that the font data will end up in a memory section malloc()ed exactly to its size. This gives us better valgrind detection of out-of-bounds access. - + Previously, the font data was placed in a mmap()ed section or GString-allocated area, which didn't have proper protections at the end when running under valgrind. @@ -53711,7 +52797,7 @@ Author: Behdad Esfahbod Date: Mon Nov 2 17:52:45 2015 -0800 Remove irrelevant comment - + I tried moving the is_default_ignorable() function to an INTERNAL function. That made the binary size grow by 5k AND things got a tad bit slower! @@ -53734,11 +52820,10 @@ Author: Behdad Esfahbod Date: Mon Nov 2 17:36:51 2015 -0800 Combine unicode_props0/1 into a uint16 - + Slightly faster. In prep for more changes. - src/hb-ot-layout-private.hh | 55 - ++++++++++++++++++++++++--------------------- + src/hb-ot-layout-private.hh | 55 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 26 deletions(-) commit 71277185454482cff9b0c10b85c416eb4d6e0ed9 @@ -53746,9 +52831,8 @@ Author: Behdad Esfahbod Date: Mon Nov 2 17:27:48 2015 -0800 [perf] Only call combining_class() for marks - - Saves some time. Also preparing for reusing the ccc byte for - other stuff. + + Saves some time. Also preparing for reusing the ccc byte for other stuff. src/hb-ot-layout-private.hh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) @@ -53758,7 +52842,7 @@ Author: Behdad Esfahbod Date: Mon Nov 2 15:43:08 2015 -0800 Make max context-length and max nesting level configurable - + ...at compile time. src/hb-ot-layout-common-private.hh | 10 ++++++++-- @@ -53771,9 +52855,8 @@ Author: Behdad Esfahbod Date: Mon Nov 2 15:37:29 2015 -0800 [ot] Make bad-hmtx handling match FreeType - - Also route fuzzing-related tests through hb-ot-font, to reduce - dependency + + Also route fuzzing-related tests through hb-ot-font, to reduce dependency on FreeType behavior for badly-broken fonts. Fixes failing test with FreeType master. @@ -53804,7 +52887,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 17:20:55 2015 -0200 Disable compatibility decomposition usage during normalization - + Fixes https://github.com/behdad/harfbuzz/issues/152 src/hb-ot-shape-normalize.cc | 24 ------------------------ @@ -53815,7 +52898,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:23:12 2015 -0200 Fix two more -Wshadow warnings - + https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 src/hb-open-type-private.hh | 10 +++++----- @@ -53826,7 +52909,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:20:55 2015 -0200 Fix one more -Wshadow warning - + https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 src/hb-ot-layout-gsubgpos-private.hh | 6 +++--- @@ -53837,7 +52920,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:16:49 2015 -0200 Fix a few more -Wshadow-local warnings - + https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 src/hb-ot-shape-complex-indic.cc | 10 +++++----- @@ -53850,7 +52933,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:13:21 2015 -0200 Fix one -Wshadow-compatible-local warning - + From https://bugzilla.mozilla.org/show_bug.cgi?id=1215894 src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -53861,9 +52944,9 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:10:10 2015 -0200 Avoid unnecessary cast to 64-bit - + Fixes https://github.com/behdad/harfbuzz/issues/146 - + Or I think it should. src/hb-private.hh | 2 +- @@ -53874,7 +52957,7 @@ Author: Behdad Esfahbod Date: Wed Oct 21 11:04:28 2015 -0200 Add HB_FALLTHROUGH - + Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411 src/hb-ot-shape-complex-indic.cc | 2 +- @@ -53889,8 +52972,7 @@ Date: Fri Sep 11 09:48:12 2015 +0430 Add a prototype of DirectWrite as a shaping backend - src/hb-directwrite.cc | 827 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-directwrite.cc | 827 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-directwrite.h | 34 +++ src/hb-shaper-list.hh | 3 + 3 files changed, 864 insertions(+) @@ -53919,7 +53001,7 @@ Author: Behdad Esfahbod Date: Tue Oct 20 15:19:41 2015 -0200 Merge pull request #148 from ebraminio/inst - + Add BUILD.md based on harfbuzz.org docs commit 904b0dc3811464cf61dc9457664de95ee4f61a86 @@ -53928,7 +53010,7 @@ Author: Behdad Esfahbod Date: Mon Oct 19 16:59:43 2015 -0200 Merge pull request #147 from ebraminio/dockerci - + [ci] change to docker infrastructure commit ba096bcc28ca80e2096e0a15191848fcd175e395 @@ -53963,16 +53045,15 @@ commit ca97ea7aa2cb7186f432aaba76f4f151aa90c1d0 Author: Behdad Esfahbod Date: Thu Oct 15 20:20:22 2015 -0300 - [ft] Revert change-of-behavior of hb_ft_font_create() introduced - in 1.0.5 - + [ft] Revert change-of-behavior of hb_ft_font_create() introduced in 1.0.5 + The default FreeType load flags where changed from FT_LOAD_NO_HINTING to FT_LOAD_DEFAULT in 2a9627c5641cd000e2adff0e42a0dc687b53ec70. This is crashing HarfBuzz-enabled FreeType as I suppose it causes infinite recursion between HB and FT autohinter... - + Revert the behavior change. - + Fixes https://github.com/behdad/harfbuzz/issues/143 src/hb-ft.cc | 2 +- @@ -53983,15 +53064,13 @@ Author: Behdad Esfahbod Date: Thu Oct 15 12:55:57 2015 -0300 Add tests for a couple of fixed issues found by libFuzzer - + From: https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887 https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957 - .../sha1sum/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf | Bin 0 -> - 1024 bytes - .../sha1sum/641bd9db850193064d17575053ae2bf8ec149ddc.ttf | Bin 0 -> - 305 bytes + .../sha1sum/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf | Bin 0 -> 1024 bytes + .../sha1sum/641bd9db850193064d17575053ae2bf8ec149ddc.ttf | Bin 0 -> 305 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ test/shaping/tests/fuzzed.tests | 2 ++ 4 files changed, 4 insertions(+) @@ -54001,9 +53080,9 @@ Author: Behdad Esfahbod Date: Thu Oct 15 12:47:22 2015 -0300 [ot-font] Fix hmtx wrong table length check - + Discovered by libFuzzer. Ouch! - + https://github.com/behdad/harfbuzz/issues/139#issuecomment-148289957 src/hb-ot-font.cc | 2 +- @@ -54014,11 +53093,11 @@ Author: Behdad Esfahbod Date: Tue Oct 13 23:33:28 2015 -0300 Reduce max nesting level from 8 to 6 - + We probably should implement better system to catch cyclic lookups. But for now, this speeds up worst case behavior with broken fonts considerably without compromising legitimate usecases. - + https://github.com/behdad/harfbuzz/issues/139#issuecomment-147788447 src/hb-ot-layout-common-private.hh | 2 +- @@ -54039,7 +53118,7 @@ Author: Behdad Esfahbod Date: Tue Oct 13 10:32:56 2015 -0300 [ot-font] Fix leak - + https://github.com/behdad/harfbuzz/issues/139#issuecomment-147616887 src/hb-ot-font.cc | 1 + @@ -54051,8 +53130,7 @@ Date: Tue Oct 13 00:33:59 2015 -0400 Add test for previous commit - .../sha1sum/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin 0 -> - 61 bytes + .../sha1sum/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf | Bin 0 -> 61 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 2 insertions(+) @@ -54062,9 +53140,8 @@ Author: Behdad Esfahbod Date: Tue Oct 13 00:30:50 2015 -0400 Fix another memory access issue discovered by libFuzzer - - Fixes - https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679 + + Fixes https://github.com/behdad/harfbuzz/issues/139#issuecomment-146984679 src/hb-ot-layout-gpos-table.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) @@ -54074,11 +53151,10 @@ Author: Behdad Esfahbod Date: Mon Oct 12 17:39:52 2015 -0400 [fuzz] Add fuzzing script from kcc@ - + https://github.com/behdad/harfbuzz/issues/139 - test/fuzzing/hb-fuzzer.cc | 47 - +++++++++++++++++++++++++++++++++++++++++++++++ + test/fuzzing/hb-fuzzer.cc | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) commit cc6ea308d4c99b9dd6d625fa3a9b0ef62fa2614f @@ -54096,8 +53172,7 @@ Date: Sun Oct 11 21:41:04 2015 -0400 Add test for ee9b0b6cb5fdb08671ab064f26c299135f828260 - .../sha1sum/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf | Bin 0 -> - 61 bytes + .../sha1sum/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf | Bin 0 -> 61 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/fuzzed.tests | 1 + 3 files changed, 2 insertions(+) @@ -54116,7 +53191,7 @@ Author: Behdad Esfahbod Date: Fri Oct 9 14:23:15 2015 -0400 Fix another sanitize bug - + Also discovered by "libFuzzer". src/hb-open-type-private.hh | 2 +- @@ -54129,8 +53204,7 @@ Date: Fri Oct 9 12:34:02 2015 -0400 Add test for previous fix test/shaping/Makefile.am | 1 + - .../sha1sum/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf | Bin 0 -> - 64 bytes + .../sha1sum/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf | Bin 0 -> 64 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/fuzzed.tests | 1 + @@ -54141,10 +53215,10 @@ Author: Behdad Esfahbod Date: Fri Oct 9 12:25:55 2015 -0400 Fix return value of sanitize when subformat is not readable - + This is a fix on top of the previous issue fixed in c917965b9e6fe2b21ed6c51559673288fa3af4b7. - + This was caught by "libFuzzer" testing. src/hb-open-type-private.hh | 2 ++ @@ -54160,8 +53234,7 @@ Date: Fri Oct 9 12:20:58 2015 -0400 Add hb_dispatch_context_t src/hb-open-type-private.hh | 26 ++++++++++++++++++++++---- - src/hb-ot-layout-gsubgpos-private.hh | 36 - ++++++++++++------------------------ + src/hb-ot-layout-gsubgpos-private.hh | 36 ++++++++++++------------------------ src/hb-ot-layout.cc | 8 +++----- 3 files changed, 37 insertions(+), 33 deletions(-) @@ -54170,7 +53243,7 @@ Author: Behdad Esfahbod Date: Thu Oct 8 12:51:02 2015 -0400 Add hb_font_set_parent() - + No reason to not have it. Makes life easier later. We (hb-ft, hb-ot-font, etc) can use this API to inject new parent into a font... @@ -54194,15 +53267,14 @@ Author: Behdad Esfahbod Date: Wed Oct 7 17:33:20 2015 -0400 [ft] API: Add hb_font_[sg]et_load_flags() API - + This changes the default load_flags of fonts created using hb_ft_font_create() from NO_HINTING to DEFAULT. Hope that doesn't break too much client code. - + Code calling hb_ft_font_set_funcs() is unaffected. - src/hb-ft.cc | 163 - +++++++++++++++++++++++++++++++++++++++-------------------- + src/hb-ft.cc | 163 +++++++++++++++++++++++++++++++++++++++-------------------- src/hb-ft.h | 13 +++-- 2 files changed, 118 insertions(+), 58 deletions(-) @@ -54220,9 +53292,8 @@ Author: Behdad Esfahbod Date: Sat Oct 3 13:20:55 2015 +0100 Allow compiling with custom allocators - - User can define hb_malloc_impl, etc, to name of custom allocator - functions + + User can define hb_malloc_impl, etc, to name of custom allocator functions that have the same signature as malloc. src/hb-private.hh | 17 +++++++++++++++++ @@ -54233,7 +53304,7 @@ Author: Behdad Esfahbod Date: Fri Oct 2 14:38:20 2015 +0100 Default font scale to face upem - + Makes for a better default and avoids nasty inheritance issues. See mailing list thread "Default hb_font_t scale". @@ -54246,7 +53317,7 @@ Author: Behdad Esfahbod Date: Fri Oct 2 14:21:29 2015 +0100 Make hb_font_create_sub_font() NOT make parent immutable - + We don't rely on that. However, whenever hb_font_make_immutable() is called, it makes its parenting chain immutable. @@ -54259,7 +53330,7 @@ Author: Behdad Esfahbod Date: Fri Oct 2 08:21:12 2015 +0100 Fix hb-ot-shape-normalize with empty buffer - + Part of https://github.com/behdad/harfbuzz/issues/136 src/hb-ot-shape-normalize.cc | 2 ++ @@ -54281,10 +53352,9 @@ Author: Behdad Esfahbod Date: Fri Oct 2 07:25:52 2015 +0100 Fix segfault with empty buffer in hb_shape_plan_execute() - - Move the empty-buffer check from hb_shape_full() to - hb_shape_plan_execute(). - + + Move the empty-buffer check from hb_shape_full() to hb_shape_plan_execute(). + Reported by Simon Cozens. src/hb-shape-plan.cc | 9 +++++++-- @@ -54306,7 +53376,7 @@ Author: Behdad Esfahbod Date: Tue Sep 29 14:57:02 2015 +0100 Define return_trace() - + Not functional change (expected!). src/hb-open-file-private.hh | 20 +-- @@ -54319,8 +53389,7 @@ Date: Tue Sep 29 14:57:02 2015 +0100 src/hb-ot-layout-common-private.hh | 108 ++++++------- src/hb-ot-layout-gdef-table.hh | 44 ++--- src/hb-ot-layout-gpos-table.hh | 252 +++++++++++++++-------------- - src/hb-ot-layout-gsub-table.hh | 304 - ++++++++++++++++++----------------- + src/hb-ot-layout-gsub-table.hh | 304 ++++++++++++++++++----------------- src/hb-ot-layout-gsubgpos-private.hh | 205 +++++++++++------------ src/hb-ot-layout-jstf-table.hh | 35 ++-- src/hb-ot-maxp-table.hh | 5 +- @@ -54333,9 +53402,9 @@ Author: Behdad Esfahbod Date: Tue Sep 29 14:45:35 2015 +0100 Add missing returns - + Fixes possible invalid read of two bytes. - + Reported by Behzad Najjarpour Jabbari, Secunia Research. src/hb-ot-layout-gpos-table.hh | 14 +++++++------- @@ -54348,7 +53417,7 @@ Author: Behdad Esfahbod Date: Tue Sep 29 14:34:56 2015 +0100 Micro-optimize hb_language_from_string() - + As measured / improved by Benson Limketkai. src/hb-common.cc | 10 +++++----- @@ -54359,13 +53428,13 @@ Author: Sascha Brawer Date: Sun Jun 28 03:29:47 2015 +0200 Handle language tags that indicate phonetic IPA transcription - + The BCP-47 registry defines a variant subtag "fonipa" that can be used in combination with arbitrary other language tags. For example, "rm-CH-fonipa-sursilv" indicates the Sursilvan dialect of Romansh as used in Switzerland, transcribed used the International Phonetic Alphabet. - + http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry src/hb-ot-tag.cc | 15 ++++++++++++++- @@ -54377,13 +53446,12 @@ Author: Behdad Esfahbod Date: Thu Sep 3 15:53:22 2015 +0430 Fix Since tags - + Fixes https://github.com/behdad/harfbuzz/issues/103 src/hb-blob.cc | 24 +++++++++---------- src/hb-buffer-serialize.cc | 10 ++++---- - src/hb-buffer.cc | 58 - +++++++++++++++++++++++----------------------- + src/hb-buffer.cc | 58 +++++++++++++++++++++++----------------------- src/hb-buffer.h | 9 +++++++ src/hb-common.cc | 24 +++++++++---------- src/hb-common.h | 3 +++ @@ -54404,16 +53472,14 @@ Author: Behdad Esfahbod Date: Thu Sep 3 14:55:59 2015 +0430 Fix Since: version tags on font and face APIs - - A while back we marked every API as version:1.0. We should fix - them all + + A while back we marked every API as version:1.0. We should fix them all to reflect real version they were introduced. This is a start. - + Patch from Nikolay Sivov. src/hb-face.cc | 22 ++++++++--------- - src/hb-font.cc | 76 - +++++++++++++++++++++++++++++----------------------------- + src/hb-font.cc | 76 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 49 insertions(+), 49 deletions(-) commit 7f5405397406a24c5a001b5ef43dcf4d6926415e @@ -54476,7 +53542,7 @@ Author: Behdad Esfahbod Date: Tue Sep 1 16:15:25 2015 +0100 [myanmar] Use buffer->sort() to sort cluster - + This can possibly produce more granular clusters. src/hb-ot-shape-complex-myanmar.cc | 3 +-- @@ -54487,7 +53553,7 @@ Author: Behdad Esfahbod Date: Tue Sep 1 16:13:32 2015 +0100 [OT] Merge clusters when reordering marks for normalization - + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=541608 and cluster test. @@ -54501,12 +53567,11 @@ Author: Behdad Esfahbod Date: Tue Sep 1 16:12:44 2015 +0100 [tests] Add Hebrew test for normalization under cluster-level=1 - + Currently fails. https://bugzilla.gnome.org/show_bug.cgi?id=541608 - .../sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf | Bin 0 -> - 4272 bytes + .../sha1sum/43ef465752be9af900745f72fe29cb853a1401a5.ttf | Bin 0 -> 4272 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/cluster.tests | 1 + 3 files changed, 2 insertions(+) @@ -54525,7 +53590,7 @@ Author: Behdad Esfahbod Date: Tue Sep 1 15:07:52 2015 +0100 Use insertion-sort instead of bubble-sort - + Needed for upcoming merge-clusters fix. src/hb-buffer.cc | 4 +-- @@ -54533,8 +53598,7 @@ Date: Tue Sep 1 15:07:52 2015 +0100 src/hb-ot-shape-complex-indic.cc | 2 +- src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-normalize.cc | 6 ++-- - src/hb-private.hh | 56 - +++++++++++++----------------- + src/hb-private.hh | 56 +++++++++++++----------------- 6 files changed, 34 insertions(+), 42 deletions(-) commit fad2674874591b4a1df822603144c8864f5364c1 @@ -54564,13 +53628,11 @@ Date: Mon Aug 31 19:18:10 2015 +0100 [docs] Move docs/reference/ contents into docs/ configure.ac | 3 +- - docs/Makefile.am | 117 - ++++++++++++++++++++++++++- + docs/Makefile.am | 117 ++++++++++++++++++++++++++- docs/{reference => }/harfbuzz-docs.xml | 0 docs/{reference => }/harfbuzz-overrides.txt | 0 docs/{reference => }/harfbuzz-sections.txt | 0 - docs/reference/Makefile.am | 118 - ---------------------------- + docs/reference/Makefile.am | 118 ---------------------------- docs/{reference => }/usermanual-ch01.xml | 0 docs/{reference => }/usermanual-ch02.xml | 0 docs/{reference => }/usermanual-ch03.xml | 0 @@ -54602,7 +53664,7 @@ Author: Behdad Esfahbod Date: Mon Aug 31 10:46:01 2015 +0100 Merge pull request #131 from simoncozens/docs - + Use gtk-doc to build user's manual as well as reference commit 01e16e88f50b65b82dcb84773f532f18a351319f @@ -54611,8 +53673,7 @@ Date: Mon Aug 31 10:40:17 2015 +0100 Combine user / reference information into gtk-doc generated manual. - docs/reference/harfbuzz-docs.xml | 91 - +++++++++++++++++++++++----------------- + docs/reference/harfbuzz-docs.xml | 91 +++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 39 deletions(-) commit 11a07c4729174e1d4af028103ecb0a351e4c2707 @@ -54652,7 +53713,7 @@ Author: Behdad Esfahbod Date: Mon Aug 31 09:53:16 2015 +0100 Merge pull request #129 from simoncozens/docs - + First two chapters. More to follow. commit 31594b98af0c9181982c77d8d3803753007f8fd4 @@ -54660,7 +53721,7 @@ Author: Behdad Esfahbod Date: Sun Aug 30 17:33:04 2015 +0100 [test] Fix test-object - + See previous commit. test/api/test-object.c | 4 ---- @@ -54671,19 +53732,14 @@ Author: Behdad Esfahbod Date: Sun Aug 30 17:29:21 2015 +0100 Poison freed objects such that double-free is detected - - Previously we were setting refcount of freed objects to the inert - value, which - was harmful because it caused further destroy()s of the freed object - to NOT - call free() and hence hide the bug. Indeed, after eb0bf3ae6688b7 - test-object - was double-free'ing objects and this was never caught on Linux. - It only was + + Previously we were setting refcount of freed objects to the inert value, which + was harmful because it caused further destroy()s of the freed object to NOT + call free() and hence hide the bug. Indeed, after eb0bf3ae6688b7 test-object + was double-free'ing objects and this was never caught on Linux. It only was caught as crashing on Mac. - - Now we poison refcount upon freeing and check that it's valid - whenever reading + + Now we poison refcount upon freeing and check that it's valid whenever reading it. Makes test-object fail now. src/hb-object-private.hh | 21 ++++++++++++++++----- @@ -54695,8 +53751,7 @@ Date: Sat Aug 29 08:21:18 2015 +0100 Current state and skeleton outline - docs/usermanual-ch03.xml | 77 - ++++++++++++++++++++++++++++++++++++++++++++++++ + docs/usermanual-ch03.xml | 77 ++++++++++++++++++++++++++++++++++++++++++++++++ docs/usermanual-ch04.xml | 18 +++++++++++ docs/usermanual-ch05.xml | 13 ++++++++ docs/usermanual-ch06.xml | 8 +++++ @@ -54707,7 +53762,7 @@ Author: Behdad Esfahbod Date: Tue Aug 25 20:24:59 2015 +0100 [GPOS] Fix cursive connection with mix of RTL and non-RTL lookups - + See thread "Issue with cursive attachment" started by Khaled. Turned out fixing this wasn't as bad as I had assumed. I like the new code better; we now have a theoretical model of cursive @@ -54721,17 +53776,15 @@ Author: Behdad Esfahbod Date: Tue Aug 25 20:28:39 2015 +0100 [test] Add test for cursive-positioning with mixed directions - + Fails now. Fix coming. See thread "Issue with cursive attachment" started by Khaled. Test fonts were made by modifying test font from Khaled to add more anchors. test/shaping/Makefile.am | 1 + - .../sha1sum/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf | Bin 0 -> - 2520 bytes + .../sha1sum/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf | Bin 0 -> 2520 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - .../sha1sum/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf | Bin 0 -> - 2512 bytes + .../sha1sum/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf | Bin 0 -> 2512 bytes test/shaping/tests/MANIFEST | 1 + test/shaping/tests/cursive-positioning.tests | 2 ++ 6 files changed, 6 insertions(+) @@ -54743,8 +53796,7 @@ Date: Tue Aug 25 19:57:15 2015 +0100 First two chapters. More to follow. docs/usermanual-ch01.xml | 115 ++++++++++++++++++++++++++++++ - docs/usermanual-ch02.xml | 182 - +++++++++++++++++++++++++++++++++++++++++++++++ + docs/usermanual-ch02.xml | 182 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 297 insertions(+) commit 58f2a73fb95af42e264a91cdef7bb5a89e965601 @@ -54752,7 +53804,7 @@ Author: Behdad Esfahbod Date: Tue Aug 25 18:55:34 2015 +0100 [GPOS] Rewrite cursive attachment slightly differently - + In anticipation for upcoming fix for bug reported by Khaled in thread "Issue with cursive attachment". @@ -54764,11 +53816,11 @@ Author: Behdad Esfahbod Date: Mon Aug 24 13:49:55 2015 +0100 Add API/cmdline to show glyph extents when serializing buffer - + New API: HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS - + hb-shape now accepts --show-extents. - + Patch from Simon Cozens. src/hb-buffer-serialize.cc | 17 +++++++++++++++++ @@ -54792,15 +53844,14 @@ Author: Behdad Esfahbod Date: Sun Aug 23 14:42:20 2015 +0100 [ot-font] Implement glyph_extents() for TrueType fonts - + This brings ot-fonts into almost-complete shape and mostly in par with ft font. src/Makefile.am | 1 + src/hb-font.h | 9 +++-- src/hb-ot-font.cc | 90 +++++++++++++++++++++++++++++++++++++++-- - src/hb-ot-glyf-table.hh | 104 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-glyf-table.hh | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-head-table.hh | 3 +- 5 files changed, 198 insertions(+), 9 deletions(-) @@ -54818,7 +53869,7 @@ Author: Behdad Esfahbod Date: Thu Aug 20 15:39:53 2015 +0100 [coretext] Use i32 instead of u32 as well - + Shouldn't cause *any* functional changes, but is more correct. src/hb-coretext.cc | 20 ++++++++++---------- @@ -54829,7 +53880,7 @@ Author: Behdad Esfahbod Date: Thu Aug 20 15:39:06 2015 +0100 [uniscribe] Fix negative offsets - + Ouch! src/hb-uniscribe.cc | 8 ++++---- @@ -54859,7 +53910,7 @@ Author: Behdad Esfahbod Date: Wed Aug 19 13:20:31 2015 +0100 [uniscribe] Fix font scale handling - + By default shape at upem (or ppem), and scale results. Similar to work done in CoreText backend, but using upem as default. @@ -54871,7 +53922,7 @@ Author: Behdad Esfahbod Date: Tue Aug 18 18:55:03 2015 +0100 Commented-out code to print buffer before each lookup - + To be turned into a useful HB_DEBUG_SHAPE infrastructure... src/hb-ot-layout.cc | 12 ++++++++++++ @@ -54882,7 +53933,7 @@ Author: Behdad Esfahbod Date: Tue Aug 18 18:47:02 2015 +0100 Allow serializing buffer with output-buffer being used - + Ie, don't call get_positions() if positions are not requested for serialization. @@ -54894,7 +53945,7 @@ Author: Behdad Esfahbod Date: Tue Aug 18 18:42:47 2015 +0100 [ot] Change buffer content type right after we map to glyphs - + Needed for upcoming debug output changes. src/hb-ot-shape.cc | 2 ++ @@ -54914,7 +53965,7 @@ Author: Behdad Esfahbod Date: Tue Aug 18 15:55:09 2015 +0100 Don't declare dependency on freetype in harfbuzz.pc - + See comments. src/Makefile.am | 7 ++++++- @@ -54937,7 +53988,7 @@ Author: Behdad Esfahbod Date: Tue Aug 18 10:22:16 2015 +0100 [coretext] Remove assert that kicks in on Mac OS 10.6 - + http://crbug.com/419769 src/hb-coretext.cc | 18 ++++++++++++++---- @@ -54973,7 +54024,7 @@ Author: Behdad Esfahbod Date: Tue Aug 11 12:58:49 2015 +0200 Add Libs.private and Requires.private to harfbuzz.pc - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=64501 configure.ac | 12 +++++++++--- @@ -54986,7 +54037,7 @@ Author: jfkthame Date: Fri Aug 7 17:55:03 2015 +0100 Don't rely on .cluster in _hb_ot_shape_normalize() - + Fixes https://github.com/behdad/harfbuzz/pull/124 src/hb-ot-shape-normalize.cc | 2 +- @@ -54997,9 +54048,9 @@ Author: jfkthame Date: Fri Aug 7 17:51:28 2015 +0100 Don't rely on .cluster field in fallback_position - + Fixes tests/cluster. - + Fixes https://github.com/behdad/harfbuzz/pull/123 src/hb-ot-shape-fallback.cc | 5 ++--- @@ -55010,13 +54061,12 @@ Author: Behdad Esfahbod Date: Sat Aug 8 18:02:18 2015 +0200 [tests] Add test for fallback positioning with cluster_level > 0 - + For https://github.com/behdad/harfbuzz/pull/123 Currently fails. Fix coming. test/shaping/Makefile.am | 1 + - .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 0 -> - 824 bytes + .../sha1sum/6466d38c62e73a39202435a4f73bf5d6acbb73c0.ttf | Bin 0 -> 824 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/cluster.tests | 1 + @@ -55026,9 +54076,8 @@ commit bd22a5cfae24b3b9253bccaeb139e698e74cd0c3 Author: Behdad Esfahbod Date: Fri Aug 7 11:13:27 2015 +0200 - Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files - specified/created... - + Bug 91559 - HarfBuzz 1.0.1: Inconsistent DLL files specified/created... + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=91559 src/Makefile.am | 2 +- @@ -55040,7 +54089,7 @@ Author: Behdad Esfahbod Date: Mon Aug 3 22:47:18 2015 +0300 Merge pull request #122 from RomainNaour/static-fix - + fix static linking with icu-uc commit 160f635523d596f61e292776f638d4eb09673463 @@ -55048,14 +54097,14 @@ Author: Romain Naour Date: Wed Jul 22 23:26:23 2015 +0200 fix static linking with icu-uc - + When linking test-unicode statically it needs $(ICU_LIBS) which contains all required flags. Especially -lstdc++. - + Fixes: http://autobuild.buildroot.net/results/210/2107f9dfb39eeb6559fb4271c7af8b39aef521ca/ - + Signed-off-by: Romain Naour test/api/Makefile.am | 2 +- @@ -55122,15 +54171,13 @@ Author: Grigori Goronzy Date: Wed Jul 8 23:28:11 2015 +0200 Update UCDN to upstream commit 8af93f30 - - This adds support for Unicode 8.0 and fixes a bug with wrong - properties + + This adds support for Unicode 8.0 and fixes a bug with wrong properties for ranges of codepoints. src/hb-ucdn.cc | 6 + src/hb-ucdn/ucdn.h | 6 + - src/hb-ucdn/unicodedata_db.h | 2167 - +++++++++++++++++++++--------------------- + src/hb-ucdn/unicodedata_db.h | 2167 +++++++++++++++++++++--------------------- 3 files changed, 1118 insertions(+), 1061 deletions(-) commit 786ba45847127b9cd4d9c0c01ae0e6c61f3a8e06 @@ -55138,11 +54185,10 @@ Author: Behdad Esfahbod Date: Thu Jul 23 13:04:34 2015 +0100 [test] Encode Kharoshti text - + Ouch! - .../in-tree/shaper-use/script-kharoshti/misc.txt | 72 - +++++++++++----------- + .../in-tree/shaper-use/script-kharoshti/misc.txt | 72 +++++++++++----------- 1 file changed, 36 insertions(+), 36 deletions(-) commit b4231255032e243153a6f32cf8c93c158cb0bf6a @@ -55155,8 +54201,7 @@ Date: Thu Jul 23 13:01:55 2015 +0100 .../texts/in-tree/shaper-use/script-batak/MANIFEST | 1 + .../texts/in-tree/shaper-use/script-batak/misc.txt | 9 +++ .../in-tree/shaper-use/script-buginese/MANIFEST | 1 + - .../in-tree/shaper-use/script-buginese/misc.txt | 70 - ++++++++++++++++++++++ + .../in-tree/shaper-use/script-buginese/misc.txt | 70 ++++++++++++++++++++++ 5 files changed, 83 insertions(+) commit b8c159ffccad090974a2b97be0a0140fa09af132 @@ -55165,26 +54210,16 @@ Date: Thu Jul 23 12:59:17 2015 +0100 [test] Remove shaper-sea texts under shaper-use - test/shaping/texts/in-tree/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/MANIFEST | - 2 -- - test/shaping/texts/in-tree/shaper-sea/script-cham/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-tai-tham/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-use/MANIFEST | - 2 ++ - .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/MANIFEST - | 0 - .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/misc.txt - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/MANIFEST - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/misc.txt - | 0 - .../script-tai-tham/misc => shaper-use/script-tai-tham}/torture.txt - | 0 + test/shaping/texts/in-tree/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/MANIFEST | 2 -- + test/shaping/texts/in-tree/shaper-sea/script-cham/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/script-tai-tham/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-use/MANIFEST | 2 ++ + .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/MANIFEST | 0 + .../{shaper-sea/script-cham/misc => shaper-use/script-cham}/misc.txt | 0 + .../script-tai-tham/misc => shaper-use/script-tai-tham}/MANIFEST | 0 + .../script-tai-tham/misc => shaper-use/script-tai-tham}/misc.txt | 0 + .../script-tai-tham/misc => shaper-use/script-tai-tham}/torture.txt | 0 10 files changed, 2 insertions(+), 5 deletions(-) commit 67ba7320cc5545baeacfcff64cea338223b9bd6d @@ -55192,17 +54227,13 @@ Author: Behdad Esfahbod Date: Thu Jul 23 12:58:21 2015 +0100 [test] Remove New Tai Lue texts - + New Tai Lue changed encoding to visual, boring, model. - test/shaping/texts/in-tree/shaper-sea/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/MANIFEST | - 1 - - test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/misc.txt | - 1 - + test/shaping/texts/in-tree/shaper-sea/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/script-new-tai-lue/misc/misc.txt | 1 - 4 files changed, 4 deletions(-) commit c81d957a264539dfe3252f9a94ee066c4a44edf4 @@ -55212,8 +54243,7 @@ Date: Thu Jul 23 12:50:48 2015 +0100 [test] Add tests for improved 'vert' feature test/shaping/Makefile.am | 1 + - .../sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf | Bin 0 -> - 2140 bytes + .../sha1sum/191826b9643e3f124d865d617ae609db6a2ce203.ttf | Bin 0 -> 2140 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/vertical.tests | 1 + @@ -55224,7 +54254,7 @@ Author: Behdad Esfahbod Date: Thu Jul 23 12:49:09 2015 +0100 [test] Add recently added test - + Ouch. test/shaping/Makefile.am | 1 + @@ -55236,8 +54266,7 @@ Date: Thu Jul 23 12:14:03 2015 +0100 [test] Support additional options to hb-shape in micro-test suite - test/shaping/record-test.sh | 47 - ++++++++++++++++++---- + test/shaping/record-test.sh | 47 ++++++++++++++++++---- test/shaping/run-tests.sh | 9 ++++- test/shaping/tests/arabic-fallback-shaping.tests | 2 +- test/shaping/tests/arabic-feature-order.tests | 6 +-- @@ -55255,9 +54284,8 @@ commit 0f98fe88f42471eb8fb28d08d45eca9cd8303f7a Author: Behdad Esfahbod Date: Thu Jul 23 11:52:11 2015 +0100 - [ot] Search globally for 'vert' feature if not found in specified - script/lang - + [ot] Search globally for 'vert' feature if not found in specified script/lang + Fixes https://github.com/behdad/harfbuzz/issues/63 src/hb-ot-layout-private.hh | 9 +++++++++ @@ -55309,8 +54337,7 @@ Date: Wed Jul 22 18:44:59 2015 +0100 Add test case for deleting default ignorables with positioning - .../sha1sum/051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin 0 -> - 2028 bytes + .../sha1sum/051d92f8bc6ff724511b296c27623f824de256e9.ttf | Bin 0 -> 2028 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/default-ignorables.tests | 1 + @@ -55320,9 +54347,8 @@ commit 8cfbc304ee563ec96e402beed34b10b6c0950a6a Author: Behdad Esfahbod Date: Wed Jul 22 18:41:10 2015 +0100 - Fix hide-default-ignorables after - f0010dfd01ef4a927b0bdc175dd4e343a8637174 - + Fix hide-default-ignorables after f0010dfd01ef4a927b0bdc175dd4e343a8637174 + We can't delete things before hb_ot_layout_position_finish(). So, just zero the advance before it, and remove later. @@ -55334,13 +54360,12 @@ Author: Behdad Esfahbod Date: Wed Jul 22 18:28:39 2015 +0100 Fix hide-ignorables if font doesn't have space glyph - + Was broken by 82b521aeb7cc73879b44ca4278d6fa8b4347527f, as we have positioning data by then and can't use the output buffer. Ouch! src/hb-buffer-private.hh | 18 ------------------ - src/hb-ot-shape.cc | 44 - +++++++++++++++++++++++++++++++++++--------- + src/hb-ot-shape.cc | 44 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 35 insertions(+), 27 deletions(-) commit 4ba796b26ee62de0d2830a550f3aa3b4aecf6f59 @@ -55359,16 +54384,15 @@ Author: Behdad Esfahbod Date: Wed Jul 22 17:36:23 2015 +0100 [ot] Hide default-ignorables before finishing off positioning - + For example, fixes the following sequence with Arial XP: 628 25cc 651 25cc 64e 3a 20 628 651 34f 64e 628 25cc 64e 25cc 651 3a 20 628 64e 34f 651 - + Discovered as part of: https://bugs.freedesktop.org/show_bug.cgi?id=85873 - src/hb-ot-shape.cc | 125 - +++++++++++++++++++++++++++-------------------------- + src/hb-ot-shape.cc | 125 +++++++++++++++++++++++++++-------------------------- 1 file changed, 63 insertions(+), 62 deletions(-) commit 376d587f36b4ff10342ee6ca3bacd73532ea44c8 @@ -55376,15 +54400,14 @@ Author: Behdad Esfahbod Date: Wed Jul 22 16:51:12 2015 +0100 Implement more granular cluster-merging - + TODO: Documentation. - + Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71445 NEWS | 8 +++++++ src/hb-buffer-private.hh | 1 + - src/hb-buffer.cc | 46 - ++++++++++++++++++++++++++++++++++----- + src/hb-buffer.cc | 46 ++++++++++++++++++++++++++++++++++----- src/hb-buffer.h | 12 ++++++++++ src/hb-ot-shape-complex-hangul.cc | 13 +++++------ src/hb-ot-shape.cc | 7 ++++++ @@ -55416,8 +54439,7 @@ commit 7b8b63adc5e0389fc4cf2720ef7e5804ab6c29cc Author: Behdad Esfahbod Date: Wed Jul 22 15:24:26 2015 +0100 - [ot] Don't mirror character if font doesn't support mirrored - character! + [ot] Don't mirror character if font doesn't support mirrored character! src/hb-ot-shape.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -55427,11 +54449,10 @@ Author: Behdad Esfahbod Date: Wed Jul 22 14:28:25 2015 +0100 [graphite2] Fix bunch of stuff - + Based on patch from Martin Hosken, with review from Jonathan and I. - src/hb-graphite2.cc | 82 - +++++++++++++++++++++++++++++++++++------------------ + src/hb-graphite2.cc | 82 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 28 deletions(-) commit ea7f8414e34d4b5efc7b98974637c08f75440f0e @@ -55448,12 +54469,11 @@ Author: Behdad Esfahbod Date: Wed Jul 22 13:27:06 2015 +0100 [USE] Implement topographical features for non-Arabic-joining scripts - + This works per-syllable as per the spec, but we think it should be per spacing/base/??? glyph instead. - src/hb-ot-shape-complex-use.cc | 87 - ++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-shape-complex-use.cc | 87 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 7 deletions(-) commit ecb0b24ef3f8177e7c789f45a2e858bd67e31be3 @@ -55462,8 +54482,7 @@ Date: Wed Jul 22 12:02:09 2015 +0100 Use foreach_cluster in Indic shaper - src/hb-ot-shape-complex-indic.cc | 90 - +++++++++------------------------------- + src/hb-ot-shape-complex-indic.cc | 90 +++++++++------------------------------- 1 file changed, 19 insertions(+), 71 deletions(-) commit 56f71ff98890fc4fd13e8d9743dc34c4b9407309 @@ -55472,8 +54491,7 @@ Date: Wed Jul 22 11:58:11 2015 +0100 Use foreach_syllable in Myanmar shaper - src/hb-ot-shape-complex-myanmar.cc | 62 - ++++++++------------------------------ + src/hb-ot-shape-complex-myanmar.cc | 62 ++++++++------------------------------ 1 file changed, 12 insertions(+), 50 deletions(-) commit ac596511a8c9eeaeb455ca16b5b9c5f1b9923b3a @@ -55481,12 +54499,11 @@ Author: Behdad Esfahbod Date: Wed Jul 22 11:54:02 2015 +0100 Add foreach_syllable - + Use it in USE. src/hb-ot-layout-private.hh | 24 ++++++++ - src/hb-ot-shape-complex-use.cc | 129 - +++++++++++++---------------------------- + src/hb-ot-shape-complex-use.cc | 129 +++++++++++++---------------------------- 2 files changed, 64 insertions(+), 89 deletions(-) commit 8ba9e689680f7685c04cfe7c6019222bdf0c52b0 @@ -55495,8 +54512,7 @@ Date: Wed Jul 22 11:16:01 2015 +0100 [USE] Do Arabic-like shaping - src/hb-ot-shape-complex-use.cc | 77 - ++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-shape-complex-use.cc | 77 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) commit 9daf2dfb6bd5683fd951bdf166c8b87938257e52 @@ -55506,8 +54522,7 @@ Date: Wed Jul 22 10:32:30 2015 +0100 Add hb-ot-shape-complex-arabic-private.hh src/Makefile.am | 1 + - src/hb-ot-shape-complex-arabic-private.hh | 50 - +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic-private.hh | 50 +++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-arabic.cc | 37 +++++++++++++---------- 3 files changed, 73 insertions(+), 15 deletions(-) @@ -55525,7 +54540,7 @@ Author: Behdad Esfahbod Date: Tue Jul 21 18:09:40 2015 +0100 [USE] Don't compose split matras - + Same logic as in Indic shaper. src/hb-ot-shape-complex-use.cc | 15 ++++++++++++++- @@ -55539,8 +54554,7 @@ Date: Tue Jul 21 17:47:06 2015 +0100 src/Makefile.am | 4 - src/hb-ot-shape-complex-sea-machine.rl | 102 --------- - src/hb-ot-shape-complex-sea.cc | 380 - --------------------------------- + src/hb-ot-shape-complex-sea.cc | 380 --------------------------------- 3 files changed, 486 deletions(-) commit db1e9cdd41ff7c97c29b4d9b64b2351ed0ef0403 @@ -55557,7 +54571,7 @@ Author: Behdad Esfahbod Date: Tue Jul 21 17:31:43 2015 +0100 [USE] Only use USE shaper if script system is not DFLT - + Same logic as Indic and SEA. src/hb-ot-shape-complex-private.hh | 13 ++++++++++--- @@ -55568,15 +54582,12 @@ Author: Behdad Esfahbod Date: Tue Jul 21 17:24:18 2015 +0100 Route misc untested scripts through USE shaper instead of Indic - - These were never tested with Indic shaper, and indeed wouldn't - work there - because they didn't have their viramas and other config defined. - They are + + These were never tested with Indic shaper, and indeed wouldn't work there + because they didn't have their viramas and other config defined. They are all also supported by MS through USE, so route them there. - src/hb-ot-shape-complex-private.hh | 91 - +++++--------------------------------- + src/hb-ot-shape-complex-private.hh | 91 +++++--------------------------------- 1 file changed, 11 insertions(+), 80 deletions(-) commit 40c4a991c7ea18017273ff8993eecc3953869e69 @@ -55584,7 +54595,7 @@ Author: Behdad Esfahbod Date: Tue Jul 21 17:14:54 2015 +0100 [USE] Implement dotted-circle - + This makes USE feature-complete as far as the Indic-like features are concerned. @@ -55610,8 +54621,7 @@ Date: Tue Jul 21 16:46:37 2015 +0100 [USE] Fix-up variation selectors and word joiner in table src/gen-use-table.py | 7 ++++++- - src/hb-ot-shape-complex-use-table.cc | 34 - +++++++++++++++++++++++----------- + src/hb-ot-shape-complex-use-table.cc | 34 +++++++++++++++++++++++----------- 2 files changed, 29 insertions(+), 12 deletions(-) commit ad7178227f16abc17456f122deac1508031cbbc3 @@ -55621,8 +54631,7 @@ Date: Tue Jul 21 16:43:27 2015 +0100 [USE] Use a couple warnings src/gen-use-table.py | 20 ++++----- - src/hb-ot-shape-complex-use-table.cc | 82 - ++++++++++++++++++------------------ + src/hb-ot-shape-complex-use-table.cc | 82 ++++++++++++++++++------------------ 2 files changed, 51 insertions(+), 51 deletions(-) commit a85c4da9b1750c2f994f9f85226a3e755fafe50b @@ -55631,8 +54640,7 @@ Date: Tue Jul 21 16:07:10 2015 +0100 [USE] Move rphf - src/hb-ot-shape-complex-use.cc | 105 - ++++++++++++++--------------------------- + src/hb-ot-shape-complex-use.cc | 105 ++++++++++++++--------------------------- 1 file changed, 35 insertions(+), 70 deletions(-) commit 5b5617e0664e59770910d04d15175f643a5ffb73 @@ -55640,7 +54648,7 @@ Author: Behdad Esfahbod Date: Tue Jul 21 15:52:15 2015 +0100 Add FLAG_UNSAFE() - + Unused right now. src/hb-private.hh | 1 + @@ -55651,7 +54659,7 @@ Author: Behdad Esfahbod Date: Tue Jul 21 15:50:02 2015 +0100 Add FLAG_SAFE() for values known to be small-enough - + And add check to FLAG() src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -55696,8 +54704,7 @@ Date: Tue Jul 21 14:51:45 2015 +0100 [USE] Use use_category() for rphf/pref memory - src/hb-ot-shape-complex-use.cc | 63 - +++++++++++++++--------------------------- + src/hb-ot-shape-complex-use.cc | 63 +++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 41 deletions(-) commit 595936ec25e9c0924851bd1aa1af5eed3723b54f @@ -55705,12 +54712,11 @@ Author: Behdad Esfahbod Date: Tue Jul 21 14:15:35 2015 +0100 [USE] Hook of rphf and pref custom processing - + Still no reordering. src/hb-ot-layout-private.hh | 8 ++ - src/hb-ot-shape-complex-use.cc | 181 - +++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-shape-complex-use.cc | 181 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 181 insertions(+), 8 deletions(-) commit ba72801325e4bd58f7597938d4409762c9fa530c @@ -55729,8 +54735,7 @@ Date: Tue Jul 21 10:24:32 2015 +0100 [USE] Set up features - src/hb-ot-shape-complex-use.cc | 68 - +++++++++++++++++++++++------------------- + src/hb-ot-shape-complex-use.cc | 68 +++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 30 deletions(-) commit 52a957795697085a5d379921ddd8aa6cf2f1a99d @@ -55738,12 +54743,11 @@ Author: Behdad Esfahbod Date: Tue Jul 21 10:02:04 2015 +0100 [USE] Hook up new scripts to USE shaper - + Don't reroute scripts that we were routing to other shapers before (just yet). - src/hb-ot-shape-complex-private.hh | 71 - ++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-private.hh | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) commit b4c0829bc18b696f140a260fa2e1089d10164519 @@ -55752,8 +54756,7 @@ Date: Tue Jul 21 09:31:19 2015 +0100 [USE] Remove unused Unicode data enums from USE C++ side - src/hb-ot-shape-complex-use-private.hh | 66 - +--------------------------------- + src/hb-ot-shape-complex-use-private.hh | 66 +--------------------------------- src/hb-ot-shape-complex-use.cc | 14 ++------ 2 files changed, 3 insertions(+), 77 deletions(-) @@ -55762,12 +54765,11 @@ Author: Behdad Esfahbod Date: Mon Jul 20 18:01:10 2015 +0100 [USE] Finish converting Unicode positional categories to USE - + Even compiles. src/gen-use-table.py | 114 +++++- - src/hb-ot-shape-complex-use-table.cc | 702 - ++++++++++++++++++----------------- + src/hb-ot-shape-complex-use-table.cc | 702 ++++++++++++++++++----------------- 2 files changed, 467 insertions(+), 349 deletions(-) commit ad725552521273a1f571f04bc96a04221c3e067a @@ -55775,12 +54777,11 @@ Author: Behdad Esfahbod Date: Mon Jul 20 17:00:06 2015 +0100 [USE] Map from Unicode data to USE syllabic categories - + Positional sub-categories not applied yet. src/gen-use-table.py | 128 ++-- - src/hb-ot-shape-complex-use-table.cc | 1062 - ++++++++++++---------------------- + src/hb-ot-shape-complex-use-table.cc | 1062 ++++++++++++---------------------- 2 files changed, 409 insertions(+), 781 deletions(-) commit 20e246e674155d5fb6527722fc3ef3accf2413df @@ -55790,8 +54791,7 @@ Date: Mon Jul 20 15:56:19 2015 +0100 [USE] Start moving Unicode-to-USE mapping into Python code src/Makefile.am | 2 +- - src/gen-use-table.py | 176 - +++++++++++++++++++++++++++++++++-- + src/gen-use-table.py | 176 +++++++++++++++++++++++++++++++++-- src/hb-ot-shape-complex-use-table.cc | 3 +- 3 files changed, 169 insertions(+), 12 deletions(-) @@ -55800,7 +54800,7 @@ Author: Behdad Esfahbod Date: Mon Jul 20 15:33:25 2015 +0100 [USE] Fix Number clusters - + The spec wrongly has "H" where "HN" is meant. src/hb-ot-shape-complex-use-machine.rl | 4 ++-- @@ -55813,8 +54813,7 @@ Date: Mon Jul 20 14:24:55 2015 +0100 [USE] Start putting together the shaper body src/hb-ot-shape-complex-use-private.hh | 2 +- - src/hb-ot-shape-complex-use.cc | 339 - +++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-use.cc | 339 +++++++++++++++++++++++++++++++++ 2 files changed, 340 insertions(+), 1 deletion(-) commit e0eabd7f67462ac34fbfc749d897be478fbd1224 @@ -55822,13 +54821,11 @@ Author: Behdad Esfahbod Date: Mon Jul 20 13:30:51 2015 +0100 [USE] Put a Ragel machine together - + Grammar from the spec! - src/hb-ot-shape-complex-use-machine.rl | 169 - +++++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-use-private.hh | 160 - +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-use-machine.rl | 169 +++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-use-private.hh | 160 +++++++++++++++++++++++++++++++ 2 files changed, 329 insertions(+) commit fd74b939b176f47d34d34b3d33e2a09d255c2d9e @@ -55859,8 +54856,7 @@ Date: Mon Jul 20 11:57:44 2015 +0100 test/shaping/texts/in-tree/MANIFEST | 1 + test/shaping/texts/in-tree/shaper-use/MANIFEST | 1 + .../in-tree/shaper-use/script-kharoshti/MANIFEST | 1 + - .../in-tree/shaper-use/script-kharoshti/misc.txt | 36 - ++++++++++++++++++++++ + .../in-tree/shaper-use/script-kharoshti/misc.txt | 36 ++++++++++++++++++++++ 4 files changed, 39 insertions(+) commit c48ff288522f33dc6c78520de0a0a74306630895 @@ -55870,8 +54866,7 @@ Date: Mon Jul 20 11:46:17 2015 +0100 [USE] Build Universal Shaping Engine data table from Unicode 8 files src/gen-use-table.py | 35 +- - src/hb-ot-shape-complex-use-table.cc | 1016 - ++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-use-table.cc | 1016 ++++++++++++++++++++++++++++++++++ 2 files changed, 1032 insertions(+), 19 deletions(-) commit e2c95116e1423f83a692d6170553d0cc95733d24 @@ -55881,8 +54876,7 @@ Date: Mon Jul 20 11:32:48 2015 +0100 [USE] Add Universal Shaping Engine to Makefile src/Makefile.am | 23 +++- - src/gen-use-table.py | 237 - +++++++++++++++++++++++++++++++++ + src/gen-use-table.py | 237 +++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-use-machine.rl | 0 src/hb-ot-shape-complex-use-private.hh | 0 src/hb-ot-shape-complex-use-table.cc | 0 @@ -55903,7 +54897,7 @@ Author: Behdad Esfahbod Date: Wed Jul 15 01:36:39 2015 +0100 Add Unicode 8.0 scripts - + Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1183209 src/hb-common.cc | 3 +++ @@ -55915,16 +54909,15 @@ Author: Behdad Esfahbod Date: Sun Jul 5 22:43:17 2015 +0100 Fix pragma usage - + https://bugs.freedesktop.org/show_bug.cgi?id=91228 - + Commit cdcdfe61b97a0a48ccf834b6d924d187da9609be changed two `#pragma - message` to `#pragma error` in hb-unicode.cc, however MSVC uses - #error, + message` to `#pragma error` in hb-unicode.cc, however MSVC uses #error, just like the #else branch. `#pragma error` is an unknown pragma so MSVC does not fail the build because of it, which I believe was the intention of that commit. - + If it's meant to be an #error, then the #ifdef for _MSC_VER can be removed entirely. @@ -55945,8 +54938,7 @@ commit e0a828ecbd708757d67977f7e92a6f4c1b0b92fd Author: ThePhD Date: Tue Jun 23 09:07:17 2015 -0400 - Back to using regular `strdup`, with an `hb-private.hh` fix that - special-cases VC++'s + Back to using regular `strdup`, with an `hb-private.hh` fix that special-cases VC++'s definition and usage of the words src/hb-common.cc | 2 +- @@ -55975,7 +54967,7 @@ Author: Behdad Esfahbod Date: Fri Jun 19 13:31:49 2015 -0700 When removing default-ignorables, merge clusters - + Fixes test-shape, and: https://code.google.com/p/chromium/issues/detail?id=497578 @@ -55989,15 +54981,14 @@ Author: Behdad Esfahbod Date: Fri Jun 19 11:57:57 2015 -0700 Rewrite hide_default_ignorables - + Separate the loops for the two cases of replacing with space and deleting. For deleting, use the out-buffer machinery. - + Needed for upcoming cluster merge fix. src/hb-buffer-private.hh | 18 ++++++++++++++ - src/hb-ot-shape.cc | 65 - +++++++++++++++++++++++++++++------------------- + src/hb-ot-shape.cc | 65 +++++++++++++++++++++++++++++------------------- 2 files changed, 57 insertions(+), 26 deletions(-) commit b3a2f6afbac1956b65f29a17b9dc896e86135329 @@ -56005,15 +54996,13 @@ Author: Behdad Esfahbod Date: Thu Jun 18 17:15:33 2015 -0700 [test] Add test for cluster merging - - Based on test from - https://code.google.com/p/chromium/issues/detail?id=497578 - + + Based on test from https://code.google.com/p/chromium/issues/detail?id=497578 + Currently fails. Basically, if there's a default_ignorable at the - start of text, and font has no space glyph, we remove the - default_ignorable, + start of text, and font has no space glyph, we remove the default_ignorable, and that makes the first char in text to correspond to no cluster. - + Fix coming. test/api/test-shape.c | 43 +++++++++++++++++++++++++++++++++++++++++++ @@ -56034,7 +55023,7 @@ Author: Behdad Esfahbod Date: Thu Jun 18 10:55:13 2015 -0700 [util] Disable hb-fc-list for now - + Until I figure out what to do about the API, and finalize the tool. @@ -56046,7 +55035,7 @@ Author: Behdad Esfahbod Date: Fri Jun 12 17:46:06 2015 -0700 [bindings] Fix hb_language_get_default() and hb_ot_tag_to_language() - + Part of https://github.com/behdad/harfbuzz/issues/91 src/hb-common.cc | 2 +- @@ -56058,7 +55047,7 @@ Author: Behdad Esfahbod Date: Fri Jun 12 17:37:41 2015 -0700 [TravisCI] Hook up Coverity - + First try... .travis.yml | 13 +++++++++++++ @@ -56078,7 +55067,7 @@ Author: Behdad Esfahbod Date: Wed Jun 10 10:57:46 2015 -0700 Fix warnings: "member call on null pointer of type" - + https://bugzilla.mozilla.org/show_bug.cgi?id=1167119 src/hb-private.hh | 4 ++-- @@ -56108,7 +55097,7 @@ Author: Behdad Esfahbod Date: Mon Jun 1 13:27:37 2015 -0700 Merge pull request #111 from brawer/since - + Fix "Since:" tags commit 01c3a88543850c87483fd8671044df53b368c520 @@ -56116,7 +55105,7 @@ Author: Sascha Brawer Date: Mon Jun 1 13:22:01 2015 +0200 Fix "Since:" tags - + Based on data from http://upstream-tracker.org/versions/harfbuzz.html Resolves #103 @@ -56131,8 +55120,7 @@ Date: Mon Jun 1 13:22:01 2015 +0200 src/hb-ot-font.cc | 3 +++ src/hb-ot-layout.cc | 30 ++++++++++++++++++++++++++++ src/hb-ot-shape.cc | 6 ++++++ - src/hb-set.cc | 52 - ++++++++++++++++++++++++------------------------ + src/hb-set.cc | 52 ++++++++++++++++++++++++------------------------ src/hb-shape-plan.cc | 18 ++++++++--------- src/hb-shape.cc | 8 ++++---- src/hb-unicode.cc | 6 +++--- @@ -56144,15 +55132,14 @@ Author: Behdad Esfahbod Date: Thu May 21 14:00:15 2015 -0700 Fix unary minus operator applied to unsigned int - + Applying unary minus operator to unsigned int causes the following warning on MSVS: - - warning C4146: unary minus operator applied to unsigned type, - result still unsigned - + + warning C4146: unary minus operator applied to unsigned type, result still unsigned + Based on patch from Koji Ishi. - + Fixes https://github.com/behdad/harfbuzz/pull/110 src/hb-ot-font.cc | 2 +- @@ -56163,16 +55150,15 @@ Author: Behdad Esfahbod Date: Tue May 19 17:42:30 2015 -0700 [gobject] Remove hb_language_t workarounds for g-i shortcomings - + Using latest gobject-introspection, I don't seem to be having this problem anymore: - + https://bugzilla.gnome.org/show_bug.cgi?id=707656 - - Removing that kludge makes language_t behave more like the way I - expect it + + Removing that kludge makes language_t behave more like the way I expect it in Python. - + Also fixes: https://github.com/behdad/harfbuzz/issues/91 @@ -56185,11 +55171,10 @@ Author: Behdad Esfahbod Date: Tue May 19 17:20:58 2015 -0700 [gobject] Macroize value types - + Fixes user_data_t - src/hb-gobject-structs.cc | 73 - +++++++++++------------------------------------ + src/hb-gobject-structs.cc | 73 +++++++++++------------------------------------ 1 file changed, 17 insertions(+), 56 deletions(-) commit 9df099b4837df722e738675af318efcc9ac39a78 @@ -56216,7 +55201,7 @@ Author: Behdad Esfahbod Date: Thu May 7 10:46:42 2015 -0700 Merge pull request #105 from ebraminio/master - + Fix Travis CI config to pass again commit 74139f9839f69ea3e7a1d17627f52fea6c06d58a @@ -56242,7 +55227,7 @@ Author: Roozbeh Pournader Date: Tue May 5 22:31:19 2015 -0700 [minor] Remove comment about Navajo OpenType code. - + Apparently the code is already standardized: https://www.microsoft.com/typography/otspec/languagetags.htm @@ -56255,7 +55240,7 @@ Author: Behdad Esfahbod Date: Tue May 5 14:49:47 2015 -0700 Merge pull request #102 from roozbehp/master - + Add OpenType language tag 'NAV ' for Navajo. commit c60f3c8e1156fe7328d42851013cca97333c3bf7 @@ -56272,7 +55257,7 @@ Author: Behdad Esfahbod Date: Mon May 4 23:09:51 2015 -0700 [travis] Comment out gobject-introspection again - + Apparently the version on Travis is 1.32.0, while we require 1.34.0. .travis.yml | 4 ++-- @@ -56301,12 +55286,11 @@ Author: Khaled Hosny Date: Wed Jan 8 02:28:55 2014 +0200 Some attempt into initial hb-shape documentation - + Very anaemic, needs to descripe the format understood by hb_feature_from_string() etc., but it is just start. - src/hb-shape.cc | 70 - ++++++++++++++++++++++++++++++++++++++------------------- + src/hb-shape.cc | 70 ++++++++++++++++++++++++++++++++++++++------------------- src/hb-shape.h | 3 --- 2 files changed, 47 insertions(+), 26 deletions(-) @@ -56325,7 +55309,7 @@ Author: Roozbeh Pournader Date: Wed Apr 29 09:32:42 2015 -0700 Add OpenType language tag 'NAV ' for Navajo. - + The code is not standardized yet, but is used in some Google fonts. src/hb-ot-tag.cc | 1 + @@ -56354,7 +55338,7 @@ Author: Behdad Esfahbod Date: Thu Apr 23 14:32:33 2015 -0700 [test] Ignor 'n' and 'i' in hb-unicode-encode - + Allows accepting uniXXXX format. test/shaping/hb_test_tools.py | 2 +- @@ -56374,7 +55358,7 @@ Author: Behdad Esfahbod Date: Tue Apr 21 19:21:32 2015 -0700 [coretext] Fix positioning with trailing whitespace - + Fixes https://code.google.com/p/chromium/issues/detail?id=476913 src/hb-coretext.cc | 11 +++++++++++ @@ -56394,9 +55378,9 @@ Author: Behdad Esfahbod Date: Tue Apr 14 13:32:22 2015 -0700 Revert "Add MSVC pragma for UTF-8 source code" - + This reverts commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59. - + See discussion: https://bugzilla.gnome.org/show_bug.cgi?id=747772 @@ -56418,7 +55402,7 @@ Author: Behdad Esfahbod Date: Mon Apr 13 23:40:35 2015 -0700 Merge pull request #86 from cpfair/hb-shape-output-help-improvement - + Improve hb-shape/hb-view's help text w.r.t. output options commit 89cbd4d9533011fb5487caa99a0cd58923e7cf59 @@ -56426,7 +55410,7 @@ Author: Behdad Esfahbod Date: Mon Apr 13 12:27:08 2015 -0700 Add MSVC pragma for UTF-8 source code - + Not sure we have any right now; motivated by this: https://bugzilla.gnome.org/show_bug.cgi?id=747772 @@ -56439,7 +55423,7 @@ Author: Behdad Esfahbod Date: Fri Apr 10 14:34:05 2015 -0700 Merge pull request #99 from khaledhosny/introspection-fixes2 - + More ntrospection fixes commit 22524a514f6609a2bc009b6035f6b5b932c719c7 @@ -56447,7 +55431,7 @@ Author: Khaled Hosny Date: Fri Apr 10 18:14:45 2015 +0200 [bindings] Fix hb_buffer_get_segment_properties - + Annotate the output parameter. src/hb-buffer.cc | 2 +- @@ -56466,7 +55450,7 @@ Author: Behdad Esfahbod Date: Fri Apr 10 12:19:57 2015 -0700 Merge pull request #98 from KonstantinRitt/WEC2013 - + Fix build on WEC2013 commit 04f89e8f7dfdb882e8c98afb613cba3f1d02ed7d @@ -56474,7 +55458,7 @@ Author: Khaled Hosny Date: Fri Apr 10 17:49:01 2015 +0200 [bindings] Fix ownership of returned hb_language_t - + It should not be freed by the caller. src/hb-buffer.cc | 2 +- @@ -56486,7 +55470,7 @@ Author: Konstantin Ritt Date: Fri Apr 10 17:18:01 2015 +0400 Fix build on WEC2013 - + Based on patch from Björn Breitmeyer src/hb-private.hh | 4 +++- @@ -56497,15 +55481,14 @@ Author: Behdad Esfahbod Date: Wed Aug 6 16:49:51 2014 -0400 [utils] Add hb-fc-list - + This is a tool that lists all fonts that can render a given string. It uses hb_shape() to do so, and as such is aware of HarfBuzz's normalizer. configure.ac | 19 +++++ util/Makefile.am | 15 ++++ - util/hb-fc-list.c | 222 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + util/hb-fc-list.c | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ util/hb-fc.cc | 149 ++++++++++++++++++++++++++++++++++++ util/hb-fc.h | 46 +++++++++++ 5 files changed, 451 insertions(+) @@ -56515,14 +55498,14 @@ Author: Behdad Esfahbod Date: Wed Aug 6 15:36:41 2014 -0400 Relax inert checks - + Previously, when creating an object from inert inputs (eg: "hb_font_create(hb_face_get_empty())") we returned the inert empty object. This is not helpful as there are legitimate usecases to do that. - + We now never return the inert object unless allocation failed. - + Tests are revised to reflect. src/hb-face.cc | 4 ++-- @@ -56538,8 +55521,7 @@ Date: Thu Apr 9 15:52:26 2015 -0700 [util/hb-view] Fix rendering with all combinations of negative scales - util/view-cairo.cc | 90 - ++++++++++++++++++++++++++++-------------------------- + util/view-cairo.cc | 90 ++++++++++++++++++++++++++++-------------------------- util/view-cairo.hh | 2 -- 2 files changed, 47 insertions(+), 45 deletions(-) @@ -56556,11 +55538,10 @@ commit a664810e38b479e05ea32cac263cb5730629f9d8 Author: Behdad Esfahbod Date: Thu Apr 9 15:04:42 2015 -0700 - [util] Accept comma as well as space when separating components - of args - + [util] Accept comma as well as space when separating components of args + Applies to --font-size and --margin. - + Hopefully the scanf usage here doesn't have compatibility issues (star being counted in the return value, etc). @@ -56599,7 +55580,7 @@ Author: Behdad Esfahbod Date: Wed Apr 8 14:39:00 2015 -0700 Fix warnings - + Part of https://github.com/behdad/harfbuzz/pull/68 src/hb-ot-font.cc | 4 ++-- @@ -56611,7 +55592,7 @@ Author: Behdad Esfahbod Date: Wed Apr 8 13:25:04 2015 -0700 Err, instead of warn, if mutex / atomic / unicode funcs are missing - + Hopefully this results in fewer badly built HarfBuzz integrations. src/hb-unicode.cc | 8 ++++---- @@ -56633,17 +55614,16 @@ Author: Konstantin Ritt Date: Sat Mar 28 00:49:33 2015 +0400 Minor refactoring to the atomics implementation - + s/atomic_int/atomic_int_impl/ and s/atomic_ptr/atomic_ptr_impl/ to bring it in par with hb_mutex_impl_t, then re-introduce hb_atomic_int_t as a wrapper around hb_atomic_int_impl_t. - + In hb_reference_count_t, make it clear the non-atomic get and set are intentional due to nature of the cases they are used in (comparison to -1 and the debug output/tracing). - src/hb-atomic-private.hh | 86 - +++++++++++++++++++++++++++++++----------------- + src/hb-atomic-private.hh | 86 +++++++++++++++++++++++++++++++----------------- src/hb-mutex-private.hh | 4 ++- src/hb-object-private.hh | 21 ++++++------ 3 files changed, 69 insertions(+), 42 deletions(-) @@ -56662,7 +55642,7 @@ Author: Behdad Esfahbod Date: Wed Apr 8 12:49:38 2015 -0700 Allow implementing atomic and mutex ops in config - + Motivated by https://github.com/behdad/harfbuzz/pull/92 @@ -56684,9 +55664,9 @@ Author: Behdad Esfahbod Date: Mon Apr 6 14:51:31 2015 -0700 [test] Use /usr/bin/env python instead of /usr/bin/python - + Bug 76494 - #!/usr/bin/python in testsuite - + https://bugs.freedesktop.org/show_bug.cgi?id=76494 test/shaping/hb-diff | 2 +- @@ -56708,7 +55688,7 @@ Author: Behdad Esfahbod Date: Mon Apr 6 14:41:32 2015 -0700 Merge pull request #93 from ebraminio/archpy3 - + Make hb_test_tools.py compatible with python 3 commit ce01ad7c2f5a259030f4dbec746f85522aa9c3f9 @@ -56734,15 +55714,14 @@ Author: Ebrahim Byagowi Date: Mon Mar 30 03:27:14 2015 +0430 Make hb_test_tools.py compatible with python 3 - + On ArchLinux, /usr/bin/python is linked to python 3 so HarfBuzz `make check` is broken there. - + This makes hb_test_tools.py compatible with python 3 while no breaking it on python 2. - test/shaping/hb_test_tools.py | 44 - ++++++++++++++++++++++++------------------- + test/shaping/hb_test_tools.py | 44 ++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) commit aee685086c8fde6f6c4590e483a177c19f222540 @@ -56750,7 +55729,7 @@ Author: Behdad Esfahbod Date: Thu Mar 26 14:13:53 2015 -0400 Fix VC++ /analyze warnings - + out\debug\hb-buffer-deserialize-text.rl(47) : warning C6001: Using uninitialized memory 'pos'. @@ -56763,7 +55742,7 @@ Author: Behdad Esfahbod Date: Sun Mar 22 16:18:57 2015 -0400 Merge pull request #90 from khaledhosny/introspection-fixes - + [bindings] Fix *_from_string functions commit a394bb66707184c995fe2d08c80e98220e6ec0b0 @@ -56771,7 +55750,7 @@ Author: Khaled Hosny Date: Sun Mar 22 20:29:10 2015 +0200 [bindings] Fix *_from_string functions - + Without the element-type they will be getting garbage, at least with Python. @@ -56795,9 +55774,9 @@ Author: Behdad Esfahbod Date: Fri Mar 20 16:08:38 2015 -0400 Fix reverse_range() for empty range - + Fixes coretext notdef loop consisting of all default_ignorable glyphs - + https://code.google.com/p/chromium/issues/detail?id=464755 src/hb-buffer.cc | 2 +- @@ -56808,7 +55787,7 @@ Author: Behdad Esfahbod Date: Wed Mar 4 15:47:25 2015 -0800 Fix previous commit - + I misunderstood how which works. autogen.sh | 2 +- @@ -56819,7 +55798,7 @@ Author: Behdad Esfahbod Date: Wed Mar 4 15:43:05 2015 -0800 Accept glibtoolize as libtoolize - + Of course, we don't really run it, autoreconf does. We just err if neither is available. glibtoolize is the name it is shipped under on OS X. Reported by Adam. @@ -56851,7 +55830,7 @@ Author: Behdad Esfahbod Date: Mon Mar 2 16:06:55 2015 -0800 Fix reverse_range() to only reverse alt array if positions are used - + In hb-coretext, when we were using scratch buffer for book-keeping, a reverse_range() caused by the notdef-insertion loop could mess up our log_clusters. Ouch! @@ -56864,7 +55843,7 @@ Author: Behdad Esfahbod Date: Thu Feb 26 13:58:32 2015 -0800 Better error message if libtool is not installed - + Fixes https://github.com/behdad/harfbuzz/pull/88 autogen.sh | 9 +++++++-- @@ -56938,12 +55917,11 @@ Author: Behdad Esfahbod Date: Sat Feb 21 12:50:01 2015 +0300 [layout] Fix comparison of GlyphID and hb_codepoint_t - + Before, the IntType::cmp functions providing this and was truncating the hb_codepoint_t to 16bits before comparison. I have no idea how this was never discovered, and I'm too lazy to try to reproduce this - with Pango (which uses non-16bit codepoint numbers for missing - glyphs). + with Pango (which uses non-16bit codepoint numbers for missing glyphs). src/hb-open-type-private.hh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) @@ -56979,11 +55957,9 @@ commit 640b66c6348653bfd7cf88ea9caa2133c0eb949f Author: Behdad Esfahbod Date: Thu Feb 19 17:30:05 2015 +0300 - [layout] If lookup has only one subtable, move the forward loop down - to subtable - - I was hoping to see a nice speedup, but it resulted in a very - minor one. + [layout] If lookup has only one subtable, move the forward loop down to subtable + + I was hoping to see a nice speedup, but it resulted in a very minor one. src/hb-ot-layout.cc | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) @@ -56994,8 +55970,7 @@ Date: Thu Feb 19 17:15:05 2015 +0300 [layout] Add apply_forward / apply_backward - src/hb-ot-layout.cc | 69 - +++++++++++++++++++++++++++++++++++------------------ + src/hb-ot-layout.cc | 69 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 23 deletions(-) commit 1d4a328472f094c0d75a062f6e176c6b1875cfdc @@ -57059,7 +56034,7 @@ Author: Behdad Esfahbod Date: Thu Feb 19 10:40:23 2015 +0300 [layout] Don't check glyph props against lookup flags when recursing - + Shouldn't be needed. I have a hard time imagining this breaking any legitimate use case. @@ -57072,16 +56047,14 @@ Author: Behdad Esfahbod Date: Thu Feb 19 10:29:41 2015 +0300 [layout] Port sanitize() to use dispatch() - + Needed some rework of Extension table. Hopefully I got it right, and the new template usage doesn't break any compilers... src/hb-open-type-private.hh | 5 ++- - src/hb-ot-layout-gpos-table.hh | 82 - +---------------------------------- + src/hb-ot-layout-gpos-table.hh | 82 +---------------------------------- src/hb-ot-layout-gsub-table.hh | 72 ++----------------------------- - src/hb-ot-layout-gsubgpos-private.hh | 84 - ++++++++++++------------------------ + src/hb-ot-layout-gsubgpos-private.hh | 84 ++++++++++++------------------------ 4 files changed, 37 insertions(+), 206 deletions(-) commit 758fb20630f84c3d373cda37974b88f16c02995e @@ -57141,7 +56114,7 @@ Author: Behdad Esfahbod Date: Tue Feb 17 18:14:17 2015 +0300 [layout] Add may_dispatch() - + No functional change right now. src/hb-ot-layout-gpos-table.hh | 7 +++++++ @@ -57154,9 +56127,8 @@ Author: Behdad Esfahbod Date: Tue Feb 17 17:27:44 2015 +0300 Make sanitize() a const method - - This makes a lot of code safer. We only try modifying the object - in one + + This makes a lot of code safer. We only try modifying the object in one place, after making sure it's safe to do so. So, do a const_cast<> in that one place... @@ -57168,8 +56140,7 @@ Date: Tue Feb 17 17:27:44 2015 +0300 src/hb-ot-hmtx-table.hh | 3 +- src/hb-ot-layout-common-private.hh | 58 ++++++++++++------- src/hb-ot-layout-gdef-table.hh | 30 ++++++---- - src/hb-ot-layout-gpos-table.hh | 108 - +++++++++++++++++++++++------------ + src/hb-ot-layout-gpos-table.hh | 108 +++++++++++++++++++++++------------ src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++------- src/hb-ot-layout-gsubgpos-private.hh | 65 +++++++++++++-------- src/hb-ot-layout-jstf-table.hh | 12 ++-- @@ -57202,9 +56173,9 @@ Author: Behdad Esfahbod Date: Thu Jan 29 13:59:42 2015 +0100 [layout] Allocate iters in the context - + Can be further optimized, but I think I didn't break anything. - + Saves another 3% off Roboto shaping. src/hb-ot-layout-gpos-table.hh | 18 ++++++------------ @@ -57228,7 +56199,7 @@ Author: Behdad Esfahbod Date: Thu Jan 29 13:40:39 2015 +0100 [lookup] Add skippy_iter.reset() - + Towards reducing the cost of initializing skippy_iter() src/hb-ot-layout-gpos-table.hh | 18 ++++++++++++------ @@ -57242,8 +56213,7 @@ Date: Thu Jan 29 13:32:05 2015 +0100 [layout] Shuffle code around - src/hb-ot-layout-gsubgpos-private.hh | 111 - ++++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.hh | 111 ++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 55 deletions(-) commit 696266981df5ef6c62ad0115133dad1d6c1d9acc @@ -57253,8 +56223,7 @@ Date: Thu Jan 29 13:08:41 2015 +0100 [layout] Merge forward and backward iterators src/hb-ot-layout-gpos-table.hh | 12 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 71 - ++++++++---------------------------- + src/hb-ot-layout-gsubgpos-private.hh | 71 ++++++++---------------------------- src/hb-ot-shape-fallback.cc | 2 +- 3 files changed, 23 insertions(+), 62 deletions(-) @@ -57263,7 +56232,7 @@ Author: Behdad Esfahbod Date: Thu Jan 29 13:05:25 2015 +0100 [layout] Fix backward reject() - + Has no functional effect since reject was never used with match_glyph_data. @@ -57285,21 +56254,21 @@ Author: Behdad Esfahbod Date: Thu Jan 29 11:08:43 2015 +0100 [lookup] Don't initialize skippy if coverage match fails - + Currently: - + - Initializing skippy is very expensive, - + - Our lookup accelerator (using set-digests) can be very ineffecite, - + As such, we end up many times initializing skippy but then failing coverage check. Reordering fixes that. - + When, later, we fix our accelerator to have truly small false-positive rate (for example by using the frozen-sets), then we might want to reorder these checks such that we wouldn't calculate coverage number if skippy is going to fail. - + This shows a 5% speedup with Roboto already. src/hb-ot-layout-gpos-table.hh | 15 ++++++--------- @@ -57329,14 +56298,13 @@ Author: Behdad Esfahbod Date: Wed Jan 28 21:46:07 2015 -0800 Add hb_frozen_set_t - + I experimented with replacing use of hb_set_digest_t with this new hb_frozen_set_t, hoping to get a huge speedup for busy lookups (like kern lookup in Roboto), but I only got 6% speendup in Roboto and 4% in NotoNastaliqUrduDraft :(. - src/hb-set-private.hh | 57 - ++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-set-private.hh | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) commit 241eac9559465fa79f396570af4e87f455b7e9d5 @@ -57365,7 +56333,7 @@ Author: Behdad Esfahbod Date: Wed Feb 25 15:34:34 2015 -0800 Merge pull request #85 from KonstantinRitt/define_inline - + Fix build with MSVC on CE commit 9ee176ee978e6668c4faf00028811ce70979122e @@ -57390,8 +56358,7 @@ commit 9e867b64467c46eea5cc9b1d5a9404a1221bbbfc Author: Collin Fair Date: Sat Feb 14 09:32:04 2015 -0500 - Remove reference to --help-output-content in --help-output (as - --help-output-format's options aren't available in hb-view) + Remove reference to --help-output-content in --help-output (as --help-output-format's options aren't available in hb-view) util/options.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -57400,8 +56367,7 @@ commit 1d55ffeb66381889f11ebb9039ca4ec2ca5efbab Author: Collin Fair Date: Sat Feb 14 09:29:35 2015 -0500 - Add serialization syntax documentation. Clarify naming and wording - in --help-output/--help-format + Add serialization syntax documentation. Clarify naming and wording in --help-output/--help-format util/options.cc | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) @@ -57411,26 +56377,23 @@ Author: Konstantin Ritt Date: Sat Feb 14 00:58:51 2015 +0400 Fix build with MSVC on CE - + This code is C++ only. There isn't a single C++ compiler that fails to understand the "inline" keyword, since it's required by C++98. Any compiler older than C++98 is likely to choke on the template usage further down, so this isn't necessary. - + Moreover, the C++ standard says you cannot define macros. - [lib.macro.names] says "Nor shall such a translation unit define - macros + [lib.macro.names] says "Nor shall such a translation unit define macros for names lexically identical to keywords." -- technically, it's a - promise that the Standard Library headers won't do it, the wording - means + promise that the Standard Library headers won't do it, the wording means that the entire translation unit won't do it, which implies no source can do it. - + MSVC complains about it: - fatal error C1189: #error : The C++ Standard Library forbids - macroizing + fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro. - + Author: Thiago Macieira src/hb-private.hh | 10 ---------- @@ -57450,7 +56413,7 @@ Author: Behdad Esfahbod Date: Wed Jan 28 10:51:33 2015 -0800 [coretext] Don't generate notdef glyph for default-ignorables - + As discovered on Chrome Mac: https://code.google.com/p/chromium/issues/detail?id=452326 @@ -57463,16 +56426,16 @@ Author: Behdad Esfahbod Date: Wed Jan 28 10:43:32 2015 -0800 [coretext] Unbreak glyph positioning in presence of notdef runs - + As discovered on Chrome Mac: https://code.google.com/p/chromium/issues/detail?id=452326 - + This was originally broken in: - + commit 5a0eed3b50629be4826e4e9428f2c3255195395d Author: Behdad Esfahbod Date: Mon Aug 11 23:47:16 2014 -0400 - + [coretext] Implement vertical shaping src/hb-coretext.cc | 35 +++++++++++++++++++++++++++-------- @@ -57510,25 +56473,21 @@ Author: Behdad Esfahbod Date: Mon Jan 26 14:25:52 2015 -0800 [API] Add hb_buffer_add_latin1() - + This is by no ways to promote non-Unicode encodings. This is an entry point that takes Unicode codepoints that happen to all be the first - 256 characters and hence fit in 8bit strings. This is useful eg - in Chrome + 256 characters and hence fit in 8bit strings. This is useful eg in Chrome where strings that can fit in 8bit are implemented that way, and this avoids copying into UTF-8 or UTF-16. - - Perhaps we should rename this to hb_buffer_add_codepoints8(). - I'm also - curious if anyone would be really interested in - hb_buffer_add_codepoints16(). - + + Perhaps we should rename this to hb_buffer_add_codepoints8(). I'm also + curious if anyone would be really interested in hb_buffer_add_codepoints16(). + Please discuss! src/hb-buffer.cc | 36 +++++++++++++++++++++++++------- src/hb-buffer.h | 8 ++++++++ - src/hb-utf-private.hh | 57 - ++++++++++++++++++++++++++++++++++++++------------- + src/hb-utf-private.hh | 57 ++++++++++++++++++++++++++++++++++++++------------- 3 files changed, 80 insertions(+), 21 deletions(-) commit 78c6e86c04f12154c88b9f9264d0bd50b721699b @@ -57546,7 +56505,7 @@ Author: Behdad Esfahbod Date: Sun Jan 25 13:06:03 2015 -0800 Merge pull request #81 from KonstantinRitt/fixes/build/win8phone - + winrt_buildfixes commit f3537b620b0a7392ea27f01f465c5ba79459c858 @@ -57554,7 +56513,7 @@ Author: Konstantin Ritt Date: Sun Jan 25 09:50:51 2015 +0400 Move some code around - + Just to keep Windows specific workarounds in a single place. src/hb-private.hh | 25 ++++++++++++------------- @@ -57565,7 +56524,7 @@ Author: Konstantin Ritt Date: Sun Jan 25 08:16:26 2015 +0400 Do not define MemoryBarrier on WinCE - + There is a _HBMemoryBarrier() wrapper function that emulates MemoryBarrier() behavior when it is not defined. @@ -57577,10 +56536,10 @@ Author: Konstantin Ritt Date: Sun Jan 25 08:13:24 2015 +0400 Fix build on WinRT - + There is no environment (like WinCE) and the basic version of InitializeCriticalSection is unsupported. - + https://codereview.qt-project.org/#/c/92496/ src/hb-mutex-private.hh | 4 ++++ @@ -57620,7 +56579,7 @@ Author: Behdad Esfahbod Date: Wed Jan 21 18:50:57 2015 -0800 [coretext] Fix scaling - + Before we were not accounting for possible differences in x_scale and y_scale, as well as the signs of those. All should be in good shape now. @@ -57669,7 +56628,7 @@ Author: Behdad Esfahbod Date: Tue Jan 20 12:30:45 2015 -0800 [util] Add --font-size to hb-shape - + Also makes hb-view to use 8 bits of subpixel precision and shape at requested size, instead of always shaping at upem and scaling results. @@ -57679,8 +56638,7 @@ Date: Tue Jan 20 12:30:45 2015 -0800 util/helper-cairo.cc | 16 ++++++++-------- util/helper-cairo.hh | 5 ++--- util/main-font-text.hh | 4 ++-- - util/options.cc | 44 - +++++++++++++++++++++++++++++++++++++++++--- + util/options.cc | 44 +++++++++++++++++++++++++++++++++++++++++--- util/options.hh | 16 ++++++++++++---- util/view-cairo.cc | 2 +- util/view-cairo.hh | 8 ++++---- @@ -57700,10 +56658,10 @@ Author: Behdad Esfahbod Date: Mon Jan 19 17:00:31 2015 -0800 When matching second glyph of kerning pairs, use bsearch - + Roboto has glyphs (like 'F') that have 200 kerning pairs. Add a handcoded bsearch instead of previous linear search. - + This doesn't show much speedup though, apparently we spend the bulk of the time somewhere before here. @@ -57725,7 +56683,7 @@ Author: Behdad Esfahbod Date: Mon Jan 19 16:15:00 2015 -0800 Merge pull request #77 from roozbehp/master - + Change New Tai Lue shaping engine from SEA to default commit 5eb939ddfe9ef217da2e48d7d0f1f4b7501714ad @@ -57733,15 +56691,15 @@ Author: Roozbeh Pournader Date: Sun Jan 18 14:30:08 2015 -0800 Change New Tai Lue shaping engine from SEA to default - + This is to reflect the UTC decision to change the encoding model of New Tai Lue from logical to visual to be similar to Thai, Lao, and Tai Viet: http://www.unicode.org/L2/L2014/14250.htm#141-C26 - + The visual encoding is already the current practice of encoding New Tai Lue on the web anyway: http://www.unicode.org/L2/L2014/14195-newtailue.txt - + Fixes behdad/harfbuzz#66. src/hb-ot-shape-complex-private.hh | 2 +- @@ -57754,8 +56712,7 @@ Date: Sat Jan 17 20:16:56 2015 -0800 [indic] Fix out-of-bounds access src/gen-indic-table.py | 2 +- - src/hb-ot-shape-complex-indic-table.cc | 36 - +++++++++++++++++----------------- + src/hb-ot-shape-complex-indic-table.cc | 36 +++++++++++++++++----------------- 2 files changed, 19 insertions(+), 19 deletions(-) commit 238d6a38f2ceb7d8dceec9365a823f032b3b9f7d @@ -57772,7 +56729,7 @@ Author: Behdad Esfahbod Date: Tue Jan 6 19:16:38 2015 -0800 [bindings] Use hb_glib_blob_create() in sample - + hb_blob_create() is considered C-only API. src/hb-blob.cc | 8 ++++---- @@ -57814,7 +56771,7 @@ Author: Behdad Esfahbod Date: Tue Jan 6 14:05:26 2015 -0800 Fix up gobject-introspection a bit - + Minimal shaping works now! src/hb-blob.cc | 6 +++--- @@ -57827,9 +56784,9 @@ Author: Behdad Esfahbod Date: Mon Jan 5 14:43:13 2015 -0800 Remove hardcoded ICU include paths. - + ICU exports them using LOCAL_EXPORT_C_INCLUDE_DIRS. - + https://android-review.googlesource.com/#/c/121311/ Android.mk | 3 +-- @@ -57841,7 +56798,7 @@ Author: Behdad Esfahbod Date: Sun Jan 4 20:32:18 2015 -0800 Merge pull request #76 from cpeterso/cpeterso/Wunused-function - + Add #ifdef HB_USE_ATEXIT to fix -Wunused-function warnings commit fb85d618f5883458bacf0ecb0894772291a2d738 @@ -57862,7 +56819,7 @@ Author: Behdad Esfahbod Date: Sat Jan 3 21:55:30 2015 -0800 Merge pull request #75 from cpeterso/cpeterso/Wunused-value - + Fix hb_atomic_ptr_cmpexch -Wunused-value warnings commit d1897a98d8da40cffb57c07099a9a93cfeaacc36 @@ -57880,7 +56837,7 @@ Author: Behdad Esfahbod Date: Fri Jan 2 14:09:23 2015 -0800 Add missing va_end() - + Fixes https://github.com/behdad/harfbuzz/pull/74 util/options.cc | 1 + @@ -57891,16 +56848,14 @@ Author: Behdad Esfahbod Date: Sun Dec 28 18:56:15 2014 -0800 [ft] Don't set font ppem - + For discussion see: - + http://lists.freedesktop.org/archives/harfbuzz/2012-April/001905.html - - Over time we have had added NO_HINTING all over the place in hb-ft. - Finish it off. - Not setting ppem on hb-font disables get_contour_point() calls which - is good anyway. - + + Over time we have had added NO_HINTING all over the place in hb-ft. Finish it off. + Not setting ppem on hb-font disables get_contour_point() calls which is good anyway. + See comments in the commit. src/hb-ft.cc | 9 +++++++++ @@ -57910,63 +56865,46 @@ commit 350f3a02ce225e5d78db8ac96de1351ff9f96dd5 Author: Behdad Esfahbod Date: Sun Dec 28 17:44:26 2014 -0800 - [ft] Add hb_ft_face_create_referenced() and - hb_ft_font_create_referenced() - - When I originally wrote hb-ft, FreeType objects did not support - reference + [ft] Add hb_ft_face_create_referenced() and hb_ft_font_create_referenced() + + When I originally wrote hb-ft, FreeType objects did not support reference counting. As such, hb_ft_face_create() and hb_ft_font_create() had a - "destroy" callback and client was responsible for making sure - FT_Face is + "destroy" callback and client was responsible for making sure FT_Face is kept around as long as the hb-font/face are alive. - + However, since this was not clearly documented, some clienets didn't - correctly did that. In particular, some clients assumed that - it's safe - to destroy FT_Face and then hb_face_t. This, indeed, used to work, - until - 45fd9424c723f115ca98995b8f8a25185a6fc71d, which make face destroy - access + correctly did that. In particular, some clients assumed that it's safe + to destroy FT_Face and then hb_face_t. This, indeed, used to work, until + 45fd9424c723f115ca98995b8f8a25185a6fc71d, which make face destroy access font tables. - - Now, I fixed that issue in 395b35903e052aecc97d0807e4f813c64c0d2b0b - since - the access was not needed, but the problem remains that not all - clients + + Now, I fixed that issue in 395b35903e052aecc97d0807e4f813c64c0d2b0b since + the access was not needed, but the problem remains that not all clients handle this correctly. See: - + https://bugs.freedesktop.org/show_bug.cgi?id=86300 - - Fortunately, FT_Reference_Face() was added to FreeType in 2010, - and so we + + Fortunately, FT_Reference_Face() was added to FreeType in 2010, and so we can use it now. Originally I wanted to change hb_ft_face_create() and - hb_ft_font_create() to reference the face if destroy==NULL was - passed in. - That would improve pretty much all clients, with little undesired - effects. - Except that FreeType itself, when compiled with HarfBuzz support, - calls - hb_ft_font_create() with destroy==NULL and saves the resulting - hb-font on + hb_ft_font_create() to reference the face if destroy==NULL was passed in. + That would improve pretty much all clients, with little undesired effects. + Except that FreeType itself, when compiled with HarfBuzz support, calls + hb_ft_font_create() with destroy==NULL and saves the resulting hb-font on the ft-face (why does it not free it immediately?). Making hb-face - reference ft-face causes a cycling reference there. At least, - that's my + reference ft-face causes a cycling reference there. At least, that's my current understanding. - - At any rate, a cleaner approach, even if it means all clients will - need a + + At any rate, a cleaner approach, even if it means all clients will need a change, is to introduce brand new API. Which this commit does. - - Some comments added to hb-ft.h, hoping to make future clients - make better + + Some comments added to hb-ft.h, hoping to make future clients make better choices. - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75299 configure.ac | 4 ++-- src/hb-ft.cc | 32 ++++++++++++++++++++++++++++++++ - src/hb-ft.h | 59 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-ft.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 92 insertions(+), 3 deletions(-) commit 9a3b74884b2e41c7040611030f4336f13d18fd3e @@ -57974,7 +56912,7 @@ Author: Behdad Esfahbod Date: Sun Dec 28 17:27:39 2014 -0800 Remove redundant check for FT_Face_GetCharVariantIndex - + We require FreeType >= 2.8.3. This symbol was introduced earlier than that. @@ -57996,7 +56934,7 @@ Author: Behdad Esfahbod Date: Sun Dec 28 16:20:31 2014 -0800 [ft] Open blob in READONLY mode - + HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly useless now. @@ -58008,13 +56946,11 @@ Author: Behdad Esfahbod Date: Sun Dec 28 16:03:26 2014 -0800 Avoid accessing layout tables at face destruction - + "Fixes" https://bugs.freedesktop.org/show_bug.cgi?id=86300 - - Based on discussion someone else who had a similar issue, most - probably - the user is releasing FT_Face before destructing hb_face_t / - hb_font_t. + + Based on discussion someone else who had a similar issue, most probably + the user is releasing FT_Face before destructing hb_face_t / hb_font_t. While that's a client bug, and while we can (and should) use FreeType refcounting to help avoid that, it happens that we were accessing the table when we didn't really have to. Avoid that. @@ -58029,13 +56965,13 @@ Author: Behdad Esfahbod Date: Thu Dec 18 18:22:21 2014 -0800 Fail blob creation if length overflows or is too large - + Fail if blob start plus length overflows; or if blob length is greater than 2GB. It takes a while for fonts to get to that size. In the mean time, it protects against bugs like this: - + http://www.icu-project.org/trac/ticket/11450 - + Also avoids some weird issues with 32bit vs 64bit systems as we accept length as unsigned int. As such, a length of -1 will cause overflow on 32bit machines, but happily @@ -58050,7 +56986,7 @@ Author: Behdad Esfahbod Date: Thu Dec 18 18:09:41 2014 -0800 Assert that blob length doesn't overflow address. - + This will crash now, if blob was created with wrong length. Check for that coming next commit. @@ -58074,8 +57010,7 @@ Date: Fri Dec 12 21:07:53 2014 -0800 [otlayout] Mark variables that are C arrays as opposed to OT::ArrayOf src/hb-ot-layout-gpos-table.hh | 24 +++++++-------- - src/hb-ot-layout-gsubgpos-private.hh | 60 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 60 ++++++++++++++++++------------------ 2 files changed, 42 insertions(+), 42 deletions(-) commit 9df0a520306a491f973d42965597bfda6023e508 @@ -58150,24 +57085,23 @@ Author: Behdad Esfahbod Date: Wed Dec 10 12:05:24 2014 -0800 [indic] Allow ZWJ/ZWNJ before SM - + In Oriya, a ZWJ/ZWNJ might be added before candrabindu to encourage or stop ligation of the candrabindu. This is clearly specified in the Unicode section on Oriya. Allow it there. Note that Uniscribe doesn't allow this. - + Micro tests added using Noto Sans Oriya draft. - + No changes in numbers. Currently at: - + BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed - (0.0178378%) + MALAYALAM: 1048147 out of 1048334 tests passed. 187 failed (0.0178378%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -58175,8 +57109,7 @@ Date: Wed Dec 10 12:05:24 2014 -0800 src/hb-ot-shape-complex-indic-machine.rl | 2 +- test/shaping/Makefile.am | 1 + - .../sha1sum/5028afb650b1bb718ed2131e872fbcce57828fff.ttf | Bin 0 -> - 4720 bytes + .../sha1sum/5028afb650b1bb718ed2131e872fbcce57828fff.ttf | Bin 0 -> 4720 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/indic-joiner-candrabindu.tests | 2 ++ @@ -58197,12 +57130,12 @@ Author: Behdad Esfahbod Date: Wed Oct 29 11:23:08 2014 -0700 In hb_ot_collect_glyphs(), don't recurse to a lookup more than once - + Otherwise, we might process a lookup thousands of times, with no benefit. This pathological case was hit by Noto Nastaliq Urdu Draft in Firefox's code to determine whether space glyph is involved in any GSUB/GPOS rules. A test page is at http://behdad.org/urdu - + See: https://bugzilla.mozilla.org/show_bug.cgi?id=1090869 @@ -58215,8 +57148,7 @@ Date: Tue Oct 14 21:26:13 2014 -0700 Move code around - src/hb-open-type-private.hh | 50 - ++++++++++++++++++++++----------------------- + src/hb-open-type-private.hh | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) commit 666b42f73bd1f516657b206ef738108825bf239f @@ -58224,11 +57156,10 @@ Author: Behdad Esfahbod Date: Tue Oct 14 21:24:59 2014 -0700 Move macros around - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=84491 - src/hb-open-type-private.hh | 63 - ++++++++++++++++++++++++++++++++++++++------- + src/hb-open-type-private.hh | 63 ++++++++++++++++++++++++++++++++++++++------- src/hb-private.hh | 41 ----------------------------- src/hb-uniscribe.cc | 6 +++++ 3 files changed, 60 insertions(+), 50 deletions(-) @@ -58238,7 +57169,7 @@ Author: Behdad Esfahbod Date: Tue Oct 14 20:07:31 2014 -0700 Fix misc warnings - + Fixes https://github.com/behdad/harfbuzz/pull/51 src/hb-buffer-deserialize-json.rl | 4 ++-- @@ -58450,7 +57381,7 @@ Author: Behdad Esfahbod Date: Wed Oct 1 12:41:03 2014 -0400 Don't use tmp files in Makefile - + Useful for code-coverage generation of the ragel-generated files as they will now contain the correct .hh filename in them. @@ -58462,7 +57393,7 @@ Author: Behdad Esfahbod Date: Wed Oct 1 11:56:07 2014 -0400 check-static-inits: Filter out zero-length sections - + When compiling with -O0, zero-sized constructors were showing up and confusing the test. @@ -58511,8 +57442,7 @@ Date: Thu Sep 25 17:45:49 2014 +0300 [ot-font] Add hb_ot_face_cmap_accelerator_t - src/hb-ot-font.cc | 113 - +++++++++++++++++++++++++++++++----------------------- + src/hb-ot-font.cc | 113 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 66 insertions(+), 47 deletions(-) commit d088ccaf11d9475fe0d269ce130b1793b8a1ffbf @@ -58539,8 +57469,7 @@ Date: Thu Sep 25 16:53:24 2014 +0300 [ot-font] Add metrics_accel_t - src/hb-ot-font.cc | 111 - ++++++++++++++++++++++-------------------------- + src/hb-ot-font.cc | 111 ++++++++++++++++++++++-------------------------- src/hb-ot-hhea-table.hh | 2 +- src/hb-ot-hmtx-table.hh | 4 +- 3 files changed, 54 insertions(+), 63 deletions(-) @@ -58552,8 +57481,7 @@ Date: Thu Sep 25 13:04:08 2014 +0300 [ot-font] Start adding vertical support src/hb-ot-font.cc | 57 ++++++++++++++++++++++++++++++++++---------- - src/hb-ot-hhea-table.hh | 63 - ++++++++++++++++++++++++++----------------------- + src/hb-ot-hhea-table.hh | 63 ++++++++++++++++++++++++++----------------------- src/hb-ot-hmtx-table.hh | 35 +++++++++++++++++---------- 3 files changed, 100 insertions(+), 55 deletions(-) @@ -58571,9 +57499,9 @@ Author: Behdad Esfahbod Date: Mon Aug 25 12:31:19 2014 -0400 [arabic] Don't #include __FILE__ - + Fine! - + https://code.google.com/p/chromium/issues/detail?id=406957 src/hb-ot-shape-complex-arabic-win1256.hh | 2 +- @@ -58584,7 +57512,7 @@ Author: Behdad Esfahbod Date: Mon Aug 25 11:48:12 2014 -0400 [arabic] Allow disabling win1256 fallback code - + By defining HB_NO_WIN1256. src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- @@ -58594,9 +57522,8 @@ commit 8a9319502141c09695461c386e54f998250420e9 Author: Behdad Esfahbod Date: Fri Aug 22 12:06:57 2014 -0400 - [ot] Prefer Windows platform cmap tables / accept all Unicode - encodingIDs - + [ot] Prefer Windows platform cmap tables / accept all Unicode encodingIDs + Some fonts on the Mac ship with (0,1). src/hb-ot-font.cc | 7 +++++-- @@ -58636,8 +57563,7 @@ Date: Thu Aug 14 13:25:55 2014 -0400 Simplify hb-object - src/hb-object-private.hh | 118 - +++++++++++++++-------------------------------- + src/hb-object-private.hh | 118 +++++++++++++++-------------------------------- 1 file changed, 36 insertions(+), 82 deletions(-) commit 9d861b81f349188a4507350398786a6e94038095 @@ -58646,8 +57572,7 @@ Date: Thu Aug 14 13:15:21 2014 -0400 Really fix clang build this time - src/hb-object-private.hh | 141 - +++++++++++++++++++++++------------------------ + src/hb-object-private.hh | 141 +++++++++++++++++++++++------------------------ 1 file changed, 68 insertions(+), 73 deletions(-) commit 272226f294382b0c6921b36e0e67fc53daa765d3 @@ -58655,7 +57580,7 @@ Author: Behdad Esfahbod Date: Thu Aug 14 13:11:33 2014 -0400 Revert "Fix build on clang after previous commit" - + This reverts commit 9c80cbc87f23040a334e30c750f64523d9ef10c8. src/hb-object-private.hh | 34 +++++++++++++--------------------- @@ -58675,7 +57600,7 @@ Author: Behdad Esfahbod Date: Thu Aug 14 13:05:36 2014 -0400 Rewrite this==NULL checks to avoid undefined behavior - + Fixes https://code.google.com/p/chromium/issues/detail?id=403594 src/hb-object-private.hh | 18 ++++++++---------- @@ -58686,7 +57611,7 @@ Author: Behdad Esfahbod Date: Thu Aug 14 12:59:16 2014 -0400 Remove this==NULL check from face->reference_table() - + Not supposed to happen, and apparently this is undefined in C++. https://code.google.com/p/chromium/issues/detail?id=403594 @@ -58698,7 +57623,7 @@ Author: Behdad Esfahbod Date: Thu Aug 14 12:57:02 2014 -0400 Make hb_object_t members private - + In preparation for fixing: https://code.google.com/p/chromium/issues/detail?id=403594 @@ -58766,9 +57691,8 @@ Author: Behdad Esfahbod Date: Tue Aug 12 17:15:09 2014 -0400 [shape-plan] Fix typo! - - The only effect is, if shaper_list was not NULL and no shaper - was found, + + The only effect is, if shaper_list was not NULL and no shaper was found, we now don't insert anything into cache and return earlier. src/hb-shape-plan.cc | 2 +- @@ -58805,11 +57729,10 @@ commit 8d5eebc0c6ada01128c6ee384340efdbef7ba29d Author: Behdad Esfahbod Date: Tue Aug 12 16:50:22 2014 -0400 - [shape-plan] Fix shape-plan caching with more than one requested - shaper - + [shape-plan] Fix shape-plan caching with more than one requested shaper + Wasn't breaking out of loop, ouch! - + http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1246370.html src/hb-shape-plan.cc | 9 ++++++--- @@ -58829,7 +57752,7 @@ Author: Behdad Esfahbod Date: Tue Aug 12 15:49:47 2014 -0400 [coretext] Fix buffer resizing - + Was very broken. Now fixed and tested. src/hb-coretext.cc | 17 +++++++++++++---- @@ -58849,9 +57772,9 @@ Author: Behdad Esfahbod Date: Tue Aug 12 13:12:31 2014 -0400 [wince] Two more Windows CE fixes - + Report has it that it builds (and works) now: - + https://codereview.qt-project.org/#/c/92087/ src/hb-mutex-private.hh | 2 +- @@ -58863,19 +57786,18 @@ Author: Behdad Esfahbod Date: Tue Aug 12 10:32:41 2014 -0400 [coretext] Compare CGFont and PS name, if CTFont didn't match - + See comments. - + Fixes vertical text. CoreText backend is in very good shape now! - + Also see: 5a0eed3b50629be4826e4e9428f2c3255195395d 25f4fb9b56bb3f8bec821571c78f8829e40daa54 - + Fixes http://github.com/behdad/harfbuzz/pull/36 - src/hb-coretext.cc | 54 - ++++++++++++++++++++++++++++++++++++++++++++++++------ + src/hb-coretext.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 6 deletions(-) commit 5a0eed3b50629be4826e4e9428f2c3255195395d @@ -58883,13 +57805,12 @@ Author: Behdad Esfahbod Date: Mon Aug 11 23:47:16 2014 -0400 [coretext] Implement vertical shaping - + Currently doesn't work though, we detect font fallback. Apparently matching on ct_font is not safe for this. Looks like commit 25f4fb9b56bb3f8bec821571c78f8829e40daa54 wasn't enough after all. - src/hb-coretext.cc | 127 - ++++++++++++++++++++++++++++++++++------------------- + src/hb-coretext.cc | 127 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 81 insertions(+), 46 deletions(-) commit 1b55077f03758e49f93b8bc1de678e96ea58718c @@ -58897,7 +57818,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 20:45:12 2014 -0400 [coretext] Remove unnecessary alt_size - + Wasn't needed after a6b8dc87421de33746b0b14d86d2d1532aec02af. src/hb-coretext.cc | 4 ++-- @@ -58908,7 +57829,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 20:02:45 2014 -0400 [coretext] Use CFRunStatus - + Assert that all runs had expected direction, and take hint for non-monotone clusters. @@ -58938,13 +57859,13 @@ Author: Behdad Esfahbod Date: Mon Aug 11 18:40:01 2014 -0400 API: Do not clear buffer-flags in hb_buffer_clear_contents() - + After 763e5466c0a03a7c27020e1e2598e488612529a7, one doesn't need to set flags for different pieces of text. The flags now are something the client sets up once, depending on how it actually uses the buffer. As such, don't clear it in clear_contents(). - + Tests updated. src/hb-buffer-private.hh | 4 +--- @@ -58966,7 +57887,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 17:46:50 2014 -0400 [coretext] Pass buffer direction to CoreText - + Have to use a CTTypesetter for this. src/hb-coretext.cc | 26 ++++++++++++++++++++++---- @@ -58977,7 +57898,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 17:46:12 2014 -0400 [coretext] Minor - + It's hard to handle all possible NULL returns from CoreText. Add one more... @@ -58989,7 +57910,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 15:29:18 2014 -0400 [coretext] Attach marks to base clusters - + Fixes https://githu.com/behdad/harfbuzz/issues/49 to the extent that it can be fixed. @@ -59001,10 +57922,9 @@ Author: Behdad Esfahbod Date: Mon Aug 11 15:11:59 2014 -0400 [coretext] Use input clusters - + Before, this shaper was returning UTF-16 cluster indices instead of - returning whatever cluster values the user had had set up in the - buffer. + returning whatever cluster values the user had had set up in the buffer. Ouch! src/hb-coretext.cc | 6 ++---- @@ -59015,14 +57935,13 @@ Author: Behdad Esfahbod Date: Mon Aug 11 15:08:19 2014 -0400 [coretext] Fix buffer resize handling - + We can't really resize buffer and continue in this shaper as we are using the scratch buffer for string_ref and log_cluster. Restructure shaper to retry from (almost) scratch. src/hb-buffer-private.hh | 3 + - src/hb-coretext.cc | 428 - ++++++++++++++++++++++++++--------------------- + src/hb-coretext.cc | 428 ++++++++++++++++++++++++++--------------------- 2 files changed, 238 insertions(+), 193 deletions(-) commit 9b3c60c88b118f01610ae7a608b138f79f2dc7be @@ -59030,7 +57949,7 @@ Author: Behdad Esfahbod Date: Mon Aug 11 13:25:43 2014 -0400 [coretext] Always compute log_clusters - + To be used soon. src/hb-coretext.cc | 24 +++++++++++------------- @@ -59069,7 +57988,7 @@ Author: Behdad Esfahbod Date: Sun Aug 10 19:05:25 2014 -0400 [coretext] Fix fallback detection - + Fixes http://github.com/behdad/harfbuzz/pull/36 src/hb-coretext.cc | 29 ++++++++++++++++++++--------- @@ -59080,11 +57999,10 @@ Author: Behdad Esfahbod Date: Sun Aug 10 18:59:47 2014 -0400 [coretext] Fix last range - + Test with: - - hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:] - --shaper=coretext + + hb-view /Library/Fonts/Zapfino.ttf ZapfinoZapfino --features=-dlig[7:] --shaper=coretext src/hb-coretext.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -59094,7 +58012,7 @@ Author: Behdad Esfahbod Date: Sun Aug 10 18:52:07 2014 -0400 Fix hb_in_range() for types smaller than int - + As exercised by hb-coretext .notdef code. src/hb-private.hh | 4 +++- @@ -59105,10 +58023,10 @@ Author: Behdad Esfahbod Date: Sun Aug 10 18:04:50 2014 -0400 [wince] Try to fix some stuff on Windows CE - + Based on errors seen here: http://testresults.qt-project.org/ci/QtBase_dev_Integration/build_03837/wince70embedded-armv4i-msvc2008_Windows_7/log.txt.gz - + Fully untested. src/hb-private.hh | 8 ++++++++ @@ -59129,7 +58047,7 @@ Author: Behdad Esfahbod Date: Sun Aug 10 17:40:24 2014 -0400 [coretext] Fix assert on Yosemite - + Apparently those functions documented as sometimes returning NULL actually exercise that right in OS X 10.10 Yosemite. The scratch was too small for that. I *think* I fixed it, but haven't tested @@ -59152,7 +58070,7 @@ Author: Behdad Esfahbod Date: Thu Aug 7 15:38:52 2014 -0400 [arabic] Bug 82306 - Mandaic had errors in its Unicode Joining_Type - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=82306 src/hb-ot-shape-complex-arabic-table.hh | 2 +- @@ -59163,12 +58081,12 @@ Author: Behdad Esfahbod Date: Wed Aug 6 13:34:49 2014 -0400 Use atexit() only if it's safe to call from shared library - + Apparently they are not (advertised as?) safe on BSD systems. We ignore the case of static libraries. - + Whitelisted on glibc, Android, and MSVC / mingw. - + https://bugs.freedesktop.org/show_bug.cgi?id=82246 src/hb-common.cc | 4 ++-- @@ -59184,18 +58102,17 @@ Author: Behdad Esfahbod Date: Tue Aug 5 14:19:01 2014 -0400 [arabic] Fix fallback shaping regression - + Was broken in 615d00ea252739da57edbd980ff27e573. - + Fixes https://github.com/behdad/harfbuzz/pull/48 - + Micro-test added. src/hb-ot-shape-complex-arabic.cc | 4 ++-- test/shaping/Makefile.am | 1 + test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 -> - 6332 bytes + .../sha1sum/df768b9c257e0c9c35786c47cae15c46571d56be.ttf | Bin 0 -> 6332 bytes test/shaping/tests/MANIFEST | 1 + test/shaping/tests/arabic-fallback-shaping.tests | 1 + 6 files changed, 6 insertions(+), 2 deletions(-) @@ -59224,7 +58141,7 @@ Author: Behdad Esfahbod Date: Sat Aug 2 17:18:46 2014 -0400 Make sure gsubgpos buffer vars are available during fallback_position - + Add buffer var allocation asserts to a few key places. src/hb-ot-layout-gpos-table.hh | 4 ++-- @@ -59241,7 +58158,7 @@ Author: Behdad Esfahbod Date: Sat Aug 2 16:31:16 2014 -0400 Disable 'liga' for vertical text - + The reason we turned it on is because Kazuraki uses it. But that's not reason enough. Until the OpenType spec gets its act together re adding design-direction to lookups, this is better user experience. @@ -59254,41 +58171,39 @@ Author: Behdad Esfahbod Date: Sat Aug 2 16:17:44 2014 -0400 Make it easier to use HB_BUFFER_FLAG_BOT/EOT - + Previously, we expected users to provide BOT/EOT flags when the text *segment* was at paragraph boundaries. This meant that for clients that provide full paragraph to HarfBuzz (eg. Pango), they had code like this: - + hb_buffer_set_flags (hb_buffer, (item_offset == 0 ? HB_BUFFER_FLAG_BOT : 0) | - (item_offset + item_length == paragraph_length - ? + (item_offset + item_length == paragraph_length ? HB_BUFFER_FLAG_EOT : 0)); - + hb_buffer_add_utf8 (hb_buffer, paragraph_text, paragraph_length, item_offset, item_length); - + After this change such clients can simply say: - + hb_buffer_set_flags (hb_buffer, HB_BUFFER_FLAG_BOT | HB_BUFFER_FLAG_EOT); - + hb_buffer_add_utf8 (hb_buffer, paragraph_text, paragraph_length, item_offset, item_length); - + Ie, HarfBuzz itself checks whether the segment is at the beginning/end of the paragraph. Clients that only pass item-at-a-time to HarfBuzz continue not setting any flags whatsoever. - + Another way to put it is: if there's pre-context text in the buffer, HarfBuzz ignores the BOT flag. If there's post-context, it ignores EOT flag. - src/hb-ot-shape-complex-arabic.cc | 40 - +++++++++++++++++++-------------------- + src/hb-ot-shape-complex-arabic.cc | 40 +++++++++++++++++++-------------------- src/hb-ot-shape.cc | 1 + 2 files changed, 20 insertions(+), 21 deletions(-) @@ -59313,13 +58228,12 @@ Author: Behdad Esfahbod Date: Fri Aug 1 19:05:33 2014 -0400 [arabic/win1256] Really fix lam-alef this time - + https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c26 https://github.com/behdad/harfbuzz/commit/b276e897d17519a2c28f79d024904ac2bdd86bcf#commitcomment-7243499 src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- - src/hb-ot-shape-complex-arabic-win1256.hh | 49 - +++++++++--------------------- + src/hb-ot-shape-complex-arabic-win1256.hh | 49 +++++++++--------------------- 2 files changed, 15 insertions(+), 36 deletions(-) commit 55977f2a462b7fa1248eab3787053dc82320d3e5 @@ -59327,13 +58241,12 @@ Author: Behdad Esfahbod Date: Fri Aug 1 16:14:33 2014 -0400 [arabic/win1256] Hook up lamMedi lookup - + Restructure lookup array to accommodate. - + https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18 - src/hb-ot-shape-complex-arabic-fallback.hh | 26 - ++++++++++---------------- + src/hb-ot-shape-complex-arabic-fallback.hh | 26 ++++++++++---------------- src/hb-ot-shape-complex-arabic-win1256.hh | 1 + 2 files changed, 11 insertions(+), 16 deletions(-) @@ -59342,7 +58255,7 @@ Author: Behdad Esfahbod Date: Fri Aug 1 16:09:31 2014 -0400 [arabic/win1256] Fix TEH MARBUTA final form - + https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c18 src/hb-ot-shape-complex-arabic-win1256.hh | 8 ++++---- @@ -59353,7 +58266,7 @@ Author: Behdad Esfahbod Date: Thu Jul 31 18:21:05 2014 -0400 [arabic/win1256] Fix shaping of JEEM, HAH, and KHAH - + https://bugzilla.mozilla.org/show_bug.cgi?id=1045139#c16 src/hb-ot-shape-complex-arabic-win1256.hh | 22 ++++++++++++---------- @@ -59364,24 +58277,20 @@ Author: Behdad Esfahbod Date: Thu Jul 31 11:04:00 2014 -0400 [arabic/win1256] Remove GCC'ism - - The table can now compile independently too. If we cannot make - it work + + The table can now compile independently too. If we cannot make it work on MSVC, we can always generate the data and distribute it. - + The code now compiles cleanly with: - - gcc -c -xc -std=c99 -Werror -pedantic - hb-ot-shape-complex-arabic-win1256.hh - g++ -c -xc -std=c++1x -Werror -pedantic - hb-ot-shape-complex-arabic-win1256.hh - + + gcc -c -xc -std=c99 -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh + g++ -c -xc -std=c++1x -Werror -pedantic hb-ot-shape-complex-arabic-win1256.hh + See: https://github.com/behdad/harfbuzz/commit/a97f537cec209649302899975d76ca2b2661da7a#commitcomment-7218736 src/hb-ot-shape-complex-arabic-fallback.hh | 4 +- - src/hb-ot-shape-complex-arabic-win1256.hh | 123 - +++++++++++++++++------------ + src/hb-ot-shape-complex-arabic-win1256.hh | 123 +++++++++++++++++------------ 2 files changed, 75 insertions(+), 52 deletions(-) commit f28b1c823db2ad56fed356ef864a7508d23048b8 @@ -59389,26 +58298,23 @@ Author: Behdad Esfahbod Date: Wed Jul 30 02:15:44 2014 -0400 [arabic] Implement Windows-1256 private shaping - - Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered - bad + + Bug 1045139 - The Arabic text with "MS Sans Serif" font is rendered bad https://bugzilla.mozilla.org/show_bug.cgi?id=1045139 - + This is only enabled on Windows platforms, and requires support from Uniscribe to work. But for clients that do hook up to Uniscribe, this - fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans - Serif". - + fixes shaping of Windows-1256-encoded bitmap fonts like "MS Sans Serif". + The code and table together have just less than a 1kb footprint when enabled. - + UNTESTED. I might even have broken regular Arabic fallback shaping. src/Makefile.am | 1 + src/check-includes.sh | 2 +- src/hb-ot-shape-complex-arabic-fallback.hh | 125 +++++++++-- - src/hb-ot-shape-complex-arabic-win1256.hh | 328 - +++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic-win1256.hh | 328 +++++++++++++++++++++++++++++ 4 files changed, 442 insertions(+), 14 deletions(-) commit ac53443f1cea83ed43a4e41a9fdb91902f7fae7b @@ -59416,22 +58322,18 @@ Author: Behdad Esfahbod Date: Thu Jul 31 18:51:37 2014 -0400 [hangul] Don't apply 'calt' - + See comments. - + Micro-test added. - src/hb-ot-shape-complex-hangul.cc | 11 - ++++++++++- + src/hb-ot-shape-complex-hangul.cc | 11 ++++++++++- test/shaping/Makefile.am | 1 + - .../sha1sum/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf | Bin 0 -> - 1804 bytes - .../sha1sum/7e14e7883ed152baa158b80e207b66114c823a8b.ttf | Bin 0 -> - 1644 bytes + .../sha1sum/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf | Bin 0 -> 1804 bytes + .../sha1sum/7e14e7883ed152baa158b80e207b66114c823a8b.ttf | Bin 0 -> 1644 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ test/shaping/tests/MANIFEST | 1 + - test/shaping/tests/hangul-jamo.tests | 11 - +++++++++++ + test/shaping/tests/hangul-jamo.tests | 11 +++++++++++ 7 files changed, 25 insertions(+), 1 deletion(-) commit 8292f96b2be173ebceb1b54426c271cfeaecd633 @@ -59457,20 +58359,19 @@ Author: Behdad Esfahbod Date: Sat Jul 26 20:34:01 2014 -0400 [hebrew] Zero mark advance by GDEF late - + Seems to be what Uniscribe does. - + At this point I think it's work checking our default... - + Fixes Bug 76767 - Zeroing of advance of 2nd component of multiple substitution with SBL Hebrew https://bugs.freedesktop.org/show_bug.cgi?id=76767 - + Micro-test added. src/hb-ot-shape-complex-hebrew.cc | 2 +- - .../sha1sum/8454d22037f892e76614e1645d066689a0200e61.ttf | Bin 0 -> - 6068 bytes + .../sha1sum/8454d22037f892e76614e1645d066689a0200e61.ttf | Bin 0 -> 6068 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/zero-width-marks.tests | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) @@ -59480,23 +58381,21 @@ Author: Behdad Esfahbod Date: Sat Jul 26 19:17:44 2014 -0400 Add old-Myanmar shaper - + Looks like Unsicribe responds to the 'mymr' tag by zeroing marks GDEF_LATE instead of generic-shaper UNICODE_LATE. Implement that. - + Fixes Bug 81775 - Incorrect Rendering with harfbuzz-ng myanmar unicode https://bugs.freedesktop.org/show_bug.cgi?id=81775 - + Micro-test added based on Padauk. - src/hb-ot-shape-complex-myanmar.cc | 18 - ++++++++++++++++++ + src/hb-ot-shape-complex-myanmar.cc | 18 ++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 5 +++-- test/shaping/Makefile.am | 1 + test/shaping/fonts/sha1sum/MANIFEST | 1 + - .../bb9473d2403488714043bcfb946c9f78b86ad627.ttf | Bin 0 -> - 3440 bytes + .../bb9473d2403488714043bcfb946c9f78b86ad627.ttf | Bin 0 -> 3440 bytes test/shaping/tests/MANIFEST | 1 + test/shaping/tests/zero-width-marks.tests | 1 + 7 files changed, 25 insertions(+), 2 deletions(-) @@ -59534,7 +58433,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 12:30:47 2014 -0400 Fix snprintf() format - + Patch from Maks Naumov. Fixes https://github.com/behdad/harfbuzz/pull/22 @@ -59546,7 +58445,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 12:21:49 2014 -0400 Make sure broken feature strings are not partially parsed - + If user doesn't check hb_feature_from_string() return value, we don't want them to end up see the partially-parsed feature. @@ -59558,7 +58457,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 12:15:33 2014 -0400 Allow quotation marks around feature tag in hb_feature_from_string() - + With this, I believe we accept CSS feature strings completely. src/hb-shape.cc | 24 +++++++++++++++++++++--- @@ -59587,7 +58486,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 12:01:22 2014 -0400 Allow on/off in hb_feature_from_string() - + We now allow things like "dlig on" / "dlig=on". src/hb-shape.cc | 26 ++++++++++++++++++++++++-- @@ -59598,7 +58497,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 11:56:01 2014 -0400 Remove duplicate definition of ISALNUM - + It's defined in hb-private.h already. src/hb-shape.cc | 2 -- @@ -59618,7 +58517,7 @@ Author: Behdad Esfahbod Date: Fri Jul 25 11:44:35 2014 -0400 Do not require the '=' in hb_feature_from_string() - + Towards accepting CSS font-feature-settings strings. src/hb-shape.cc | 6 +++++- @@ -59638,9 +58537,8 @@ Author: Behdad Esfahbod Date: Fri Jul 25 11:18:11 2014 -0400 Minor warnings fixes - - Some systems insist on -Wmissing-field-initializers. We have - too many, + + Some systems insist on -Wmissing-field-initializers. We have too many, by design. Fix a few easy ones. src/hb-open-type-private.hh | 2 +- @@ -59653,13 +58551,12 @@ Author: Behdad Esfahbod Date: Wed Jul 23 16:48:51 2014 -0400 [indic] Handle old-spec Malayalam reordering with final Halant - + See comment. - + Micro-tests added. - src/hb-ot-shape-complex-indic.cc | 28 - +++++++++++++++++---- + src/hb-ot-shape-complex-indic.cc | 28 +++++++++++++++++---- test/shaping/Makefile.am | 1 + .../270b89df543a7e48e206a2d830c0e10e5265c630.ttf | Bin 0 -> 3428 bytes .../57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf | Bin 0 -> 2272 bytes @@ -59674,7 +58571,7 @@ Author: Behdad Esfahbod Date: Wed Jul 23 11:38:49 2014 -0400 Give CC to gir-scanner - + From: https://github.com/Alexpux/MINGW-packages/blob/master/mingw-w64-harfbuzz/0001-give-cc-to-gir-scanner.all.patch @@ -59705,7 +58602,7 @@ Author: Behdad Esfahbod Date: Tue Jul 22 16:26:27 2014 -0400 Disallow changing settings on immutable face - + Ouch! src/hb-face.cc | 8 ++++---- @@ -59718,7 +58615,7 @@ Author: Behdad Esfahbod Date: Mon Jul 21 11:12:54 2014 -0400 [win] Fix Cygwin build - + https://github.com/behdad/harfbuzz/commit/db308280488c2ee11ba865a9922eb6a0c1abeef3#commitcomment-7077778 src/hb-private.hh | 2 +- @@ -59729,7 +58626,7 @@ Author: Behdad Esfahbod Date: Sun Jul 20 01:17:40 2014 -0400 Add HB_TAG_MAX_SIGNED / _HB_SCRIPT_MAX_VALUE_SIGNED - + To make C language police happy. src/hb-common.h | 17 ++++++++++++----- @@ -59740,7 +58637,7 @@ Author: Behdad Esfahbod Date: Sat Jul 19 17:31:23 2014 -0400 [gobject] Skip _HB_SCRIPT_MAX_VALUE - + Fixes https://github.com/behdad/harfbuzz/pull/38 src/hb-common.h | 2 +- @@ -59782,9 +58679,9 @@ Author: Behdad Esfahbod Date: Sat Jul 19 16:10:21 2014 -0400 More fixing MemoryBarrier() on Mingw32 - + Set requested windows header to Vista. See discussion: - + https://github.com/behdad/harfbuzz/commit/fbb2847f541389f40718af71c4945024ae177ab2#commitcomment-7054700 src/hb-atomic-private.hh | 3 +++ @@ -59796,8 +58693,7 @@ Date: Fri Jul 18 14:42:50 2014 -0400 [test] Remove unused micro-font - .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 -> - 0 bytes + .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 81968 -> 0 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 - 2 files changed, 1 deletion(-) @@ -59806,15 +58702,13 @@ Author: Behdad Esfahbod Date: Fri Jul 18 14:37:49 2014 -0400 [test] Add more Mongolian variation selector tests - + From https://code.google.com/p/chromium/issues/detail?id=393896 - .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 -> - 81968 bytes + .../9d64156923a1b9fed1e05f74599c16563eca42d9.ttf | Bin 0 -> 81968 bytes test/shaping/fonts/sha1sum/MANIFEST | 2 ++ - .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 -> - 74856 bytes + .../bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf | Bin 0 -> 74856 bytes test/shaping/tests/mongolian-variation-selector.tests | 1 + .../shaper-arabic/script-mongolian/misc/MANIFEST | 1 + .../script-mongolian/misc/variation-selectors.txt | 8 ++++++++ @@ -59834,7 +58728,7 @@ Author: Behdad Esfahbod Date: Thu Jul 17 17:13:54 2014 -0400 [arabic] Disable 'cswh' again - + Ouch! src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -59864,14 +58758,13 @@ Author: Behdad Esfahbod Date: Thu Jul 17 13:36:09 2014 -0400 [arabic] Apply init/medi/isol/fini/... in separate stages - + Follows the order of the Arabic/Syriac specs. Also don't stop between rlig and calt in non-Arabic scripts. - + Micro-tests for Arabic and Mongolian added for the latter. - src/hb-ot-shape-complex-arabic.cc | 56 - +++++++++++++-------- + src/hb-ot-shape-complex-arabic.cc | 56 +++++++++++++-------- test/shaping/Makefile.am | 2 + .../813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf | Bin 0 -> 3428 bytes .../8a9fea2a7384f2116e5b84a9b31f83be7850ce21.ttf | Bin 0 -> 3428 bytes @@ -59896,8 +58789,7 @@ Date: Thu Jul 17 14:22:11 2014 -0400 Micro optimization - src/hb-fallback-shape.cc | 36 - +++++++++++++++++++----------------- + src/hb-fallback-shape.cc | 36 +++++++++++++++++++----------------- src/hb-ot-shape-complex-arabic.cc | 19 +++++++++++-------- src/hb-ot-shape-complex-indic.cc | 15 ++++++++++----- src/hb-ot-shape-complex-myanmar.cc | 7 +++++-- @@ -59911,17 +58803,16 @@ Author: Behdad Esfahbod Date: Thu Jul 17 14:16:38 2014 -0400 Another try to fix Mongolian free variation selectors - + This reverts bf029281 and fixes it properly. That commit was not enough as it was only inheriting the shaping_action for prev_action, but not curr_action. - + Micro-test added. - + https://code.google.com/p/chromium/issues/detail?id=393896 - src/hb-ot-shape-complex-arabic.cc | 24 - +++++++++++++++------ + src/hb-ot-shape-complex-arabic.cc | 24 +++++++++++++++------ src/hb-unicode-private.hh | 3 ++- test/shaping/fonts/sha1sum/MANIFEST | 1 + .../ef86fe710cfea877bbe0dbb6946a1f88d0661031.ttf | Bin 0 -> 2748 bytes @@ -59932,16 +58823,15 @@ commit 5209c505061130854a2bfea8849928ade3ee92f3 Author: Behdad Esfahbod Date: Thu Jul 17 12:23:44 2014 -0400 - Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode - codepoints" - + Revert "Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints" + We now handle U+FFFD replacement in hb_buffer_add_utf*(). Any other manipulation can happen in user callbacks. No need for this. - + https://github.com/behdad/harfbuzz/commit/efe74214bbb68eaa3d7621e73869b5d58210107e#commitcomment-7039404 - + This reverts commit efe74214bbb68eaa3d7621e73869b5d58210107e. - + Conflicts: src/hb-ot-shape-normalize.cc @@ -59981,26 +58871,25 @@ Author: Behdad Esfahbod Date: Wed Jul 16 15:34:20 2014 -0400 New API: hb_buffer_[sg]et_replacement_codepoint() - + With this change, we now by default replace broken UTF-8/16/32 bits with U+FFFD. This can be changed by calling new API on the buffer. Previously the replacement value used to be (hb_codepoint_t)-1. - + Note that hb_buffer_clear_contents() does NOT reset the replacement character. - + See discussion here: - + https://github.com/behdad/harfbuzz/commit/6f13b6d62daae4989e3cc2fe4b168e5c59650964 - + New API: - + hb_buffer_set_replacement_codepoint() hb_buffer_get_replacement_codepoint() src/hb-buffer-private.hh | 1 + - src/hb-buffer.cc | 45 - ++++++++++++++++++++++++++++++++++++++++++--- + src/hb-buffer.cc | 45 ++++++++++++++++++++++++++++++++++++++++++--- src/hb-buffer.h | 15 ++++++++++++++- src/hb-utf-private.hh | 34 ++++++++++++++++++++-------------- test/api/test-buffer.c | 26 +++++++++++++++----------- @@ -60011,7 +58900,7 @@ Author: Behdad Esfahbod Date: Wed Jul 16 14:59:04 2014 -0400 New API hb_buffer_add_codepoints() - + Like hb_buffer_add_utf32, but doesn't do any Unicode validation. This is like what hb_buffer_add_utf32 used to be until a couple commits ago. @@ -60027,8 +58916,7 @@ Date: Wed Jul 16 14:49:55 2014 -0400 [buffer] Templatize UTF-* functions src/hb-buffer.cc | 10 +- - src/hb-utf-private.hh | 307 - ++++++++++++++++++++++++++------------------------ + src/hb-utf-private.hh | 307 ++++++++++++++++++++++++++------------------------ 2 files changed, 166 insertions(+), 151 deletions(-) commit e634fed4285ce440d277345727ed01757df6d779 @@ -60036,12 +58924,11 @@ Author: Behdad Esfahbod Date: Wed Jul 16 14:17:26 2014 -0400 [buffer] Validate UTF-32 input - + Same as what we do for UTF-8 and UTF-16. src/hb-utf-private.hh | 13 +++++++++--- - test/api/test-buffer.c | 55 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-buffer.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 3 deletions(-) commit b98c5db32d15fcfb27ce2f6737203ce1ad124319 @@ -60060,8 +58947,7 @@ Date: Wed Jul 16 13:32:51 2014 -0400 [tests] Add record-test.sh test/shaping/Makefile.am | 1 + - test/shaping/record-test.sh | 49 - +++++++++++++++++++++++++++++++++++++++++++++ + test/shaping/record-test.sh | 49 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) commit 3b861421a772f52eb232ff93bd74b5a8214801ec @@ -60069,30 +58955,26 @@ Author: Behdad Esfahbod Date: Wed Jul 16 13:22:05 2014 -0400 Fix Mongolian Variation Selectors for fonts without GDEF - + Originally we fixed those in 79d1007a501fd63c0ba4d51038c513e6b8b94740. - However, fonts like MongolianWhite don't have GDEF, but have - IgnoreMarks + However, fonts like MongolianWhite don't have GDEF, but have IgnoreMarks in their LigatureSubstitute init/etc features. We were synthesizing a GDEF class of mark for Mongolian Variation Selectors and as such the ligature lookups where not matching. Uniscribe doesn't do that. - + I tried with more sophisticated fixes, like, if there is no GDEF and a lookup-flag mismatch happens, instead of rejecting a match, try skipping that glyph. That surely produces some interesting behavior, - but since we don't want to support fonts missing GDEF more than - we have + but since we don't want to support fonts missing GDEF more than we have to, I went for this simpler fix which is to always mark default-ignorables as base when synthesizing GDEF. - + Micro-test added. - + Fixes rest of https://bugs.freedesktop.org/show_bug.cgi?id=65258 - src/hb-ot-shape.cc | 13 - +++++++++++-- - .../sha1sum/37033cc5cf37bb223d7355153016b6ccece93b28.ttf | Bin 0 -> - 2780 bytes + src/hb-ot-shape.cc | 13 +++++++++++-- + .../sha1sum/37033cc5cf37bb223d7355153016b6ccece93b28.ttf | Bin 0 -> 2780 bytes test/shaping/fonts/sha1sum/MANIFEST | 1 + test/shaping/tests/MANIFEST | 1 + test/shaping/tests/mongolian-variation-selector.tests | 1 + @@ -60167,12 +59049,11 @@ Author: Behdad Esfahbod Date: Fri Jul 11 16:10:58 2014 -0400 Only accept well-formed UTF-8 sequences - + Enable tests that were disabled before, and adjust one test, and add more tests. - src/hb-utf-private.hh | 93 - +++++++++++++++++++++++++++++++++----------------- + src/hb-utf-private.hh | 93 +++++++++++++++++++++++++++++++++----------------- test/api/test-buffer.c | 9 +++-- 2 files changed, 68 insertions(+), 34 deletions(-) @@ -60190,14 +59071,13 @@ Author: Behdad Esfahbod Date: Fri Jul 11 15:05:36 2014 -0400 Use hb_in_range() for arabic and indic tables - + Though, looks like gcc was smart enough to produce the same code before... src/gen-arabic-table.py | 18 +- src/gen-indic-table.py | 10 +- - src/hb-ot-shape-complex-arabic-table.hh | 420 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-arabic-table.hh | 420 ++++++++++++++++---------------- src/hb-ot-shape-complex-indic-table.cc | 88 +++---- 4 files changed, 268 insertions(+), 268 deletions(-) @@ -60206,7 +59086,7 @@ Author: Behdad Esfahbod Date: Fri Jul 11 14:54:42 2014 -0400 Mark unsigned integer literals with the u suffix - + Simplifies hb_in_range() calls as the type can be inferred. The rest is obsessiveness, I admit. @@ -60231,8 +59111,7 @@ Date: Fri Jul 11 14:54:42 2014 -0400 src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- src/hb-ot-shape-complex-hangul.cc | 36 +++--- src/hb-ot-shape-complex-hebrew.cc | 134 ++++++++++----------- - src/hb-ot-shape-complex-indic.cc | 182 - ++++++++++++++--------------- + src/hb-ot-shape-complex-indic.cc | 182 ++++++++++++++--------------- src/hb-ot-shape-complex-myanmar.cc | 56 ++++----- src/hb-ot-shape-complex-sea.cc | 8 +- src/hb-ot-shape-complex-thai.cc | 84 ++++++------- @@ -60250,7 +59129,7 @@ Author: Behdad Esfahbod Date: Fri Jul 11 14:18:01 2014 -0400 Simplify hb_in_range() - + It's both faster and produces smaller code. Now I feel stupid for not writing it this way before. @@ -60271,15 +59150,15 @@ Author: Behdad Esfahbod Date: Fri Jul 11 11:59:48 2014 -0400 Show U+FFFD REPLACEMENT CHARACTER for invalid Unicode codepoints - + Only if the font doesn't support it. Ie, this gives the user to use non-Unicode codepoints as private values and return a meaningful glyph for them. But if it's invalid and font callback doesn't like it, and if font has U+FFFD, show that instead. - + Font functions that do not want this automatic replacement to happen should return true from get_glyph() if unicode > 0x10FFFF. - + Replaces https://github.com/behdad/harfbuzz/pull/27 src/hb-ot-shape-normalize.cc | 7 +++++++ @@ -60289,9 +59168,8 @@ commit 6f13b6d62daae4989e3cc2fe4b168e5c59650964 Author: Behdad Esfahbod Date: Thu Jul 10 19:31:40 2014 -0400 - When parsing UTF-16, generate invalid codepoint for lonely low - surrogate - + When parsing UTF-16, generate invalid codepoint for lonely low surrogate + Test passes now. src/hb-utf-private.hh | 42 ++++++++++++++++++++++++++++-------------- @@ -60302,7 +59180,7 @@ Author: Behdad Esfahbod Date: Thu Jul 10 19:31:16 2014 -0400 [test-buffer] Add test for lonely low-surrogate - + Currenty fails. Ouch! test/api/test-buffer.c | 1 + @@ -60323,7 +59201,7 @@ Author: Behdad Esfahbod Date: Thu Jul 10 19:20:35 2014 -0400 Fix lang matching logic - + Previous code was broken logically, but harmless. src/hb-ot-tag.cc | 2 +- @@ -60354,7 +59232,7 @@ Author: Behdad Esfahbod Date: Wed Jul 9 19:09:08 2014 -0400 [Android.mk] Update for new ICU - + https://android-review.googlesource.com/#/c/100722/1/Android.mk Android.mk | 2 +- @@ -60393,7 +59271,7 @@ Author: Behdad Esfahbod Date: Wed Jul 9 17:17:18 2014 -0400 Define _POSIX_C_SOURCE only if it is not defined - + Fixes https://github.com/behdad/harfbuzz/pull/45 src/hb-blob.cc | 2 ++ @@ -60404,12 +59282,12 @@ Author: Behdad Esfahbod Date: Wed Jul 9 17:07:06 2014 -0400 [tests] Remove bash'ish - + Apparently on travis-ci, bash is linked to dash, which doesn't understand "let". Failing tests were not being noticed. See eg: - + https://travis-ci.org/behdad/harfbuzz/jobs/29544211 - + Don't rely on bash. test/shaping/run-tests.sh | 4 ++-- @@ -60429,15 +59307,14 @@ Author: Behdad Esfahbod Date: Wed Jul 9 16:51:38 2014 -0400 [ucdn] Update to Unicode 7.0.0 data - + From http://github.com/behdad/ucdn src/hb-ucdn.cc | 23 + src/hb-ucdn/README | 1 + src/hb-ucdn/ucdn.c | 2 +- src/hb-ucdn/ucdn.h | 27 + - src/hb-ucdn/unicodedata_db.h | 3711 - ++++++++++++++++++++++-------------------- + src/hb-ucdn/unicodedata_db.h | 3711 ++++++++++++++++++++++-------------------- 5 files changed, 2039 insertions(+), 1725 deletions(-) commit 9d4ede3a97fff544a5ec2a671e49a92a79645b61 @@ -60472,7 +59349,7 @@ Author: Behdad Esfahbod Date: Tue Jul 8 20:02:29 2014 -0400 [util/hb-shape] Accept an empty output-format that would skip output - + Useful for benchmarking, to avoid buffer serialization overhead (which seems to by far dominate shaping!) @@ -60493,13 +59370,11 @@ Author: Behdad Esfahbod Date: Sat Jul 5 15:50:18 2014 -0400 [util] Add option to set font function implementation to use - - Supports ft and ot right now. hb-view currently not rendering - with ot. + + Supports ft and ot right now. hb-view currently not rendering with ot. Will fix after some clean up. - util/options.cc | 76 - ++++++++++++++++++++++++++++++++++++++++++++++++++------- + util/options.cc | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++------- util/options.hh | 21 ++++++++++++++++ 2 files changed, 88 insertions(+), 9 deletions(-) @@ -60518,7 +59393,7 @@ Author: Behdad Esfahbod Date: Tue Jul 1 15:51:54 2014 -0400 Add Roozbeh to AUTHORS - + He's been my shadow for all Indic-related changes in the last few months. @@ -60539,7 +59414,7 @@ Author: Behdad Esfahbod Date: Mon Jun 30 15:39:39 2014 -0400 [indic] Remove special-casing of U+1CF2,1CF3 - + These were introduced in a498565cedf0441ae723c5e5969f637d792a15e7, but IndicSyllabicCategory has had the correct value already, so the special code was never needed. @@ -60552,15 +59427,14 @@ Author: Behdad Esfahbod Date: Mon Jun 30 15:24:02 2014 -0400 [indic-table] Update to Unicode 7.0 data - + Touch code just enough to preserve previous syllable structure and functionality as closely as possible. Many further cleanups coming later. src/gen-indic-table.py | 4 + src/hb-ot-shape-complex-indic-private.hh | 23 +- - src/hb-ot-shape-complex-indic-table.cc | 468 - ++++++++++++++++++++++--------- + src/hb-ot-shape-complex-indic-table.cc | 468 ++++++++++++++++++++++--------- src/hb-ot-shape-complex-indic.cc | 21 -- src/hb-ot-shape-complex-myanmar.cc | 2 - 5 files changed, 355 insertions(+), 163 deletions(-) @@ -60572,8 +59446,7 @@ Date: Mon Jun 30 14:30:54 2014 -0400 [indic-table] Fix category frequency counts in comments src/gen-indic-table.py | 2 +- - src/hb-ot-shape-complex-indic-table.cc | 46 - +++++++++++++++++----------------- + src/hb-ot-shape-complex-indic-table.cc | 46 +++++++++++++++++----------------- 2 files changed, 24 insertions(+), 24 deletions(-) commit 5c4e3e9a57b6b735e7d72cbd5f4070cf024d7015 @@ -60582,8 +59455,7 @@ Date: Mon Jun 30 14:25:18 2014 -0400 Whitespace - src/hb-ot-shape-complex-indic-private.hh | 76 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-indic-private.hh | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) commit af528b6674bccac3efd13f8b33fcdc6aeb178f4c @@ -60600,11 +59472,11 @@ Author: Behdad Esfahbod Date: Fri Jun 27 17:30:59 2014 -0400 Mark unsed members with a "Z" suffix - + There may be more. There are members that are by definition redundant or reserved and not needed, NOT what we *currently* don't use. - + I'm sure there's more... src/hb-open-file-private.hh | 6 +++--- @@ -60627,8 +59499,7 @@ Date: Fri Jun 27 17:03:22 2014 -0400 [cmap] Implement subtable format 14 - src/hb-ot-cmap-table.hh | 147 - +++++++++++++++++++++++++++++++++++++++++++----- + src/hb-ot-cmap-table.hh | 147 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 133 insertions(+), 14 deletions(-) commit 586b60622c33878f9ca4826b4ef07369d32bf039 @@ -60744,14 +59615,14 @@ Author: Behdad Esfahbod Date: Tue Jun 24 10:20:36 2014 -0600 Add back API removed recently - + Add hb_ot_layout_language_get_required_feature_index() again, which is used in Pango. This was removed in da132937989acb4d8ca9bd41c79f98750e7dda30 in favor of hb_ot_layout_language_get_required_feature(). - + API changes: - + - Added hb_ot_layout_language_get_required_feature_index back. src/hb-ot-layout.cc | 15 +++++++++++++++ @@ -60791,7 +59662,7 @@ Author: Behdad Esfahbod Date: Sat Jun 21 15:25:59 2014 -0600 [indic-table] Update to Unicode 6.3.0 - + Was from 6.2.0. It's a no-op. Committing for the record. src/hb-ot-shape-complex-indic-table.cc | 12 ++++++------ @@ -60811,13 +59682,11 @@ Author: Behdad Esfahbod Date: Sat Jun 21 14:19:34 2014 -0600 [arabic-table] Update to Unicode 7.0 - - Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa - data. + + Old table was from 6.2. Remove hard-coded Mongolian and Phags-pa data. This completes support for new scripts Manichian and Psaltar Pahlavi. - src/hb-ot-shape-complex-arabic-table.hh | 72 - ++++++++++++++++++++++++++++----- + src/hb-ot-shape-complex-arabic-table.hh | 72 ++++++++++++++++++++++++++++----- src/hb-ot-shape-complex-arabic.cc | 22 ---------- 2 files changed, 63 insertions(+), 31 deletions(-) @@ -60837,12 +59706,11 @@ Author: Behdad Esfahbod Date: Sat Jun 21 14:07:00 2014 -0600 [arabic-table] Further tune - + In anticipation of Unicode 7.0 data coming in the next commit. src/gen-arabic-table.py | 10 ++++++--- - src/hb-ot-shape-complex-arabic-table.hh | 38 - +++++++++++++++------------------ + src/hb-ot-shape-complex-arabic-table.hh | 38 +++++++++++++++------------------ 2 files changed, 24 insertions(+), 24 deletions(-) commit a133e6067aaebc494c0156b5fac7f4a879e12dbe @@ -60859,11 +59727,10 @@ Author: Behdad Esfahbod Date: Fri Jun 20 17:59:43 2014 -0400 [arabic-table] Use segmented table - + No functional change. - src/gen-arabic-table.py | 82 - +++++++++++++++++++++++---------- + src/gen-arabic-table.py | 82 +++++++++++++++++++++++---------- src/hb-ot-shape-complex-arabic-table.hh | 53 ++++++++++++++------- src/hb-ot-shape-complex-arabic.cc | 8 ++-- 3 files changed, 97 insertions(+), 46 deletions(-) @@ -60882,7 +59749,7 @@ Author: Behdad Esfahbod Date: Fri Jun 20 16:47:43 2014 -0400 [indic-table] Minor - + No output change. src/gen-indic-table.py | 7 +------ @@ -60893,12 +59760,11 @@ Author: Behdad Esfahbod Date: Fri Jun 20 16:30:10 2014 -0400 [arabic-table] Don't write comments - + No functional change. src/gen-arabic-table.py | 20 +- - src/hb-ot-shape-complex-arabic-table.hh | 710 - ++------------------------------ + src/hb-ot-shape-complex-arabic-table.hh | 710 ++------------------------------ 2 files changed, 38 insertions(+), 692 deletions(-) commit 200dfe3eb10feda2ad25940338b08011f4757ca4 @@ -60906,12 +59772,11 @@ Author: Behdad Esfahbod Date: Fri Jun 20 16:20:59 2014 -0400 [arabic-table] Use short names for values - + No functional change. src/gen-arabic-table.py | 16 +- - src/hb-ot-shape-complex-arabic-table.hh | 1386 - ++++++++++++++++--------------- + src/hb-ot-shape-complex-arabic-table.hh | 1386 ++++++++++++++++--------------- 2 files changed, 716 insertions(+), 686 deletions(-) commit 3f5327a41efcf50f64d9498ef3dfd6875ef6a5ab @@ -60919,12 +59784,11 @@ Author: Behdad Esfahbod Date: Fri Jun 20 16:17:42 2014 -0400 [arabic-table] Read Blocks.txt and shuffle code around - + No functional change. src/Makefile.am | 2 +- - src/gen-arabic-table.py | 80 - +++++++++++++++++++-------------- + src/gen-arabic-table.py | 80 +++++++++++++++++++-------------- src/hb-ot-shape-complex-arabic-table.hh | 30 ++++++++----- 3 files changed, 67 insertions(+), 45 deletions(-) @@ -60933,12 +59797,11 @@ Author: Behdad Esfahbod Date: Fri Jun 20 15:25:30 2014 -0400 [indic-table] Black-list Thai, Lao, and Tibetan - + We don't need Indic table for those. src/gen-indic-table.py | 3 ++ - src/hb-ot-shape-complex-indic-table.cc | 94 - +++++++--------------------------- + src/hb-ot-shape-complex-indic-table.cc | 94 +++++++--------------------------- 2 files changed, 21 insertions(+), 76 deletions(-) commit 65ac2dae4f284f563b2dc476a21e2b5a48124de8 @@ -60948,8 +59811,7 @@ Date: Fri Jun 20 15:12:49 2014 -0400 [indic-table] Speed up lookup src/gen-indic-table.py | 22 +++++++++--- - src/hb-ot-shape-complex-indic-table.cc | 61 - +++++++++++++++++++++++----------- + src/hb-ot-shape-complex-indic-table.cc | 61 +++++++++++++++++++++++----------- 2 files changed, 59 insertions(+), 24 deletions(-) commit 64442a3f4c5c7be08893454742cad6bfe73cb8d7 @@ -60967,16 +59829,15 @@ Author: Behdad Esfahbod Date: Fri Jun 20 14:56:22 2014 -0400 [indic-table] Make table more compact by not covering full blocks - + -#define indic_offset_total 4416 +#define indic_offset_total 3816 - + -}; /* Table occupancy: 60% */ +}; /* Table occupancy: 69% */ src/gen-indic-table.py | 24 ++++-- - src/hb-ot-shape-complex-indic-table.cc | 150 - +++++++++------------------------ + src/hb-ot-shape-complex-indic-table.cc | 150 +++++++++------------------------ 2 files changed, 57 insertions(+), 117 deletions(-) commit 190a251479b3cfc68871ff1daf9a9d1abe3f86e6 @@ -60984,12 +59845,11 @@ Author: Behdad Esfahbod Date: Fri Jun 20 14:41:39 2014 -0400 [indic-table] Remove block range from data table - + No functional change. src/gen-indic-table.py | 4 +- - src/hb-ot-shape-complex-indic-table.cc | 102 - ++++++++++++++++----------------- + src/hb-ot-shape-complex-indic-table.cc | 102 ++++++++++++++++----------------- 2 files changed, 54 insertions(+), 52 deletions(-) commit 2b051c6057920c564c13c5d6a3e6dca93446fa12 @@ -60997,16 +59857,16 @@ Author: Behdad Esfahbod Date: Fri Jun 20 14:09:57 2014 -0400 Rename HB_VERSION_CHECK and hb_version_check to "atleast" - + HB_VERSION_CHECK's comparison was originally written wrongly by mistake. When API tests were written, they were also written wrongly to pass given the wrong implementation... Sigh. - + Given the purpose of this API, there's no point in fixing it without renaming it. As such, rename. - + API changes: - + HB_VERSION_CHECK -> HB_VERSION_ATLEAST hb_version_check -> hb_version_atleast @@ -61030,27 +59890,25 @@ commit da132937989acb4d8ca9bd41c79f98750e7dda30 Author: Jonathan Kew Date: Sun Apr 27 14:05:24 2014 +0100 - Rework handling of requiredFeature to solve problem with rlig in - arial.ttf from winxp - + Rework handling of requiredFeature to solve problem with rlig in arial.ttf from winxp + https://bugzilla.mozilla.org/show_bug.cgi?id=986802 Fixes https://github.com/behdad/harfbuzz/pull/39 - + API Change: - + -hb_ot_layout_language_get_required_feature_index +hb_ot_layout_language_get_required_feature - + New API takes an extra pointer argument. Pass NULL in to get behavior of previous API. - + Reworked by behdad src/hb-ot-layout-gsubgpos-private.hh | 4 +-- src/hb-ot-layout.cc | 29 ++++++++++++--------- src/hb-ot-layout.h | 11 ++++---- - src/hb-ot-map.cc | 50 - ++++++++++++++++++++++++++---------- + src/hb-ot-map.cc | 50 ++++++++++++++++++++++++++---------- src/main.cc | 4 +-- 5 files changed, 64 insertions(+), 34 deletions(-) @@ -61059,7 +59917,7 @@ Author: Behdad Esfahbod Date: Thu Jun 19 15:39:18 2014 -0400 Rename search() to bsearch() and lsearch() - + Such that the complexity of the algorithm used is clear at call site. @@ -61073,7 +59931,7 @@ Author: Behdad Esfahbod Date: Thu Jun 19 15:30:18 2014 -0400 Rename sort() to qsort() - + In an effort to make the algorithm used clear. src/hb-coretext.cc | 4 ++-- @@ -61088,8 +59946,7 @@ Date: Wed Jun 18 12:29:23 2014 -0400 [unicode7] Update list of Default_Ignorable codepoints - src/hb-unicode-private.hh | 66 - +++++++++++++++++++++-------------------------- + src/hb-unicode-private.hh | 66 +++++++++++++++++++++-------------------------- 1 file changed, 30 insertions(+), 36 deletions(-) commit 7cfee3827636f0dff7df5c8975a4fadd1b4bfbd5 @@ -61097,7 +59954,7 @@ Author: Behdad Esfahbod Date: Mon Apr 28 15:09:30 2014 -0700 [unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper - + Still needs update to joining table to fully work. src/hb-ot-shape-complex-private.hh | 4 ++++ @@ -61144,21 +60001,19 @@ Author: Jonathan Kew Date: Tue Jun 10 13:10:30 2014 +0100 When zeroing mark widths for LTR, also adjust offset... - + ...so that they overstrike preceding glyph. - + https://github.com/behdad/harfbuzz/pull/43 - src/hb-ot-shape.cc | 50 - +++++++++++++++++++++++++++++++++++++++----------- + src/hb-ot-shape.cc | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 39 insertions(+), 11 deletions(-) commit 80f7405a5208f88b8615aa4ce4c54ffeb16f04f8 Author: Jonathan Kew Date: Tue Jun 10 13:10:02 2014 +0100 - [Thai] set the correct general category on Nikhahit when decomposing - Sara-Am. + [Thai] set the correct general category on Nikhahit when decomposing Sara-Am. src/hb-ot-shape-complex-thai.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) @@ -61168,21 +60023,20 @@ Author: Behdad Esfahbod Date: Fri Jun 6 17:55:02 2014 -0400 Fix base-position when 'pref' is NOT formed - + If pre-base reordering Ra is NOT formed (or formed and then broken up), we should consider that Ra as base. This is observable when there's a left matra or dotreph that positions before base. - + Now, it might be that we shouldn't do this if the Ra happend to form a below form. We can't quite deduce that right now... - + Micro test added. Also at: - + https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29 - src/hb-ot-shape-complex-indic.cc | 28 - +++++++++++++++++++-- + src/hb-ot-shape-complex-indic.cc | 28 +++++++++++++++++++-- test/shaping/fonts/sha1sum/MANIFEST | 5 ++++ .../e207635780b42f898d58654b65098763e340f5c7.ttf | Bin 0 -> 3000 bytes test/shaping/tests/indic-pref-blocking.tests | 3 ++- @@ -61193,11 +60047,11 @@ Author: Behdad Esfahbod Date: Fri Jun 6 17:28:38 2014 -0400 [indic] Recover OT_H undergone ligation and multiplication - + Sometimes font designers form half/pref/etc consonant forms unconditionally and then undo that conditionally. Try to recover the OT_H classification in those cases. - + No test number changes expected. src/hb-ot-layout-private.hh | 8 ++++++++ @@ -61209,7 +60063,7 @@ Author: Behdad Esfahbod Date: Fri Jun 6 17:19:35 2014 -0400 [indic] Improve base re-finding - + No test numbers change. src/hb-ot-shape-complex-indic.cc | 5 ++--- @@ -61229,7 +60083,7 @@ Author: Behdad Esfahbod Date: Mon Jun 9 14:17:33 2014 -0400 Fix commit 3f38c1137b6219a646da141b08463ffa922d4e35 - + Previous commit was not compiling with clang. configure.ac | 4 ++-- @@ -61240,10 +60094,10 @@ Author: Behdad Esfahbod Date: Fri Jun 6 16:03:40 2014 -0400 Don't use -mstructure-size-boundary=8 on clang arm - + As in building for Android / iPhone. Only set it if struct{char} alignment is not 1. - + NOT tested on an actual Arm architecture. Guess we'll know when this makes it to people's build bots. @@ -61264,28 +60118,26 @@ Author: Behdad Esfahbod Date: Wed Jun 4 16:57:42 2014 -0400 [indic] Don't reorder reph/pref if ligature was expanded - + Normally if you want to, say, conditionally prevent a 'pref', you would use blocking contextual matching. Some designers instead form the 'pref' form, then undo it in context. To detect that we now also remember glyphs that went through MultipleSubst. - + In the only place that this is used, Uniscribe seems to only care about the "last" transformation between Ligature and Multiple substitions. Ie. if you ligate, expand, and ligate again, it moves the pref, but if you ligate and expand it doesn't. That's why we clear the MULTIPLIED bit when setting LIGATED. - + Micro-test added. Test: U+0D2F,0D4D,0D30 with font from: - + [1] https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29 src/hb-ot-layout-gsub-table.hh | 2 +- - src/hb-ot-layout-gsubgpos-private.hh | 20 - ++++++++++++++++---- - src/hb-ot-layout-private.hh | 16 - +++++++++++++++- + src/hb-ot-layout-gsubgpos-private.hh | 20 ++++++++++++++++---- + src/hb-ot-layout-private.hh | 16 +++++++++++++++- src/hb-ot-shape-complex-indic.cc | 4 ++-- test/shaping/Makefile.am | 5 ++++- .../226bc2deab3846f1a682085f70c67d0421014144.ttf | Bin 0 -> 2828 bytes @@ -61344,17 +60196,17 @@ Author: Behdad Esfahbod Date: Wed Jun 4 18:47:55 2014 -0400 [ot-font] Work around broken cmap subtable format 4 length - + Roboto was hitting this. FreeType also has pretty much the same code for this, in ttcmap.c:tt_cmap4_validate(): - + /* in certain fonts, the `length' field is invalid and goes */ /* out of bound. We try to correct this here... */ if ( table + length > valid->limit ) { if ( valid->level >= FT_VALIDATE_TIGHT ) FT_INVALID_TOO_SHORT; - + length = (FT_UInt)( valid->limit - table ); } @@ -61376,7 +60228,7 @@ Author: Behdad Esfahbod Date: Wed Jun 4 18:17:29 2014 -0400 [ot-font] Don't select a Null cmap subtable - + Can happen either in broken fonts, or as a result of sanitize(). src/hb-ot-cmap-table.hh | 2 +- @@ -61387,7 +60239,7 @@ Author: Behdad Esfahbod Date: Tue Jun 3 17:57:00 2014 -0400 Fix some cppcheck warnings - + Bug 77800 - cppcheck reports src/hb-common.cc | 4 +++- @@ -61411,8 +60263,7 @@ Date: Tue Jun 3 16:59:09 2014 -0400 Move code around - src/hb-private.hh | 134 - ++++++++++++++++++++++++++---------------------------- + src/hb-private.hh | 134 ++++++++++++++++++++++++++---------------------------- 1 file changed, 65 insertions(+), 69 deletions(-) commit 17c3b809f42aec34d83dba2e6229ad85804bebae @@ -61420,9 +60271,9 @@ Author: Behdad Esfahbod Date: Mon Jun 2 15:08:18 2014 -0400 [indic] Treat U+A8E0..A8F1 as OT_A instead of OT_VD - + Apparently they can intermix with other OT_A. - + Test: U+0915,A8E2,1CD0 src/hb-ot-shape-complex-indic.cc | 2 +- @@ -61433,9 +60284,9 @@ Author: Behdad Esfahbod Date: Fri May 30 17:38:14 2014 -0400 [graphite2] Fix cluster mapping - + Patch from Martin Hosken. I expect this to fix the following bugs: - + https://bugs.freedesktop.org/show_bug.cgi?id=75076 https://bugzilla.gnome.org/show_bug.cgi?id=723582 https://bugzilla.redhat.com/show_bug.cgi?id=998812 @@ -61458,13 +60309,11 @@ Author: Behdad Esfahbod Date: Thu May 29 15:34:26 2014 -0400 [indic] Allow decimal and Brahmi digits as placeholders - + Tests: U+0967,0951 U+0031,093F - src/hb-ot-shape-complex-indic.cc | - 4 ++++ - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | - 2 ++ + src/hb-ot-shape-complex-indic.cc | 4 ++++ + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 2 ++ 2 files changed, 6 insertions(+) commit e8b5d64039614ecce472eda1a7a603736da25d86 @@ -61472,15 +60321,13 @@ Author: Behdad Esfahbod Date: Thu May 29 15:18:27 2014 -0400 [indic] Do NOT allow reph formation on placeholders - + Only allow it on DOTTED CIRCLE. No effect on test numbers. - + Test: U+0930,094D,00A0 - src/hb-ot-shape-complex-indic-machine.rl | - 2 +- - .../in-tree/shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | - 1 + + src/hb-ot-shape-complex-indic-machine.rl | 2 +- + .../in-tree/shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 52b562a6a058131c0103aaa5404d053e6465bb23 @@ -61488,7 +60335,7 @@ Author: Behdad Esfahbod Date: Tue May 27 18:18:23 2014 -0400 [indic] Clean up a bit - + No functional change intended. src/hb-ot-shape-complex-indic.cc | 17 +++++------------ @@ -61529,7 +60376,7 @@ Author: Behdad Esfahbod Date: Tue May 27 17:49:45 2014 -0400 [myanmar] Use OT_NBSP instead of OT_DOTTEDCIRCLE for OT_GB - + No functional change. src/hb-ot-shape-complex-myanmar-machine.rl | 2 +- @@ -61552,7 +60399,7 @@ Author: Behdad Esfahbod Date: Tue May 27 17:39:01 2014 -0400 [indic] Treat U+0A72..0A73 like regular consonants - + Unicode 6.x IndicSyllableCategory categorizes them as placeholders, but they can subjoin. @@ -61582,7 +60429,7 @@ Author: Behdad Esfahbod Date: Fri May 23 15:39:55 2014 -0400 [indic] Simplify grammar - + No functional change. src/hb-ot-shape-complex-indic-machine.rl | 7 +++---- @@ -61593,7 +60440,7 @@ Author: Behdad Esfahbod Date: Fri May 23 15:38:42 2014 -0400 [indic] Always start new syllable for Avagraha - + In fact, the previous grammar was ambigious. No functional change. @@ -61605,7 +60452,7 @@ Author: Behdad Esfahbod Date: Fri May 23 15:33:13 2014 -0400 [indic] Rename avagraha cluster to symbol cluster - + In anticipation of adding more characters to that class of clusters. src/hb-ot-shape-complex-indic-machine.rl | 10 +++++----- @@ -61654,7 +60501,7 @@ Author: Behdad Esfahbod Date: Thu May 22 19:12:10 2014 -0400 [indic] Treat U+1CE1 as a tone-mark too - + It's spacing, but otherwise the same as the other ones. src/hb-ot-shape-complex-indic.cc | 2 +- @@ -61665,7 +60512,7 @@ Author: Behdad Esfahbod Date: Thu May 22 18:50:34 2014 -0400 [indic] Recategorize U+A8E0..A8F1 as OT_VD - + Up to two of them come after all OT_A characters. src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -61677,7 +60524,7 @@ Author: Behdad Esfahbod Date: Thu May 22 18:43:14 2014 -0400 [indic] Allow up to three tone marks - + According to Roozbeh, there are valid combinations in Unicode proposals for up to three. Previously we were allowing up to two. @@ -61689,7 +60536,7 @@ Author: Behdad Esfahbod Date: Thu May 22 18:41:49 2014 -0400 [indic] Support more extended Devanagari tone marks - + Also adjust U+0953,0954 handling. src/hb-ot-shape-complex-indic.cc | 18 ++++++++++++------ @@ -61709,19 +60556,17 @@ Author: Behdad Esfahbod Date: Thu May 15 14:04:02 2014 -0600 [indic] Improve reph formation of Sinhala and Telugu - - Sinhala and Telugu use "explicit" reph. That is, the reph is - formed by - a Ra,H,ZWJ sequence. Previously, upon detecting this sequence, - we were + + Sinhala and Telugu use "explicit" reph. That is, the reph is formed by + a Ra,H,ZWJ sequence. Previously, upon detecting this sequence, we were checking checking whether the 'rphf' feature applies to the first two glyphs of the sequence. This is how the Microsoft fonts are designed. However, testing with Noto shows that apparently Uniscribe also forms the reph if the lookup ligates all three glyphs. So, try both sequences. - + Doesn't affect test results for Sinhala or Telugu. - + https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=232 src/hb-ot-shape-complex-indic.cc | 9 +++++++-- @@ -61732,7 +60577,7 @@ Author: Oleg Oshmyan Date: Wed May 14 22:10:09 2014 +0100 Fix build with --coretext on older OS X - + Fixes https://github.com/behdad/harfbuzz/pull/40 src/hb-coretext.h | 2 +- @@ -61743,11 +60588,11 @@ Author: Behdad Esfahbod Date: Wed May 14 16:44:39 2014 -0600 [myanmar] Allow MedialYa+Asat in the grammar - + The grammar in the OT spec, and the existing Windows implementation seem to be confused around where to allow Asat around the medial consonants. - + The previous grammar for medial group was allowing an Asat after the medial group only if there was a medial Wa or Ha, but not if there was only a medial Ya. This doesn't make sense to me and @@ -61761,7 +60606,7 @@ Date: Wed May 14 16:44:39 2014 -0600 produce dotted-circle where Windows is not, this commit changes the grammar to allow one Asat after the medial group no matter what comes in the group. - + Test: U+1002,103A,103B vs U+1002,103B,103A src/hb-ot-shape-complex-myanmar-machine.rl | 2 +- @@ -61772,12 +60617,11 @@ Author: Behdad Esfahbod Date: Wed May 14 16:44:16 2014 -0600 Add tests for Myanmar Asat+MedialYa and MedialYa+Asat sequences - + One of them currently produces dotted-circle. Fix and detailed message coming. - test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | - 2 ++ + test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | 2 ++ 1 file changed, 2 insertions(+) commit c95587618c88d187be64f923033dae151cf820be @@ -61814,8 +60658,7 @@ Date: Tue May 13 21:17:28 2014 -0400 [ot] Factor out code between cmap subtable format 6 and 10 - src/hb-ot-cmap-table.hh | 49 - ++++++++++--------------------------------------- + src/hb-ot-cmap-table.hh | 49 ++++++++++--------------------------------------- 1 file changed, 10 insertions(+), 39 deletions(-) commit 1a8ffc512987c1ff1b4896549f80b145c85454a8 @@ -61833,8 +60676,7 @@ Date: Mon May 12 18:19:29 2014 -0400 [ot] Implement cmap subtable formats 6 and 10 - src/hb-ot-cmap-table.hh | 77 - +++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-cmap-table.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) commit d294a2cb165c4f20daa5624969067c51eb9aef58 @@ -61843,8 +60685,7 @@ Date: Mon May 12 17:58:31 2014 -0400 [ot] Implement cmap subtable format 13 - src/hb-ot-cmap-table.hh | 47 - +++++++++++++++++++++++++++++++++++++++++------ + src/hb-ot-cmap-table.hh | 47 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) commit 0d75793fae95ed9f6b8522ae3af4fcdf397d8c36 @@ -61853,8 +60694,7 @@ Date: Mon May 12 17:51:15 2014 -0400 [ot] Implement cmap subtable format 12 - src/hb-ot-cmap-table.hh | 63 - +++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-cmap-table.hh | 63 +++++++++++++++++++++++++++++++++++++++++++++++-- src/hb-ot-font.cc | 5 ++++ 2 files changed, 66 insertions(+), 2 deletions(-) @@ -61874,8 +60714,7 @@ Date: Fri May 9 19:55:51 2014 -0400 [ot] Implement cmap subtable format 4 - src/hb-ot-cmap-table.hh | 52 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-cmap-table.hh | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) commit 4719621f20dfd6a0377c650a7b4df223c18dc143 @@ -61894,8 +60733,7 @@ Date: Fri May 9 15:35:56 2014 -0400 [ot] Start implementing cmap table src/Makefile.am | 1 + - src/hb-ot-cmap-table.hh | 171 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-cmap-table.hh | 171 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-font.cc | 1 + 3 files changed, 173 insertions(+) @@ -61941,7 +60779,7 @@ Author: Behdad Esfahbod Date: Mon Apr 28 14:29:39 2014 -0700 Add static storage classifier to inline functions - + Before we were just relying on the compiler inlining them and not leaving a trace in our public API. Try to fix. Hopefully not breaking anyone's build. @@ -61959,9 +60797,9 @@ Author: Behdad Esfahbod Date: Mon Apr 28 12:38:25 2014 -0700 [tibetan] Reorder PADMA sign to occur after other below marks - + Based on suggestion from Andrew Glass. - + Test: U+0F40,0FC6,0F83 src/hb-unicode-private.hh | 4 ++++ @@ -61972,11 +60810,10 @@ Author: Behdad Esfahbod Date: Mon Apr 28 12:43:42 2014 -0700 [test] Add test case for Tibetan sign PADMA - + Currently fails. - test/shaping/texts/in-tree/shaper-tibetan/script-tibetan/misc/misc.txt | - 1 + + test/shaping/texts/in-tree/shaper-tibetan/script-tibetan/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit ee703bc3ef740c300718fca7a12c050c322dce19 @@ -61985,28 +60822,17 @@ Date: Mon Apr 28 12:43:18 2014 -0700 Reshuffle test data - test/shaping/texts/in-tree/MANIFEST | - 3 +++ - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 3 --- - .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt - | 0 - .../in-tree/{shaper-default => shaper-hebrew}/script-hebrew/MANIFEST - | 0 - .../{shaper-default => shaper-hebrew}/script-hebrew/misc/MANIFEST - | 0 - .../script-hebrew/misc/diacritics.txt | - 0 - .../in-tree/{shaper-default => shaper-tibetan}/script-tibetan/MANIFEST - | 0 - .../{shaper-default => shaper-tibetan}/script-tibetan/misc/MANIFEST - | 0 - .../{shaper-default => shaper-tibetan}/script-tibetan/misc/misc.txt - | 0 + test/shaping/texts/in-tree/MANIFEST | 3 +++ + test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 --- + .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST | 0 + .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST | 0 + .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt | 0 + .../in-tree/{shaper-default => shaper-hebrew}/script-hebrew/MANIFEST | 0 + .../{shaper-default => shaper-hebrew}/script-hebrew/misc/MANIFEST | 0 + .../script-hebrew/misc/diacritics.txt | 0 + .../in-tree/{shaper-default => shaper-tibetan}/script-tibetan/MANIFEST | 0 + .../{shaper-default => shaper-tibetan}/script-tibetan/misc/MANIFEST | 0 + .../{shaper-default => shaper-tibetan}/script-tibetan/misc/misc.txt | 0 11 files changed, 3 insertions(+), 3 deletions(-) commit b082ef373cefb35dd98b5f2f0b677ccc7806f51e @@ -62023,54 +60849,40 @@ Author: Behdad Esfahbod Date: Fri Apr 18 16:53:34 2014 -0700 [indic] Fix-up zero-context matching - + commit b5a0f69e47ace468b06e21cf069a18ddcfcf6064 Author: Behdad Esfahbod Date: Thu Oct 17 18:04:23 2013 +0200 - - [indic] Pass zero-context=false to would_substitute for newer - scripts - - For scripts without an old/new spec distinction, use - zero-context=false. - This changes behavior in Sinhala / Khmer, but doesn't seem - to regress. + + [indic] Pass zero-context=false to would_substitute for newer scripts + + For scripts without an old/new spec distinction, use zero-context=false. + This changes behavior in Sinhala / Khmer, but doesn't seem to regress. This will be useful and used in Javanese. - - The *intention* was to change zero-context from true to false for - scripts that - don't have old-vs-new specs. However, checking the code, looks - like we - essentially change zero-context to always be true; ie. we only - changed things + + The *intention* was to change zero-context from true to false for scripts that + don't have old-vs-new specs. However, checking the code, looks like we + essentially change zero-context to always be true; ie. we only changed things for old-spec, and we broke them. That's what causes this bug: - + https://bugs.freedesktop.org/show_bug.cgi?id=76705 - + The root of the bug is here: - - /* Use zero-context would_substitute() matching for new-spec of - the main - * Indic scripts, but not for old-spec or scripts with one spec - only. */ - bool zero_context = indic_plan->config->has_old_spec || - !indic_plan->is_old_spec; - + + /* Use zero-context would_substitute() matching for new-spec of the main + * Indic scripts, but not for old-spec or scripts with one spec only. */ + bool zero_context = indic_plan->config->has_old_spec || !indic_plan->is_old_spec; + Note that is_old_spec itself is: - - indic_plan->is_old_spec = indic_plan->config->has_old_spec && - ((plan->map.chosen_script[0] & 0x000000FF) != '2'); - - It's easy to show that zero_context is now always true. What we - really meant was: - - bool zero_context = indic_plan->config->has_old_spec && - !indic_plan->is_old_spec; - - Ie, "&&" instead of "||". We made this change supposedly to make - Javanese - work. But apparently we got it working regardless! So I'm going - to fix this + + indic_plan->is_old_spec = indic_plan->config->has_old_spec && ((plan->map.chosen_script[0] & 0x000000FF) != '2'); + + It's easy to show that zero_context is now always true. What we really meant was: + + bool zero_context = indic_plan->config->has_old_spec && !indic_plan->is_old_spec; + + Ie, "&&" instead of "||". We made this change supposedly to make Javanese + work. But apparently we got it working regardless! So I'm going to fix this to only change the logic for old-spec and not touch other cases. src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -62081,7 +60893,7 @@ Author: Behdad Esfahbod Date: Mon Apr 14 15:55:42 2014 -0700 Add HB_NO_MERGE_CLUSTERS - + Disables any cluster-merging. Added for testing purposes while we investigate what kind of API to add for this. @@ -62094,8 +60906,7 @@ Date: Thu Apr 10 16:27:13 2014 -0700 Add Khmer test for U+17DD - .../shaper-indic/south-east-asian/script-khmer/misc/other-marks.txt - | 1 + + .../shaper-indic/south-east-asian/script-khmer/misc/other-marks.txt | 1 + 1 file changed, 1 insertion(+) commit 50a00535ccac538bbf93358fd2d2442e4c12542f @@ -62103,7 +60914,7 @@ Author: Behdad Esfahbod Date: Thu Apr 10 16:03:29 2014 -0700 Require gobject-introspection 1.34.0 - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75384 configure.ac | 2 +- @@ -62114,7 +60925,7 @@ Author: Behdad Esfahbod Date: Wed Apr 9 16:38:26 2014 -0700 Further adjust check-defs and check-symbols for mipsel - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74491 src/check-defs.sh | 2 +- @@ -62126,7 +60937,7 @@ Author: Behdad Esfahbod Date: Wed Apr 9 16:33:32 2014 -0700 Tighten up check-static-inits.sh check - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=74490 src/check-static-inits.sh | 2 +- @@ -62146,7 +60957,7 @@ Author: Behdad Esfahbod Date: Tue Apr 8 16:03:35 2014 -0700 [indic] Support U+17DD KHMER SIGN ATTHACAN - + As requested by Martin Hosken on the list. src/hb-ot-shape-complex-indic.cc | 3 ++- @@ -62157,7 +60968,7 @@ Author: Primiano Tucci Date: Wed Apr 2 11:35:27 2014 +0100 Use __aarch64__ for 64-bit ARM detection, not __arm64__ - + Many GCC versions don't define __arm64__ src/hb-atomic-private.hh | 2 +- @@ -62181,8 +60992,7 @@ Date: Mon Mar 24 14:26:36 2014 -0700 src/Makefile.am | 3 +- src/hb-glib.cc | 2 +- src/hb-icu.cc | 2 +- - src/hb-ot-font.cc | 260 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-font.cc | 260 ++++++++++++++++++++++++++++++++++++ src/{hb-tt-font.cc => hb-ot-font.h} | 56 ++------ src/hb-ot-hhea-table.hh | 2 +- src/hb-ot-hmtx-table.hh | 2 +- @@ -62205,7 +61015,7 @@ Author: Behdad Esfahbod Date: Fri Mar 21 12:53:08 2014 -0700 One more fix for build without gtk-doc - + Fixes https://github.com/behdad/harfbuzz/pull/35 autogen.sh | 2 +- @@ -62216,7 +61026,7 @@ Author: Konstantin Ritt Date: Thu Mar 20 16:01:30 2014 +0200 Fix build with --coretext on iOS - + On iOS CoreText and CoreGraphics are stand-alone frameworks configure.ac | 23 +++++++++++++++++++---- @@ -62280,7 +61090,7 @@ Author: Behdad Esfahbod Date: Sun Mar 16 20:22:42 2014 -0700 Don't use "register" storage class specifier - + Fixes warnings. https://bugzilla.mozilla.org/show_bug.cgi?id=984081 @@ -62292,9 +61102,8 @@ Author: jfkthame Date: Sun Mar 16 08:25:17 2014 +0000 wrap definition of free_langs() with HAVE_ATEXIT - - ...to avoid an unused function warning; see mozilla bug - https://bugzilla.mozilla.org/show_bug.cgi?id=984081. + + ...to avoid an unused function warning; see mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=984081. src/hb-common.cc | 2 ++ 1 file changed, 2 insertions(+) @@ -62304,11 +61113,10 @@ Author: Behdad Esfahbod Date: Fri Mar 14 19:55:46 2014 -0700 [coretext] Add hb_coretext_face_create() - + Not tested. - src/hb-coretext.cc | 57 - +++++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-coretext.cc | 57 +++++++++++++++++++++++++++++++++++++++++++++--------- src/hb-coretext.h | 4 ++++ 2 files changed, 52 insertions(+), 9 deletions(-) @@ -62317,17 +61125,16 @@ Author: Behdad Esfahbod Date: Fri Mar 14 19:37:55 2014 -0400 [coretext] Add coretext_aat shaper - + This is a higher-priority shaper than default shaper ("ot"), but only picks up fonts that have AAT "morx"/"mort" table. - + Note that for this to work the font face's get_table() implementation should know how to return the full font blob. - + Based on patch from Konstantin Ritt. - src/hb-coretext.cc | 94 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-coretext.cc | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-coretext.h | 4 +++ src/hb-shaper-list.hh | 4 +++ 3 files changed, 102 insertions(+) @@ -62337,7 +61144,7 @@ Author: Behdad Esfahbod Date: Fri Mar 14 15:52:47 2014 -0700 If HAVE_ICU_BUILTIN is defined, use hb-icu Unicode callbacks - + Useful for Android / Chrome / etc when ICU is built in the same library as harfbuzz itself. @@ -62359,10 +61166,8 @@ Date: Mon Mar 10 15:04:46 2014 -0700 Add Myanmar test case from OpenType Myanmar spec - test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST | - 1 + - .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/otspec.txt | - 2 ++ + test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST | 1 + + .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/otspec.txt | 2 ++ 2 files changed, 3 insertions(+) commit 158985908981189a2fd4d15275a641286fc770fe @@ -62371,12 +61176,9 @@ Date: Mon Mar 10 14:57:55 2014 -0700 Minor - test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST - | 1 - - test/shaping/texts/in-tree/shaper-sea/script-tai-tham/misc/MANIFEST - | 1 + - .../script-myanmar => shaper-sea/script-tai-tham}/misc/torture.txt - | 0 + test/shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-sea/script-tai-tham/misc/MANIFEST | 1 + + .../script-myanmar => shaper-sea/script-tai-tham}/misc/torture.txt | 0 3 files changed, 1 insertion(+), 1 deletion(-) commit bb8ffb581b89cf27fb8e0743b81bbda21654233e @@ -62395,13 +61197,13 @@ Author: Behdad Esfahbod Date: Tue Feb 18 15:53:56 2014 -0500 Only do fallback Hebrew composition if no GPOS 'mark' available - + Apparently some modern fonts have proper GPOS mark positioning tables, but undesirable precomposed forms! See thread "Hebrew composition to presentation forms" and: - + http://tex.stackexchange.com/questions/156775/having-trouble-with-vowel-positioning-in-ezra-sil-xelatex - + Test case: U+fb1d,05d9,05b4 src/hb-ot-shape-complex-hebrew.cc | 2 +- @@ -62413,7 +61215,7 @@ Author: Behdad Esfahbod Date: Tue Feb 11 17:29:40 2014 -0500 Allow bootstrapping without gtk-doc - + Seems like configure.ac is already able to handle it. autogen.sh | 10 +++++----- @@ -62442,7 +61244,7 @@ Author: Behdad Esfahbod Date: Wed Feb 5 08:22:06 2014 -0500 Improve MemoryBarrier() implementation - + See thread "[HarfBuzz] compilation error of 0.9.26 with MinGW" started by Werner. @@ -62464,7 +61266,7 @@ Author: Jonathan Kew Date: Wed Jan 29 14:07:58 2014 +0000 Ensure hb_script_t can safely hold any hb_tag_t value it's given. - + Fixes https://github.com/behdad/harfbuzz/pull/21 src/hb-common.h | 8 +++++++- @@ -62475,7 +61277,7 @@ Author: Behdad Esfahbod Date: Tue Jan 28 17:29:42 2014 -0500 [coretext] Handle surrogate pairs when generating notdef glyphs - + Fixes github.com/behdad/harfbuzz/pull/19 src/hb-coretext.cc | 18 ++++++++++++++---- @@ -62513,7 +61315,7 @@ Author: Konstantin Ritt Date: Wed Jan 22 21:07:13 2014 +0200 Make it possible to disable the fallback shaper at configure time - + The OT shaper supersedes the fallback shaper in every case and the latter become an extra weight for 99.9% of users. @@ -62527,7 +61329,7 @@ Author: Behdad Esfahbod Date: Thu Jan 23 14:18:49 2014 -0500 Fix clang warning 'private field 'xxx' is not used - + Fixes https://github.com/behdad/harfbuzz/pull/16 src/hb-open-type-private.hh | 2 +- @@ -62538,7 +61340,7 @@ Author: Behdad Esfahbod Date: Thu Jan 23 14:11:03 2014 -0500 Fix typo in _hb_buffer_serialize_glyphs_text() - + Fixes https://github.com/behdad/harfbuzz/pull/17 src/hb-buffer-serialize.cc | 2 +- @@ -62549,10 +61351,10 @@ Author: Behdad Esfahbod Date: Wed Jan 22 11:03:02 2014 -0500 [arabic] Disable 'cswh' by default - + I believe Windows 8 disables it, and spec update dated Jan 2014 also clearly says it's disabled by default: - + http://www.microsoft.com/typography/OpenTypeDev/arabic/intro.htm#features src/hb-ot-shape-complex-arabic.cc | 1 - @@ -62573,7 +61375,7 @@ Author: Behdad Esfahbod Date: Wed Jan 22 04:43:51 2014 -0800 Merge pull request #13 from jfkthame/hangul-shaper - + Tone-mark reordering and improved Old Hangul support commit 62cb28dfc668cae9cbff826229bde2271e157927 @@ -62589,8 +61391,7 @@ commit 83d7e7915a5eaa8ff4c7014c319844e7dffd8225 Author: Jonathan Kew Date: Mon Jan 20 19:49:47 2014 +0000 - [hangul] Fix ordering of dotted circle with Hangul tone mark (reported - by Dohyun Kim). + [hangul] Fix ordering of dotted circle with Hangul tone mark (reported by Dohyun Kim). src/hb-ot-shape-complex-hangul.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -62599,8 +61400,7 @@ commit deef1862657d55b7ae8d45f4eecbe45c80785c4e Author: Jonathan Kew Date: Mon Jan 20 10:38:27 2014 +0000 - [hangul] Don't force zero-width for marks - this is not wanted for - the Jamo Filler glyphs. + [hangul] Don't force zero-width for marks - this is not wanted for the Jamo Filler glyphs. src/hb-ot-shape-complex-hangul.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -62609,8 +61409,7 @@ commit 391934db0a171aeb2057ebcd4a38ed81621e7393 Author: Jonathan Kew Date: Mon Jan 20 10:37:32 2014 +0000 - [unicode] Exclude the Jamo Filler characters from Default_Ignorable, - as some fonts want these to be visible/spacing glyphs. + [unicode] Exclude the Jamo Filler characters from Default_Ignorable, as some fonts want these to be visible/spacing glyphs. src/hb-unicode-private.hh | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) @@ -62619,23 +61418,18 @@ commit 7244b3fc3bf9757dd094709d36bea68682264e20 Author: Jonathan Kew Date: Mon Jan 20 10:35:51 2014 +0000 - [hangul] Reorder Hangul tone mark to beginning of syllable, unless - font implements it using a zero-width glyph. + [hangul] Reorder Hangul tone mark to beginning of syllable, unless font implements it using a zero-width glyph. - src/hb-ot-shape-complex-hangul.cc | 59 - ++++++++++++++++++++++++++++++++++++++- + src/hb-ot-shape-complex-hangul.cc | 59 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) commit 103436838df3a77552d3d33fc4bd80f09d9bf079 Author: Jonathan Kew Date: Mon Jan 20 10:35:07 2014 +0000 - [hangul] Apply the appropriate *jmo features to decomposed - syllables, including Old Hangul sequences that don't have Unicode - compositions. Merge clusters in decomposed syllables. + [hangul] Apply the appropriate *jmo features to decomposed syllables, including Old Hangul sequences that don't have Unicode compositions. Merge clusters in decomposed syllables. - src/hb-ot-shape-complex-hangul.cc | 197 - +++++++++++++++++++++++++++++++------- + src/hb-ot-shape-complex-hangul.cc | 197 +++++++++++++++++++++++++++++++------- 1 file changed, 165 insertions(+), 32 deletions(-) commit 8fc1f7fe74a25bf8549f5edd79c7da6b720eb064 @@ -62643,7 +61437,7 @@ Author: Behdad Esfahbod Date: Thu Jan 2 17:04:04 2014 +0800 [ot/hangul] Don't decompose Hangul even when combining marks present - + As discussed on https://github.com/behdad/harfbuzz/pull/10#issuecomment-31442030 @@ -62657,7 +61451,7 @@ Author: Behdad Esfahbod Date: Thu Jan 2 14:33:10 2014 +0800 [ot] Simplify composing - + Not tested. Ouch. src/hb-ot-shape-normalize.cc | 5 +++-- @@ -62688,7 +61482,7 @@ Author: Behdad Esfahbod Date: Thu Jan 2 14:20:00 2014 +0800 [hangul] Fix decomposition logic - + Seems to be working now. src/hb-ot-shape-complex-hangul.cc | 19 ++++++++----------- @@ -62699,7 +61493,7 @@ Author: Behdad Esfahbod Date: Thu Jan 2 14:04:30 2014 +0800 [hangul] Fix decomposition - + Part of https://github.com/behdad/harfbuzz/pull/10 src/hb-ot-shape-complex-hangul.cc | 4 ++-- @@ -62710,7 +61504,7 @@ Author: Behdad Esfahbod Date: Thu Jan 2 14:01:56 2014 +0800 [hangul] Tighten up character categories - + I had tried to expand to fill the blocks, but that sounds wrong in retrospect. @@ -62722,14 +61516,12 @@ Author: Behdad Esfahbod Date: Tue Dec 31 16:49:15 2013 +0800 [ot] Separate out hebrew and tibetan shapers from default - + Now default shaper is truly no-op. src/Makefile.am | 2 + - src/hb-ot-shape-complex-default.cc | 161 - +--------------------------------- - src/hb-ot-shape-complex-hebrew.cc | 172 - +++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-default.cc | 161 +--------------------------------- + src/hb-ot-shape-complex-hebrew.cc | 172 +++++++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 17 +++- src/hb-ot-shape-complex-tibetan.cc | 61 +++++++++++++ 5 files changed, 251 insertions(+), 162 deletions(-) @@ -62751,9 +61543,8 @@ Author: Behdad Esfahbod Date: Tue Dec 31 16:04:35 2013 +0800 [ot] Simplify normalization_preference again - - No shaper has more than one behavior re this, so no need for - a callback. + + No shaper has more than one behavior re this, so no need for a callback. src/hb-ot-shape-complex-arabic.cc | 2 +- src/hb-ot-shape-complex-default.cc | 8 +------- @@ -62771,18 +61562,17 @@ Author: Behdad Esfahbod Date: Tue Dec 31 15:55:40 2013 +0800 [ot] Add Hangul shaper - + Not exhaustively tested, but I think I got the intended logic right. - + The logic can perhaps be simplified. Maybe we should disabled normalization with this shaper. Then again, for now focusing on correctness. src/Makefile.am | 1 + src/hb-ot-shape-complex-default.cc | 13 --- - src/hb-ot-shape-complex-hangul.cc | 232 - +++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-hangul.cc | 232 +++++++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 10 +- src/hb-private.hh | 6 + 5 files changed, 240 insertions(+), 22 deletions(-) @@ -62822,8 +61612,7 @@ Date: Sun Dec 22 08:02:11 2013 -0500 src/Makefile.am | 1 + src/hb-ot-layout.h | 5 ----- - src/hb-ot-shape.h | 53 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot.h | 9 +-------- 4 files changed, 55 insertions(+), 13 deletions(-) @@ -62871,21 +61660,20 @@ Author: Behdad Esfahbod Date: Sun Dec 22 16:17:54 2013 -0500 Bug 72698 - Automatically support frac / numr / dnom - + When seeing U+2044 FRACTION SLASH in the text, find decimal digits (Unicode General Category Decimal_Number) around it, and mark the pre-slash digits with 'numr' feature, the post-slash digits with 'dnom' feature, and the whole sequence with 'frac' feature. - + This beautifully renders fractions with major Windows fonts, and any other font that implements those features (numr/dnom is enough for most fonts.) - + Not the fastest way to do this, but good enough for a start. - src/hb-ot-shape.cc | 51 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) commit 014f369ec98fdbb3e7a2ef68aea2c4e017e7b680 @@ -62902,7 +61690,7 @@ Author: Behdad Esfahbod Date: Sat Dec 21 00:18:18 2013 -0500 Initialize masks before mirroring - + We were throwing away the rtlm feature mask set during mirroring... @@ -62956,7 +61744,7 @@ Author: Behdad Esfahbod Date: Thu Dec 5 18:19:35 2013 -0500 Drop required automake version back to 1.11.3 - + Work around broken automake-1.13 changes. configure.ac | 3 ++- @@ -62996,9 +61784,9 @@ Author: Behdad Esfahbod Date: Wed Dec 4 19:59:48 2013 -0500 Require automake 1.13 - + Fix tests build. - + https://bugs.freedesktop.org/show_bug.cgi?id=71353 configure.ac | 2 +- @@ -63010,7 +61798,7 @@ Author: Behdad Esfahbod Date: Mon Dec 2 20:41:41 2013 -0500 Revert "Karen" language mapping back to what it was before - + https://bugzilla.mozilla.org/show_bug.cgi?id=941470 src/hb-ot-tag.cc | 4 ++-- @@ -63052,8 +61840,7 @@ Date: Mon Dec 2 05:22:00 2013 -0500 cache shape plans even if (global) user features are set src/hb-shape-plan-private.hh | 3 +++ - src/hb-shape-plan.cc | 59 - ++++++++++++++++++++++++++++++++++++++++---- + src/hb-shape-plan.cc | 59 ++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 57 insertions(+), 5 deletions(-) commit 8ffa528f28a24ae85952ad1c1b0206e736bcfeab @@ -63061,7 +61848,7 @@ Author: Behdad Esfahbod Date: Mon Dec 2 05:17:14 2013 -0500 Add note about unsafe shape_plan->face - + Will fix by removing shape_plan->face completely. src/hb-shape-plan.cc | 2 ++ @@ -63090,11 +61877,9 @@ Author: Khaled Hosny Date: Fri Nov 29 19:01:56 2013 -0500 [coretext] Avoid font fallback with CoreText shaper - - CoreText does automatic font fallback (AKA "cascading") for - characters - not supported by the requested font, and provides no way to turn - it off, + + CoreText does automatic font fallback (AKA "cascading") for characters + not supported by the requested font, and provides no way to turn it off, so detect if the returned run uses a font other than the requested one and fill in the buffer with .notdef glyphs instead of random indices glyph from a different font. @@ -63134,15 +61919,15 @@ Author: Behdad Esfahbod Date: Mon Nov 25 18:10:38 2013 -0500 [myanmar] Allow punctuation clusters - + The spec and Uniscribe don't allow these, but UTN#11 specifically says the sequence U+104B,U+1038 is valid. As such, allow all "P V" sequences. There's about eight sequences that match that structure, but Roozbeh thinks it's fine to allow all of them. - + Test case: U+104B, U+1038 - + https://bugs.freedesktop.org/show_bug.cgi?id=71947 src/hb-ot-shape-complex-myanmar-machine.rl | 3 +++ @@ -63154,12 +61939,12 @@ Author: Behdad Esfahbod Date: Mon Nov 25 18:03:34 2013 -0500 [myanmar] Mark U+104E MYANMAR SYMBOL AFOREMENTIONED as Consonant - + The spec and Uniscribe treat it as consonant in the grammar, but it's not in IndicSyllableCategory.txt, so fix up. - + Test sequence: U+1004,U+103A,U+1039,U+104E - + https://bugs.freedesktop.org/show_bug.cgi?id=71948 src/hb-ot-shape-complex-myanmar.cc | 4 ++++ @@ -63170,15 +61955,15 @@ Author: Behdad Esfahbod Date: Mon Nov 25 17:50:07 2013 -0500 [myanmar] Relax pwo-tone group a bit - + This is broken sequence according to OpenType spec, Uniscribe, and current HarfBuzz implementation. But Roozbeh says this is a valid sequence, so allow it. There are multiple "(DB As?)?" constructs in the grammar, but Roozbeh thinks only this one needs changing. - + Test case: 1014,1063,103A - + Fixes https://bugs.freedesktop.org/show_bug.cgi?id=71949 src/hb-ot-shape-complex-myanmar-machine.rl | 2 +- @@ -63189,15 +61974,14 @@ Author: Behdad Esfahbod Date: Mon Nov 25 17:47:19 2013 -0500 Add more Myanmar test cases - + All three are broken right now according to Roozbeh. - + https://bugs.freedesktop.org/show_bug.cgi?id=71947 https://bugs.freedesktop.org/show_bug.cgi?id=71948 https://bugs.freedesktop.org/show_bug.cgi?id=71949 - .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | - 4 ++++ + .../shaping/texts/in-tree/shaper-myanmar/script-myanmar/misc/misc.txt | 4 ++++ 1 file changed, 4 insertions(+) commit 08c2d27d35093e07142168665139274ac99395e8 @@ -63205,13 +61989,12 @@ Author: Roozbeh Pournader Date: Sat Nov 23 21:39:31 2013 -0800 Added support for several new languages - + Based on research into latest SIL and Windows fonts, pulling in the latest OpenType language tag proposal from Microsoft, and updating to latest language tags and names from ISO 639. - src/hb-ot-tag.cc | 314 - +++++++++++++++++++++++++++++++++++++++++++------------ + src/hb-ot-tag.cc | 314 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 247 insertions(+), 67 deletions(-) commit 05511acd198d0c2157cdb41e1d36eac0b8075357 @@ -63219,7 +62002,7 @@ Author: Roozbeh Pournader Date: Sat Nov 23 15:19:07 2013 -0800 Added language tags for S'gaw Karen and Khamti - + Tags based on support in Windows 8.1's 'Myanmar Text' font. src/hb-ot-tag.cc | 2 ++ @@ -63239,7 +62022,7 @@ Author: Behdad Esfahbod Date: Fri Nov 15 13:05:38 2013 -0500 Set buffer content type to INVALID in hb_buffer_set_length(0) - + Previously we were only setting this in hb_buffer_clear_contents(), but set_length(0) is a valid way to reinitialize buffer to use with new text. @@ -63263,7 +62046,7 @@ Author: Behdad Esfahbod Date: Wed Nov 13 14:50:25 2013 -0500 Use long alignment for scratch buffer - + Fixes last of scratch alignment warnings in hb-coretext. src/hb-buffer-private.hh | 2 +- @@ -63320,17 +62103,16 @@ Author: Behdad Esfahbod Date: Wed Nov 6 14:46:04 2013 -0500 Fix llvm warnings on Mac - + Patch from Scott Fleischman. Warnings were: - + harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses integer precision: 'long long' to 'hb_position_t' (aka 'int') - harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit - conversion + harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion loses integer precision: 'long long' to 'int' harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer precision: 'unsigned long long' to 'int' @@ -63347,13 +62129,12 @@ Author: Behdad Esfahbod Date: Wed Oct 30 17:30:11 2013 +0000 [otlayout] Remove unused is_inplace() - + Patch from Jonathan Kew. src/hb-ot-layout-gpos-table.hh | 6 -- src/hb-ot-layout-gsub-table.hh | 56 ------------ - src/hb-ot-layout-gsubgpos-private.hh | 159 - ----------------------------------- + src/hb-ot-layout-gsubgpos-private.hh | 159 ----------------------------------- 3 files changed, 221 deletions(-) commit 176fd17d02ac183af32a0e710ec32d25c9322021 @@ -63361,7 +62142,7 @@ Author: Behdad Esfahbod Date: Wed Oct 30 17:27:24 2013 +0000 Bug 70971 - Signed/unsigned compiler warnings on windows - + Patch from Emil Eklund. src/hb-buffer-serialize.cc | 8 ++++---- @@ -63412,9 +62193,8 @@ Author: Behdad Esfahbod Date: Mon Oct 28 19:26:02 2013 +0100 [otlayout] Optimize inplace - - See thread started by Jonathan with subject "an optimization for - complex + + See thread started by Jonathan with subject "an optimization for complex fonts". src/hb-ot-layout.cc | 6 +++--- @@ -63425,17 +62205,17 @@ Author: Behdad Esfahbod Date: Mon Oct 28 00:20:59 2013 +0100 Revert "Zero marks by GDEF for Tibetan" - + This reverts commit d5bd0590ae2fbc7b0dee86385a565aef00ffb835. - + The reasoning behind that logic was flawed and made under a misunderstanding of the original problem, and caused regressions as reported by Jonathan Kew in thread titled "tibetan marks" in Oct 2013. Apparently I have had fixed the original problem with this commit: - + 7e08f1258da229dfaf7e1c4b5c41e5bb83906cb0 - + So, revert the faulty commit and everything seems to be in good shape. @@ -63455,7 +62235,7 @@ Author: Behdad Esfahbod Date: Mon Oct 28 00:09:05 2013 +0100 Pass CPPFLAGS=-Werror to Travis-CI - + We want default gcc / clang warnings to fail the CI build. .travis.yml | 2 +- @@ -63476,7 +62256,7 @@ Author: Behdad Esfahbod Date: Sun Oct 27 23:36:35 2013 +0100 Work with old and new glib - + Avoids "deprecated" warnings. src/test-buffer-serialize.cc | 7 +++++-- @@ -63493,11 +62273,11 @@ Author: Behdad Esfahbod Date: Sun Oct 27 23:24:50 2013 +0100 [indic] Adjust pref reordering logic - + For Javanese (pref_len == 1) only reorder if it didn't ligate. That's sensible, and what the spec says. For other Indic (pref_len > 1) only reorder if ligated. - + Doesn't change any test numbers. src/hb-ot-shape-complex-indic.cc | 9 +++++++-- @@ -63508,13 +62288,12 @@ Author: Behdad Esfahbod Date: Sun Oct 27 21:04:55 2013 +0100 Optimize fallback kerning - + Patch from Jonathan Kew. "These changes seem to yield a small but just-about-measurable improvement with old fonts that lack GPOS kerning." - src/hb-ot-shape-fallback.cc | 47 - ++++++++++++++++++++++++++++----------------- + src/hb-ot-shape-fallback.cc | 47 ++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 18 deletions(-) commit 133eeba6a32769ec1a7520e7c8a0d2eb1ad986f8 @@ -63522,7 +62301,7 @@ Author: Behdad Esfahbod Date: Sun Oct 27 00:24:59 2013 +0200 Minor - + See: https://github.com/prezi/harfbuzz-js/pull/1/files#r7032397 @@ -63534,7 +62313,7 @@ Author: Behdad Esfahbod Date: Thu Oct 24 11:46:33 2013 +0200 [indic] Fix CM2, really - + Followup from 6e613f3365bf4e9fd778758c53e7de00c64beca1. src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -63555,8 +62334,7 @@ Date: Fri Oct 18 19:33:09 2013 +0200 Refactor - src/hb-ot-layout-gpos-table.hh | 120 - ++++++++++++++++++++++------------------- + src/hb-ot-layout-gpos-table.hh | 120 ++++++++++++++++++++++------------------- src/hb-ot-layout.cc | 31 +++++------ src/hb-ot-shape-normalize.cc | 29 +++++----- src/hb-ot-shape.cc | 82 ++++++++++++++++------------ @@ -63576,18 +62354,17 @@ Author: Behdad Esfahbod Date: Fri Oct 18 18:07:11 2013 +0200 [indic] Improve positioning of post-base bells and whistles - - Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not - provide + + Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide same results as Windows8 https://bugs.freedesktop.org/show_bug.cgi?id=58714 - + Test with U+0CB0,U+200D,U+0CCD,U+0C95,U+0CBF and tunga.ttf. - + Improves some scripts. Improves Bengali too, but numbers are up because we produce better results than Uniscribe for some sequences now. - + New numbers: BENGALI: 353724 out of 354188 tests passed. 464 failed (0.131004%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) @@ -63595,8 +62372,7 @@ Date: Fri Oct 18 18:07:11 2013 +0200 GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951190 out of 951913 tests passed. 723 failed (0.0759523%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed - (0.0185056%) + MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -63610,7 +62386,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 16:44:54 2013 +0200 Zero marks by GDEF for Tibetan - + See: http://lists.freedesktop.org/archives/harfbuzz/2013-April/003101.html @@ -63639,7 +62415,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 16:08:53 2013 +0200 [otfallback] Don't shift down above-marks too much - + This seems to generate much better, almost-perfect, positioning for Arabic as well as Latin above marks. @@ -63651,7 +62427,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 15:57:36 2013 +0200 [otfallback] Never fallback-position a below-mark upwards - + Test with WinXP times.ttf and U+05D9,U+05B5. src/hb-ot-shape-fallback.cc | 6 ++++++ @@ -63671,12 +62447,11 @@ Author: Behdad Esfahbod Date: Fri Oct 18 02:27:00 2013 +0200 [indic] Add Javanese support! - + Seems to be working just fine! src/hb-ot-shape-complex-indic-machine.rl | 14 ++++++------ - src/hb-ot-shape-complex-indic-private.hh | 37 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-indic-private.hh | 37 ++++++++++++++++---------------- src/hb-ot-shape-complex-indic.cc | 9 ++++++-- 3 files changed, 34 insertions(+), 26 deletions(-) @@ -63685,7 +62460,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 11:17:42 2013 +0200 [ft] Round metrics instead of truncate - + Lohit-Punjabi has a upem of 769! We were losing one unit in our code, and FreeType is losing another one... Test with U+0A06. Has an advance of 854 in the font. We were producing 852. @@ -63699,9 +62474,9 @@ Author: Behdad Esfahbod Date: Fri Oct 18 02:14:53 2013 +0200 [indic] Swith pref logic to use _hb_glyph_info_substituted() - + See comments from caveat! Seems to work fine. - + This is useful for Javanese which has an atomically encoded pre-base reordering Ra which should only be reordered if it was substituted by the pref feature. @@ -63723,7 +62498,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 01:11:05 2013 +0200 [otlayout] Add _hb_glyph_info_substituted() - + Currently unused. src/hb-ot-layout-private.hh | 6 ++++++ @@ -63734,7 +62509,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 01:09:08 2013 +0200 [otlayout] Switch over from old is_a_ligature() to IS_LIGATED - + Impact should be minimal and positive. src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -63749,7 +62524,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 01:05:58 2013 +0200 [otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_LIGATED - + Currently unused. src/hb-ot-layout-gsubgpos-private.hh | 15 ++++++++++----- @@ -63761,7 +62536,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 00:45:59 2013 +0200 [otlayout] Add HB_OT_LAYOUT_GLYPH_PROPS_SUBSTITUTED - + Currently unused. src/hb-ot-layout-gsubgpos-private.hh | 5 +++-- @@ -63777,8 +62552,7 @@ Date: Fri Oct 18 00:42:39 2013 +0200 src/hb-ot-layout-gpos-table.hh | 16 +++---- src/hb-ot-layout-gsub-table.hh | 13 +++-- src/hb-ot-layout-gsubgpos-private.hh | 8 ++-- - src/hb-ot-layout-private.hh | 92 - ++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-private.hh | 92 ++++++++++++++++++++++++++++++++---- src/hb-ot-shape.cc | 8 ++-- 5 files changed, 102 insertions(+), 35 deletions(-) @@ -63787,7 +62561,7 @@ Author: Behdad Esfahbod Date: Fri Oct 18 00:21:59 2013 +0200 [otlayout] Add _hb_glyph_info_set_glyph_props() - + No functional change. src/hb-ot-layout-gsub-table.hh | 2 +- @@ -63814,8 +62588,7 @@ Date: Fri Oct 18 00:02:43 2013 +0200 src/hb-ot-layout-gpos-table.hh | 18 +++++++------- src/hb-ot-layout-gsub-table.hh | 2 +- src/hb-ot-layout-gsubgpos-private.hh | 36 +++++++++++++-------------- - src/hb-ot-layout-private.hh | 48 - +++++++++++++++++++++--------------- + src/hb-ot-layout-private.hh | 48 +++++++++++++++++++++--------------- src/hb-ot-shape-complex-indic.cc | 5 ++-- src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-fallback.cc | 8 +++--- @@ -63828,8 +62601,7 @@ Date: Thu Oct 17 21:16:20 2013 +0200 [otlayout] More shuffling - src/hb-ot-layout-private.hh | 252 - +++++++++++++++++++++++--------------------- + src/hb-ot-layout-private.hh | 252 +++++++++++++++++++++++--------------------- 1 file changed, 130 insertions(+), 122 deletions(-) commit 469524692bd0a258b28e63294c984e677a9c2477 @@ -63897,8 +62669,7 @@ Date: Thu Oct 17 19:07:53 2013 +0200 [indic] Towards supporting atomicly-encoded prebase-reorderings - src/hb-ot-shape-complex-indic.cc | 65 - ++++++++++++++++++++++++---------------- + src/hb-ot-shape-complex-indic.cc | 65 ++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 25 deletions(-) commit efed40b975110d78c9c505441e7e17a8c13e85c8 @@ -63925,7 +62696,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 18:16:14 2013 +0200 Route Buginese through the SEA shaper - + Both Indic and SEA seem to do it just fine, but SEA is much simpler. @@ -63937,9 +62708,8 @@ Author: Behdad Esfahbod Date: Thu Oct 17 18:04:23 2013 +0200 [indic] Pass zero-context=false to would_substitute for newer scripts - - For scripts without an old/new spec distinction, use - zero-context=false. + + For scripts without an old/new spec distinction, use zero-context=false. This changes behavior in Sinhala / Khmer, but doesn't seem to regress. This will be useful and used in Javanese. @@ -63960,7 +62730,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 16:49:06 2013 +0200 [indic] Add BASE_POS_LAST_SINHALA - + Previously we planted this into the mode used for Khmer. There's not really much in common between the two, so separate again. @@ -63972,7 +62742,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 16:27:38 2013 +0200 [indic] Adjust Sinhala cluster merging under uniscribe - + Similar to 190c8f2b60af0851bf692f653c1604cfbf0561a5 but for Sinhala. @@ -63985,8 +62755,7 @@ Date: Thu Oct 17 13:58:31 2013 +0200 [otlayout] Minor - src/hb-ot-layout-gsubgpos-private.hh | 62 - +++++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.hh | 62 +++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 29 deletions(-) commit 6cc136f7531a45e71ea08a7dc8a2187172cb813d @@ -64003,7 +62772,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 13:52:51 2013 +0200 [otlayout] Increase MAX_CONTEXT_LENGTH - + It's cheap. src/hb-ot-layout-common-private.hh | 2 +- @@ -64014,7 +62783,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 13:49:51 2013 +0200 [otlayout] Simplify ligate_input() - + Shouldn't change behavior at all, but is faster / more robust. src/hb-ot-layout-gsub-table.hh | 16 +++++++--------- @@ -64035,10 +62804,10 @@ Author: Behdad Esfahbod Date: Thu Oct 17 13:05:05 2013 +0200 [indic] Apply calt,clig in the same stage as presentation features - + Whic means these twp are applied per-syllable now. Apparently in some Khmer fonts the clig interacts with presentation features. - + Test case: U+1781,U+17D2,U+1789,U+17BB,U+17C6 with Mondulkiri-R.ttf should produce one big ligature. @@ -64050,7 +62819,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 12:24:55 2013 +0200 [indic] Fix pref vs blwf interaction - + If a glyph can be both blwf and pref, we were wrongly sorting it in the post position instead of below position. @@ -64062,7 +62831,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 12:20:24 2013 +0200 [indic] Don't apply blwf before base under old-spec mode - + Test case: U+09AC,U+09CD,U+09A6 with Lohit-Bengali 2.5.3. src/hb-ot-shape-complex-indic.cc | 3 ++- @@ -64073,7 +62842,7 @@ Author: Behdad Esfahbod Date: Thu Oct 17 12:01:50 2013 +0200 [otlayout] Fix up recent Context matching change - + Commit 6b65a76b40522a4f57a6fedcbdfc5a4d736f1d3c. "end" was becoming negative. Was trigerred by Lohit-Kannada 2.5.3 and the sequence: U+0CB0,U+200D,U+0CBE,U+0CB7,U+0CCD,U+0C9F,U+0CCD,U+0CB0,U+0C97,U+0CB3 @@ -64097,18 +62866,18 @@ Author: Behdad Esfahbod Date: Wed Oct 16 19:06:29 2013 +0200 [indic] Misc harmless fixes! - + First, we were abusing OT_VD instead of OT_A. Fix that but moving OT_A in the grammar where it belongs (which is different from what the spec says). - + Also, only allow medial consonants after all other consonants. This doesn't affect any current character. - + Finally, fix Halant attachment in presence of medial consonants. Again, this currently doesn't affect any sequence. - + I lied. There's Gurmukhi U+0A75 which is Consonant_Medial. Uniscribe allows one of those in each of these positions: before matras, after matras and before syllable modifiers, @@ -64125,19 +62894,18 @@ Author: Behdad Esfahbod Date: Wed Oct 16 13:42:38 2013 +0200 [arabic] Make ZWJ prevent ligatures instead of facilitating it - + Unicode 6.2.0 Section 16.2 / Figure 16.3 says: - + "For backward compatibility, between Arabic characters a ZWJ acts just like the sequence , preventing a ligature from forming instead of requesting the use of a ligature that would not normally be used. As a result, there is no plain text mechanism for requesting the use of a ligature in Arabic text." - + As such, we flip internal zwj to zwnj flags for GSUB matching, which means it will block ligation in all features, unless the font - explicitly matches U+200D glyph. This doesn't affect joining - behavior. + explicitly matches U+200D glyph. This doesn't affect joining behavior. src/hb-ot-layout-private.hh | 6 ++++++ src/hb-ot-shape-complex-arabic.cc | 18 ++++++++++++++++++ @@ -64158,8 +62926,7 @@ Date: Wed Oct 16 12:32:12 2013 +0200 [indic] More granular post-base cluster merging! - src/hb-ot-shape-complex-indic.cc | 45 - ++++++++++++++++++++++++++++++++++------ + src/hb-ot-shape-complex-indic.cc | 45 ++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) commit 9cb59d460e80d769087045535a8d54ec9ed7985c @@ -64167,7 +62934,7 @@ Author: Behdad Esfahbod Date: Wed Oct 16 11:34:07 2013 +0200 [indic] Fix cluster merging of left matras - + The merge_clusters there was totally broken. src/hb-ot-shape-complex-indic.cc | 2 +- @@ -64178,7 +62945,7 @@ Author: Behdad Esfahbod Date: Wed Oct 16 11:33:18 2013 +0200 [indic] Adjust cluster merging under uniscribe mode for Tamil - + Apparently Uniscribe Tamil shaper doesn't ship chubby clusters for Tamil. Adjust to that. @@ -64190,23 +62957,21 @@ Author: Behdad Esfahbod Date: Wed Oct 16 11:14:15 2013 +0200 [indic] Allow up to two syllable modifiers - + Bug 70509 - Candrabindu+Visarga doesn't work in Devanagari https://bugs.freedesktop.org/show_bug.cgi?id=70509 - + We categorize both bindus and visarga as syllable-modifiers. OT spec doesn't actually say what characters go in the syllable modifier category, and allows one. We just allow up to two now. - + Test case: U+0930,U+0941,U+0901,U+0903 - + Uniscribe currently doesn't support that and produces a dotted circle. - src/hb-ot-shape-complex-indic-machine.rl | - 2 +- - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic-machine.rl | 2 +- + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit f5299eff5c0065d6329cd536c0ac339abea085b0 @@ -64214,7 +62979,7 @@ Author: Behdad Esfahbod Date: Tue Oct 15 18:13:07 2013 +0200 [indic] Simplify reph logic - + *Shouldn't* break anything. src/hb-ot-shape-complex-indic.cc | 11 +++-------- @@ -64225,14 +62990,13 @@ Author: Behdad Esfahbod Date: Tue Oct 15 18:08:05 2013 +0200 [indic] If Malayalam dot-reph formed a ligature, don't move it - + Rachana-0.6 implements dot-reph by ligation, so we shouldn't move it. Uniscribe doesn't either. Test case: - + U+0D4E,U+0D1A,U+0D4D,U+0D1A,U+0D4D - src/hb-ot-shape-complex-indic.cc | 23 - ++++++++++++++++------ + src/hb-ot-shape-complex-indic.cc | 23 ++++++++++++++++------ .../indic/script-malayalam/misc/dot-reph.txt | 3 +++ 2 files changed, 20 insertions(+), 6 deletions(-) @@ -64251,8 +63015,7 @@ Date: Tue Oct 15 16:24:21 2013 +0200 [tests] Remove Myanmar micro-font and test - .../sha1sum/ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 3040 -> - 0 bytes + .../sha1sum/ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 3040 -> 0 bytes test/shaping/tests/context-matching.tests | 1 - 2 files changed, 1 deletion(-) @@ -64260,16 +63023,13 @@ commit eb10233b267909dee0245f126000e117f3b21c35 Author: Behdad Esfahbod Date: Tue Oct 15 15:26:44 2013 +0200 - [indic] Apply 'kern' for all scripts except for Khmer in Uniscribe - mode - + [indic] Apply 'kern' for all scripts except for Khmer in Uniscribe mode + Seems to better match Uniscribe. - - Note: NotoSansTelugu-Regular has kern feature, so this fixes most - of the + + Note: NotoSansTelugu-Regular has kern feature, so this fixes most of the positioning failures there, except for the kern pairs blocked by a - (non-)joiner, in which case we (correctly) kern, but Uniscribe - doesn't. + (non-)joiner, in which case we (correctly) kern, but Uniscribe doesn't. src/hb-ot-shape-complex-indic.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) @@ -64279,34 +63039,32 @@ Author: Behdad Esfahbod Date: Tue Oct 15 13:47:27 2013 +0200 [indic] Don't apply presentation features across syllables - + More like Uniscribe... We still allow user-defined features to work across syllables, but not pres,blws,abs,psts,etc. - + This "regressed" Sinhala numbers by 11. These are cases were there's Consonant followed by Ra,Halant,ZWJ at the of text. The Ra,Halant,ZWJ ends up forming reph, which is wrong... But before we were also ligating that reph with the previous consonant. That's even more wrong. That's also what Uniscribe does. - + Current numbers: - + BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed - (0.0185056%) + MALAYALAM: 1048140 out of 1048334 tests passed. 194 failed (0.0185056%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271655 out of 271847 tests passed. 192 failed (0.070628%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) - src/hb-ot-shape-complex-indic.cc | 21 - +++++++++++++++++---- + src/hb-ot-shape-complex-indic.cc | 21 +++++++++++++++++---- .../shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 18 insertions(+), 4 deletions(-) @@ -64315,14 +63073,13 @@ Author: Behdad Esfahbod Date: Tue Oct 15 11:21:01 2013 +0200 [indic] Handle Avagraha - + It can come either at the end(ish!) of the syllable, or independently. When independent, it accepts a few bits and pieces. src/hb-ot-shape-complex-indic-machine.rl | 5 ++++- src/hb-ot-shape-complex-indic-private.hh | 5 +++-- - src/hb-ot-shape-complex-indic.cc | 14 - +++++++++++++- + src/hb-ot-shape-complex-indic.cc | 14 +++++++++++++- .../shaper-indic/indic/script-devanagari/misc/misc.txt | 1 + .../in-tree/shaper-indic/indic/script-telugu/misc/misc.txt | 1 + 5 files changed, 22 insertions(+), 4 deletions(-) @@ -64341,21 +63098,20 @@ Author: Behdad Esfahbod Date: Tue Oct 15 12:15:49 2013 +0200 [indic] Some scripts like blwf applied to pre-base characters - + ...while some don't! - + Improved Bengali, Devanagari, Gurmukhi, Malayalam. - + Updated numbers: - + BENGALI: 353732 out of 354188 tests passed. 456 failed (0.128745%) DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) GURMUKHI: 60732 out of 60747 tests passed. 15 failed (0.0246926%) KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) - MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed - (0.0190779%) + MALAYALAM: 1048134 out of 1048334 tests passed. 200 failed (0.0190779%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -64378,13 +63134,13 @@ Author: Behdad Esfahbod Date: Mon Oct 14 18:51:39 2013 +0200 [otlayout] Fix (Chain)Context recursion! - + Previously we only supported recursive sublookups with ascending indices. We were also not correctly handling non-1-to-1 recursed lookups. - + Fix all that! - + Fixes the three tests in test/shaping/tests/context-matching.tests, which were derived from NotoSansBengali and NotoSansDevanagari among others. @@ -64393,8 +63149,7 @@ Date: Mon Oct 14 18:51:39 2013 +0200 src/hb-buffer.cc | 46 ++++++++++ src/hb-ot-layout-common-private.hh | 1 + src/hb-ot-layout-gsub-table.hh | 1 + - src/hb-ot-layout-gsubgpos-private.hh | 157 - +++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 157 +++++++++++++++++------------------ 5 files changed, 127 insertions(+), 82 deletions(-) commit 841e20d083aec8d814cd8d90aa6ab60127c0d1f2 @@ -64402,13 +63157,13 @@ Author: Behdad Esfahbod Date: Mon Oct 14 18:47:51 2013 +0200 Add test suite for shaping results - + The new test suite runs tests included under hb/test/shaping/tests/*.tests, which themselves reference font files stored by sha1sum under hb/test/shaping/fonts/sha1sum. The fonts are produced using a subsetter to only include glyphs needed to run the test. - + Four initial tests are added for (Chain)Context matching, of which three currently fail. @@ -64417,8 +63172,7 @@ Date: Mon Oct 14 18:47:51 2013 +0200 .../ceadd106a8205214fbe7337ef9de32a862b59762.ttf | Bin 0 -> 3040 bytes .../d629e7fedc0b350222d7987345fe61613fa3929a.ttf | Bin 0 -> 1768 bytes .../f499fbc23865022234775c43503bba2e63978fe1.ttf | Bin 0 -> 3564 bytes - test/shaping/run-tests.sh | 34 - +++++++++++++++++++++ + test/shaping/run-tests.sh | 34 +++++++++++++++++++++ test/shaping/tests/MANIFEST | 1 + test/shaping/tests/context-matching.tests | 4 +++ 8 files changed, 48 insertions(+), 1 deletion(-) @@ -64446,7 +63200,7 @@ Author: Behdad Esfahbod Date: Thu Oct 10 20:04:42 2013 +0200 Don't use g_mapped_file_unref() - + Was introduced in glib 2.22. src/test-buffer-serialize.cc | 2 +- @@ -64471,7 +63225,7 @@ Author: Behdad Esfahbod Date: Thu Oct 3 14:54:50 2013 -0400 [OTLayout] Protect against out-of-range lookup indices - + Filter them out when compiling map. src/hb-ot-layout.cc | 17 +++++++++++++++++ @@ -64496,8 +63250,7 @@ Date: Mon Sep 30 08:55:52 2013 +0000 - use common src files for both static and shared libs - remove empty LOCAL_SHARED_LIBRARIES - Android.mk | 58 - +++++++++++++++++----------------------------------------- + Android.mk | 58 +++++++++++++++++----------------------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) commit 622bc3d829cab84c3a4148b88f2c91fee491ef39 @@ -64506,7 +63259,7 @@ Author: Behdad Esfahbod Date: Sun Sep 29 13:31:58 2013 -0700 Merge pull request #4 from amarullz/master - + Add build static library on Android.mk commit 3d2c4f0c2ff8fab4262988aad65b170e5b479b20 @@ -64514,7 +63267,7 @@ Author: Behdad Esfahbod Date: Fri Sep 27 17:06:29 2013 -0400 Fix hiding of default_ignorables if font doesn't have space glyph - + Based on patch from Jonathan Kew. See discussion on the list. src/hb-ot-shape.cc | 40 ++++++++++++++++++++++++++++++---------- @@ -64525,7 +63278,7 @@ Author: Ahmad Amarullah Date: Fri Sep 27 19:04:32 2013 +0700 Add build static library on Android.mk - + Use UCDN instead ICU HAVE Freetype @@ -64537,7 +63290,7 @@ Author: Behdad Esfahbod Date: Thu Sep 26 18:26:43 2013 -0400 [util] Don't use g_array_unref() - + Was introduced in glib 2.22. util/view-cairo.hh | 2 +- @@ -64548,7 +63301,7 @@ Author: Behdad Esfahbod Date: Thu Sep 26 16:48:42 2013 -0400 Bug 68990 - test-common fails on i686-linux - + Fix use-after-end-of-scope. src/hb-common.cc | 6 ++++-- @@ -64600,17 +63353,16 @@ Author: Behdad Esfahbod Date: Fri Sep 13 20:23:51 2013 -0400 [introspection] Annotate Unicode / font callbacks - + Should move these out of the public header... - + We're "clean" of introspection warnings now. Remaining ones are about graphite2 / freetype types not being introspectable. src/hb-blob.cc | 4 +- src/hb-face.cc | 2 +- src/hb-font.cc | 4 +- - src/hb-font.h | 132 - +++++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-font.h | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/hb-unicode.h | 106 ++++++++++++++++++++++++++++++++++++++++---- 5 files changed, 231 insertions(+), 17 deletions(-) @@ -64619,7 +63371,7 @@ Author: Behdad Esfahbod Date: Fri Sep 13 20:17:42 2013 -0400 Move code around - + I believe I didn't break anything... src/hb-ot-shape.cc | 22 +++++++++++----------- @@ -64630,14 +63382,13 @@ Author: Behdad Esfahbod Date: Thu Sep 12 20:56:32 2013 -0400 Remove contrib/ Python hand-coded binding stuff - + gobject-introspection coming together. contrib/README | 2 - contrib/python/README | 10 -- contrib/python/lib/fontconfig.pyx | 47 --------- - contrib/python/lib/harfbuzz.pyx | 213 - -------------------------------------- + contrib/python/lib/harfbuzz.pyx | 213 -------------------------------------- contrib/python/scripts/hbtestfont | 116 --------------------- contrib/python/setup.py | 39 ------- 6 files changed, 427 deletions(-) @@ -64666,7 +63417,7 @@ Author: Behdad Esfahbod Date: Thu Sep 12 17:14:33 2013 -0400 [introspection] Disable constructors for now - + Since our types are not associated with their methods, marking constructors makes them inaccessible from bindings. Undo for now. @@ -64692,8 +63443,7 @@ Date: Mon Sep 9 15:43:10 2013 -0400 src/hb-ot-layout-gdef-table.hh | 2 +- src/hb-ot-layout-gpos-table.hh | 2 +- src/hb-ot-layout-gsub-table.hh | 2 +- - src/hb-ot-layout-jstf-table.hh | 229 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-jstf-table.hh | 229 +++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.cc | 1 + src/hb-ot-layout.h | 1 + src/hb-ot-maxp-table.hh | 2 +- @@ -64707,8 +63457,7 @@ Date: Fri Sep 6 17:35:57 2013 -0400 [docs/introspection] Some more annotations - src/hb-common.cc | 151 - ++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-common.cc | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++-- src/hb-font.cc | 16 +++--- src/hb-version.h.in | 19 ------- 3 files changed, 155 insertions(+), 31 deletions(-) @@ -64724,8 +63473,7 @@ Date: Fri Sep 6 15:40:22 2013 -0400 src/hb-buffer.cc | 307 ++++++++++++++++++++++++++- src/hb-face.cc | 171 +++++++++++++++ src/hb-font-private.hh | 4 +- - src/hb-font.cc | 504 - ++++++++++++++++++++++++++++++++++++++++++++- + src/hb-font.cc | 504 ++++++++++++++++++++++++++++++++++++++++++++- src/hb-set.cc | 2 +- src/hb-shape-plan.cc | 104 ++++++++++ src/hb-shape.cc | 56 +++++ @@ -64747,7 +63495,7 @@ Author: Behdad Esfahbod Date: Fri Sep 6 16:20:21 2013 -0400 Minor change to hb_language_t - + Let me know if this breaks anyone's anything. src/hb-common.cc | 2 +- @@ -64761,8 +63509,7 @@ Date: Fri Sep 6 15:29:22 2013 -0400 Annotate hb-set a bit; add HB_SET_VALUE_INVALID src/hb-set-private.hh | 20 +++-- - src/hb-set.cc | 244 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-set.cc | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-set.h | 2 + src/hb-version.h.in | 6 +- test/api/test-set.c | 26 +++--- @@ -64792,8 +63539,7 @@ Date: Wed Sep 4 18:28:39 2013 -0400 [docs] Document a few symbols - src/hb-blob.cc | 160 - +++++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-blob.cc | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/hb-buffer.cc | 78 ++++++++++++++++++++++++- src/hb-version.h.in | 17 ++++++ 3 files changed, 251 insertions(+), 4 deletions(-) @@ -64812,9 +63558,9 @@ Author: Behdad Esfahbod Date: Tue Sep 3 20:11:01 2013 -0400 Revert "Round when scaling values" - + This reverts commit 10f964623f003c70f6bdd33423420abda3820ce0. - + See discussion with Khaled Hosny on mailing list. In short, since integers here can be negative, and int division is "round towards zero", proper rounding should take sign into account. Just skip @@ -64838,10 +63584,10 @@ Author: Behdad Esfahbod Date: Tue Sep 3 20:01:40 2013 -0400 [gtk-doc] Remove hack for deleting tmpl/ - + This was introduced in 029f46bde7e39094d3decb46525e91a97c5cc02c and was in fact a bug in gtk-doc master: - + https://bugzilla.gnome.org/show_bug.cgi?id=707426 docs/reference/Makefile.am | 5 ----- @@ -64852,7 +63598,7 @@ Author: Behdad Esfahbod Date: Tue Sep 3 20:00:16 2013 -0400 [build] Fix EXTRA_DIST - + I was under the impression that EXTRA_DISTs will happen regardless of automake conditionals. Apparently I was wrong. @@ -64882,7 +63628,7 @@ Author: Behdad Esfahbod Date: Fri Aug 30 19:38:47 2013 -0400 [gtk-doc] Generate version.xml from configure - + Even though this is not what autoconf recommends, it reduces doc rebuilds when version doesn't change but configure changes. @@ -64896,7 +63642,7 @@ Author: Behdad Esfahbod Date: Fri Aug 30 19:32:10 2013 -0400 Remove hb-old and hb-icu-le test shapers - + They've been disabled for a while and no one cared. We're past the point to need them for testing, and if we ever need to resurrect them again, well, they're in git graveyard somewhere. @@ -64930,8 +63676,7 @@ Date: Fri Aug 30 19:32:10 2013 -0400 src/hb-old/harfbuzz-gdef.h | 140 - src/hb-old/harfbuzz-global.h | 125 - src/hb-old/harfbuzz-gpos-private.h | 729 ---- - src/hb-old/harfbuzz-gpos.c | 6094 - -------------------------------- + src/hb-old/harfbuzz-gpos.c | 6094 -------------------------------- src/hb-old/harfbuzz-gpos.h | 155 - src/hb-old/harfbuzz-greek.c | 447 --- src/hb-old/harfbuzz-gsub-private.h | 483 --- @@ -65000,11 +63745,10 @@ Author: Behdad Esfahbod Date: Wed Aug 28 13:43:54 2013 -0400 Remove gtk-doc.make - + It's copied by gtk-docize. - gtk-doc.make | 302 - ----------------------------------------------------------- + gtk-doc.make | 302 ----------------------------------------------------------- 1 file changed, 302 deletions(-) commit 79d754efeef89543d51775b110e8bd49cf7e699b @@ -65021,7 +63765,7 @@ Author: Behdad Esfahbod Date: Wed Aug 28 12:52:55 2013 -0400 Turn hb-gobject, and introspection off by default - + Also enable bootstrapping without them. configure.ac | 39 ++++++++++++++++++++++++++++++++++----- @@ -65042,7 +63786,7 @@ Author: Behdad Esfahbod Date: Mon Aug 26 20:56:58 2013 -0400 [gobject] Flesh out hb-gobject - + Move it to new harfbuzz-gobject library. Implement enums and boxed types for object-types. Still have to do boxed types for value types. @@ -65055,10 +63799,8 @@ Date: Mon Aug 26 20:56:58 2013 -0400 src/harfbuzz-gobject.pc.in | 12 +++++ src/hb-gobject-enums.cc.tmpl | 11 +++-- src/hb-gobject-enums.h.tmpl | 55 +++++++++++++++++++++++ - src/hb-gobject-structs.cc | 84 - +++++++++++++++++++++++++++------- - src/hb-gobject-structs.h | 87 - ++++++++++++++++++++++++++++++++++++ + src/hb-gobject-structs.cc | 84 +++++++++++++++++++++++++++------- + src/hb-gobject-structs.h | 87 ++++++++++++++++++++++++++++++++++++ src/hb-gobject.h | 38 ++-------------- 11 files changed, 333 insertions(+), 77 deletions(-) @@ -65077,7 +63819,7 @@ Author: Behdad Esfahbod Date: Wed Aug 28 12:35:13 2013 -0400 [uniscribe] Fixed build with wide chars - + https://github.com/blinkseb/harfbuzz/commit/f65dafa4138e1fb4395bf646fa33bb01a86a7e9a src/hb-uniscribe.cc | 2 +- @@ -65088,15 +63830,14 @@ Author: Behdad Esfahbod Date: Mon Aug 26 20:39:00 2013 -0400 Add hb-deprecated.h, and rename a couple enum values - + Add deprecated alias for old name. src/Makefile.am | 1 + src/hb-buffer.cc | 4 ++-- src/hb-buffer.h | 8 +++---- src/hb-common.h | 5 ----- - src/hb-deprecated.h | 51 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-deprecated.h | 51 ++++++++++++++++++++++++++++++++++++++++++++ src/hb.h | 1 + src/test-buffer-serialize.cc | 2 +- test/api/test-buffer.c | 2 +- @@ -65110,7 +63851,7 @@ Author: Behdad Esfahbod Date: Mon Aug 26 18:49:07 2013 -0400 Separate face source code from font - + Makes documentation / introspection easier. Android.mk | 1 + @@ -65118,8 +63859,7 @@ Date: Mon Aug 26 18:49:07 2013 -0400 docs/reference/harfbuzz-sections.txt | 6 +- src/Makefile.am | 3 + src/hb-face-private.hh | 108 ++++++++++++ - src/hb-face.cc | 311 - +++++++++++++++++++++++++++++++++++ + src/hb-face.cc | 311 +++++++++++++++++++++++++++++++++++ src/hb-face.h | 117 +++++++++++++ src/hb-font-private.hh | 67 +------- src/hb-font.cc | 269 ------------------------------ @@ -65159,7 +63899,7 @@ Author: Behdad Esfahbod Date: Tue Aug 27 11:44:09 2013 -0400 Fix possible snprintf OOM - + https://bugzilla.redhat.com/show_bug.cgi?id=1001645 src/hb-buffer-serialize.cc | 14 +++++++------- @@ -65201,7 +63941,7 @@ Author: Behdad Esfahbod Date: Mon Aug 26 17:49:36 2013 -0400 Add HB_DISABLE_DEPRECATED - + That moment that you have to accept that you made API mistakes... docs/reference/Makefile.am | 2 +- @@ -65223,7 +63963,7 @@ Author: Anthony Carrico Date: Sun Feb 24 13:00:33 2013 -0500 [gtk-doc] Initial setup - + Initial setup of gtk-doc. Straight forward setup following the gtk-doc instructions. Ignore some troublesome types in src/hb-gobject.h. To build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in @@ -65237,8 +63977,7 @@ Date: Sun Feb 24 13:00:33 2013 -0500 docs/reference/Makefile.am | 109 +++++++++ docs/reference/harfbuzz-docs.xml | 61 +++++ docs/reference/harfbuzz-overrides.txt | 0 - docs/reference/harfbuzz-sections.txt | 431 - ++++++++++++++++++++++++++++++++++ + docs/reference/harfbuzz-sections.txt | 431 ++++++++++++++++++++++++++++++++++ gtk-doc.make | 302 ++++++++++++++++++++++++ src/Makefile.am | 2 +- src/hb-gobject.h | 3 +- @@ -65249,10 +63988,10 @@ Author: Behdad Esfahbod Date: Wed Aug 21 17:22:21 2013 -0400 [uniscribe] Ask Uniscribe to return shaping results in logical order - + See discussion on the list in the thread "Arabic presentation forms and the uniscribe backend". - + Based on patch from Jonathan Kew. src/hb-uniscribe.cc | 24 ++++++++++++------------ @@ -65272,26 +64011,25 @@ Author: Behdad Esfahbod Date: Mon Aug 12 00:33:28 2013 -0400 [coretext] Fully support user features - + Based on patch from Jonathan Kew and data from Apple. - + It's not working correctly though, and I suspect I'm hitting a bug in CoreText. When I do this: - + hb-shape /Library/Fonts/Zapfino.ttf ZapfinoZapfino --shaper coretext \ --features=-liga - + I expect both ligatures to turn off, but only the second one does: - + [Z_a_p_f_i_n_o=0+2333|Z=7+395|a=8+285|p_f=9+433|i=11+181|n=12+261|o=13+250] - + whereas if I disable 'dlig' instead of 'liga', both are turned off. Smells... - + Doesn't resolve conflicting feature settings. - src/hb-coretext.cc | 446 - +++++++++++++++++++++++++++++++++++++++++++++++----- + src/hb-coretext.cc | 446 +++++++++++++++++++++++++++++++++++++++++++++++----- src/hb-uniscribe.cc | 2 +- 2 files changed, 404 insertions(+), 44 deletions(-) @@ -65300,12 +64038,11 @@ Author: Behdad Esfahbod Date: Fri Aug 9 14:34:54 2013 -0400 Clean up list of Unicode scripts - + Rename HB_SCRIPT_CANADIAN_ABORIGINAL to HB_SCRIPT_CANADIAN_SYLLABICS and a macro for the old name. - src/hb-common.h | 277 - ++++++++++++++++++++----------------- + src/hb-common.h | 277 ++++++++++++++++++++----------------- src/hb-glib.cc | 2 +- src/hb-ot-shape-complex-private.hh | 2 + src/hb-ucdn.cc | 2 +- @@ -65335,7 +64072,7 @@ Author: Behdad Esfahbod Date: Fri Aug 9 09:40:01 2013 -0400 Round when scaling values - + Doesn't matter for most users since they should be working in a fixed sub-pixel scale anyway (ie. 22.10, 26.6, 16.16, etc). @@ -65366,7 +64103,7 @@ Author: Behdad Esfahbod Date: Fri Aug 9 09:28:32 2013 -0400 Remove vrt2, vkrn, vpal, and valt from default vertical features - + See thread by John Dagget on the list. TODO | 2 -- @@ -65378,13 +64115,11 @@ Author: Behdad Esfahbod Date: Wed Aug 7 21:08:54 2013 -0400 [coretext] Start adding support for features - - Unlike AAT, looks like with CoreText very few OT features can - be mapped. + + Unlike AAT, looks like with CoreText very few OT features can be mapped. :( - src/hb-coretext.cc | 65 - +++++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-coretext.cc | 65 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 54 insertions(+), 11 deletions(-) commit bdd8873fd8ae5c794018f6edac242b0a8b62ff31 @@ -65392,9 +64127,9 @@ Author: Behdad Esfahbod Date: Wed Aug 7 17:58:25 2013 -0400 Revert "[Indic] don't apply 'calt' by default in Indic shaper" - + This reverts commit 952121007c6f6f374e4cf1734ebcfe2d2d71c71c. - + In light of discussion on the mailing list... src/hb-ot-shape-complex-indic.cc | 4 ---- @@ -65405,12 +64140,11 @@ Author: Behdad Esfahbod Date: Wed Aug 7 17:26:13 2013 -0400 [uniscribe] Support feature ranges - + As Khaled pointed out, right now setting any features, turns kern and possibly other features off. - src/hb-uniscribe.cc | 232 - ++++++++++++++++++++++++++++++++++++++++++++-------- + src/hb-uniscribe.cc | 232 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 199 insertions(+), 33 deletions(-) commit 627af695e48ef10b6e634c34b723f7e7013467f6 @@ -65436,11 +64170,10 @@ Author: Behdad Esfahbod Date: Tue Aug 6 14:45:36 2013 -0400 [uniscribe] Half-support user features - + Turning features on globally works now. - src/hb-uniscribe.cc | 54 - ++++++++++++++++++++++++++++++++++++++++++----------- + src/hb-uniscribe.cc | 54 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 11 deletions(-) commit 639afdc690c681a302080239a1967ce735ba5be5 @@ -65466,7 +64199,7 @@ Author: Behdad Esfahbod Date: Mon Aug 5 22:44:18 2013 -0400 Fix glyph closure with class==0 - + As reported by cibu. Untested. src/hb-ot-layout-common-private.hh | 29 +++++++++++++++++++++++++++++ @@ -65477,7 +64210,7 @@ Author: Behdad Esfahbod Date: Sun Aug 4 16:55:21 2013 -0400 Don't apply 'dlig' by default - + Windows 8 doesn't, and the spec will be fixed. src/hb-ot-shape-complex-arabic.cc | 1 - @@ -65496,9 +64229,8 @@ commit c461371419d186811d4bfc768e26535f48a807f4 Author: Behdad Esfahbod Date: Tue Jul 30 14:48:23 2013 -0400 - [CoreText] Don't leak the CTLine object (and everything that hangs - off it) - + [CoreText] Don't leak the CTLine object (and everything that hangs off it) + Patch from Jonathan Kew. src/hb-coretext.cc | 2 ++ @@ -65518,7 +64250,7 @@ Author: Behdad Esfahbod Date: Fri Jul 26 10:33:06 2013 -0400 Apply 'mark' to Myanmar - + According to Andrew Glass: "The issue with Myanmar feature was fixed via a servicing patch as soon as Windows 8 became available." @@ -65569,8 +64301,7 @@ Date: Sun Jul 21 17:05:02 2013 -0400 src/hb-open-type-private.hh | 10 ++++- src/hb-ot-name-table.hh | 4 +- - src/hb-uniscribe.cc | 107 - +++++++++++++++++++++++--------------------- + src/hb-uniscribe.cc | 107 +++++++++++++++++++++++--------------------- 3 files changed, 66 insertions(+), 55 deletions(-) commit bdeea605fe597bff4430eaae3317189bb81ec76e @@ -65596,18 +64327,17 @@ Author: Behdad Esfahbod Date: Sun Jul 21 16:06:49 2013 -0400 [uniscribe] Use unique font name - + When installing per-process fonts using AddFontMemResourceEx(), if a font with the same family name is already installed, sometimes that one gets used. Which is problematic for us. As such, we now mangle the font to install a new 'name' table with a unique name, which we then use to choose the font. - + Patch from Jonathan Kew. configure.ac | 2 +- - src/hb-uniscribe.cc | 136 - ++++++++++++++++++++++++++++++++++++++++++++-------- + src/hb-uniscribe.cc | 136 ++++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 116 insertions(+), 22 deletions(-) commit 8751de50831338ce550601c34c17d152ad89c1fd @@ -65615,15 +64345,15 @@ Author: Behdad Esfahbod Date: Thu Jul 18 16:29:50 2013 -0400 Followup fix for 3f9e2dced298c3d00f31b2dfc38685bb071a3a22 - + During GSUB, if a ligation happens, subsequence context input matching matches the new indexing. During GPOS however, the indices never change. So just go one by one. - + Fixes 'dist' positioning with mmrtext.ttf and the following sequence: - + U+1014,U+1039,U+1011,U+1014,U+1039,U+1011,U+1014,U+1039,U+1011 - + Reported by Jonathan Kew. src/hb-ot-layout-gsubgpos-private.hh | 8 ++++++++ @@ -65644,7 +64374,7 @@ Author: Behdad Esfahbod Date: Thu Jul 11 14:56:45 2013 -0400 [ft] hb_ft_get_glyph_from_name fails for the name of glyph id 0 - + Based on patch from Jonathan Kew, as reported on the mailing list. src/hb-ft.cc | 9 +++++++++ @@ -65655,31 +64385,30 @@ Author: Behdad Esfahbod Date: Mon Jul 8 08:37:15 2013 -0600 [uniscribe] Fix buffer allocation - + Email from Jonathan Kew: - + My cygwin build kept aborting on certain test words when run with the - uniscribe backend. Turned out this was caused by a bug in the - allocation + uniscribe backend. Turned out this was caused by a bug in the allocation of scratch buffers in hb-uniscribe.cc. - + Commit 2a17f9568d9724e045d2c1d660e007f3acd747d9 introduced a new line - + ALLOCATE_ARRAY (SCRIPT_VISATTR, vis_attr, glyphs_size); - + but it failed to account for this in the computation of glyphs_size (the number of glyphs for which scratch buffer space is available), with the result that the vis_clusters array ends up overrunning the end of the scratch buffer and clobbering the beginning of the buffer's info[]. - + AFAICS, the vis_attr array is not actually used, so the simple fix is to remove the line that allocates it. (If/when we -do- need to use vis_attr for something, we'll need to add another term to the earlier calculation of glyphs_size.) - + With this patch, the uniscribe backend runs reliably again. - + JK src/hb-uniscribe.cc | 1 - @@ -65690,7 +64419,7 @@ Author: Behdad Esfahbod Date: Wed Jun 26 20:57:58 2013 -0400 [Indic] Add Javanese config - + We should add for other scripts too, send me the virama codepoint and script name... @@ -65702,7 +64431,7 @@ Author: Behdad Esfahbod Date: Wed Jun 26 20:14:18 2013 -0400 [OT] Collect requiredFeature only if features are not provided - + As per Werner's report on the list. src/hb-ot-layout.cc | 22 +++++++++++----------- @@ -65713,7 +64442,7 @@ Author: Behdad Esfahbod Date: Wed Jun 26 19:46:55 2013 -0400 Fix contextual lookup recursion indexing - + See email thread "Skipping Control for Attaching Marks using OpenType" from earlier this month. @@ -65726,7 +64455,7 @@ Author: Behdad Esfahbod Date: Sat Jun 22 08:04:05 2013 -0700 Merge pull request #3 from LogosBible/master - + Destroy lookups before blobs. commit 89312b7417c0198a0635ca6b7e8ea11f6af2a4f8 @@ -65734,9 +64463,8 @@ Author: Bradley Grainger Date: Fri Jun 21 15:02:18 2013 -0700 Destroy lookups before blobs. - - 'layout->gsub' may depend on data owned by 'layout->gsub_blob', - so it must + + 'layout->gsub' may depend on data owned by 'layout->gsub_blob', so it must be deinitialized before the blob is destroyed. src/hb-ot-layout.cc | 8 ++++---- @@ -65747,17 +64475,17 @@ Author: Behdad Esfahbod Date: Thu Jun 13 19:01:07 2013 -0400 If variation selector is not consumed by cmap, pass it on to GSUB - + This changes the semantics of get_glyph() callback and expect that callbacks return false if the requested variant is not available, and then we will call them back with variation_selector=0 and will retain the glyph for the selector in the glyph stream. - + Apparently most Mongolian fonts implement the Mongolian Variation Selectors using GSUB, not cmap. - + https://bugs.freedesktop.org/show_bug.cgi?id=65258 - + Note that this doesn't fix the Mongolian shaping yet, because the way that's implemented is that the, say, 'init' feature ligates the letter and the variation-selector. However, since currently the variation @@ -65781,7 +64509,7 @@ Author: Behdad Esfahbod Date: Mon Jun 10 14:39:51 2013 -0400 Fix misc warnings reported by cppcheck - + https://bugs.freedesktop.org/show_bug.cgi?id=65544 src/hb-common.cc | 2 +- @@ -65802,9 +64530,9 @@ Author: Behdad Esfahbod Date: Mon Jun 10 13:56:51 2013 -0400 Fix PKG_CHECK_MODULES usage - + Oops. - + Bug 65246 - Fix build without graphite2 configure.ac | 2 +- @@ -65815,9 +64543,9 @@ Author: Behdad Esfahbod Date: Thu Jun 6 18:57:15 2013 -0400 Fix PKG_CHECK_MODULES usage - + Bug 65246 - Fix build without graphite2 - + If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't find the libraries. We handle that ourselves so we don't want the macro to abort. @@ -65839,7 +64567,7 @@ Author: Chun-wei Fan Date: Mon Jun 3 17:55:29 2013 +0800 util/ansi-print.cc: Use fallback implementation for lround on MSVC - + Unfortuately Visual Studio (still) does not support the C99 function lround, so provide a fallback implementation for it. @@ -65869,7 +64597,7 @@ Author: Chun-wei Fan Date: Mon Jun 3 17:49:37 2013 +0800 hb-uniscribe.cc: Re-enable build under Visual Studio - + -Declare hinstLib at the top of block -Fix the definitions of the typedefs of ScriptItemizeOpenType, ScriptShapeOpenType and ScriptPlaceOpenType @@ -65937,7 +64665,7 @@ Author: Behdad Esfahbod Date: Tue May 28 17:18:30 2013 -0400 Generate harfbuzz-icu.pc - + Currently it only works with ICU that has .pc files. I'll wait till someone complains before fixing it for icu-config systems. @@ -65975,12 +64703,11 @@ Author: Behdad Esfahbod Date: Tue May 28 13:10:51 2013 -0400 Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP - + Fallback to older API if OpenType variants are not available. configure.ac | 14 +-- - src/hb-uniscribe.cc | 322 - +++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-uniscribe.cc | 322 +++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 271 insertions(+), 65 deletions(-) commit f8087ffbadc83a15d59367ba82976eae675736a7 @@ -65997,7 +64724,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:33:36 2013 -0400 Add --with-freetype - + Defaults to auto. configure.ac | 12 +++++++++++- @@ -66017,7 +64744,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:29:09 2013 -0400 Add --with-coretext - + Defaults to no. configure.ac | 12 +++++++++++- @@ -66028,7 +64755,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:27:43 2013 -0400 Add --with-uniscribe - + Defaults to no. configure.ac | 55 +++++++++++++++++++++++++++++++++++++++---------------- @@ -66039,7 +64766,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:10:33 2013 -0400 Disable UCDN if glib is available - + We only want UCDN if we don't have any other Unicode provider. I'm going to remove ICU from the list of default Unicode providers as part of moving hb-icu into its own library. As such, the only @@ -66062,7 +64789,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:06:50 2013 -0400 Disable icu_le shaper - + Will add a way to enable it later. configure.ac | 3 ++- @@ -66073,7 +64800,7 @@ Author: Behdad Esfahbod Date: Mon May 27 19:05:23 2013 -0400 Remove icu-config fallback for icu_le shaper - + Bug 64878 - compile error with ICU but not ICU configure.ac | 18 ------------------ @@ -66093,7 +64820,7 @@ Author: Behdad Esfahbod Date: Mon May 27 18:54:30 2013 -0400 Disable hb-old shaper - + Will add proper way to enable it later. configure.ac | 2 +- @@ -66104,7 +64831,7 @@ Author: Behdad Esfahbod Date: Mon May 27 18:47:58 2013 -0400 Bug 65054 - Add configure option to enable/disable Graphite2 - + Add --with-graphite2. Defaults to off. configure.ac | 20 +++++++++++++++----- @@ -66124,13 +64851,13 @@ Author: Behdad Esfahbod Date: Mon May 27 14:48:34 2013 -0400 Don't zero advance of mark-non-mark ligatures - + If there's a mark ligating forward with non-mark, they were inheriting the GC of the mark and later get advance-zeroed. Don't do that if there's any non-mark glyph in the ligature. - + Sample test: U+1780,U+17D2,U+179F with Kh-Metal-Chrieng.ttf - + Also: Bug 58922 - Issue with mark advance zeroing in generic shaper @@ -66168,7 +64895,7 @@ Author: Behdad Esfahbod Date: Thu May 23 15:43:02 2013 -0400 [icu_le] Fix scaling - + Seems to work... src/hb-icu-le.cc | 2 ++ @@ -66201,8 +64928,7 @@ Date: Mon May 20 09:18:52 2013 -0400 Minor refactoring - src/hb-ot-shape.cc | 54 - ++++++++++++++++++++++++++++-------------------------- + src/hb-ot-shape.cc | 54 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 26 deletions(-) commit 127daf15e0b2f509ebd29a104236c8b38884efb0 @@ -66210,7 +64936,7 @@ Author: Behdad Esfahbod Date: Mon May 20 09:11:35 2013 -0400 Arabic mark width-zeroing regression - + Mozilla Bug 873902 - Display Arabic text with diacritics is bad https://bugzilla.mozilla.org/show_bug.cgi?id=873902 @@ -66219,8 +64945,7 @@ Date: Mon May 20 09:11:35 2013 -0400 src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-complex-private.hh | 6 ++++-- src/hb-ot-shape-complex-thai.cc | 2 +- - src/hb-ot-shape.cc | 36 - ++++++++++++++++++++++++++++-------- + src/hb-ot-shape.cc | 36 ++++++++++++++++++++++++++++-------- 6 files changed, 36 insertions(+), 14 deletions(-) commit fa3d0a0ce60a9fcf2b7f906dec916463b1319eda @@ -66228,7 +64953,7 @@ Author: Behdad Esfahbod Date: Tue May 14 15:30:55 2013 -0400 Bug 64476 - Typo in hb_set_t.get_min() - + Fixes previous commit's test. src/hb-set-private.hh | 2 +- @@ -66239,9 +64964,9 @@ Author: Behdad Esfahbod Date: Tue May 14 15:30:17 2013 -0400 [test] Add test for hb_set_get_min() bug - + Failing now. - + Bug 64476 - Typo in hb_set_t.get_min() test/api/test-set.c | 4 ++++ @@ -66264,8 +64989,7 @@ Date: Fri May 3 17:49:44 2013 -0400 src/hb-ot-layout-gpos-table.hh | 25 --------------- src/hb-ot-layout-gsub-table.hh | 48 ---------------------------- - src/hb-ot-layout.cc | 72 - ++++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout.cc | 72 ++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 69 insertions(+), 76 deletions(-) commit e015b8f2187d1102b9c34d1a63504e7b05ee20ee @@ -66296,8 +65020,7 @@ Date: Wed Apr 24 16:42:05 2013 -0400 src/hb-ot-layout-gpos-table.hh | 8 +- src/hb-ot-layout-gsub-table.hh | 58 ++++++++++++- - src/hb-ot-layout-gsubgpos-private.hh | 158 - +++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsubgpos-private.hh | 158 +++++++++++++++++++++++++++++++++++ 3 files changed, 222 insertions(+), 2 deletions(-) commit bac1dd6a0ff4d4fae4254506d38ae662b7e9dda7 @@ -66308,8 +65031,7 @@ Date: Thu May 2 18:52:24 2013 -0400 src/hb-ot-layout-gsubgpos-private.hh | 10 +-- src/hb-ot-layout-private.hh | 26 ++++---- - src/hb-ot-layout.cc | 100 - ++++++++++++++--------------- + src/hb-ot-layout.cc | 100 ++++++++++++++--------------- src/hb-ot-map-private.hh | 7 +- src/hb-ot-shape-complex-arabic-fallback.hh | 7 +- src/hb-ot-shape-fallback.cc | 3 +- @@ -66321,8 +65043,7 @@ Date: Thu May 2 18:18:24 2013 -0400 Move code around - src/hb-ot-layout.cc | 52 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-map.cc | 43 ------------------------------------------- 2 files changed, 52 insertions(+), 43 deletions(-) @@ -66333,8 +65054,7 @@ Date: Thu May 2 18:06:51 2013 -0400 [OTLayout] Add hb_ot_layout_lookup_accelerator_t src/hb-ot-layout-private.hh | 21 +++++++++++++++++-- - src/hb-ot-layout.cc | 33 - +++++++++++++++--------------- + src/hb-ot-layout.cc | 33 +++++++++++++++--------------- src/hb-ot-shape-complex-arabic-fallback.hh | 10 +++++---- 3 files changed, 41 insertions(+), 23 deletions(-) @@ -66371,8 +65091,7 @@ Date: Thu May 2 15:27:53 2013 -0400 [OTLayout] Whitespace - src/hb-ot-layout-gsub-table.hh | 56 - +++++++++++++++++++++--------------------- + src/hb-ot-layout-gsub-table.hh | 56 +++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit 3276c354daaff3acabecff11f8e4b5c54d53fc25 @@ -66382,8 +65101,7 @@ Date: Thu May 2 15:16:59 2013 -0400 [OTLayout] Minor refactoring src/hb-ot-map-private.hh | 4 ++++ - src/hb-ot-map.cc | 46 - +++++++++++++++++++++++++--------------------- + src/hb-ot-map.cc | 46 +++++++++++++++++++++++++--------------------- 2 files changed, 29 insertions(+), 21 deletions(-) commit ea86efa486a5076e9bf844239bccf86d67577f88 @@ -66429,7 +65147,7 @@ Author: Behdad Esfahbod Date: Tue Apr 30 11:34:00 2013 -0400 Renamed DEBUG to something else - + Some infrastructures use DEBUG as a generic symbol. src/hb-buffer.cc | 6 +++--- @@ -66441,11 +65159,11 @@ Author: Behdad Esfahbod Date: Mon Apr 29 13:48:49 2013 -0400 Fix icu linking by requesting the library searchpath from icu-config - + This is not ideal as we don't like -L/usr/lib in our linker line. But this is only relevant to environments that don't have pkgconfig files for ICU... - + https://github.com/behdad/harfbuzz/pull/2 configure.ac | 4 ++-- @@ -66456,9 +65174,9 @@ Author: Behdad Esfahbod Date: Mon Apr 29 13:40:52 2013 -0400 Make both old autoconf and new automake happy - + Sigh.. - + Bug 64039 - undefined macro AM_PROG_AR configure.ac | 2 +- @@ -66488,7 +65206,7 @@ Author: Behdad Esfahbod Date: Sun Apr 21 15:19:38 2013 -0400 Rename "pause" to "stage" - + The compile() function is starting to become illegible... src/hb-ot-map-private.hh | 24 ++++++++++++------------ @@ -66509,9 +65227,8 @@ Author: Behdad Esfahbod Date: Sun Apr 21 15:13:08 2013 -0400 Remove unneeded code - - We always push a pause at the end such that each lookup falls - in exactly + + We always push a pause at the end such that each lookup falls in exactly one pause_map_t. Now, only if I can find a better name for that... src/hb-ot-map-private.hh | 2 +- @@ -66533,7 +65250,7 @@ Author: Behdad Esfahbod Date: Fri Apr 19 14:33:17 2013 -0400 Hand-code bsearch in the hot inner loop. - + Saves another 3 / 4 percent with Amiri. src/hb-open-type-private.hh | 29 +++++++++++++++-------------- @@ -66562,7 +65279,7 @@ Author: Behdad Esfahbod Date: Wed Apr 17 23:04:03 2013 -0400 Obssesive optimization - + Not measurable by any means, but conceptually this is faster since the mask matches more often than the digest. @@ -66575,7 +65292,7 @@ Author: Behdad Esfahbod Date: Wed Apr 17 19:01:49 2013 -0400 Remove HB_DEBUG_SET_DIGESTS - + Wasn't correct with the new combiner. I should add it back somehow, but for now the digests seem to be working very well... @@ -66588,7 +65305,7 @@ Author: Behdad Esfahbod Date: Wed Apr 17 18:20:44 2013 -0400 Remove hb_set_digest_common_bits_t - + Was unused. src/hb-set-private.hh | 38 -------------------------------------- @@ -66599,7 +65316,7 @@ Author: Behdad Esfahbod Date: Wed Apr 17 18:19:21 2013 -0400 Improve hb_set_digest_t - + Make Amiri rendering faster a whopping 45% again! Speends up pretty much anything I tested. @@ -66638,7 +65355,7 @@ Author: Behdad Esfahbod Date: Tue Apr 16 23:13:10 2013 -0400 Speed up Speed up hb_set_digest_common_bits_t calcs - + Correctly this time. src/hb-set-private.hh | 8 +++++--- @@ -66649,11 +65366,10 @@ Author: Behdad Esfahbod Date: Tue Apr 16 21:50:33 2013 -0400 Initialize set digests - - We were not initializing the digests properly and as a result - they were + + We were not initializing the digests properly and as a result they were being initialized to zero, making digest1 to never do any useful work. - + Speeds up Amiri shaping significantly. src/hb-ot-layout.cc | 6 ++++++ @@ -66675,9 +65391,9 @@ Author: Behdad Esfahbod Date: Tue Apr 16 21:47:40 2013 -0400 Revert "Speed up hb_set_digest_common_bits_t calcs" - + This reverts commit 3d1b66a35e1ab3be19335705f310b278d76d66d2. - + The calculations were buggy. It's not worth optimizing right now. src/hb-set-private.hh | 6 +++--- @@ -66697,7 +65413,7 @@ Author: Behdad Esfahbod Date: Thu Apr 11 16:31:01 2013 -0400 [util] Add --num-iterations - + Useful for profiling shapers. util/options.cc | 1 + @@ -66710,12 +65426,11 @@ Author: Behdad Esfahbod Date: Thu Apr 11 14:45:58 2013 -0400 [old] Speed up Unicode properties access in hb-old shaper - + Just to be sure it's not punishing the old shaper performance numbers. Doesn't seem to have a measurable effect. - src/hb-old/harfbuzz-arabic.c | 44 - +++++++++++++++++++++--------------------- + src/hb-old/harfbuzz-arabic.c | 44 +++++++++++++++++++++--------------------- src/hb-old/harfbuzz-external.h | 18 ++++++++--------- src/hb-old/harfbuzz-greek.c | 2 +- src/hb-old/harfbuzz-hebrew.c | 2 +- @@ -66775,7 +65490,7 @@ Author: Behdad Esfahbod Date: Thu Apr 4 23:06:54 2013 -0400 Don't compose Hangul jamo - + See thread "an issue regarding discrepancy between Korean and Unicode standards" on the mailing list for the rationale. In short: Uniscribe doesn't, so fonts are designed to work without it. @@ -66790,7 +65505,7 @@ Author: Behdad Esfahbod Date: Thu Apr 4 15:02:03 2013 -0400 Put back MemoryBarrier fallback implementation on MINGW32 - + This almost reverts 2761e8a632c14353f286708898be8df6ebad7407, but only if under MINGW32, so it doesn't affect MSVC. @@ -66802,27 +65517,26 @@ Author: Behdad Esfahbod Date: Thu Apr 4 14:25:36 2013 -0400 [Arabic] Zero marks by GDEF, not Unicode category - + Testing shows that this is closer to what Uniscribe does. - + Reported by Khaled Hosny: - + """ commit 568000274c8edb5f41bc4f876ce21fcc8bdaeed8 ... - This commit is causing a regression with Amiri, the string - “هَٰذ” with + This commit is causing a regression with Amiri, the string “هَٰذ” with Uniscribe and HarfBuzz before this commit, gives: - + [uni0630.fina=3+965|uni0670.medi=0+600|uni064E=0@-256,0+0|uni0647.init=0+926] - + But now it gives: - + [uni0630.fina=3+965|uni0670.medi=0+0|uni064E=0@-256,0+0|uni0647.init=0+926] - + i.e. uni0670.medi is zeroed though it has a base glyph GDEF class. """ - + The test case is U+0647,U+064E,U+0670,U+0630 with Amiri. src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -66832,8 +65546,7 @@ commit 3b80674c50b8c3133848a4034f7106b2b9bfe224 Author: Behdad Esfahbod Date: Thu Apr 4 12:06:46 2013 -0400 - Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64 - instead + Bug 63107 - FTBFS on ppc64: symbols marked with 'D' on powerpc64 instead src/check-symbols.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -66843,7 +65556,7 @@ Author: Behdad Esfahbod Date: Tue Apr 2 14:08:53 2013 -0400 [graphite2] Don't crash if language is not set - + https://bugs.webkit.org/show_bug.cgi?id=113796 src/hb-graphite2.cc | 2 +- @@ -66863,7 +65576,7 @@ Author: Behdad Esfahbod Date: Thu Mar 21 16:26:39 2013 -0400 Remove gthread leftovers - + We don't use gthread anymore, remove leftovers. configure.ac | 6 ------ @@ -66895,11 +65608,10 @@ Author: Behdad Esfahbod Date: Tue Mar 19 06:59:40 2013 -0400 Remove Hangul filler characters from Default_Ignorable chars - + See discussion on mailing list. - src/hb-unicode-private.hh | - 10 +++++++--- + src/hb-unicode-private.hh | 10 +++++++--- .../texts/in-tree/shaper-default/script-hangul/misc/misc.txt | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) @@ -66908,34 +65620,33 @@ Author: Behdad Esfahbod Date: Tue Mar 19 05:53:26 2013 -0400 [Indic] Futher adjust ZWJ handling in Indic-like shapers - + After the Ngapi hackfest work, we were assuming that fonts won't use presentation features to choose specific forms (eg. conjuncts). As such, we were using auto-joiner behavior for such features. It proved to be troublesome as many fonts used presentation forms ('pres') for example to form conjuncts, which need to be disabled when a ZWJ is inserted. - + Two examples: - + U+0D2F,U+200D,U+0D4D,U+0D2F with kartika.ttf U+0995,U+09CD,U+200D,U+09B7 with vrinda.ttf - + What we do now is to never do magic to ZWJ during GSUB's main input - match for Indic-style shapers. Note that backtrack/lookahead - are still + match for Indic-style shapers. Note that backtrack/lookahead are still matched liberally, as is GPOS. This seems to be an acceptable compromise. - + As to the bug that initially started this work, that one needs to be fixed differently: - + Bug 58714 - Kannada u+0cb0 u+200d u+0ccd u+0c95 u+0cbe does not provide same results as Windows8 https://bugs.freedesktop.org/show_bug.cgi?id=58714 - + New numbers: - + BENGALI: 353689 out of 354188 tests passed. 499 failed (0.140886%) DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%) GUJARATI: 366349 out of 366457 tests passed. 108 failed (0.0294714%) @@ -66943,23 +65654,20 @@ Date: Tue Mar 19 05:53:26 2013 -0400 KANNADA: 951030 out of 951913 tests passed. 883 failed (0.0927606%) KHMER: 299070 out of 299124 tests passed. 54 failed (0.0180527%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed - (0.0221304%) + MALAYALAM: 1048102 out of 1048334 tests passed. 232 failed (0.0221304%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - src/hb-ot-layout-gsubgpos-private.hh | 30 - ++++++++-------------- + src/hb-ot-layout-gsubgpos-private.hh | 30 ++++++++-------------- src/hb-ot-layout-private.hh | 4 +-- src/hb-ot-layout.cc | 8 +++--- src/hb-ot-map-private.hh | 8 +++--- src/hb-ot-map.cc | 18 ++++++------- src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- - src/hb-ot-shape-complex-indic.cc | 30 - +++++++++++----------- + src/hb-ot-shape-complex-indic.cc | 30 +++++++++++----------- src/hb-ot-shape-complex-myanmar.cc | 4 +-- src/hb-ot-shape-complex-sea.cc | 4 +-- src/hb-ot-shape-fallback.cc | 2 +- @@ -66990,10 +65698,10 @@ Author: Behdad Esfahbod Date: Mon Mar 11 19:53:44 2013 -0400 Add build system fallback to icu-config - + Ubuntu doesn't (or didn't until recently?) ship icu pkg-config files. That's quite unfortunate. Work around it. - + Bug 57608 - ICU Detection fallback for non-pkgconfig systems configure.ac | 37 +++++++++++++++++++++++++++++++++++++ @@ -67013,27 +65721,26 @@ Author: Behdad Esfahbod Date: Sat Mar 9 20:27:55 2013 -0500 [ft] Remove TODO item re FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH - + That flag is redundant, deprecated, and ignored since April 2011. From FreeType git log: - + commit 8c82ec5b17d0cfc9b0876a2d848acc207a62a25a Author: Behdad Esfahbod Date: Thu Apr 21 08:21:37 2011 +0200 - + Always ignore global advance. - + This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant, - deprecated, and ignored. The new behavior is what every - major user + deprecated, and ignored. The new behavior is what every major user of FreeType has been requesting. Global advance is broken in many CJK fonts. Just ignoring it by default makes most sense. - + * src/truetype/ttdriver.c (tt_get_advances), src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics, tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph), src/truetype/ttgload.h: Implement it. - + * docs/CHANGES: Updated. src/hb-ft.cc | 2 -- @@ -67055,8 +65762,7 @@ Date: Sat Mar 9 01:59:30 2013 -0500 [OTLayout] Move code around src/hb-ot-layout-gpos-table.hh | 33 ++++++------ - src/hb-ot-layout-gsub-table.hh | 115 - +++++++++++++++++++++-------------------- + src/hb-ot-layout-gsub-table.hh | 115 +++++++++++++++++++++-------------------- 2 files changed, 75 insertions(+), 73 deletions(-) commit 9c5a9ee967120c8a968a1160c420e03620d46c24 @@ -67066,10 +65772,8 @@ Date: Sat Mar 9 01:55:04 2013 -0500 [OTLayout] Rename process() to dispatch() src/hb-open-type-private.hh | 2 +- - src/hb-ot-layout-gpos-table.hh | 80 - ++++++++++++++++++------------------ - src/hb-ot-layout-gsub-table.hh | 78 - +++++++++++++++++------------------ + src/hb-ot-layout-gpos-table.hh | 80 ++++++++++++++++++------------------ + src/hb-ot-layout-gsub-table.hh | 78 +++++++++++++++++------------------ src/hb-ot-layout-gsubgpos-private.hh | 36 ++++++++-------- 4 files changed, 98 insertions(+), 98 deletions(-) @@ -67078,7 +65782,7 @@ Author: Behdad Esfahbod Date: Thu Mar 7 20:51:30 2013 -0500 [win32] Remove MemoryBarrier() fallback implementation - + I added these because the older mingw32 toolchain didn't have MemoryBarrier(). The newer mingw-w64 toolchain however has. As reported by John Emmas this was causing build failure with @@ -67113,7 +65817,7 @@ Author: Behdad Esfahbod Date: Wed Mar 6 20:05:34 2013 -0500 [build] Add AM_PROG_AR - + Newer automake / libtools warns otherwise. configure.ac | 1 + @@ -67124,7 +65828,7 @@ Author: Behdad Esfahbod Date: Wed Mar 6 19:37:31 2013 -0500 [FT] Just return if glyph name not found - + The fallback happens in higher level already. No need to do here. src/hb-ft.cc | 4 ++-- @@ -67144,19 +65848,18 @@ Author: Behdad Esfahbod Date: Tue Mar 5 20:08:59 2013 -0500 [Indic] Work around fonts with broken new-spec tables - + See comments, and this thread: - + http://lists.freedesktop.org/archives/harfbuzz/2013-March/002990.html - + Originally reported here: - + https://code.google.com/p/chromium/issues/detail?id=96143 - + Doesn't change test suite numbers. - src/hb-ot-shape-complex-indic.cc | 42 - +++++++++++++++++++++++++++------------- + src/hb-ot-shape-complex-indic.cc | 42 +++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) commit dfb799f57572e8123035a42a30f93c7fc4d37692 @@ -67182,7 +65885,7 @@ Author: Behdad Esfahbod Date: Tue Mar 5 01:37:44 2013 -0500 Add .travis.yml for continuous building with travis-ci.org - + Notifications sent to IRC channel and mailing list. .travis.yml | 12 ++++++++++++ @@ -67202,13 +65905,12 @@ Author: Behdad Esfahbod Date: Mon Mar 4 20:56:15 2013 -0500 [git.mk] Update to commit efc928222179576270c5910416d8055dd7a97896 - + Move reusable list of files into variable definitions modules can reuse Makefile.am | 22 ++++------------------ - git.mk | 59 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- + git.mk | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 60 insertions(+), 21 deletions(-) commit 66f7b3509a121b8f3289ad4c4aed2b5b10a6de2e @@ -67225,7 +65927,7 @@ Author: Behdad Esfahbod Date: Wed Feb 27 20:40:54 2013 -0500 [Indic] Help compiler put indic_features table in .rodata - + The overridden "or" operator was preventing the flag expression from being const, and putting the table in .data instead or .rodata. @@ -67248,12 +65950,11 @@ Author: Behdad Esfahbod Date: Wed Feb 27 18:39:37 2013 -0500 [buffer] Implement buffer deserialization for format=json - + Using a ragel machine. src/Makefile.am | 2 + - src/hb-buffer-deserialize-json.rl | 129 - ++++++++++++++++++++++++++++++++++++++ + src/hb-buffer-deserialize-json.rl | 129 ++++++++++++++++++++++++++++++++++++++ src/hb-buffer-deserialize-text.rl | 52 +-------------- src/hb-buffer-serialize.cc | 45 +++++++++++-- src/hb-private.hh | 6 +- @@ -67266,12 +65967,11 @@ Author: Behdad Esfahbod Date: Wed Feb 27 17:59:28 2013 -0500 [buffer] Implement buffer deserialization for format=text - + Using a ragel machine. src/Makefile.am | 2 + - src/hb-buffer-deserialize-text.rl | 169 - ++++++++++++++++++++++++++++++++++++++ + src/hb-buffer-deserialize-text.rl | 169 ++++++++++++++++++++++++++++++++++++++ src/hb-buffer-private.hh | 3 +- src/hb-buffer-serialize.cc | 36 +++----- src/hb-buffer.cc | 13 ++- @@ -67299,8 +65999,7 @@ Date: Wed Feb 27 13:01:02 2013 -0500 src/Makefile.am | 12 ++++- src/hb-buffer-serialize.cc | 64 ++++++++++++++++++++++-- src/hb-buffer.h | 2 +- - src/test-buffer-serialize.cc | 114 - +++++++++++++++++++++++++++++++++++++++++++ + src/test-buffer-serialize.cc | 114 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 187 insertions(+), 5 deletions(-) commit bcc8f32b4c46cd73f591924c64a6f63df6eaf9e7 @@ -67321,8 +66020,7 @@ Date: Wed Feb 27 11:06:36 2013 -0500 Android.mk | 1 + src/Makefile.am | 1 + - src/hb-buffer-serialize.cc | 251 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer-serialize.cc | 251 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.cc | 228 ---------------------------------------- 4 files changed, 253 insertions(+), 228 deletions(-) @@ -67340,7 +66038,7 @@ Author: Behdad Esfahbod Date: Tue Feb 26 21:22:37 2013 -0500 [Indic] Sort pre-base reordering consonants with post-forms - + Before, we were marking them as below-form for initial reordering. However, there is a rule that says "post consonants should follow below consonsnts" for base determination purposes. Malayalam has @@ -67348,12 +66046,12 @@ Date: Tue Feb 26 21:22:37 2013 -0500 YA,Virama,YA,Virama,RA, the correct base is at index 0. But because the code was seeing RA as a below-base, it was stopping at the second YA as base, instead of jumping it as a post-base. - + By treating prebase-reordering consonants like post-forms, this is fixed. - + MALAYALAM went down from 351 to 265. Other numbers didn't change: - + BENGALI: 353686 out of 354188 tests passed. 502 failed (0.141733%) DEVANAGARI: 707305 out of 707394 tests passed. 89 failed (0.0125814%) GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%) @@ -67361,8 +66059,7 @@ Date: Tue Feb 26 21:22:37 2013 -0500 KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%) KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048069 out of 1048334 tests passed. 265 failed - (0.0252782%) + MALAYALAM: 1048069 out of 1048334 tests passed. 265 failed (0.0252782%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) @@ -67379,8 +66076,7 @@ Date: Tue Feb 26 19:35:50 2013 -0500 [tests] Add Malayalam tests frim cibu .../indic/script-malayalam/misc/MANIFEST | 1 + - .../indic/script-malayalam/misc/cibu.txt | 188 - +++++++++++++++++++++ + .../indic/script-malayalam/misc/cibu.txt | 188 +++++++++++++++++++++ 2 files changed, 189 insertions(+) commit 1edc6b97b67363d55cfb5914c991ae54d42a6440 @@ -67397,7 +66093,7 @@ Author: Behdad Esfahbod Date: Mon Feb 25 23:57:51 2013 -0500 Fix "comparison between signed and unsigned" warnings - + Patch from Jonathan Kew. src/hb-open-type-private.hh | 2 +- @@ -67408,14 +66104,14 @@ Author: Behdad Esfahbod Date: Mon Feb 25 19:09:57 2013 -0500 Give up sanitizing after 100 edit requests - + Such fonts are *definitely* really broken. Give up. Limits time spent in sanitize for extremely / deliberately broken fonts. For example, two fonts with these md5sum / names: - + 9343f0a1b8c84b8123e7d201cae62ffd.ttf eb8c978547f09d368fc204194fb34688.ttf - + were spending over a second in sanitize! Not anymore. src/hb-open-type-private.hh | 7 +++++++ @@ -67426,7 +66122,7 @@ Author: Behdad Esfahbod Date: Mon Feb 25 19:04:56 2013 -0500 Add HB_DEBUG_VERBOSE - + Only affects the verbosity of function name printing right now. src/hb-private.hh | 6 +++++- @@ -67448,8 +66144,7 @@ Date: Mon Feb 25 17:54:10 2013 -0500 Fix blob test to match c3ba49b6fa1865e8318926eaa6c0f2063d1053bb - test/api/test-blob.c | 57 - ++++++++++++++++++++++++++++++++++++++++++++++------ + test/api/test-blob.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 6 deletions(-) commit c3ba49b6fa1865e8318926eaa6c0f2063d1053bb @@ -67457,7 +66152,7 @@ Author: Behdad Esfahbod Date: Mon Feb 25 17:06:35 2013 -0500 Always create sub-blobs in MEMORY_MODE_READONLY - + This fixes a design bug with sanitize and sub-blobs that can cause crashes. Jonathan and I found and debugged this issue when we tested a corrupt font with the md5sum / filename: @@ -67465,12 +66160,12 @@ Date: Mon Feb 25 17:06:35 2013 -0500 debugging we found out that the font has overlapping GSUB/GPOS tables, and as such, sanitizing the second table can modify the first one, which can cause all kinds of undefined behavior. - + The correct way to fix this is to make sure sub-blobs are always created readonly, since we consider the parent blob to be a shared resource and can't modify it, even if it *is* writable. - + This essentially makes the READONLY_MAY_MAKE_WRITABLE mode unused... Maybe we should simply remove / deprecate it. @@ -67492,13 +66187,11 @@ Author: Behdad Esfahbod Date: Thu Feb 21 15:39:57 2013 -0500 Port TrueType-kerning to use skippy iterator - - It skips joiners and default ignorables now. Skips marks too, - but only + + It skips joiners and default ignorables now. Skips marks too, but only if there is proper GDEF classes for marks. - src/hb-ot-shape-fallback.cc | 50 - +++++++++++++++++++++++++-------------------- + src/hb-ot-shape-fallback.cc | 50 +++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 22 deletions(-) commit 722e8b857eafc52e07dee5d9b253b88ed5c5c8ed @@ -67506,7 +66199,7 @@ Author: Behdad Esfahbod Date: Thu Feb 21 15:37:51 2013 -0500 Fixup previous commit - + Was not decreasing num_items. Ouch! src/hb-ot-layout-gsubgpos-private.hh | 12 ++++++++---- @@ -67519,10 +66212,8 @@ Date: Thu Feb 21 15:23:39 2013 -0500 Move code around src/hb-ot-shape-fallback-private.hh | 5 +++++ - src/hb-ot-shape-fallback.cc | 40 - +++++++++++++++++++++++++++++++++++++ - src/hb-ot-shape.cc | 38 - +---------------------------------- + src/hb-ot-shape-fallback.cc | 40 +++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.cc | 38 +---------------------------------- 3 files changed, 46 insertions(+), 37 deletions(-) commit 2b2a6e8944144755ab641f2842e36d9a847719f3 @@ -67530,12 +66221,12 @@ Author: Behdad Esfahbod Date: Thu Feb 21 15:07:03 2013 -0500 [OTLayout] Correctly skip Default_Ignorable when match_func not set - + When a match_func was not set on the matcher_t object (ie. from GPOS), then the Default_Ignorables (including joiners) were never skipped. This meant that they were not skipped as they should during GPOS matching. Fix that. - + A few Indic numbers have "regressed": BENGALI and DEVANAGARI went up from 290 and 58 respectively, but in both cases new results are superior to Uniscribe, as they apply GPOS when we weren't (and @@ -67547,16 +66238,14 @@ Date: Thu Feb 21 15:07:03 2013 -0500 KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%) KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed - (0.0334817%) + MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - src/hb-ot-layout-gsubgpos-private.hh | 32 - ++++++++++++++++++++++---------- + src/hb-ot-layout-gsubgpos-private.hh | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) commit ff93ac8cb24cbc3d9dc1a2bfb0faa88950f4a507 @@ -67575,8 +66264,7 @@ Date: Tue Feb 19 00:58:10 2013 -0500 [tests] Add Myanmar torture tests from Martin Hosken .../shaper-myanmar/script-myanmar/misc/MANIFEST | 1 + - .../shaper-myanmar/script-myanmar/misc/torture.txt | 23 - ++++++++++++++++++++++ + .../shaper-myanmar/script-myanmar/misc/torture.txt | 23 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) commit a3df9a7bf87aeba7a3d6110cd5e01a65bd0b16d0 @@ -67584,27 +66272,18 @@ Author: Behdad Esfahbod Date: Tue Feb 19 00:50:46 2013 -0500 Minor - + Moving files around - test/shaping/texts/in-tree/MANIFEST | - 2 -- - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 2 ++ - .../in-tree/{script-default => shaper-default/script-hangul}/MANIFEST - | 0 - .../{script-default => shaper-default/script-hangul}/misc/MANIFEST - | 0 - .../{shaper-hangul => shaper-default}/script-hangul/misc/misc.txt - | 0 - .../script-hangul => shaper-default/script-tibetan}/MANIFEST | - 0 - .../script-hangul => shaper-default/script-tibetan}/misc/MANIFEST - | 0 - .../{script-default => shaper-default/script-tibetan}/misc/misc.txt - | 0 - test/shaping/texts/in-tree/shaper-hangul/MANIFEST | - 1 - + test/shaping/texts/in-tree/MANIFEST | 2 -- + test/shaping/texts/in-tree/shaper-default/MANIFEST | 2 ++ + .../in-tree/{script-default => shaper-default/script-hangul}/MANIFEST | 0 + .../{script-default => shaper-default/script-hangul}/misc/MANIFEST | 0 + .../{shaper-hangul => shaper-default}/script-hangul/misc/misc.txt | 0 + .../script-hangul => shaper-default/script-tibetan}/MANIFEST | 0 + .../script-hangul => shaper-default/script-tibetan}/misc/MANIFEST | 0 + .../{script-default => shaper-default/script-tibetan}/misc/misc.txt | 0 + test/shaping/texts/in-tree/shaper-hangul/MANIFEST | 1 - 9 files changed, 2 insertions(+), 3 deletions(-) commit b1f440759161cb5a54e1b1b910f3a8383b8e8472 @@ -67612,15 +66291,14 @@ Author: Behdad Esfahbod Date: Sun Feb 17 12:12:37 2013 -0500 [SEA] Fix order of pre-base reordering Ra and left matras - + The code was confused because it was expecting left matra to have POS_PRE_M, like we do in the Myanmar shaper, but that is not what we were doing in this shaper. Rewrite to rely on category only. - + Test case: U+AA06,U+AA34,U+AA2F - src/hb-ot-shape-complex-sea.cc | 13 - +++++++------ + src/hb-ot-shape-complex-sea.cc | 13 +++++++------ .../texts/in-tree/shaper-sea/script-cham/misc/misc.txt | 1 + 2 files changed, 8 insertions(+), 6 deletions(-) @@ -67647,7 +66325,7 @@ Author: Behdad Esfahbod Date: Fri Feb 15 09:33:10 2013 -0500 Remove TODO items that don't make sense - + The spec says those features need to be disabled by default. TODO | 2 -- @@ -67658,14 +66336,13 @@ Author: Behdad Esfahbod Date: Fri Feb 15 09:27:02 2013 -0500 [Arabic] Fix shaping of left-joining 'Phags-Pa U+A872 - + This is the first character in Unicode to have Arabic left-joining behavior. Update the machine to recognize that. - + Test case: U+A840,U+A872,U+A840. - src/hb-ot-shape-complex-arabic.cc | 40 - +++++++++++++++++++-------------------- + src/hb-ot-shape-complex-arabic.cc | 40 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 21 deletions(-) commit 05ac87813d17d9ebbfa315eee3f80f25b53135c5 @@ -67675,8 +66352,7 @@ Date: Fri Feb 15 09:26:41 2013 -0500 [tests] Add Syriac Alaph shaping test cases .../shaper-arabic/script-syriac/misc/MANIFEST | 1 + - .../shaper-arabic/script-syriac/misc/alaph.txt | 98 - ++++++++++++++++++++++ + .../shaper-arabic/script-syriac/misc/alaph.txt | 98 ++++++++++++++++++++++ 2 files changed, 99 insertions(+) commit c462b32dcb883a7aca066af24c4d28c7a2b7fa28 @@ -67684,12 +66360,12 @@ Author: Behdad Esfahbod Date: Fri Feb 15 07:51:47 2013 -0500 Disable automatic segment properties guessing - + Before, if one called hb_shape() without setting script, language, and direction on the buffer, hb_shape() was calling hb_buffer_guess_segment_properties() on the user's behalf to guess these. - + This is very dangerous, since any serious user of HarfBuzz must set these properly (specially important is direction). So now, we don't guess properties by default. People not setting direction will get @@ -67718,13 +66394,12 @@ Author: Behdad Esfahbod Date: Fri Feb 15 07:41:07 2013 -0500 Allow disabling of TrueType kerning - + Responds to the same feature tag that GPOS kerning does: 'kern' for horizontal and 'vkrn' for vertical. TODO | 2 -- - src/hb-ot-shape.cc | 55 - ++++++++++++++++++++++++++++++++++-------------------- + src/hb-ot-shape.cc | 55 ++++++++++++++++++++++++++++++++++-------------------- 2 files changed, 35 insertions(+), 22 deletions(-) commit 398238a2526d322eb79e255c24634a275473920f @@ -67732,9 +66407,8 @@ Author: Behdad Esfahbod Date: Fri Feb 15 07:40:10 2013 -0500 Fix partial disabling of default-on features - - Surprisingly, if user ever tried to turn a default feature off - partially + + Surprisingly, if user ever tried to turn a default feature off partially (say, disable liga for a range), the feature was being turned off globally! Fixed now. @@ -67745,20 +66419,16 @@ commit cb90b1bbe6d27ca6968b70d2dbfea7ab7fb73293 Author: Behdad Esfahbod Date: Fri Feb 15 07:02:08 2013 -0500 - [OTLayout] Respect syllable boundaries for backtrack/lookahead - matching - + [OTLayout] Respect syllable boundaries for backtrack/lookahead matching + Originally we meant to match backtrack/lookahead across syllable boundaries. But a bug in the code meant that this was NOT done for - backtrack. We "fixed" that in - 2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c, + backtrack. We "fixed" that in 2c7d0b6b80d412de3fddd443ed1a485ea1cbb03c, but that broke Myanmar shaping. - - We now believe that for Indic-like shapers (which is where syllables - are + + We now believe that for Indic-like shapers (which is where syllables are used), all basic shaping forms should be fully contained within their - syllables, so now we limit backtrack/lookahead matching to the - syllable + syllables, so now we limit backtrack/lookahead matching to the syllable too. Unbreaks Myanmar. src/hb-ot-layout-gsubgpos-private.hh | 4 ++-- @@ -67770,10 +66440,8 @@ Date: Fri Feb 15 06:22:26 2013 -0500 Minor refactoring - src/hb-ot-shape-complex-myanmar.cc | 36 - ++++++++++-------------------------- - src/hb-ot-shape-complex-sea.cc | 37 - ++++++++++--------------------------- + src/hb-ot-shape-complex-myanmar.cc | 36 ++++++++++-------------------------- + src/hb-ot-shape-complex-sea.cc | 37 ++++++++++--------------------------- src/hb-ot-shape.cc | 17 ++++++----------- 3 files changed, 26 insertions(+), 64 deletions(-) @@ -67781,33 +66449,32 @@ commit cfc507c5432e6327e8484b07b9e091212653bc92 Author: Behdad Esfahbod Date: Thu Feb 14 10:40:12 2013 -0500 - [Indic-like] Disable automatic joiner handling for basic shaping - features - + [Indic-like] Disable automatic joiner handling for basic shaping features + Not for Arabic, but for Indic-like scripts. ZWJ/ZWNJ have special meanings in those scripts, so let font lookups take full control. - + This undoes the regression caused by automatic-joiners handling introduced two commits ago. - + We only disable automatic joiner handling for the "basic shaping features" of Indic, Myanmar, and SEAsian shapers. The "presentation forms" and other features are still applied with automatic-joiner handling. - + This change also changes the test suite failure statistics, such that a few scripts show more "failures". The most affected is Kannada. However, upon inspection, we believe that in most, if not all, of the new failures, we are producing results superior to Uniscribe. Hard to count those! - + Here's an example of what is fixed by the recent joiner-handling changes: - + https://bugs.freedesktop.org/show_bug.cgi?id=58714 - + New numbers, for future reference: - + BENGALI: 353892 out of 354188 tests passed. 296 failed (0.0835714%) DEVANAGARI: 707336 out of 707394 tests passed. 58 failed (0.00819911%) GUJARATI: 366262 out of 366457 tests passed. 195 failed (0.0532122%) @@ -67815,21 +66482,18 @@ Date: Thu Feb 14 10:40:12 2013 -0500 KANNADA: 950680 out of 951913 tests passed. 1233 failed (0.129529%) KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed - (0.0334817%) + MALAYALAM: 1047983 out of 1048334 tests passed. 351 failed (0.0334817%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271539 out of 271847 tests passed. 308 failed (0.113299%) TAMIL: 1091753 out of 1091754 tests passed. 1 failed (9.15957e-05%) TELUGU: 970555 out of 970573 tests passed. 18 failed (0.00185457%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - src/hb-ot-layout-gsubgpos-private.hh | 35 - +++++++++++++++++++----------- + src/hb-ot-layout-gsubgpos-private.hh | 35 +++++++++++++++++++----------- src/hb-ot-layout-private.hh | 6 +++-- src/hb-ot-layout.cc | 10 +++++---- src/hb-ot-map-private.hh | 12 ++++++---- - src/hb-ot-map.cc | 32 - +++++++++++++++++++++------ + src/hb-ot-map.cc | 32 +++++++++++++++++++++------ src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- src/hb-ot-shape-complex-indic.cc | 29 +++++++++++++------------ src/hb-ot-shape-complex-myanmar.cc | 4 ++-- @@ -67841,7 +66505,7 @@ Author: Behdad Esfahbod Date: Thu Feb 14 10:46:52 2013 -0500 [OTLayout] Add fine-grained control over ZWJ matching - + Not used yet. Next commit... src/hb-ot-layout-gsubgpos-private.hh | 10 ++++++++-- @@ -67853,36 +66517,34 @@ Author: Behdad Esfahbod Date: Thu Feb 14 07:43:13 2013 -0500 [OTLayout] Ignore default-ignorables when matching GSUB/GPOS - + When matching lookups, be smart about default-ignorable characters. In particular: - + Do nothing specific about ZWNJ, but for the other default-ignorables: - + If the lookup in question uses the ignorable character in a sequence, then match it as we used to do. However, if the sequence match will fail because the default-ignorable blocked it, try skipping the ignorable character and continue. - - The most immediate thing it means is that if Lam-Alef forms a - ligature, + + The most immediate thing it means is that if Lam-Alef forms a ligature, then Lam-ZWJ-Alef will do to. Finally! - + One exception: when matching for GPOS, or for backtrack/lookahead of GSUB, we ignore ZWNJ too. That's the right thing to do. - + It certainly is possible to build fonts that this feature will result in undesirable glyphs, but it's hard to think of a real-world case that that would happen. - + This *does* break Indic shaping right now, since Indic Unicode has specific rules for what ZWJ/ZWNJ mean, and skipping ZWJ is breaking those rules. That will be fixed in upcoming commits. src/hb-ot-layout-gpos-table.hh | 1 + src/hb-ot-layout-gsub-table.hh | 2 +- - src/hb-ot-layout-gsubgpos-private.hh | 279 - ++++++++++++++++++++++++----------- + src/hb-ot-layout-gsubgpos-private.hh | 279 ++++++++++++++++++++++++----------- src/hb-ot-layout-private.hh | 45 ++++++ src/hb-ot-shape-private.hh | 44 ------ 5 files changed, 237 insertions(+), 134 deletions(-) @@ -67892,14 +66554,13 @@ Author: Behdad Esfahbod Date: Thu Feb 14 11:25:10 2013 -0500 Add hb_ot_map_feature_flags_t - + Code cleanup. No (intended) functional change. src/hb-ot-map-private.hh | 29 +++++++++++++++++--- src/hb-ot-map.cc | 24 ++++++++--------- src/hb-ot-shape-complex-arabic.cc | 4 +-- - src/hb-ot-shape-complex-indic.cc | 55 - +++++++++++++++++++------------------- + src/hb-ot-shape-complex-indic.cc | 55 +++++++++++++++++++------------------- src/hb-ot-shape-complex-myanmar.cc | 4 +-- src/hb-ot-shape-complex-sea.cc | 2 +- src/hb-ot-shape.cc | 6 +++-- @@ -67946,8 +66607,7 @@ Date: Thu Feb 14 07:41:03 2013 -0500 [OTLayout] Port apply_lookup to skippy_iter - src/hb-ot-layout-gsubgpos-private.hh | 50 - +++++++++++++++++++++++++----------- + src/hb-ot-layout-gsubgpos-private.hh | 50 +++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 15 deletions(-) commit dfca269f069dae2f99990dac24da15d316eccb9f @@ -67964,7 +66624,7 @@ Author: Behdad Esfahbod Date: Thu Feb 14 06:24:30 2013 -0500 [OTLayout] Minor fix for apply_lookup() - + Should NOT change behavior, since first glyph is a match. src/hb-ot-layout-gsubgpos-private.hh | 16 +++++++++------- @@ -67986,7 +66646,7 @@ Author: Behdad Esfahbod Date: Wed Feb 13 12:10:08 2013 -0500 [OTLayou] Unbreak backtrack matching - + Was introduced by 28b9d502bb69a8045818d5f6113ded9c59a56bd7. src/hb-ot-layout-gsubgpos-private.hh | 7 +++---- @@ -68010,8 +66670,7 @@ Date: Wed Feb 13 11:13:06 2013 -0500 src/hb-ot-layout-gpos-table.hh | 21 ++++++++----------- src/hb-ot-layout-gsub-table.hh | 7 +++---- - src/hb-ot-layout-gsubgpos-private.hh | 40 - ++++++++++++++---------------------- + src/hb-ot-layout-gsubgpos-private.hh | 40 ++++++++++++++---------------------- 3 files changed, 26 insertions(+), 42 deletions(-) commit 6b1e3502e23c110dd810f854ba021f83baab1548 @@ -68019,7 +66678,7 @@ Author: Behdad Esfahbod Date: Wed Feb 13 11:02:54 2013 -0500 Remember ZWNJ - + To be used in upcoming changes. src/hb-ot-shape-private.hh | 11 +++++++++-- @@ -68039,11 +66698,10 @@ Author: Behdad Esfahbod Date: Wed Feb 13 09:26:55 2013 -0500 [Indic] Improve base finding in final_reordering - + Fixes 5 Malayalam failures! - - MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed - (0.0303338%) + + MALAYALAM: 1048016 out of 1048334 tests passed. 318 failed (0.0303338%) src/hb-ot-shape-complex-indic.cc | 7 +++++++ 1 file changed, 7 insertions(+) @@ -68054,8 +66712,7 @@ Date: Wed Feb 13 08:29:21 2013 -0500 Add more dot-reph tests - .../shaper-indic/indic/script-malayalam/misc/dot-reph.txt | - 10 ++++++++++ + .../shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) commit f22b7e77783fa2f44365e0fe6413c4474c07048d @@ -68063,18 +66720,14 @@ Author: Behdad Esfahbod Date: Wed Feb 13 07:32:46 2013 -0500 [Indic] Track base position when reordering things - - Ouch, how did things ever work without this?! The added test that - has a - dot-reph as well as a pre-base reordering Ra perfectly demonstrates - the - bug (tested with Nirmala font from Win8 for example). Testing - suggests + + Ouch, how did things ever work without this?! The added test that has a + dot-reph as well as a pre-base reordering Ra perfectly demonstrates the + bug (tested with Nirmala font from Win8 for example). Testing suggests that Win8 shaper has the *exact* same bug / behavior that we used to have. Odd. - src/hb-ot-shape-complex-indic.cc | - 6 ++++++ + src/hb-ot-shape-complex-indic.cc | 6 ++++++ .../in-tree/shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 1 + 2 files changed, 7 insertions(+) @@ -68083,7 +66736,7 @@ Author: Behdad Esfahbod Date: Wed Feb 13 05:59:06 2013 -0500 [SEA] Don't zero any mark advances - + Keep the logic simple, easier to explain to font developers. src/hb-ot-shape-complex-sea.cc | 2 +- @@ -68094,11 +66747,11 @@ Author: Behdad Esfahbod Date: Wed Feb 13 05:57:24 2013 -0500 Further adjust mark advance zeroing - + This is a followup to 568000274c8edb5f41bc4f876ce21fcc8bdaeed8. Looks like in the Latin shaper, Uniscribe zeroes all Unicode NSM advances *after* GPOS, not before. Match that. - + Can be tested using DejaVu Sans Mono, since that font has GPOS rules to zero the mark advances on its own. @@ -68119,13 +66772,11 @@ Author: Behdad Esfahbod Date: Tue Feb 12 18:17:12 2013 -0500 [tests] Add tests for Devanagary Eyelash Ra - + Currently broken with Sanskrit 2003 font. - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | - 1 + - .../in-tree/shaper-indic/indic/script-devanagari/misc/eyelash.txt | - 3 +++ + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 + + .../in-tree/shaper-indic/indic/script-devanagari/misc/eyelash.txt | 3 +++ 2 files changed, 4 insertions(+) commit 63e48bc33b68f940c351af623a55a4cf650db102 @@ -68133,7 +66784,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 17:57:49 2013 -0500 [Indic] Apply 'blwf' before 'half' - + This reverts 167b625d988b74572d6b2f646c285b666b650d49. It didn't matter before, but that's going to change with next commit. @@ -68145,7 +66796,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 18:01:21 2013 -0500 [Indic] Apply 'vatu' before 'cjct' - + This essentially reverts 1d6846db9ebf84561bb30a4e48c6c43184914099, but that commit is from way back when. We should be better following the spec order now again. @@ -68158,7 +66809,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 16:29:25 2013 -0500 Didn't mean to push this out - + Ouch! test/shaping/hb_test_tools.py | 1 - @@ -68170,8 +66821,7 @@ Date: Tue Feb 12 16:13:56 2013 -0500 [Myanmar] Use master Indic table for syllable data - src/hb-ot-shape-complex-myanmar.cc | 144 - +++++++++---------------------------- + src/hb-ot-shape-complex-myanmar.cc | 144 +++++++++---------------------------- test/shaping/hb_test_tools.py | 1 + 2 files changed, 35 insertions(+), 110 deletions(-) @@ -68189,7 +66839,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 15:35:32 2013 -0500 Improve checks for setmode() - + As reported by Jonathan, OS X has setmode() that is something other than what setmode() is on Win32. So, limit invocation to Windows platforms only. @@ -68204,7 +66854,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 15:31:58 2013 -0500 Improve check for Windows platforms - + Instead of checking for compiler, check for platform. src/hb-atomic-private.hh | 2 +- @@ -68225,13 +66875,12 @@ Author: Behdad Esfahbod Date: Tue Feb 12 15:26:45 2013 -0500 Rename HB_OT_INDIC_OPTIONS env var to HB_OPTIONS - + The Myanmar shaper now respects the uniscribe-bug-compatibility option too. src/hb-common.cc | 20 ++++++++++++-- - src/hb-ot-shape-complex-indic.cc | 53 - ++++---------------------------------- + src/hb-ot-shape-complex-indic.cc | 53 ++++---------------------------------- src/hb-ot-shape-complex-myanmar.cc | 7 ++--- src/hb-private.hh | 29 +++++++++++++++++++++ 4 files changed, 54 insertions(+), 55 deletions(-) @@ -68241,7 +66890,7 @@ Author: Behdad Esfahbod Date: Tue Feb 12 12:14:10 2013 -0500 Add South-East Asian shaper - + Handles Tai Tham, Cham, and New Tai Lue for now. src/Makefile.am | 12 +- @@ -68252,8 +66901,7 @@ Date: Tue Feb 12 12:14:10 2013 -0500 src/hb-ot-shape-complex-myanmar.cc | 2 +- src/hb-ot-shape-complex-private.hh | 28 +- src/hb-ot-shape-complex-sea-machine.rl | 102 ++++++ - src/hb-ot-shape-complex-sea.cc | 400 - +++++++++++++++++++++ + src/hb-ot-shape-complex-sea.cc | 400 +++++++++++++++++++++ test/shaping/texts/in-tree/MANIFEST | 1 + .../in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - test/shaping/texts/in-tree/shaper-myanmar/MANIFEST | 1 + @@ -68275,24 +66923,15 @@ Date: Tue Feb 12 10:33:58 2013 -0500 Minor test reshufflings - test/shaping/texts/in-tree/MANIFEST - | 1 + - .../{shaper-indic/south-asian/script-tibetan => script-default}/MANIFEST - | 0 - .../south-asian/script-tibetan => script-default}/misc/MANIFEST - | 0 - .../south-asian/script-tibetan => script-default}/misc/misc.txt - | 0 - test/shaping/texts/in-tree/shaper-indic/MANIFEST - | 1 - - test/shaping/texts/in-tree/shaper-indic/south-asian/MANIFEST - | 1 - - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST - | 1 - - .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST - | 1 - - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST - | 0 + test/shaping/texts/in-tree/MANIFEST | 1 + + .../{shaper-indic/south-asian/script-tibetan => script-default}/MANIFEST | 0 + .../south-asian/script-tibetan => script-default}/misc/MANIFEST | 0 + .../south-asian/script-tibetan => script-default}/misc/misc.txt | 0 + test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-indic/south-asian/MANIFEST | 1 - + test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - + .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST | 1 - + .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 0 9 files changed, 1 insertion(+), 4 deletions(-) commit 5676d5d52784e16068ae483103d59111a8081854 @@ -68301,8 +66940,7 @@ Date: Tue Feb 12 10:31:14 2013 -0500 [Indic] Make sure New Tai Lue works! - src/hb-ot-shape-complex-private.hh | 12 - ++++++++---- + src/hb-ot-shape-complex-private.hh | 12 ++++++++---- .../texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 + .../south-east-asian/script-new-tai-lue/MANIFEST | 1 + .../south-east-asian/script-new-tai-lue/misc/MANIFEST | 1 + @@ -68314,25 +66952,25 @@ Author: Behdad Esfahbod Date: Tue Feb 12 09:44:57 2013 -0500 Adjust mark advance-width zeroing logic for Myanmar - + Before, we were zeroing advance width of attached marks for non-Indic scripts, and not doing it for Indic. - + We have now three different behaviors, which seem to better reflect what Uniscribe is doing: - + - For Indic, no explicit zeroing happens whatsoever, which is the same as before, - + - For Myanmar, zero advance width of glyphs marked as marks *in GDEF*, and do that *before* applying GPOS. This seems to be what the new Win8 Myanmar shaper does, - + - For everything else, zero advance width of glyphs that are from General_Category=Mn Unicode characters, and do so before applying GPOS. This seems to be what Uniscribe does for Latin at least. - + With these changes, positioning of all tests matches for Myanmar, except for the glitch in Uniscribe not applying 'mark'. See preivous commit. @@ -68373,7 +67011,7 @@ Author: Behdad Esfahbod Date: Mon Feb 11 16:16:16 2013 -0500 [Myanmar] Fix handling of Punctuation and Symbol types - + Testing with "clusters" now on par with testing without them. 15 failures both. @@ -68395,15 +67033,13 @@ Author: Behdad Esfahbod Date: Mon Feb 11 14:27:02 2013 -0500 [Myanmar] Prevent reordering between Asat and Dot below - + Implemented as a hack for now. Myanmar failures down from 23 to 15. - + MYANMAR: 1123868 out of 1123883 tests passed. 15 failed (0.00133466%) - - The remaining 15 cases are all where the syllable is wrong according - to - the OpenType spec. We insert dottedcircle. Uniscribe fails to - do that, + + The remaining 15 cases are all where the syllable is wrong according to + the OpenType spec. We insert dottedcircle. Uniscribe fails to do that, but it also fails to reorder the prebase-reordering medial-Ra. So it gets it wrong. @@ -68416,24 +67052,15 @@ Date: Mon Feb 11 14:24:03 2013 -0500 Shuffle test data around - test/shaping/texts/in-tree/MANIFEST - | 1 + - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST - | 1 - - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST - | 1 - - .../south-east-asian => shaper-myanmar}/script-myanmar/MANIFEST - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/MANIFEST - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/misc.txt - | 0 - .../south-east-asian => shaper-myanmar}/script-myanmar/misc/utn11.txt - | 0 - test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST - | 1 + - .../south-east-asian => shaper-thai}/script-thai/misc/misc.txt - | 0 + test/shaping/texts/in-tree/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 - + .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 1 - + .../south-east-asian => shaper-myanmar}/script-myanmar/MANIFEST | 0 + .../south-east-asian => shaper-myanmar}/script-myanmar/misc/MANIFEST | 0 + .../south-east-asian => shaper-myanmar}/script-myanmar/misc/misc.txt | 0 + .../south-east-asian => shaper-myanmar}/script-myanmar/misc/utn11.txt | 0 + test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + + .../south-east-asian => shaper-thai}/script-thai/misc/misc.txt | 0 9 files changed, 2 insertions(+), 2 deletions(-) commit 98628cac9f733f2674d6409954cddb7d0634c233 @@ -68441,16 +67068,15 @@ Author: Behdad Esfahbod Date: Mon Feb 11 13:36:23 2013 -0500 Add Win8-style Myanmar shaper - + Myanmar failures down from 51% to 0.00204648%! - + MYANMAR: 1123860 out of 1123883 tests passed. 23 failed (0.00204648%) src/Makefile.am | 14 +- src/hb-ot-shape-complex-indic.cc | 2 - src/hb-ot-shape-complex-myanmar-machine.rl | 127 ++++++ - src/hb-ot-shape-complex-myanmar.cc | 599 - +++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-myanmar.cc | 599 +++++++++++++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 5 +- 5 files changed, 740 insertions(+), 7 deletions(-) @@ -68468,14 +67094,12 @@ Author: Behdad Esfahbod Date: Mon Feb 11 13:27:17 2013 -0500 [OTLayout] Respect lookup-flags skipping over non-mark glyphs - + Before, when matching ligatures, we never skipping over base / liga glyphs even if that was what the LookupFlags asked for. - - Fixed now. We carefully reviewed all instances of this, and - tested with - Amiri as well as some Indic scripts, and are confident that this - should + + Fixed now. We carefully reviewed all instances of this, and tested with + Amiri as well as some Indic scripts, and are confident that this should NOT break anyone's fonts. It's also how Uniscribe does it, from what we can tell. @@ -68488,7 +67112,7 @@ Author: Behdad Esfahbod Date: Mon Feb 11 13:14:15 2013 -0500 [OTLayout] s/mark_skipping/skipping/ - + In aticipation of upcoming changes. src/hb-ot-layout-gpos-table.hh | 12 ++++++------ @@ -68500,7 +67124,7 @@ Author: Behdad Esfahbod Date: Mon Feb 11 06:58:27 2013 -0500 [Indic] Fix bug introduced in 8b217f5ac54aa0dcbba2dd6d59aa89dde33e56c2 - + Was breaking reph formation logic when the Ra is the only consonant. Devanagari regression fixed. Down to 57 failures again. Ouch. @@ -68512,16 +67136,15 @@ Author: Behdad Esfahbod Date: Mon Feb 11 06:50:17 2013 -0500 Improve normalization heuristic - - Before, for most scripts, we were not trying to recompose two - characters + + Before, for most scripts, we were not trying to recompose two characters if the second one had ccc=0. That fails for Myanmar where U+1026 decomposes to U+1025,U+102E, both of which have ccc=0. However, we do want to try to recompose those. We now check whether the second is a mark, using general category instead. - + At the same time, remove optimization that was conflicting with this. - + [Let the Ngapi hackfest begin!] src/hb-ot-shape-normalize.cc | 39 +++++++++++++-------------------------- @@ -68532,17 +67155,16 @@ Author: Behdad Esfahbod Date: Wed Feb 6 23:45:27 2013 -0500 Revert "Include config.h.in in tree" - + This reverts commit 01013a0f5c58d5d54a37e5b4d6692e0bbd4baf80. - + Conflicts: config.h.in - + Same argument as previous commit. Makefile.am | 1 + - config.h.in | 153 - ------------------------------------------------------------ + config.h.in | 153 ------------------------------------------------------------ 2 files changed, 1 insertion(+), 153 deletions(-) commit adff3778155facb7b149ce66ab7d573368e048de @@ -68550,24 +67172,20 @@ Author: Behdad Esfahbod Date: Wed Feb 6 23:43:27 2013 -0500 Revert "[Indic] Import ragel-generated Indic machine in git" - + This reverts commit fab7a71f110ed646745d54b23284537c50058c21. - + Conflicts: src/hb-ot-shape-complex-indic-machine.hh - - Keeping that generated file in-tree causes problems with processes - like - tinderbox that automatically fetch and build harfbuzz. It's harder - to - bootstrap harfbuzz now (as was previously), but I'm willing to - give this + + Keeping that generated file in-tree causes problems with processes like + tinderbox that automatically fetch and build harfbuzz. It's harder to + bootstrap harfbuzz now (as was previously), but I'm willing to give this another chance and see how it goes. autogen.sh | 6 + src/Makefile.am | 1 + - src/hb-ot-shape-complex-indic-machine.hh | 1443 - ------------------------------ + src/hb-ot-shape-complex-indic-machine.hh | 1443 ------------------------------ 3 files changed, 7 insertions(+), 1443 deletions(-) commit 5898fa94d12b19686f649104bd6efe8daa1ba0c9 @@ -68575,11 +67193,10 @@ Author: Behdad Esfahbod Date: Wed Feb 6 15:29:07 2013 -0500 Don't use $(ENV) - + As reported by Peter Breitenlohner: - - I think this is a very bad idea because ENV is used to specify - a startup + + I think this is a very bad idea because ENV is used to specify a startup file to be read by some/all shells. test/api/Makefile.am | 2 +- @@ -68607,8 +67224,7 @@ commit 6c1e8b614cfd6ed016fba6bf20af1e422e79eb71 Author: Behdad Esfahbod Date: Mon Feb 4 23:24:16 2013 -0500 - Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh - fail on mips/mipsel + Bug 59637 - check-exported-symbols.sh & check-internal-symbols.sh fail on mips/mipsel src/check-symbols.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -68620,8 +67236,7 @@ Date: Mon Feb 4 23:06:50 2013 -0500 Merge check-internal-symbols.sh and check-exported-symbols.sh src/Makefile.am | 3 +- - src/check-internal-symbols.sh | 34 - ---------------------- + src/check-internal-symbols.sh | 34 ---------------------- ...{check-exported-symbols.sh => check-symbols.sh} | 16 ++++++++-- 3 files changed, 14 insertions(+), 39 deletions(-) @@ -68630,7 +67245,7 @@ Author: Behdad Esfahbod Date: Thu Jan 31 19:27:36 2013 -0500 Really fix setmode this time - + Thanks to Khaled for spotting it. util/options.cc | 2 +- @@ -68641,9 +67256,8 @@ Author: Behdad Esfahbod Date: Thu Jan 31 18:37:10 2013 -0500 Fixup previous commit - - Now, it looks like this breaks Cygwin again. Have to figure out - what's + + Now, it looks like this breaks Cygwin again. Have to figure out what's going on. util/options.cc | 4 ++-- @@ -68654,7 +67268,7 @@ Author: Behdad Esfahbod Date: Thu Jan 31 18:18:05 2013 -0500 Use setmode() instead of _setmode() - + Looks like Cygwin / MSVC declare it that way, and it still works on MinGW32 cross. @@ -68668,8 +67282,7 @@ commit e9171af55cc6a402eb20db4ea74c86a0b1e70e85 Author: Behdad Esfahbod Date: Tue Jan 29 22:45:00 2013 -0500 - Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ - defined but not used + Bug 60053 - hb-common.cc:181:6: warning: ‘void free_langs()’ defined but not used src/hb-common.cc | 2 +- src/hb-ft.cc | 2 +- @@ -68719,9 +67332,9 @@ Author: Behdad Esfahbod Date: Mon Jan 14 00:32:12 2013 -0600 Revert "Minor" - + This reverts commit 0a492357016bc9a614d2a726f2006c10af68ca58. - + Enables code on more compilers. src/hb-warning.cc | 33 ++++++++++++++++++++++++++++++--- @@ -68761,7 +67374,7 @@ Author: Behdad Esfahbod Date: Thu Jan 10 01:17:59 2013 -0600 Add atomic ops for Solaris - + Based on fontconfig patch from Raimund Steger. config.h.in | 5 ++++- @@ -68774,24 +67387,20 @@ Author: Behdad Esfahbod Date: Thu Jan 10 00:03:36 2013 -0600 Fix crasher during multi-thread shaper data creation - + Sample crash: - + 0 _hb_graphite2_shaper_face_data_destroy (data=0xffffffffffffffff) at ../../src/hb-graphite2.cc:129 1 0x00007ffff4271d7d in hb_graphite2_shaper_face_data_ensure ( face=) at ../../src/hb-shaper-list.hh:35 - 2 hb_shape_plan_plan (shaper_list=, - num_user_features=0, - user_features=0x0, shape_plan=0xf7b490) at - ../../src/hb-shaper-list.hh:35 + 2 hb_shape_plan_plan (shaper_list=, num_user_features=0, + user_features=0x0, shape_plan=0xf7b490) at ../../src/hb-shaper-list.hh:35 3 hb_shape_plan_create (face=, props=, - user_features=0x0, num_user_features=0, shaper_list=) + user_features=0x0, num_user_features=0, shaper_list=) at ../../src/hb-shape-plan.cc:108 4 0x00007ffff4272c93 in hb_shape_plan_create_cached (face=0x10cf2b0, - props=0x11980d8, user_features=0x0, num_user_features=, + props=0x11980d8, user_features=0x0, num_user_features=, shaper_list=0x0) at ../../src/hb-shape-plan.cc:283 src/hb-shaper-private.hh | 5 ++++- @@ -68801,15 +67410,13 @@ commit ecd454b3cd75050e0c95e1d2aa55744559338ec8 Author: Behdad Esfahbod Date: Tue Jan 8 18:09:46 2013 -0600 - [Indic] In old-spec shaping, don't move viramas around if seq ends - with one - + [Indic] In old-spec shaping, don't move viramas around if seq ends with one + For example: u0c9a u0ccd u0c9a u0ccd with Lohit. See: - + https://bugs.freedesktop.org/show_bug.cgi?id=59118 - src/hb-ot-shape-complex-indic.cc | - 7 ++++--- + src/hb-ot-shape-complex-indic.cc | 7 ++++--- .../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) @@ -68818,11 +67425,10 @@ Author: Behdad Esfahbod Date: Tue Jan 8 16:15:46 2013 -0600 [GPOS] If an Anchor offset is NULL, return false - - If in a MarkPos table, a base has no anchor for a particular mark - class, + + If in a MarkPos table, a base has no anchor for a particular mark class, return NULL such that the subsequent subtables get a chance at it. - + Test case: hb-shape ./EBGaramond12-Regular.otf ἂ --features="ss20","smcp" @@ -68844,10 +67450,10 @@ Author: Behdad Esfahbod Date: Mon Jan 7 16:46:37 2013 -0600 Rename hb_buffer_clear() to hb_buffer_clear_contents() - + The previous name was clashing with harfbuzz.old. There are systems that need to link both... - + Clash-free now again. src/hb-buffer.cc | 2 +- @@ -68861,7 +67467,7 @@ Author: Behdad Esfahbod Date: Fri Jan 4 01:25:27 2013 -0600 Remove a few unnecessary const's - + Apparently helps with MSVC compilation. src/hb-ot-layout-gsubgpos-private.hh | 8 ++++---- @@ -68882,7 +67488,7 @@ Author: Behdad Esfahbod Date: Thu Jan 3 00:07:16 2013 -0600 [OTLayout] Always collect default language system in collect_lookups - + Not sure if this is the most desired behavior. It's the most easily defined though. @@ -68894,7 +67500,7 @@ Author: Behdad Esfahbod Date: Thu Jan 3 00:04:40 2013 -0600 [OTLayout] Fix feature iteration in collect_lookups - + Previous logic was just wrong. src/hb-ot-layout.cc | 46 ++++++++++++++++++++++++++++++++-------------- @@ -68906,8 +67512,7 @@ Date: Thu Jan 3 00:00:23 2013 -0600 [OTLayout] Whitespace - src/hb-ot-layout.cc | 82 - ++++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-ot-layout.cc | 82 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 14 deletions(-) commit d37ae38047bee12639741af9bb083b857fab950d @@ -68924,7 +67529,7 @@ Author: Behdad Esfahbod Date: Wed Jan 2 23:36:37 2013 -0600 [OTLayout] Fix various introspection issues with ClassDef's - + As reported by Jonathan Kew. src/hb-ot-layout-gsubgpos-private.hh | 19 +++++++++++++++---- @@ -68935,11 +67540,10 @@ Author: Behdad Esfahbod Date: Wed Jan 2 23:22:54 2013 -0600 [tests] Finish test-set.c - + All passing now. - test/api/test-set.c | 373 - +++++++++++++++++++++------------------------------- + test/api/test-set.c | 373 +++++++++++++++++++++------------------------------- 1 file changed, 149 insertions(+), 224 deletions(-) commit 7b1b720a8da69b68b775ce17104a40d55401b7ef @@ -68947,7 +67551,7 @@ Author: Behdad Esfahbod Date: Wed Jan 2 23:02:59 2013 -0600 Protect sets in-error from further modication - + Fixes test-set.c src/hb-set-private.hh | 13 +++++++++++++ @@ -68958,7 +67562,7 @@ Author: Behdad Esfahbod Date: Wed Jan 2 22:50:36 2013 -0600 [tests] Start adding tests for hb-set.h - + Fails now. Fixing. TODO | 2 - @@ -68966,8 +67570,7 @@ Date: Wed Jan 2 22:50:36 2013 -0600 src/hb-set.cc | 9 +- src/hb-set.h | 3 + test/api/Makefile.am | 1 + - test/api/test-set.c | 312 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + test/api/test-set.c | 312 ++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 330 insertions(+), 3 deletions(-) commit b9d28f696c433b94c5ffbad8d7c87cf3acff4056 @@ -68994,8 +67597,7 @@ Date: Fri Dec 21 19:41:04 2012 -0500 [Indic] Insert dottedcircle after a lone Malayalam dot-reph - src/hb-ot-shape-complex-indic-machine.hh | 1617 - ++++++++++++++++-------------- + src/hb-ot-shape-complex-indic-machine.hh | 1617 ++++++++++++++++-------------- src/hb-ot-shape-complex-indic-machine.rl | 2 +- src/hb-ot-shape-complex-indic.cc | 13 +- 3 files changed, 881 insertions(+), 751 deletions(-) @@ -69065,15 +67667,15 @@ Author: Behdad Esfahbod Date: Fri Dec 21 16:01:52 2012 -0500 [util] Default to "text" output format in hb-shape - + If you say: - + hb-shape font.ttf text --output-file out.txt - + This was previously failing: - + Unknown output format `txt'; supported formats are: TEXT / JSON - + Now we simply fallback to TEXT if no explicit format was requested. util/hb-shape.cc | 11 ++++++++--- @@ -69085,14 +67687,13 @@ Author: Behdad Esfahbod Date: Fri Dec 21 15:48:32 2012 -0500 [Indic] Reorder Malayalam dot-reph to after base - + Test sequence is simple: U+0D4E,U+0D15. The doth-reph should be reordered to after the Ka. - + https://bugzilla.redhat.com/show_bug.cgi?id=799565 - src/hb-ot-shape-complex-indic.cc | 13 - ++++++++++--- + src/hb-ot-shape-complex-indic.cc | 13 ++++++++++--- .../shaper-indic/indic/script-malayalam/misc/MANIFEST | 1 + .../shaper-indic/indic/script-malayalam/misc/dot-reph.txt | 1 + 3 files changed, 12 insertions(+), 3 deletions(-) @@ -69112,8 +67713,7 @@ Date: Fri Dec 21 11:54:50 2012 -0500 Add Android.mk - Android.mk | 74 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Android.mk | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Makefile.am | 1 + 2 files changed, 75 insertions(+) @@ -69150,7 +67750,7 @@ Author: Behdad Esfahbod Date: Tue Dec 18 20:39:40 2012 -0500 Use C++ linker if ICU is disabled - + Bug 54948 - Undefined symbols: "operator delete(void*)" "operator new(unsigned long)" "___cxa_pure_virtual" @@ -69171,11 +67771,10 @@ Author: Behdad Esfahbod Date: Mon Dec 17 23:21:05 2012 -0500 [OTLayout] Fix 'size' featureParams implementation - + Looks at alternate location now. - src/hb-ot-layout-common-private.hh | 133 - ++++++++++++++++++++++++++++--------- + src/hb-ot-layout-common-private.hh | 133 ++++++++++++++++++++++++++++--------- src/hb-ot-layout.cc | 93 ++++---------------------- 2 files changed, 117 insertions(+), 109 deletions(-) @@ -69203,7 +67802,7 @@ Author: Behdad Esfahbod Date: Fri Dec 14 17:48:23 2012 -0500 [OTLayout] Wire tag and list start all the way to Feature - + To fix FeatureParam issues. No actual fix yet, just plumbing. src/hb-ot-layout-common-private.hh | 16 ++++++++++++---- @@ -69214,12 +67813,11 @@ Author: Behdad Esfahbod Date: Wed Dec 12 11:38:49 2012 -0500 [OTLayout] More 'size' feature sanity checking - + We still don't look for the old incorrect place of the featureParams. I'll wait till someone actually complains about it... - src/hb-ot-layout.cc | 99 - ++++++++++++++++++++++++++++++++++++++++++----------- + src/hb-ot-layout.cc | 99 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 79 insertions(+), 20 deletions(-) commit 0bae50a36f3022f9bb6b2c001c191eeaaa4ef954 @@ -69227,11 +67825,10 @@ Author: Behdad Esfahbod Date: Tue Dec 11 16:01:31 2012 -0500 [OTLayout] Add FeatureParamsCharacterVariants struct - + No API yet. - src/hb-ot-layout-common-private.hh | 52 - +++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout-common-private.hh | 52 +++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) commit bd61bc13ea8ff350ada5449b2cfeb612e66ecafa @@ -69267,11 +67864,10 @@ Author: Behdad Esfahbod Date: Tue Dec 11 14:17:01 2012 -0500 [OTLayout] Change hb_ot_layout_get_params() API - + And add implementation for StylisticSet UINameID. No API yet. - src/hb-ot-layout-common-private.hh | 85 - ++++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-common-private.hh | 85 ++++++++++++++++++++++++++++++++++++-- src/hb-ot-layout.cc | 28 +++++++++---- src/hb-ot-layout.h | 8 +++- src/test-size-params.cc | 9 +++- @@ -69281,9 +67877,8 @@ commit 5e7e52ddf2b0c4fbc9d933d24336100368d39a5c Author: Behdad Esfahbod Date: Mon Dec 10 17:44:22 2012 -0500 - [uniscribe] Enable Uniscribe backend only if it has - ScriptShapeOpenType() - + [uniscribe] Enable Uniscribe backend only if it has ScriptShapeOpenType() + Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP config.h.in | 6 ------ @@ -69304,7 +67899,7 @@ Author: John Ralls Date: Mon Dec 10 16:24:24 2012 -0500 [coretext] Better test for CoreText - + Instead of checking for ApplicationServices.h, which is present in all versions of MacOSX, check for CTFontRef, a CoreText basic type. @@ -69316,7 +67911,7 @@ Author: Behdad Esfahbod Date: Mon Dec 10 15:25:21 2012 -0500 Fix atomic ops on iOS - + Patch from John Ralls. src/hb-atomic-private.hh | 8 +++++--- @@ -69336,7 +67931,7 @@ Author: Behdad Esfahbod Date: Mon Dec 10 00:57:00 2012 -0500 Work around missing OSAtomicCompareAndSwapPtrBarrier() on OS X 10.4 - + Not sure how to handle iOS. src/hb-atomic-private.hh | 11 +++++++++++ @@ -69347,7 +67942,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 19:39:40 2012 -0500 [coretext] Fixed typo - + Oops. Thanks Khaled for catching this. src/hb-coretext.cc | 2 +- @@ -69358,7 +67953,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 18:47:36 2012 -0500 [coretext] Add hb_coretext_face_get_cg_font() - + Not sure if it's useful, but it was missing. src/hb-coretext.cc | 20 ++++++++++++++------ @@ -69370,7 +67965,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 18:47:09 2012 -0500 [coretext] Remove hack around GlyphID - + We not namespace our types, so the hack is not needed anymore. src/hb-coretext.cc | 4 ---- @@ -69381,7 +67976,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 18:45:47 2012 -0500 [graphite2] "Update to new API" - + Part of patch from Martin Hosken. I believe he knows what he's doing :). @@ -69392,9 +67987,8 @@ commit a5a4ab3846ef06769784e6469d76eace35e68805 Author: Behdad Esfahbod Date: Sun Dec 9 18:44:41 2012 -0500 - [graphite2] Add hb_graphite2_face_get_gr_face and - hb_graphite2_font_get_gr_font - + [graphite2] Add hb_graphite2_face_get_gr_face and hb_graphite2_font_get_gr_font + Based on patch from Martin Hosken. I believe it returns NULL if the font doesn't have graphite tables, but have not tested. @@ -69407,7 +68001,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 18:43:03 2012 -0500 [graphite2] Preload all tables - + Part of patch from Martin Hosken. src/hb-graphite2.cc | 2 +- @@ -69427,7 +68021,7 @@ Author: Behdad Esfahbod Date: Sun Dec 9 18:20:19 2012 -0500 Remove excess return - + Oops! src/hb-uniscribe.cc | 1 - @@ -69438,11 +68032,10 @@ Author: Behdad Esfahbod Date: Sat Dec 8 19:28:41 2012 -0500 Update OT language tags - + Patch from Roozbeh Pournader. - src/hb-ot-tag.cc | 212 - +++++++++++++++++++++++++++++-------------------------- + src/hb-ot-tag.cc | 212 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 110 insertions(+), 102 deletions(-) commit aba38173c6b464c2884b73ef6cd4577d4efcebbc @@ -69459,7 +68052,7 @@ Author: Behdad Esfahbod Date: Wed Dec 5 19:42:10 2012 -0500 Fix test with gold linker - + Bug 57633 - Symbol tests should ignore __bss_start, _edata, _end src/check-exported-symbols.sh | 2 +- @@ -69504,8 +68097,7 @@ Date: Wed Dec 5 18:46:04 2012 -0500 src/hb-ot-shape-complex-thai.cc | 2 +- src/hb-ot-shape-fallback.cc | 4 ++-- src/hb-private.hh | 8 ++++---- - src/hb-ucdn.cc | 27 - +++++++++++++++------------ + src/hb-ucdn.cc | 27 +++++++++++++++------------ src/hb-utf-private.hh | 4 ++-- 16 files changed, 61 insertions(+), 60 deletions(-) @@ -69524,7 +68116,7 @@ Author: Behdad Esfahbod Date: Wed Dec 5 16:49:47 2012 -0500 Rename VOID and void_t to have HarfBuzz prefix - + Fixes build on Windows. Ouch! src/hb-ot-layout-gsubgpos-private.hh | 22 +++++++++++----------- @@ -69545,14 +68137,12 @@ Author: Behdad Esfahbod Date: Tue Dec 4 17:08:41 2012 -0500 Minor - - Use pointers instead of references, in preparation for upcoming - change. + + Use pointers instead of references, in preparation for upcoming change. src/hb-ot-layout-gpos-table.hh | 28 +++++++++++++------------- src/hb-ot-layout-gsub-table.hh | 30 ++++++++++++++-------------- - src/hb-ot-layout-gsubgpos-private.hh | 38 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 38 ++++++++++++++++++------------------ 3 files changed, 48 insertions(+), 48 deletions(-) commit 1bcfa06d1173f219809542a7380ce77f1c907bec @@ -69589,7 +68179,7 @@ Author: Behdad Esfahbod Date: Tue Dec 4 00:35:54 2012 +0200 Move object mutext into the user-data array - + We are not using it for anything lse it seems. src/hb-common.cc | 12 ++---------- @@ -69610,7 +68200,7 @@ Author: Behdad Esfahbod Date: Sun Dec 2 19:14:29 2012 +0200 "Update" to Unicode 6.2.0 tables - + Nothing changed... src/hb-ot-shape-complex-arabic-table.hh | 4 ++-- @@ -69643,8 +68233,7 @@ Date: Fri Nov 30 11:46:35 2012 +0200 test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | 1 + .../in-tree/shaper-arabic/script-arabic/language-persian/MANIFEST | 1 + - .../shaper-arabic/script-arabic/language-persian/mehran.txt | - 8 ++++++++ + .../shaper-arabic/script-arabic/language-persian/mehran.txt | 8 ++++++++ 3 files changed, 10 insertions(+) commit 0f3f5299047e3cfc4d1202fee83d484b871279ad @@ -69652,13 +68241,12 @@ Author: Behdad Esfahbod Date: Fri Nov 30 09:06:59 2012 +0200 Add test-size-params - + Eventually this will become part of a yet-to-be-written hb-ot cmdline tool. src/Makefile.am | 10 ++++- - src/test-size-params.cc | 98 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/test-size-params.cc | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 1 deletion(-) commit 8465a05a89742295d4b009a9b4442eb0a899fd80 @@ -69666,7 +68254,7 @@ Author: Behdad Esfahbod Date: Fri Nov 30 08:46:43 2012 +0200 Fix hb_buffer_guess_segment_properties() for empty buffer - + Was causing assertion failure in shape_plan(). src/hb-buffer.cc | 4 ++-- @@ -69697,7 +68285,7 @@ Author: Behdad Esfahbod Date: Fri Nov 30 08:14:20 2012 +0200 [OTLayout] Look for any 'size' feature, not only in DFLT script - + The old code doesn't work with all fonts, as Khaled has reported. src/hb-ot-layout.cc | 14 +++++--------- @@ -69707,8 +68295,7 @@ commit e9ad71dee845407da74ccacfbb53ad7ededf07fd Author: Behdad Esfahbod Date: Fri Nov 30 08:10:26 2012 +0200 - [OTLayout] Rename hb_ot_layout_position_get_size() to - hb_ot_layout_get_size_params() + [OTLayout] Rename hb_ot_layout_position_get_size() to hb_ot_layout_get_size_params() src/hb-ot-layout.cc | 4 ++-- src/hb-ot-layout.h | 7 ++++--- @@ -69719,11 +68306,10 @@ Author: Behdad Esfahbod Date: Fri Nov 30 08:07:06 2012 +0200 [OTLayout] Return correct value from recursion - - Commit 4c4e8f0e754b79ac6190d21878eaaf0b790c7579 broke contextual - lookups + + Commit 4c4e8f0e754b79ac6190d21878eaaf0b790c7579 broke contextual lookups by making the recurse() function always return false. - + Reported by Khaled. Test case: لا in Amiri. src/hb-ot-layout-gsubgpos-private.hh | 9 ++++----- @@ -69735,8 +68321,7 @@ Date: Mon Nov 26 14:02:31 2012 +0200 [OTLayout] Implement 'size' feature - src/hb-ot-layout-common-private.hh | 36 - ++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-common-private.hh | 36 ++++++++++++++++++++++++++++++++++-- src/hb-ot-layout.cc | 31 +++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 5 +++++ 3 files changed, 70 insertions(+), 2 deletions(-) @@ -69770,11 +68355,10 @@ Author: Behdad Esfahbod Date: Sat Nov 24 02:31:02 2012 -0500 [OTLayout] Implement hb_ot_layout_collect_lookups() - + Untested. - src/hb-ot-layout.cc | 97 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 4 +-- 2 files changed, 98 insertions(+), 3 deletions(-) @@ -69782,8 +68366,7 @@ commit 1ea375da446bf68f705a70ce4a480db9fb9d13f3 Author: Behdad Esfahbod Date: Sat Nov 24 02:05:52 2012 -0500 - [OTLayout] Only collect output glyphs during recursion in - collect_glyphs() + [OTLayout] Only collect output glyphs during recursion in collect_glyphs() src/hb-ot-layout-gsubgpos-private.hh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) @@ -69793,11 +68376,10 @@ Author: Behdad Esfahbod Date: Sat Nov 24 01:55:34 2012 -0500 [OTLayout] Implement ChainContext collect_glyphs() - + All of collect_glyphs() complete and untested now. - src/hb-ot-layout-gsubgpos-private.hh | 103 - ++++++++++++++++++++++++++++++++--- + src/hb-ot-layout-gsubgpos-private.hh | 103 ++++++++++++++++++++++++++++++++--- 1 file changed, 96 insertions(+), 7 deletions(-) commit cdd756b9f40665a201f5c4e65a87b9a27c390601 @@ -69806,8 +68388,7 @@ Date: Sat Nov 24 01:38:41 2012 -0500 [OTLayout] Implement GPOS collect_glyphs() - src/hb-ot-layout-gpos-table.hh | 95 - +++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gpos-table.hh | 95 +++++++++++++++++++++++++++++++++++++++++- src/hb-ot-layout.cc | 9 ++-- 2 files changed, 99 insertions(+), 5 deletions(-) @@ -69837,8 +68418,7 @@ Date: Fri Nov 23 18:54:59 2012 -0500 [OTLayout] Implement Context::collect_glyphs() - src/hb-ot-layout-gsubgpos-private.hh | 122 - +++++++++++++++++++++++++++++++---- + src/hb-ot-layout-gsubgpos-private.hh | 122 +++++++++++++++++++++++++++++++---- 1 file changed, 111 insertions(+), 11 deletions(-) commit 26514d51b6669f092d9ccb7523443a5ece74169a @@ -69849,8 +68429,7 @@ Date: Fri Nov 23 18:13:48 2012 -0500 src/hb-ot-layout-gpos-table.hh | 6 ++--- src/hb-ot-layout-gsub-table.hh | 32 +++++++++++++++------- - src/hb-ot-layout-gsubgpos-private.hh | 51 - ++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-gsubgpos-private.hh | 51 ++++++++++++++++++++++++++++++++---- 3 files changed, 71 insertions(+), 18 deletions(-) commit c6fb843f2a1c26322c6f4c85d1589f01a9e7a2ef @@ -69899,8 +68478,7 @@ Date: Fri Nov 23 17:23:41 2012 -0500 [OTLayout] Add process() tracing - src/hb-ot-layout-gpos-table.hh | 60 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-table.hh | 60 ++++++++++++++++++++---------------- src/hb-ot-layout-gsub-table.hh | 51 +++++++++++++++++------------- src/hb-ot-layout-gsubgpos-private.hh | 17 +++++----- 3 files changed, 72 insertions(+), 56 deletions(-) @@ -69963,8 +68541,7 @@ Date: Fri Nov 23 16:40:04 2012 -0500 [OTLayout] Start adding process() tracing - src/hb-ot-layout-gsubgpos-private.hh | 44 - +++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsubgpos-private.hh | 44 +++++++++++++++++++++++++++--------- src/hb-private.hh | 6 +++-- 2 files changed, 37 insertions(+), 13 deletions(-) @@ -69991,8 +68568,7 @@ Date: Fri Nov 23 15:32:14 2012 -0500 src/hb-ot-layout-common-private.hh | 36 +++++------ src/hb-ot-layout-gdef-table.hh | 20 +++--- src/hb-ot-layout-gpos-table.hh | 80 +++++++++++------------ - src/hb-ot-layout-gsub-table.hh | 122 - +++++++++++++++++------------------ + src/hb-ot-layout-gsub-table.hh | 122 +++++++++++++++++------------------ src/hb-ot-layout-gsubgpos-private.hh | 100 ++++++++++++++-------------- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-name-table.hh | 6 +- @@ -70004,10 +68580,8 @@ Date: Fri Nov 23 15:06:59 2012 -0500 [OTLayout] Start unbreaking tracing - src/hb-open-type-private.hh | 37 - +++++++++++++++++++++--------------- - src/hb-ot-layout-gsubgpos-private.hh | 37 - +++++++++++++++++++++++++----------- + src/hb-open-type-private.hh | 37 +++++++++++++++++++++--------------- + src/hb-ot-layout-gsubgpos-private.hh | 37 +++++++++++++++++++++++++----------- src/hb-private.hh | 30 +++++++++++++++++++---------- 3 files changed, 68 insertions(+), 36 deletions(-) @@ -70050,8 +68624,7 @@ Date: Thu Nov 22 16:47:53 2012 -0500 Move code around - src/hb-ot-layout-gsubgpos-private.hh | 44 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) commit ec35a72a44301934b8f123ab2833f59d8c875a09 @@ -70060,10 +68633,8 @@ Date: Thu Nov 22 16:05:59 2012 -0500 [OTLayout] Port apply() operator to process() template - src/hb-ot-layout-gpos-table.hh | 117 - ++++------------------------------- - src/hb-ot-layout-gsub-table.hh | 108 - +++----------------------------- + src/hb-ot-layout-gpos-table.hh | 117 ++++------------------------------- + src/hb-ot-layout-gsub-table.hh | 108 +++----------------------------- src/hb-ot-layout-gsubgpos-private.hh | 99 +++++++++++++---------------- src/hb-ot-layout.cc | 2 +- 4 files changed, 65 insertions(+), 261 deletions(-) @@ -70072,13 +68643,10 @@ commit 2005fa5340fc528c32dc2af945ad2431964a47d2 Author: Behdad Esfahbod Date: Thu Nov 22 14:38:10 2012 -0500 - [OTLayout] Port would_apply() and get_coverage() to process() - templates + [OTLayout] Port would_apply() and get_coverage() to process() templates - src/hb-ot-layout-gpos-table.hh | 175 - +++++++++++-------------------- - src/hb-ot-layout-gsub-table.hh | 198 - ++++++++++++----------------------- + src/hb-ot-layout-gpos-table.hh | 175 +++++++++++-------------------- + src/hb-ot-layout-gsub-table.hh | 198 ++++++++++++----------------------- src/hb-ot-layout-gsubgpos-private.hh | 76 +++++--------- 3 files changed, 156 insertions(+), 293 deletions(-) @@ -70088,8 +68656,7 @@ Date: Wed Nov 21 23:33:13 2012 -0500 [OTLayout] Port closure() to process() template - src/hb-ot-layout-gsub-table.hh | 297 - ++++++++--------------------------- + src/hb-ot-layout-gsub-table.hh | 297 ++++++++--------------------------- src/hb-ot-layout-gsubgpos-private.hh | 209 ++++++++++++------------ src/hb-ot-layout.cc | 10 +- 3 files changed, 171 insertions(+), 345 deletions(-) @@ -70119,8 +68686,7 @@ Date: Wed Nov 21 01:20:56 2012 -0500 0.9.7 - NEWS | 86 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + NEWS | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 2 files changed, 87 insertions(+), 1 deletion(-) @@ -70139,7 +68705,7 @@ Author: Behdad Esfahbod Date: Wed Nov 21 01:04:15 2012 -0500 [Indic] One more try at unbreaking Khmer fonts - + See comments and discussion on the list. src/hb-ot-shape-complex-private.hh | 16 ++++++++++------ @@ -70150,11 +68716,10 @@ Author: Behdad Esfahbod Date: Fri Nov 16 19:07:06 2012 -0800 Start implementing collect_glyphs() operation - + Not functional yet. - src/hb-ot-layout-gsub-table.hh | 185 - +++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-table.hh | 185 +++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gsubgpos-private.hh | 57 +++++++++++ src/hb-ot-layout.cc | 29 ++++++ src/hb-ot-layout.h | 4 +- @@ -70181,8 +68746,7 @@ Date: Fri Nov 16 18:49:54 2012 -0800 src/hb-ot-layout-gsubgpos-private.hh | 2 +- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-name-table.hh | 2 +- - src/hb-ot-shape-complex-default.cc | 109 - ++++++++++++++++++----------------- + src/hb-ot-shape-complex-default.cc | 109 ++++++++++++++++++----------------- src/hb-tt-font.cc | 2 +- 17 files changed, 87 insertions(+), 92 deletions(-) @@ -70228,7 +68792,7 @@ Author: Behdad Esfahbod Date: Fri Nov 16 13:23:37 2012 -0800 Implement hb_shape_plan_get_shaper() - + Untested. src/hb-shape-plan-private.hh | 1 + @@ -70241,11 +68805,10 @@ Author: Behdad Esfahbod Date: Fri Nov 16 13:12:35 2012 -0800 [Indic] Another try to unbreak Sinhala split matras - + Just read the comments... - src/hb-ot-shape-complex-indic.cc | 43 - ++++++++++++++++++---- + src/hb-ot-shape-complex-indic.cc | 43 ++++++++++++++++++---- .../indic/script-sinhala/misc/MANIFEST | 1 + .../indic/script-sinhala/misc/split-matras.txt | 4 ++ 3 files changed, 40 insertions(+), 8 deletions(-) @@ -70265,15 +68828,14 @@ Author: Behdad Esfahbod Date: Fri Nov 16 12:39:23 2012 -0800 Plumbing to get shape plan and font into complex decompose function - + So we can handle Sinhala split matras smartly... Coming soon. src/hb-ot-shape-complex-default.cc | 6 ++-- src/hb-ot-shape-complex-indic.cc | 14 ++++----- src/hb-ot-shape-complex-private.hh | 16 +++++------ src/hb-ot-shape-normalize-private.hh | 22 ++++++++++++-- - src/hb-ot-shape-normalize.cc | 56 - ++++++++++++++---------------------- + src/hb-ot-shape-normalize.cc | 56 ++++++++++++++---------------------- src/hb-ot-shape.cc | 2 +- 6 files changed, 61 insertions(+), 55 deletions(-) @@ -70281,8 +68843,7 @@ commit 3f82f8ff07a9d16a7c047129658c1bbedfdb5436 Author: Behdad Esfahbod Date: Thu Nov 15 18:45:31 2012 -0800 - Rename hb_buffer_guess_properties() to - hb_buffer_guess_segment_properties() + Rename hb_buffer_guess_properties() to hb_buffer_guess_segment_properties() src/hb-buffer-private.hh | 2 +- src/hb-buffer.cc | 6 +++--- @@ -70297,19 +68858,19 @@ Author: Behdad Esfahbod Date: Thu Nov 15 18:39:46 2012 -0800 Bunch of independent changes (ouch) - + API additions: - + hb_segment_properties_t HB_SEGMENT_PROPERTIES_DEFAULT hb_segment_properties_equal() hb_segment_properties_hash() - + hb_buffer_set_segment_properties() hb_buffer_get_segment_properties() - + hb_ot_layout_glyph_class_t - + hb_shape_plan_t hb_shape_plan_create() hb_shape_plan_create_cached() @@ -70319,18 +68880,18 @@ Date: Thu Nov 15 18:39:46 2012 -0800 hb_shape_plan_set_user_data() hb_shape_plan_get_user_data() hb_shape_plan_execute() - + hb_ot_shape_plan_collect_lookups() - + API changes: - + Rename hb_ot_layout_feature_get_lookup_indexes() to hb_ot_layout_feature_get_lookups(). - + New header file: - + hb-shape-plan.h - + And a bunch of prototyped but not implemented stuff. Coming soon. (Tests fail because of the prototypes right now.) @@ -70340,8 +68901,7 @@ Date: Thu Nov 15 18:39:46 2012 -0800 src/hb-buffer.h | 47 +++++++++++++++++-- src/hb-ot-layout-private.hh | 8 ---- src/hb-ot-layout.cc | 12 ++--- - src/hb-ot-layout.h | 108 - ++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout.h | 108 ++++++++++++++++++++++++++++++++++++++++--- src/hb-ot-map-private.hh | 2 +- src/hb-ot-map.cc | 15 +++--- src/hb-ot-shape-private.hh | 11 ++++- @@ -70383,8 +68943,7 @@ Date: Thu Nov 15 16:15:42 2012 -0800 src/hb-ot-shape.cc | 2 +- src/hb-set-private.hh | 35 ++++++++++++++++-- - src/hb-set.cc | 86 - ++++++++++++++++++++++++++++++--------------- + src/hb-set.cc | 86 ++++++++++++++++++++++++++++++--------------- src/hb-set.h | 55 +++++++++++++++++++---------- util/hb-ot-shape-closure.cc | 2 +- 5 files changed, 128 insertions(+), 52 deletions(-) @@ -70404,7 +68963,7 @@ Author: Behdad Esfahbod Date: Thu Nov 15 15:38:08 2012 -0800 [Thai] Remove U+0E2C from "AC" consonants - + WinXP doesn't include it. src/hb-ot-shape-complex-thai.cc | 2 +- @@ -70414,9 +68973,8 @@ commit 362a990b2246f5448ecb9d600761f710aea7d42d Author: Behdad Esfahbod Date: Thu Nov 15 14:57:31 2012 -0800 - Rename hb_ot_layout_would_substitute_lookup() and - hb_ot_layout_substitute_closure_lookup() - + Rename hb_ot_layout_would_substitute_lookup() and hb_ot_layout_substitute_closure_lookup() + To match upcoming API. src/hb-ot-layout-private.hh | 2 +- @@ -70432,7 +68990,7 @@ Author: Behdad Esfahbod Date: Thu Nov 15 13:29:51 2012 -0800 [util] Make hb-shape err if output-format is not understood - + And list supported formats. util/hb-shape.cc | 6 ++++++ @@ -70462,15 +69020,14 @@ Author: Behdad Esfahbod Date: Thu Nov 15 12:14:09 2012 -0800 Add buffer serialization / deserialization API - + Two output formats for now: TEXT, and JSON. For example: - + hb-shape --output-format=json - + Deserialization API is added, but not implemented yet. - src/hb-buffer.cc | 222 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 42 +++++++++++ util/hb-shape.cc | 21 +++++- util/options.cc | 57 +++++--------- @@ -70482,7 +69039,7 @@ Author: Behdad Esfahbod Date: Thu Nov 15 10:47:14 2012 -0800 Avoid C++ undefined behavior - + https://bugzilla.mozilla.org/show_bug.cgi?id=810823 src/hb-open-type-private.hh | 4 ++-- @@ -70493,7 +69050,7 @@ Author: Behdad Esfahbod Date: Thu Nov 15 10:36:43 2012 -0800 Fix undefined behavior in Indic dottedcircle - + Chromium Issue 158998: Conditional jump in harfbuzz-ng http://code.google.com/p/chromium/issues/detail?id=158998 @@ -70505,16 +69062,15 @@ Author: Behdad Esfahbod Date: Wed Nov 14 17:25:03 2012 -0800 [Thai] Implement PUA-based fallback shaping - + As explained here: - + http://linux.thai.net/~thep/th-otf/shaping.html - + Our output now matches Uniscribe for old fonts (eg. XP Tahoma) with no Thai GSUB table. - src/hb-ot-shape-complex-thai.cc | 217 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-thai.cc | 217 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) commit 851784f8372004e0a40b698c0cdc2d7db8629aa2 @@ -70537,8 +69093,7 @@ Date: Wed Nov 14 15:55:17 2012 -0800 Add test cases for Thai PUA shaping .../texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + - .../in-tree/shaper-thai/script-thai/misc/pua-shaping.txt | - 11 +++++++++++ + .../in-tree/shaper-thai/script-thai/misc/pua-shaping.txt | 11 +++++++++++ 2 files changed, 12 insertions(+) commit 43f04a7456419153cb03e610a825056a47824780 @@ -70548,10 +69103,8 @@ Date: Wed Nov 14 15:51:54 2012 -0800 Move Thai shaper into a separate file src/Makefile.am | 3 +- - ...plex-misc.cc => hb-ot-shape-complex-default.cc} | 114 - ----------------- - src/hb-ot-shape-complex-thai.cc | 141 - +++++++++++++++++++++ + ...plex-misc.cc => hb-ot-shape-complex-default.cc} | 114 ----------------- + src/hb-ot-shape-complex-thai.cc | 141 +++++++++++++++++++++ 3 files changed, 143 insertions(+), 115 deletions(-) commit ba82325b7a6311b787ae47f41a56964e2f2cba9f @@ -70577,7 +69130,7 @@ Author: Behdad Esfahbod Date: Wed Nov 14 15:05:19 2012 -0800 Don't route Kharoshthi through the Indic shaper - + It's a simple, right-to-left, script. src/hb-ot-shape-complex-private.hh | 2 +- @@ -70597,7 +69150,7 @@ Author: Behdad Esfahbod Date: Wed Nov 14 14:09:46 2012 -0800 Reposition Lao marks - + Lao marks are center-aligned, unlike Thai ones. src/hb-ot-shape-fallback.cc | 4 ++-- @@ -70621,7 +69174,7 @@ Author: Behdad Esfahbod Date: Wed Nov 14 13:38:16 2012 -0800 [Indic] If Khmer fonts have a 'liga' feature, use generic shaper - + Seems to produce more coherent results than trying the Indic shaper on them. I'm looking at you, Kh-* fonts... @@ -70642,16 +69195,13 @@ Author: Behdad Esfahbod Date: Wed Nov 14 11:37:04 2012 -0800 [Indic] Don't move virama with left matra - - This is important for the Sinhala U+0DDA split matra since it - decomposes - to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the - virama. + + This is important for the Sinhala U+0DDA split matra since it decomposes + to U+0DD9,U+0DCA where U+0DD9 is a left matra and U+0DCA is the virama. We don't want to move the virama with the left matra. TEST: U+0D9A,U+0DDA - - Note that we were already doing this in the Uniscribe bug - compatibility + + Note that we were already doing this in the Uniscribe bug compatibility mode. We now do it all the time. src/hb-ot-shape-complex-indic.cc | 8 ++++++-- @@ -70663,8 +69213,7 @@ Date: Wed Nov 14 10:56:02 2012 -0800 Add Sinhala test case for split matra U+0DDA - .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit d04b12853167d756a8cccaf4154f0fd894bce6de @@ -70690,7 +69239,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 16:26:32 2012 -0800 API change: Remove "mask" from hb_buffer_add() - + I don't expect anybody using hb_buffer_add(), so this shouldn't break anyone's code. @@ -70723,7 +69272,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 15:12:24 2012 -0800 [util] Add --text-before and --text-after to hb-shape / hb-view - + Use with Arabic, for example, to see the effect on joining. util/hb-ot-shape-closure.cc | 4 +++- @@ -70738,7 +69287,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 15:12:06 2012 -0800 Fix UTF-8 backward iteration - + Ouch! src/hb-utf-private.hh | 4 ++-- @@ -70749,7 +69298,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 15:11:51 2012 -0800 [Arabic] Fix post-context handling - + Ouch! src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -70760,31 +69309,29 @@ Author: Behdad Esfahbod Date: Tue Nov 13 14:42:35 2012 -0800 Add buffer flags - + New API: - + hb_buffer_flags_t - + HB_BUFFER_FLAGS_DEFAULT HB_BUFFER_FLAG_BOT HB_BUFFER_FLAG_EOT HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES - + hb_buffer_set_flags() hb_buffer_get_flags() - + We use the BOT flag to decide whether to insert dottedcircle if the first char in the buffer is a combining mark. - - The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters - like + + The PRESERVE_DEFAULT_IGNORABLES flag prevents removal of characters like ZWNJ/ZWJ/... src/hb-buffer-private.hh | 1 + src/hb-buffer.cc | 18 ++++++++++++++++++ src/hb-buffer.h | 13 +++++++++++++ - src/hb-ot-shape-complex-arabic.cc | 40 - ++++++++++++++++++++------------------- + src/hb-ot-shape-complex-arabic.cc | 40 ++++++++++++++++++++------------------- src/hb-ot-shape.cc | 9 ++++++--- test/api/test-buffer.c | 9 +++++++++ 6 files changed, 68 insertions(+), 22 deletions(-) @@ -70794,7 +69341,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 14:42:22 2012 -0800 Minor fix - + Ouch src/hb-shape.cc | 2 +- @@ -70814,7 +69361,7 @@ Author: Behdad Esfahbod Date: Tue Nov 13 13:57:52 2012 -0800 Add hb_buffer_clear() - + Which is like _reset(), but does NOT clear unicode-funcs. src/hb-buffer-private.hh | 1 + @@ -70837,14 +69384,12 @@ commit 0736915b8ed789a209205fec762997af3a8af89c Author: Behdad Esfahbod Date: Tue Nov 13 12:35:35 2012 -0800 - [Indic] Decompose Sinhala split matras the way old HarfBuzz / - Pango did - + [Indic] Decompose Sinhala split matras the way old HarfBuzz / Pango did + Had to do some refactoring to make this happen... - + Under uniscribe bug compatibility mode, we still plit them - Uniscrie-style, but Jonathan and I convinced ourselves that there - is no + Uniscrie-style, but Jonathan and I convinced ourselves that there is no harm doing this the Unicode way. This change makes that happen, and unbreaks free Sinhala fonts. @@ -70853,8 +69398,7 @@ Date: Tue Nov 13 12:35:35 2012 -0800 src/hb-ot-shape-complex-misc.cc | 133 ++++++++++++++++- src/hb-ot-shape-complex-private.hh | 28 +++- src/hb-ot-shape-normalize-private.hh | 6 +- - src/hb-ot-shape-normalize.cc | 278 - ++++++++++------------------------- + src/hb-ot-shape-normalize.cc | 278 ++++++++++------------------------- src/hb-ot-shape.cc | 5 +- 7 files changed, 312 insertions(+), 214 deletions(-) @@ -70863,12 +69407,11 @@ Author: Behdad Esfahbod Date: Tue Nov 13 11:07:20 2012 -0800 [hb-shape] Adjust postioning output format - + 1. If there is any offset (x or y), print out both x and y offsets. - + 2. Always print out the advance in the major direction of the buffer. - Ie. even for zero-advance glyphs, print a "+0". This is more - intuitive. + Ie. even for zero-advance glyphs, print a "+0". This is more intuitive. util/options.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) @@ -70879,8 +69422,7 @@ Date: Mon Nov 12 18:42:18 2012 -0800 [Indic] Update auto-generated Indic machine to reflect previous commit - src/hb-ot-shape-complex-indic-machine.hh | 1126 - +++++++++++++++--------------- + src/hb-ot-shape-complex-indic-machine.hh | 1126 +++++++++++++++--------------- 1 file changed, 567 insertions(+), 559 deletions(-) commit 9cac1338c4bc3e9034cbfa104291ed0329debefe @@ -70888,7 +69430,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 18:41:22 2012 -0800 [Indic] Allow Consonant_Medial's after Consonant's - + Mostly affects Myanmar, but also Tai Tham, Javanese, and Cham. The latter three are untested (no fonts!). @@ -70919,7 +69461,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 18:36:10 2012 -0800 [Indic] Route "new" Myanmar tag through the Indic shaper - + Windows 8 adds a Myanmar shaper using the 'mym2' tag. Route that through the Indic shaper. It's still very broken, but at least this does NOT break old-style Myanmar shaping using the generic shaper. @@ -70932,10 +69474,10 @@ Author: Behdad Esfahbod Date: Mon Nov 12 18:27:42 2012 -0800 Choose shaper based on chosen OT script tag - + For Arabic and Indic shapers, if the font doesn't have a script system for the script, use default shaper. - + Make an exception for Arabic script since we have fallback logic for that one. @@ -70960,8 +69502,7 @@ Date: Mon Nov 12 17:57:24 2012 -0800 Refactoring ot-map building to make chosen script available earlier src/hb-ot-map-private.hh | 13 ++++++++---- - src/hb-ot-map.cc | 51 - ++++++++++++++++++++++++++-------------------- + src/hb-ot-map.cc | 51 ++++++++++++++++++++++++++-------------------- src/hb-ot-shape-private.hh | 4 ++-- 3 files changed, 40 insertions(+), 28 deletions(-) @@ -70979,9 +69520,8 @@ Author: Behdad Esfahbod Date: Mon Nov 12 17:27:51 2012 -0800 Add "new" Myanmar OT Script tag - - Windows 8 added support for Myanmar shaping using the "mym2" - script tag, + + Windows 8 added support for Myanmar shaping using the "mym2" script tag, even though Windows never supported the old "mymr" tag. src/hb-ot-tag.cc | 2 ++ @@ -70995,8 +69535,7 @@ Date: Mon Nov 12 16:54:03 2012 -0800 Add Myanmar tests from UTN#11 .../south-east-asian/script-myanmar/misc/MANIFEST | 1 + - .../south-east-asian/script-myanmar/misc/utn11.txt | 34 - ++++++++++++++++++++++ + .../south-east-asian/script-myanmar/misc/utn11.txt | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) commit e9334ce97bb7f1de87fb211bb5a8168033629b14 @@ -71013,7 +69552,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 14:48:33 2012 -0800 [Indic] Make more room in the table - + To be used in upcoming commits. src/hb-ot-shape-complex-indic-private.hh | 10 +++++----- @@ -71033,7 +69572,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 14:09:40 2012 -0800 [Indic] Port 'pref' logic to look into font tables - + ...instead of using a hardcoded list of Ra characters. src/hb-ot-shape-complex-indic.cc | 7 ++++--- @@ -71044,11 +69583,10 @@ Author: Behdad Esfahbod Date: Mon Nov 12 14:02:02 2012 -0800 [Indic] Port reph handling logic to look into font features - + ...instead of using a hardcoded list of Ra characters. - src/hb-ot-shape-complex-indic.cc | 48 - +++++++++++++++++++++++++--------------- + src/hb-ot-shape-complex-indic.cc | 48 +++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 18 deletions(-) commit 43149afbc0007ea075a7017c0e56056c3c0f3614 @@ -71056,7 +69594,7 @@ Author: Behdad Esfahbod Date: Mon Nov 12 13:34:17 2012 -0800 Route MEETEI_MAYEK through the Indic shaper - + Since it has a couple of left-"matras". src/hb-ot-shape-complex-private.hh | 5 ++--- @@ -71076,12 +69614,12 @@ Author: Behdad Esfahbod Date: Mon Nov 12 11:16:57 2012 -0800 Work around older compilers - + As reported on the list: - + I am seeing a similar problem building harfbuzz 0.9.5 with Apple gcc 4.0.1 on OS X 10.5 Leopard: - + hb-ot-layout-common-private.hh:406: error: 'struct OT::CoverageFormat1::Iter' is private hb-ot-layout-common-private.hh:646: error: within this context @@ -71089,7 +69627,7 @@ Date: Mon Nov 12 11:16:57 2012 -0800 OT::CoverageFormat2::Iter' is private hb-ot-layout-common-private.hh:647: error: within this context make[4]: *** [libharfbuzz_la-hb-ot-layout.lo] Error 1 - + Also reported as happening with MSVC 2005. src/hb-ot-layout-common-private.hh | 6 ++++++ @@ -71100,12 +69638,12 @@ Author: Behdad Esfahbod Date: Mon Nov 12 11:02:56 2012 -0800 [Indic] Don't apply 'liga' - + Uniscribe doesn't. And some fonts abuse this feature to get Indic shaping working in non-complex applications like Adobe's apps. - + No change in numbers: - + BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%) DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%) GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%) @@ -71113,8 +69651,7 @@ Date: Mon Nov 12 11:02:56 2012 -0800 KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%) KHMER: 299074 out of 299124 tests passed. 50 failed (0.0167155%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed - (0.0308108%) + MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) @@ -71156,7 +69693,7 @@ Author: Behdad Esfahbod Date: Mon Nov 5 15:20:10 2012 -0800 Adjust Mongolian shaping - + For U+1880..U+1886 Uniscribe thinks they are non-joining. For U+1887 Uniscribe thinks it's joining, but looks wrong to me. For now, match Uniscribe. @@ -71169,13 +69706,12 @@ Author: Behdad Esfahbod Date: Mon Nov 5 15:18:49 2012 -0800 Add test for non-joining Mongolian letters - + For U+1880..U+1886 Uniscribe thinks they are non-joining. For U+1887 Uniscribe thinks it's joining, but looks wrong to me. .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 + - .../in-tree/shaper-arabic/script-mongolian/misc/non-joining.txt | - 8 ++++++++ + .../in-tree/shaper-arabic/script-mongolian/misc/non-joining.txt | 8 ++++++++ 2 files changed, 9 insertions(+) commit c26a52fbe62e5ba4d0e1e2ba13bfb6ceb3f773dc @@ -71205,8 +69741,7 @@ Date: Fri Nov 2 13:53:18 2012 -0700 test/shaping/texts/in-tree/shaper-default/MANIFEST | 2 ++ .../texts/in-tree/shaper-default/script-tifinagh/MANIFEST | 1 + .../in-tree/shaper-default/script-tifinagh/misc/MANIFEST | 1 + - .../in-tree/shaper-default/script-tifinagh/misc/misc.txt | - 11 +++++++++++ + .../in-tree/shaper-default/script-tifinagh/misc/misc.txt | 11 +++++++++++ 4 files changed, 15 insertions(+) commit 10a33296e674ee84b9ed2df25cf373de7d020b8d @@ -71228,8 +69763,7 @@ Date: Fri Nov 2 10:21:26 2012 -0700 .../in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 3 +++ .../texts/in-tree/shaper-arabic/script-phags-pa/MANIFEST | 1 + .../in-tree/shaper-arabic/script-phags-pa/misc/MANIFEST | 1 + - .../in-tree/shaper-arabic/script-phags-pa/misc/misc.txt | 14 - ++++++++++++++ + .../in-tree/shaper-arabic/script-phags-pa/misc/misc.txt | 14 ++++++++++++++ 5 files changed, 20 insertions(+) commit 3ba7bc14ea652d27639f34109e51a497a678a54a @@ -71237,7 +69771,7 @@ Author: Behdad Esfahbod Date: Thu Nov 1 20:05:04 2012 -0700 Implement 'Phags-pa shaping - + Through the Arabic shaper. It's similar to Mongolian. src/hb-ot-shape-complex-arabic.cc | 15 ++++++++++++--- @@ -71258,14 +69792,14 @@ Author: Behdad Esfahbod Date: Wed Oct 31 13:45:30 2012 -0700 Don't clear buffer pre-context if no new context is being provided - + Patch from Jonathan Kew. - + Part of fixing: - + Mozilla Bug 801410 - avoid inserting dotted-circle for run-initial Unicode combining characters in "simple" scripts such as Latin - + https://bugzilla.mozilla.org/show_bug.cgi?id=801410 src/hb-buffer.cc | 9 ++++++++- @@ -71276,7 +69810,7 @@ Author: Behdad Esfahbod Date: Mon Oct 29 22:02:45 2012 -0700 [OT] Fix ReverseChainingSubst - + We should make it clear that we don't want output buffer in this case, otherwise buffer->backtrack_len() would be wrong. @@ -71299,7 +69833,7 @@ Author: Behdad Esfahbod Date: Mon Oct 29 21:49:33 2012 -0700 [Arabic] Enable dlig and mset for Arabic - + That's what the spec says, and what Uniscribe does. src/hb-ot-shape-complex-arabic.cc | 3 ++- @@ -71328,22 +69862,18 @@ Author: Behdad Esfahbod Date: Mon Oct 29 18:18:24 2012 -0700 Add Ethiopic test case - + This sequence: U+120B,U+135F,U+120B with the Nyala font from Win7 - exposes a GPOS bug in Uniscribe, in that the positioned mark is - wrongly + exposes a GPOS bug in Uniscribe, in that the positioned mark is wrongly moved as a result a following kern. - + This is the one "failure" in the Ethiopic test suite :-). - + ETHIOPIC: 118900 out of 118901 tests passed. 1 failed (0.000841036%) - test/shaping/texts/in-tree/shaper-default/script-ethiopic/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/misc.txt | - 1 + + test/shaping/texts/in-tree/shaper-default/script-ethiopic/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/script-ethiopic/misc/misc.txt | 1 + 3 files changed, 3 insertions(+) commit 88d3c98e309e14c3115825d1d8d40d0b3eec2d97 @@ -71351,14 +69881,13 @@ Author: Behdad Esfahbod Date: Mon Oct 29 16:27:02 2012 -0700 [Indic] Position pre-base reordering Ra after Chillus in Malayalam - + The logic for pre-base reordering follows the left matra logic. - We had an exception for Malayalam/Tamil in the left matra - repositioning + We had an exception for Malayalam/Tamil in the left matra repositioning which was not reflected in pre-base reordering. - + Malayalam failures down from 337 to 323. - + BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%) DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) @@ -71366,8 +69895,7 @@ Date: Mon Oct 29 16:27:02 2012 -0700 KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed - (0.0308108%) + MALAYALAM: 1048011 out of 1048334 tests passed. 323 failed (0.0308108%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) @@ -71391,16 +69919,14 @@ Author: Behdad Esfahbod Date: Mon Oct 29 10:56:04 2012 -0700 Include config.h.in in tree - - I typically don't like including generating files in tree. - But like to + + I typically don't like including generating files in tree. But like to make an exception for this, since this forms the canonical list of options one would need to go through when building with alternative build systems. Makefile.am | 1 - - config.h.in | 160 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + config.h.in | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+), 1 deletion(-) commit 02ed52169ad3bb48f4989f721b0c6572e064a712 @@ -71430,7 +69956,7 @@ Author: Behdad Esfahbod Date: Sun Oct 28 20:11:47 2012 -0700 Fix hb_buffer_set_length(buffer, 0) - + Was causing invalid realloc()s. src/hb-buffer.cc | 2 +- @@ -71450,7 +69976,7 @@ Author: Behdad Esfahbod Date: Sun Oct 28 19:18:11 2012 -0700 Port to ICU LayoutEngine C API - + Incidentally, this makes it not crash with icu-le-hb anymore... I'm not smart / stupid enough to spend two more days debugging C++ linking issues, and this is ABI-stable at least. @@ -71472,19 +69998,16 @@ Author: Behdad Esfahbod Date: Thu Oct 25 16:32:54 2012 -0700 Rename and revamp is_zero_width() to be is_default_ignorable() - - That's really the logic desired. Except that MONGOLIAN VOWEL - SEPARATOR - is not default_ignorable but it really should be. Reported to - Unicode. - + + That's really the logic desired. Except that MONGOLIAN VOWEL SEPARATOR + is not default_ignorable but it really should be. Reported to Unicode. + Based on suggestion from Konstantin Ritt. src/hb-fallback-shape.cc | 2 +- src/hb-ot-shape-private.hh | 4 +-- src/hb-ot-shape.cc | 2 +- - src/hb-unicode-private.hh | 90 - +++++++++++++++++++++++++++++----------------- + src/hb-unicode-private.hh | 90 +++++++++++++++++++++++++++++----------------- 4 files changed, 62 insertions(+), 36 deletions(-) commit a724139e641bf1592b1ff786a75a9de2ea8163cf @@ -71511,7 +70034,7 @@ Author: Behdad Esfahbod Date: Sun Oct 7 17:19:58 2012 -0400 Fixup hb_ot_shape_closure() - + Broke it when merged cmap mapping and normalizer. Ouch! src/hb-ot-shape.cc | 2 +- @@ -71530,15 +70053,12 @@ commit 9947bd6daffb5ec76b67536575e7617ba4f10b1e Author: Behdad Esfahbod Date: Tue Oct 2 20:44:43 2012 -0400 - Update UCDN to upstream commit - 3f159c87824230b59af56e40e2db32caf6afa51a - + Update UCDN to upstream commit 3f159c87824230b59af56e40e2db32caf6afa51a + - Unicode 6.2.0 goodness, - - Unassigned codepoints now have correct properties. Passes test - suite. + - Unassigned codepoints now have correct properties. Passes test suite. - src/hb-ucdn/unicodedata_db.h | 1966 - ++++++++++++++++++++++-------------------- + src/hb-ucdn/unicodedata_db.h | 1966 ++++++++++++++++++++++-------------------- 1 file changed, 1036 insertions(+), 930 deletions(-) commit 32dbfcf763d1ae497d3c95de986a83441331678f @@ -71556,7 +70076,7 @@ Author: Behdad Esfahbod Date: Tue Oct 2 16:03:18 2012 -0400 Import UCDN into source tree - + https://github.com/grigorig/ucdn configure.ac | 11 +- @@ -71566,8 +70086,7 @@ Date: Tue Oct 2 16:03:18 2012 -0400 src/hb-ucdn/README | 33 + src/hb-ucdn/ucdn.c | 282 +++ src/hb-ucdn/ucdn.h | 290 +++ - src/hb-ucdn/unicodedata_db.h | 4648 - ++++++++++++++++++++++++++++++++++++++++++ + src/hb-ucdn/unicodedata_db.h | 4648 ++++++++++++++++++++++++++++++++++++++++++ src/hb-unicode.cc | 3 + 9 files changed, 5498 insertions(+), 1 deletion(-) @@ -71576,7 +70095,7 @@ Author: Behdad Esfahbod Date: Tue Oct 2 14:59:00 2012 -0400 Remove Glib thread-safety support - + Now that we have pthread detection in configure, we don't need Glib anymore. Glib will only be a Unicode data provider. @@ -71601,8 +70120,7 @@ Date: Tue Oct 2 14:46:34 2012 -0400 Add ax_pthread.m4 - m4/ax_pthread.m4 | 309 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + m4/ax_pthread.m4 | 309 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 309 insertions(+) commit 8ac34bc6ff1d0646503a45659b1846d8cf9c0603 @@ -71611,8 +70129,7 @@ Date: Tue Oct 2 14:46:04 2012 -0400 Add pkg.m4 to git repo - m4/pkg.m4 | 157 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + m4/pkg.m4 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) commit c7afac0aa6e51e6a49ebf13f72537398698c9e49 @@ -71630,10 +70147,10 @@ Author: Behdad Esfahbod Date: Tue Sep 25 21:35:35 2012 -0400 [OT] Only insert dottedcircle if at the beginning of paragraph - + If the first char in the run is a combining mark, but there is text before the run, don't insert dottedcircle. - + Part of addressing: https://bugzilla.redhat.com/show_bug.cgi?id=858736 @@ -71645,7 +70162,7 @@ Author: Behdad Esfahbod Date: Tue Sep 25 21:32:35 2012 -0400 [Arabic] Respect Arabic joining from neighboring context - + Now we respect Arabic joining across runs. src/hb-ot-shape-complex-arabic.cc | 31 +++++++++++++++++++++++++++++-- @@ -71656,19 +70173,18 @@ Author: Behdad Esfahbod Date: Tue Sep 25 17:44:53 2012 -0400 [buffer] Save pre/post textual context - + To be used for a variety of purposes. We save up to five characters in each direction. No public API changes, everything is taken care of already. All clients need to do is to call hb_buffer_add_utf* with the full text + segment info (or at least some context) instead of just passing in the segment. - + Various operations (hb_buffer_reset, hb_buffer_set_length, hb_buffer_add*) automatically reset the relevant contexts. src/hb-buffer-private.hh | 13 ++++++++++++- - src/hb-buffer.cc | 44 - ++++++++++++++++++++++++++++++++++++++++---- + src/hb-buffer.cc | 44 ++++++++++++++++++++++++++++++++++++++++---- src/hb-buffer.h | 2 +- 3 files changed, 53 insertions(+), 6 deletions(-) @@ -71678,8 +70194,7 @@ Date: Tue Sep 25 13:59:24 2012 -0400 Add hb_utf_prev() - src/hb-utf-private.hh | 71 - +++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-utf-private.hh | 71 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) commit 70ea4ac6887c7057113d714a98e55738b6196562 @@ -71705,7 +70220,7 @@ Author: Behdad Esfahbod Date: Tue Sep 25 11:42:16 2012 -0400 Add hb_utf_strlen() - + Speeds up UTF-8 parsing by calling strlen(). src/hb-buffer.cc | 13 ++----------- @@ -71717,13 +70232,12 @@ Author: Behdad Esfahbod Date: Tue Sep 25 11:22:28 2012 -0400 [buffer] Templatize UTF handling - + Also move UTF routines into a separate file, to be reused from shapers that need it. src/Makefile.am | 1 + - src/hb-buffer.cc | 157 - +++++++++++++------------------------------------- + src/hb-buffer.cc | 157 +++++++++++++------------------------------------- src/hb-utf-private.hh | 113 ++++++++++++++++++++++++++++++++++++ 3 files changed, 155 insertions(+), 116 deletions(-) @@ -71760,15 +70274,14 @@ Author: Behdad Esfahbod Date: Mon Sep 24 21:51:13 2012 -0400 [Indic] Import ragel-generated Indic machine in git - + I don't expect ragel to be creating too much noise in its generated output, and including this in-tree helps users right now. We can revisit this later if it proved to be too much trouble. autogen.sh | 6 - src/Makefile.am | 1 - - src/hb-ot-shape-complex-indic-machine.hh | 1314 - ++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic-machine.hh | 1314 ++++++++++++++++++++++++++++++ 3 files changed, 1314 insertions(+), 7 deletions(-) commit 20a840c7cd08069720050782b4533cde505df09a @@ -71776,7 +70289,7 @@ Author: Behdad Esfahbod Date: Mon Sep 24 20:23:00 2012 -0400 Use a C++ linker on Windows - + On Windows we don't care whether or not we link to libstdc++. Seems to fix build with mingw32 on msys, as reported by Werner. @@ -71806,7 +70319,7 @@ Author: Behdad Esfahbod Date: Mon Sep 10 09:56:27 2012 -0400 Return NULL, not false - + Oh well... src/hb-open-type-private.hh | 2 +- @@ -71817,17 +70330,15 @@ Author: Behdad Esfahbod Date: Fri Sep 7 14:55:07 2012 -0400 [Indic] Find syllables before any features are applied - + With FreeSerif, it seems that the 'ccmp' feature does ligature - substituttions. That was then causing syllable match failures. - We now + substituttions. That was then causing syllable match failures. We now find syllables before any features have been applied. - + Test sequence: U+0D9A,U+0DCA,U+200D,U+0DBB,U+0DCF src/hb-ot-shape-complex-indic-machine.rl | 4 +- - src/hb-ot-shape-complex-indic.cc | 56 - +++++++++++++++------- + src/hb-ot-shape-complex-indic.cc | 56 +++++++++++++++------- .../indic/script-sinhala/misc/misc.txt | 1 + 3 files changed, 43 insertions(+), 18 deletions(-) @@ -71836,7 +70347,7 @@ Author: Behdad Esfahbod Date: Thu Sep 6 22:26:16 2012 -0400 Add hb_buffer_[sg]et_content_type - + And hb_buffer_content_type_t and enum values. TODO | 1 + @@ -71855,8 +70366,7 @@ Date: Thu Sep 6 22:09:06 2012 -0400 TODO | 4 +- src/hb-common.cc | 9 +++ src/hb-common.h | 6 +- - src/hb-shape.cc | 168 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-shape.cc | 168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-shape.h | 13 +++++ util/options.cc | 132 ++----------------------------------------- 6 files changed, 201 insertions(+), 131 deletions(-) @@ -71866,17 +70376,15 @@ Author: Behdad Esfahbod Date: Thu Sep 6 17:22:31 2012 -0400 [OT] Do per-ligature-component fallback mark positioning - + With this in place, you can remove GDEF/GSUB/GPOS tables from Arabic fonts and still get per-component marks positioned on - oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between - the LAM + oh-yeah-fallback-formed LAM-ALEF ligatures with marks in between the LAM and ALEF. - + Now *that*'s pretty cool, if a bit anachronistic... - src/hb-ot-shape-fallback.cc | 43 - ++++++++++++++++++++++++++++++++++++------- + src/hb-ot-shape-fallback.cc | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) commit 525c6855783a018d52867b9ece2ee90868ff1f91 @@ -71884,7 +70392,7 @@ Author: Behdad Esfahbod Date: Thu Sep 6 16:02:07 2012 -0400 [OT] Make fallback mark positioning more robust - + ...with clusters spanning multiple base characters. src/hb-ot-shape-fallback.cc | 11 +++++++++-- @@ -71928,8 +70436,7 @@ Date: Thu Sep 6 01:16:39 2012 -0400 src/gen-arabic-table.py | 6 +- src/hb-ot-shape-complex-arabic-fallback.hh | 2 +- - src/hb-ot-shape-complex-arabic-table.hh | 266 - ++++++++++++++--------------- + src/hb-ot-shape-complex-arabic-table.hh | 266 ++++++++++++++--------------- 3 files changed, 137 insertions(+), 137 deletions(-) commit 82f6b6f388b801a1483854cb56a2cadbb94e0f2b @@ -71946,9 +70453,9 @@ Author: Behdad Esfahbod Date: Wed Sep 5 22:19:28 2012 -0400 [OT] Port Arabic fallback shaping to synthetic GSUB - + All of init/medi/fina/isol and rlig implemented. - + Let there be dragons... ⻯ src/Makefile.am | 1 + @@ -71957,8 +70464,7 @@ Date: Wed Sep 5 22:19:28 2012 -0400 src/hb-ot-layout-gsub-table.hh | 11 +- src/hb-ot-map-private.hh | 6 + src/hb-ot-map.cc | 1 + - src/hb-ot-shape-complex-arabic-fallback.hh | 252 - +++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic-fallback.hh | 252 +++++++++++++++++++++++++++++ src/hb-ot-shape-complex-arabic.cc | 158 ++++++------------ src/hb-ot-shape.cc | 7 +- src/hb-private.hh | 11 +- @@ -71969,18 +70475,18 @@ Author: Behdad Esfahbod Date: Wed Sep 5 17:32:57 2012 -0400 [Indic] Allow "H,ZWJ,M" - + Uniscribe accepts a Halant,ZWJ before matras. Allow that. - + BENGALI down from 295 to 291 DEVANAGARI down from 69 to 57 GUJARATI down from 19 to 17 KANNADA down from 871 to 867 MALAYALAM down from 340 to 337 TELUGU down from 20 to 16 - + Currently at: - + BENGALI: 353897 out of 354188 tests passed. 291 failed (0.0821598%) DEVANAGARI: 707337 out of 707394 tests passed. 57 failed (0.00805774%) GUJARATI: 366440 out of 366457 tests passed. 17 failed (0.00463902%) @@ -71988,8 +70494,7 @@ Date: Wed Sep 5 17:32:57 2012 -0400 KANNADA: 951046 out of 951913 tests passed. 867 failed (0.0910798%) KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed - (0.0321462%) + MALAYALAM: 1047997 out of 1048334 tests passed. 337 failed (0.0321462%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) @@ -72004,20 +70509,18 @@ Author: Behdad Esfahbod Date: Wed Sep 5 17:21:17 2012 -0400 [Indic] Relax grammar - - Now that we insert dotted-circle, tests break more easily when - our indic + + Now that we insert dotted-circle, tests break more easily when our indic machine breaks. - + In particular, a few Devanagari tests were having sequences like - "C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered - to + "C,H,ZWJ,N", and because of the ZWJ the Nukta does NOT get reordered to before the Halant as the grammar used to expect... Fixup. - + Another case is as simple as "C,ZWJ,SM". - + Fixes 10 out of 79 failures: - + DEVANAGARI: 707325 out of 707394 tests passed. 69 failed (0.00975411%) src/hb-ot-shape-complex-indic-machine.rl | 4 ++-- @@ -72028,14 +70531,14 @@ Author: Behdad Esfahbod Date: Wed Sep 5 15:54:21 2012 -0400 [Indic] Fix Khmer syllable-final coeng-consonant - + Brings down Khmer failures from 162 to 47. - + KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%) - + Also rebaselined some of the test files that had only-inherited lines. Removing those, the stats are: - + BENGALI: 353893 out of 354188 tests passed. 295 failed (0.0832891%) DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%) GUJARATI: 366438 out of 366457 tests passed. 19 failed (0.00518478%) @@ -72043,14 +70546,13 @@ Date: Wed Sep 5 15:54:21 2012 -0400 KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%) KHMER: 299077 out of 299124 tests passed. 47 failed (0.0157125%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed - (0.0324324%) + MALAYALAM: 1047994 out of 1048334 tests passed. 340 failed (0.0324324%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%) TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - + Still some regressions, but some of the more egregious cases are addressed. @@ -72062,18 +70564,17 @@ Author: Behdad Esfahbod Date: Wed Sep 5 15:50:47 2012 -0400 Fixup test failure reporting - + After we implemented dotted-circle, we were still ignoring any tests - that had dottedcircle in it for any of the shapers. That meant - that if + that had dottedcircle in it for any of the shapers. That meant that if we wrongly outputted dottedcircle, the test was being ignored. Ouch! - + Fixing that shows regressions across the board. Most are Uniscribe bugs: NOT inserting dotted-circle when it should. Some are arou machine bugs. This is in fact a nice way to catch Indic-machine deficiencies and when I fix the regressions, our clusters should be much closer to Uniscribe. For now, we regressed from: - + BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%) DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) @@ -72081,16 +70582,15 @@ Date: Wed Sep 5 15:50:47 2012 -0400 KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed - (0.0297592%) + MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970558 out of 970573 tests passed. 15 failed (0.00154548%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - + To: - + BENGALI: 353990 out of 354285 tests passed. 295 failed (0.0832663%) DEVANAGARI: 707315 out of 707394 tests passed. 79 failed (0.0111678%) GUJARATI: 366447 out of 366506 tests passed. 59 failed (0.016098%) @@ -72098,14 +70598,13 @@ Date: Wed Sep 5 15:50:47 2012 -0400 KANNADA: 951042 out of 951913 tests passed. 871 failed (0.0915%) KHMER: 298962 out of 299124 tests passed. 162 failed (0.0541581%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048074 out of 1048416 tests passed. 342 failed - (0.0326206%) + MALAYALAM: 1048074 out of 1048416 tests passed. 342 failed (0.0326206%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271666 out of 271847 tests passed. 181 failed (0.0665816%) TAMIL: 1091835 out of 1091837 tests passed. 2 failed (0.000183178%) TELUGU: 970553 out of 970573 tests passed. 20 failed (0.00206064%) TIBETAN: 208469 out of 208469 tests passed. 0 failed (0%) - + Investigating. test/shaping/hb_test_tools.py | 8 +++++--- @@ -72116,17 +70615,17 @@ Author: Behdad Esfahbod Date: Wed Sep 5 15:11:14 2012 -0400 [Indic] Tamil does not have half-forms either - + The Win7 Tamil font does not realy on this behavior, but the WinXP version does. Handle Tamil like Malayalam: Matras always move to before base. - + WinXP Tamil failures went down from 168964 (15.4752%) to 167 (0.0152953%) (two orders of magnitude reduction!). - + Included in this is a minor fixup that actually fixed a few tests with non-Tamil too. Numbers at: - + BENGALI: 353997 out of 354285 tests passed. 288 failed (0.0812905%) DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) @@ -72134,8 +70633,7 @@ Date: Wed Sep 5 15:11:14 2012 -0400 KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed - (0.0297592%) + MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271747 out of 271847 tests passed. 100 failed (0.0367854%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) @@ -72172,8 +70670,7 @@ Date: Tue Sep 4 21:13:17 2012 -0400 [OT] Add SubstLookup serialize API src/hb-ot-layout-common-private.hh | 2 +- - src/hb-ot-layout-gsub-table.hh | 65 - +++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsub-table.hh | 65 +++++++++++++++++++++++++++++++++++++- 2 files changed, 65 insertions(+), 2 deletions(-) commit 715e03bc21d6adaa8e1f647235843839dc47dad1 @@ -72202,8 +70699,7 @@ Date: Tue Sep 4 18:17:57 2012 -0400 src/hb-open-type-private.hh | 53 +++++++++++++++- src/hb-ot-layout-common-private.hh | 8 ++- - src/hb-ot-layout-gsub-table.hh | 125 - +++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gsub-table.hh | 125 +++++++++++++++++++++++++++++-------- 3 files changed, 156 insertions(+), 30 deletions(-) commit 1b38b4e817d871b9549be65af6030bd0eea7f775 @@ -72265,8 +70761,7 @@ Date: Mon Sep 3 23:28:34 2012 -0400 [OT] Implement serialize() for MultiSubst src/hb-open-type-private.hh | 10 ++++++++++ - src/hb-ot-layout-gsub-table.hh | 43 - ++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-table.hh | 43 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) commit 4912030dfba740c822e200d33cbb5c6dbbeaf79e @@ -72284,7 +70779,7 @@ Author: Behdad Esfahbod Date: Mon Sep 3 20:19:46 2012 -0400 Fix possible NULL dereference - + As reported by Kenichi Ishibashi. src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -72295,7 +70790,7 @@ Author: Behdad Esfahbod Date: Sat Sep 1 21:56:06 2012 -0400 [OT] Remove serialize alignment - + Will reintroduce in a different way when we actually need it. src/hb-open-type-private.hh | 24 +++++++++++------------- @@ -72309,8 +70804,7 @@ Date: Sat Sep 1 21:43:38 2012 -0400 src/hb-open-type-private.hh | 14 +++++++++++++ src/hb-ot-layout-common-private.hh | 2 +- - src/hb-ot-layout-gsub-table.hh | 43 - ++++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-gsub-table.hh | 43 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 56 insertions(+), 3 deletions(-) commit abcc5ac1fde1c493e4055dd2f27b8aade7713156 @@ -72318,7 +70812,7 @@ Author: Behdad Esfahbod Date: Sat Sep 1 21:30:17 2012 -0400 [OT] Improve serialize syntax - + For some definition of improvement... src/hb-open-type-private.hh | 6 ++++-- @@ -72332,8 +70826,7 @@ Date: Sat Sep 1 20:48:22 2012 -0400 [OT] Restart work on serialize() src/hb-open-type-private.hh | 39 ++++++++++++++++++------ - src/hb-ot-layout-common-private.hh | 61 - +++++++++++++++++++------------------- + src/hb-ot-layout-common-private.hh | 61 +++++++++++++++++++------------------- src/hb-ot-layout-gsub-table.hh | 13 ++++++++ 3 files changed, 73 insertions(+), 40 deletions(-) @@ -72342,15 +70835,15 @@ Author: Behdad Esfahbod Date: Sat Sep 1 20:38:45 2012 -0400 [OT] Insert dotted-circle for run-initial marks - + Unfortunately if the font has GPOS and 'mark' feature does not position mark on dotted-circle, our inserted dotted-circle will not get the mark repositioned to itself. Uniscribe cheats here. - + If there is no GPOS however, the fallback positioning kicks in and sorts this out. - + I'm not willing to address the first case. src/hb-ot-shape.cc | 32 ++++++++++++++++++++++++++++++++ @@ -72361,11 +70854,10 @@ Author: Behdad Esfahbod Date: Sat Sep 1 20:06:26 2012 -0400 [OT] Fallback-position ccc=0 Thai / Lao marks - + Not perfect, but so is fallback positioning in 2012... - src/hb-ot-shape-fallback.cc | 56 - +++++++++++++++++++++++++++++++++++++-------- + src/hb-ot-shape-fallback.cc | 56 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 10 deletions(-) commit 3992b5ec4cb43d114d87ff7ee2b992bcf819c9cd @@ -72375,8 +70867,7 @@ Date: Sat Sep 1 19:20:41 2012 -0400 Move code around src/hb-ot-shape-fallback-private.hh | 5 ++++ - src/hb-ot-shape-fallback.cc | 46 - +++++++++++++++++++++++++------------ + src/hb-ot-shape-fallback.cc | 46 +++++++++++++++++++++++++------------ src/hb-ot-shape-private.hh | 6 +++++ src/hb-ot-shape.cc | 4 ++++ 4 files changed, 46 insertions(+), 15 deletions(-) @@ -72386,17 +70877,15 @@ Author: Behdad Esfahbod Date: Fri Aug 31 18:12:01 2012 -0400 [Indic] Implement dotted-circle insertion for broken clusters - + No panic, we reeally insert dotted circle when it's absolutely broken. - - Fixes most of the dotted-circle cases against Uniscribe. (for - Devanagari + + Fixes most of the dotted-circle cases against Uniscribe. (for Devanagari fixes 80% of them, for Khmer 70%; the rest look like Uniscribe being really bogus...) - + I had to make a decision. Apparently Uniscribe adds one dotted circle - to each broken character. I tried that, but that goes wrong - easily with + to each broken character. I tried that, but that goes wrong easily with split matras. So I made it add only one dotted circle to an entire broken syllable tail. As in: "if there was a dotted circle here, this would have formed a correct cluster." That works better for split @@ -72406,8 +70895,7 @@ Date: Fri Aug 31 18:12:01 2012 -0400 src/hb-buffer.cc | 10 +++++ src/hb-ot-shape-complex-indic-machine.rl | 4 +- src/hb-ot-shape-complex-indic-private.hh | 2 +- - src/hb-ot-shape-complex-indic.cc | 67 - +++++++++++++++++++++++++++++--- + src/hb-ot-shape-complex-indic.cc | 67 +++++++++++++++++++++++++++++--- src/hb-ot-shape-normalize-private.hh | 1 + src/hb-ot-shape-normalize.cc | 11 +++--- 7 files changed, 83 insertions(+), 13 deletions(-) @@ -72419,8 +70907,7 @@ Date: Fri Aug 31 16:49:34 2012 -0400 [Indic] Start adding dotted-circle instrastructure src/hb-ot-shape-complex-indic-machine.rl | 19 +++++++------ - src/hb-ot-shape-complex-indic.cc | 46 - +++++++++++++++++++++++++++++--- + src/hb-ot-shape-complex-indic.cc | 46 +++++++++++++++++++++++++++++--- 2 files changed, 51 insertions(+), 14 deletions(-) commit 1be368e96fb7de8c77bf992874e0d5bd6b272ebe @@ -72458,8 +70945,7 @@ Date: Wed Aug 29 21:08:59 2012 -0400 [OT] Add serialize() for Coverage src/hb-open-type-private.hh | 34 +++++++++++++++++---- - src/hb-ot-layout-common-private.hh | 62 - ++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-common-private.hh | 62 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 6 deletions(-) commit e901b954c6ec44ac3ae7fb3c326e6e7a40718e4b @@ -72468,8 +70954,7 @@ Date: Wed Aug 29 20:26:08 2012 -0400 [OT] Start adding serialize() API - src/hb-open-type-private.hh | 77 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-open-type-private.hh | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) commit 965c280de09b49d711cb78d629da321c802084de @@ -72477,7 +70962,7 @@ Author: Behdad Esfahbod Date: Wed Aug 29 13:59:16 2012 -0400 Add HB_BUFFER_ASSERT_VAR - + To be used in places we access buffer vars... src/hb-buffer-private.hh | 3 +++ @@ -72498,20 +70983,18 @@ Author: Behdad Esfahbod Date: Wed Aug 29 11:11:54 2012 -0400 Port Arabic fallback ligating to share code with GSUB - + This will eventually allow us to skip marks, as well as (fallback) attach marks to ligature components of fallback-shaped Arabic. That would be pretty cool. I kludged GDEF props in, so mark-skipping works, but the produced ligature id/components will be cleared later by substitute_start() et al. - - Perhaps using a synthetic table for Arabic fallback shaping was - a better + + Perhaps using a synthetic table for Arabic fallback shaping was a better idea. The current approach has way too many layering violations... src/hb-ot-layout-gsubgpos-private.hh | 4 ++ - src/hb-ot-shape-complex-arabic.cc | 72 - ++++++++++++++++++++++++------------ + src/hb-ot-shape-complex-arabic.cc | 72 ++++++++++++++++++++++++------------ src/hb-ot-shape.cc | 4 +- 3 files changed, 56 insertions(+), 24 deletions(-) @@ -72531,10 +71014,8 @@ Date: Tue Aug 28 23:18:22 2012 -0400 [GSUB] Move ligation logic over - src/hb-ot-layout-gsub-table.hh | 78 - ++++------------------------------- - src/hb-ot-layout-gsubgpos-private.hh | 80 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-table.hh | 78 ++++------------------------------- + src/hb-ot-layout-gsubgpos-private.hh | 80 ++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 69 deletions(-) commit 191fa885d9e0a2dce92dd8727cddd18495e62409 @@ -72542,12 +71023,11 @@ Author: Behdad Esfahbod Date: Tue Aug 28 22:58:55 2012 -0400 [GSUB] Merge Ligature and context input matching - + Looks better now... TODO | 4 -- - src/hb-ot-layout-gsub-table.hh | 71 - +++++++----------------------------- + src/hb-ot-layout-gsub-table.hh | 71 +++++++----------------------------- src/hb-ot-layout-gsubgpos-private.hh | 29 ++++++++++++++- 3 files changed, 40 insertions(+), 64 deletions(-) @@ -72557,10 +71037,8 @@ Date: Tue Aug 28 22:24:51 2012 -0400 Start converging Ligature and match_input - src/hb-ot-layout-gsub-table.hh | 58 - +++++++++++++++++---------------- - src/hb-ot-layout-gsubgpos-private.hh | 62 - ++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gsub-table.hh | 58 +++++++++++++++++---------------- + src/hb-ot-layout-gsubgpos-private.hh | 62 ++++++++++++++++++++++++++++-------- 2 files changed, 78 insertions(+), 42 deletions(-) commit 2eef71737ea29ffadbb5a2be4a898b44f53f66ac @@ -72570,8 +71048,7 @@ Date: Tue Aug 28 19:16:38 2012 -0400 [hb-icu-le] Add visbility src/hb-icu-le/FontTableCache.h | 6 +++++- - src/hb-icu-le/PortableFontInstance.cpp | 39 - ---------------------------------- + src/hb-icu-le/PortableFontInstance.cpp | 39 ---------------------------------- src/hb-icu-le/PortableFontInstance.h | 7 ++++-- src/hb-icu-le/cmaps.cpp | 2 +- src/hb-icu-le/cmaps.h | 5 ++++- @@ -72613,7 +71090,7 @@ Author: Behdad Esfahbod Date: Tue Aug 28 17:57:49 2012 -0400 Use namespace for OpenType tables - + Avoids USHORT, SHORT, ULONG, LONG clashes with Windows API. src/hb-font.cc | 12 ++--- @@ -72628,8 +71105,7 @@ Date: Tue Aug 28 17:57:49 2012 -0400 src/hb-ot-layout-gsub-table.hh | 4 ++ src/hb-ot-layout-gsubgpos-private.hh | 4 ++ src/hb-ot-layout-private.hh | 12 +++-- - src/hb-ot-layout.cc | 91 - ++++++++++++++++++------------------ + src/hb-ot-layout.cc | 91 ++++++++++++++++++------------------ src/hb-ot-maxp-table.hh | 4 ++ src/hb-ot-name-table.hh | 4 ++ src/hb-uniscribe.cc | 8 ++-- @@ -72641,9 +71117,9 @@ Author: Behdad Esfahbod Date: Tue Aug 28 16:31:23 2012 -0400 Revert "Minor" - + This reverts commit 3e0a03978b91994bb7fa7922593cbdfc50878dfc. - + I know remember why that line is there :). src/hb-ot-shape-complex-arabic.cc | 1 + @@ -72672,7 +71148,7 @@ Author: Behdad Esfahbod Date: Mon Aug 27 16:54:34 2012 -0400 Only fallback-position glyphs if we have the ccc - + Previously, ccc=0 Thai / Lao marks were being mispositioned. Don't touch them. @@ -72702,7 +71178,7 @@ Author: Behdad Esfahbod Date: Sun Aug 26 14:30:18 2012 -0400 [Indic] Fix switch - + D'oh. Was working by pure chance :)). src/hb-ot-shape-complex-indic.cc | 2 +- @@ -72732,8 +71208,7 @@ Date: Fri Aug 24 00:41:51 2012 -0400 [graphite2] Cleanup scratch buffer allocation - src/hb-graphite2.cc | 77 - ++++++++++++++++++++++++++++++----------------------- + src/hb-graphite2.cc | 77 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 33 deletions(-) commit 2f7586c6229096143ca0a96712a27416ee0d3c85 @@ -72743,8 +71218,7 @@ Date: Thu Aug 23 23:59:55 2012 -0400 [icu-le] Implement icu layout engine shaper configure.ac | 2 +- - src/hb-icu-le.cc | 113 - +++++++++++++++++++++++++++++++++++++++++++++----- + src/hb-icu-le.cc | 113 +++++++++++++++++++++++++++++++++++++++++++++----- src/hb-icu-le/cmaps.h | 1 - src/hb-shaper-list.hh | 4 ++ 4 files changed, 108 insertions(+), 12 deletions(-) @@ -72758,8 +71232,7 @@ Date: Thu Aug 23 21:52:44 2012 -0400 src/hb-icu-le.cc | 17 +++- src/hb-icu-le/FontTableCache.cpp | 34 ++++---- src/hb-icu-le/FontTableCache.h | 9 ++- - src/hb-icu-le/PortableFontInstance.cpp | 144 - +++------------------------------ + src/hb-icu-le/PortableFontInstance.cpp | 144 +++------------------------------ src/hb-icu-le/PortableFontInstance.h | 21 ++--- src/hb-icu-le/README | 1 + 6 files changed, 57 insertions(+), 169 deletions(-) @@ -72778,7 +71251,7 @@ Author: Behdad Esfahbod Date: Thu Aug 23 21:23:41 2012 -0400 [icu-le] Start adding a icu-layout-engine backend - + Import PortableFontInstance and add shaper stub. configure.ac | 9 + @@ -72787,16 +71260,14 @@ Date: Thu Aug 23 21:23:41 2012 -0400 src/hb-icu-le/FontTableCache.cpp | 91 +++++++ src/hb-icu-le/FontTableCache.h | 41 +++ src/hb-icu-le/Makefile.am | 25 ++ - src/hb-icu-le/PortableFontInstance.cpp | 436 - ++++++++++++++++++++++++++++++++ + src/hb-icu-le/PortableFontInstance.cpp | 436 ++++++++++++++++++++++++++++++++ src/hb-icu-le/PortableFontInstance.h | 117 +++++++++ src/hb-icu-le/README | 2 + src/hb-icu-le/cmaps.cpp | 200 +++++++++++++++ src/hb-icu-le/cmaps.h | 85 +++++++ src/hb-icu-le/letest.h | 49 ++++ src/hb-icu-le/license.html | 51 ++++ - src/hb-icu-le/sfnt.h | 449 - +++++++++++++++++++++++++++++++++ + src/hb-icu-le/sfnt.h | 449 +++++++++++++++++++++++++++++++++ 14 files changed, 1674 insertions(+) commit b5584ee4be46b47e1678acf28426970a6d670b4f @@ -72804,9 +71275,8 @@ Author: Behdad Esfahbod Date: Thu Aug 23 16:26:07 2012 -0400 [Indic] For old-spec, match non-zero context - - Fixes consonant-position with old-spec Malayalam. Uniscribe seem - to be + + Fixes consonant-position with old-spec Malayalam. Uniscribe seem to be doing this. Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf. Doesn't regress new-spec or other scripts. @@ -72818,7 +71288,7 @@ Author: Behdad Esfahbod Date: Thu Aug 23 16:22:28 2012 -0400 [GSUB] Allow non-zero-context matching in would_apply() - + To be used in the next patch. src/hb-ot-layout-gsubgpos-private.hh | 6 ++++-- @@ -72835,9 +71305,9 @@ Author: Behdad Esfahbod Date: Thu Aug 23 16:10:37 2012 -0400 Revert "[Indic/GSUB] Ignore context when matching would_apply()" - + This reverts commit 24dd4e56743c6ce5e01cb710ca9e01b3e527af58. - + Oops. My bad. The change _regressed_ Malayalam test suite, not improved it. I'll redo it, differentiating between old-spec and new-spec cases. @@ -72850,21 +71320,18 @@ Author: Behdad Esfahbod Date: Thu Aug 23 15:47:10 2012 -0400 [Indic/GSUB] Ignore context when matching would_apply() - - The MS Indic specs say "...all classifications are determined - ... using - context-free substitutions." However, testing shows that MS's - Malayalam - shapers (both old and new), "match" even if there is no zero-context - rule. + + The MS Indic specs say "...all classifications are determined ... using + context-free substitutions." However, testing shows that MS's Malayalam + shapers (both old and new), "match" even if there is no zero-context rule. We follow. - + Fixes below-base La (eg. Pa,H,La) with AnjaliNewLipi.ttf (old spec). Moreover, test suite Malayalam failures are down to 312 from 875! No change in other scripts. - + Current numbers: - + BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%) DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) @@ -72872,8 +71339,7 @@ Date: Thu Aug 23 15:47:10 2012 -0400 KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed - (0.0834592%) + MALAYALAM: 1047541 out of 1048416 tests passed. 875 failed (0.0834592%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) @@ -72888,7 +71354,7 @@ Author: Behdad Esfahbod Date: Thu Aug 23 15:19:45 2012 -0400 [Indic] Implement pre-base reordering Ra for old-spec Malayalam - + Fixes Pa,H,Ra sequence with AnjaliNewLipi.ttf. src/hb-ot-shape-complex-indic.cc | 5 ++--- @@ -72899,20 +71365,20 @@ Author: Behdad Esfahbod Date: Thu Aug 23 12:06:14 2012 -0400 [Indic] Only apply basic features per-syllable - + Free up syllables and let features work across syllables for the presentation forms features and GPOS. - + Fixed: - 1 GURMUKHI test (remains 40) - 12 KHMER tests (remains 18) - 11 SINHALA tests (remains 121) - + Regresses: - 5 MALAYALAM tests (up to 312) - + Current numbers: - + BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%) DEVANAGARI: 707339 out of 707394 tests passed. 55 failed (0.00777502%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) @@ -72920,8 +71386,7 @@ Date: Thu Aug 23 12:06:14 2012 -0400 KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299106 out of 299124 tests passed. 18 failed (0.00601757%) LAO: 53611 out of 53644 tests passed. 33 failed (0.0615167%) - MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed - (0.0297592%) + MALAYALAM: 1048104 out of 1048416 tests passed. 312 failed (0.0297592%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271726 out of 271847 tests passed. 121 failed (0.0445103%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) @@ -72973,7 +71438,7 @@ Author: Behdad Esfahbod Date: Thu Aug 16 11:35:50 2012 -0400 [OT] Fix Arabic shaper OOB access - + https://bugzilla.mozilla.org/show_bug.cgi?id=782908 src/hb-ot-shape-complex-arabic.cc | 2 +- @@ -72984,7 +71449,7 @@ Author: Behdad Esfahbod Date: Thu Aug 16 08:09:44 2012 -0400 [configure] Cleanup check for ICU - + Check for upstream-provided 'icu-uc' pkgconfig package. configure.ac | 21 +-------------------- @@ -72995,7 +71460,7 @@ Author: Behdad Esfahbod Date: Thu Aug 16 07:32:59 2012 -0400 [ICU] Fix includes - + As reported by Steven Loomis, including uversion.h works everywhere. src/hb-icu.cc | 6 ------ @@ -73015,7 +71480,7 @@ Author: Behdad Esfahbod Date: Wed Aug 15 17:24:28 2012 -0400 [NEWS] Fix date - + Oops! NEWS | 2 +- @@ -73065,14 +71530,13 @@ Author: Behdad Esfahbod Date: Sat Aug 11 21:26:25 2012 -0400 [ICU] Use new normalizer2 compose/decompose API - + It's considerably faster than the fallback implementation we had previously! src/hb-buffer.cc | 9 +++--- src/hb-glib.cc | 26 +++++++--------- - src/hb-icu.cc | 75 - +++++++++++++++++++++++++++++++++++++---------- + src/hb-icu.cc | 75 +++++++++++++++++++++++++++++++++++++---------- src/hb-unicode-private.hh | 13 ++------ src/hb-unicode.cc | 35 ++++++++++++++++++++-- src/hb-warning.cc | 8 ----- @@ -73092,14 +71556,13 @@ Author: Behdad Esfahbod Date: Sat Aug 11 18:34:13 2012 -0400 [OT] Unbreak Thai shaping and fallback Arabic shaping - + The merger of normalizer and glyph-mapping broke shapers that modified text stream. Unbreak them by adding a new preprocess_text shaping stage that happens before normalizing/cmap and disallow setup_mask modification of actual text. - src/hb-ot-shape-complex-arabic.cc | 42 - ++++++++++++++++++++++++++++---------- + src/hb-ot-shape-complex-arabic.cc | 42 ++++++++++++++++++++++++++++---------- src/hb-ot-shape-complex-indic.cc | 1 + src/hb-ot-shape-complex-misc.cc | 12 ++++++----- src/hb-ot-shape-complex-private.hh | 15 +++++++++++--- @@ -73112,8 +71575,7 @@ Date: Sat Aug 11 18:20:28 2012 -0400 [OT] Add shape_plan to Arabic shaper - src/hb-ot-shape-complex-arabic.cc | 82 - +++++++++++++++++++++++++-------------- + src/hb-ot-shape-complex-arabic.cc | 82 +++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 29 deletions(-) commit 344cc56698a8c84c4c1a05a71d829e5171aa3a60 @@ -73139,7 +71601,7 @@ Author: Behdad Esfahbod Date: Fri Aug 10 16:34:04 2012 -0400 [OT] Fix fallback mark positioning with left-to-right text - + Ouch! src/hb-ot-shape-fallback.cc | 13 +++++++++++-- @@ -73150,14 +71612,13 @@ Author: Behdad Esfahbod Date: Fri Aug 10 14:49:37 2012 -0400 Bump version to 0.9.2 - + A *real* release this time, with NEWS, ChangeLog, etc. AUTHORS | 8 ++++ COPYING | 9 ++-- Makefile.am | 13 +++--- - NEWS | 136 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + NEWS | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ THANKS | 7 +++ configure.ac | 4 +- 6 files changed, 165 insertions(+), 12 deletions(-) @@ -73177,34 +71638,20 @@ Date: Fri Aug 10 09:06:30 2012 -0400 [test] Move around - test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | - 2 +- - .../texts/in-tree/shaper-arabic/script-arabic/language-urdu/MANIFEST | - 1 + - .../shaper-arabic/script-arabic/{ => language-urdu}/crulp/MANIFEST - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/2grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/3grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/4grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/5grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/6grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/7grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/8grams.txt - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/LICENSE - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/MANIFEST - | 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/README | - 0 - .../script-arabic/{ => language-urdu}/crulp/ligatures/SOURCES - | 0 + test/shaping/texts/in-tree/shaper-arabic/script-arabic/MANIFEST | 2 +- + .../texts/in-tree/shaper-arabic/script-arabic/language-urdu/MANIFEST | 1 + + .../shaper-arabic/script-arabic/{ => language-urdu}/crulp/MANIFEST | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/2grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/3grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/4grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/5grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/6grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/7grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/8grams.txt | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/LICENSE | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/MANIFEST | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/README | 0 + .../script-arabic/{ => language-urdu}/crulp/ligatures/SOURCES | 0 14 files changed, 2 insertions(+), 1 deletion(-) commit 7a484c601e0958533eb85a6902296733c39537fe @@ -73217,10 +71664,8 @@ Date: Fri Aug 10 09:05:29 2012 -0400 .../shaper-arabic/script-arabic/crulp/MANIFEST | 1 + .../script-arabic/crulp/ligatures/2grams.txt | 601 ++ .../script-arabic/crulp/ligatures/3grams.txt | 3415 +++++++++++ - .../script-arabic/crulp/ligatures/4grams.txt | 6316 - ++++++++++++++++++++ - .../script-arabic/crulp/ligatures/5grams.txt | 5029 - ++++++++++++++++ + .../script-arabic/crulp/ligatures/4grams.txt | 6316 ++++++++++++++++++++ + .../script-arabic/crulp/ligatures/5grams.txt | 5029 ++++++++++++++++ .../script-arabic/crulp/ligatures/6grams.txt | 1542 +++++ .../script-arabic/crulp/ligatures/7grams.txt | 354 ++ .../script-arabic/crulp/ligatures/8grams.txt | 26 + @@ -73235,13 +71680,12 @@ Author: Behdad Esfahbod Date: Fri Aug 10 03:51:44 2012 -0400 [OT] Slightly adjust normalizer - + The change is very subtle. If we have a single-char cluster that decomposes to three or more characters, then try recomposition, in case the farther mark may compose with the base. - src/hb-ot-shape-normalize.cc | 81 - +++++++++++++++++++++++++++++--------------- + src/hb-ot-shape-normalize.cc | 81 +++++++++++++++++++++++++++++--------------- 1 file changed, 54 insertions(+), 27 deletions(-) commit 07d682806349aee81f53114778ce0beb23909ed7 @@ -73259,14 +71703,13 @@ Author: Behdad Esfahbod Date: Thu Aug 9 22:33:32 2012 -0400 [OT] Avoid calling get_glyph() twice - + Essentially move the glyph mapping to normalization process. The effect on Devanagari is small (but observable). Should be more observable in simple text, like ASCII. src/hb-ot-shape-normalize-private.hh | 2 + - src/hb-ot-shape-normalize.cc | 76 - +++++++++++++++++++++++++----------- + src/hb-ot-shape-normalize.cc | 76 +++++++++++++++++++++++++----------- src/hb-ot-shape.cc | 44 ++++++++++----------- 3 files changed, 77 insertions(+), 45 deletions(-) @@ -73284,11 +71727,10 @@ Author: Behdad Esfahbod Date: Thu Aug 9 21:58:07 2012 -0400 [OT] More code shuffling around - + Preparing for merging map_glyphs() and normalize(). - src/hb-ot-shape.cc | 167 - +++++++++++++++++++++++++++-------------------------- + src/hb-ot-shape.cc | 167 +++++++++++++++++++++++++++-------------------------- 1 file changed, 86 insertions(+), 81 deletions(-) commit cd0c6e148f6d078b364370cb2f808b793b921be2 @@ -73296,7 +71738,7 @@ Author: Behdad Esfahbod Date: Thu Aug 9 21:48:55 2012 -0400 Shuffle buffer variable allocations around - + To room for more allocations, coming. src/hb-ot-layout-private.hh | 6 +++--- @@ -73312,16 +71754,14 @@ Date: Thu Aug 9 21:31:52 2012 -0400 Minor - src/hb-ot-shape-normalize.cc | 50 - +++++++++++++++++++++++++++----------------- + src/hb-ot-shape-normalize.cc | 50 +++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 19 deletions(-) commit 56c9e7c004e802ddcb8c704346026f1d7a812f9f Author: Behdad Esfahbod Date: Thu Aug 9 21:12:30 2012 -0400 - Fill out combining class resetting for fallback shaping - Thai/Lao/Tibetan + Fill out combining class resetting for fallback shaping Thai/Lao/Tibetan src/hb-ot-shape-fallback.cc | 38 +++++++++++++++++++++++++++++++++++++- src/hb-unicode-private.hh | 7 ++++--- @@ -73333,9 +71773,9 @@ Author: Behdad Esfahbod Date: Thu Aug 9 18:30:34 2012 -0400 Revert "Reject lookups with no subTable" - + This reverts commit 30ec9002d84e8b49290e782e6192069821ffa942. - + See previous commit. src/hb-ot-layout-common-private.hh | 1 - @@ -73345,13 +71785,11 @@ commit 2eaf482b371034ce6ebfaedee98049b036fd3493 Author: Behdad Esfahbod Date: Thu Aug 9 18:30:05 2012 -0400 - Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero - input" - + Revert "[GSUB/GPOS] Reject Context/ChainContext lookups with zero input" + This reverts commit 0981068b75710397f08e0d2d776a0a2ea68d7117. - - I was confused. Even if we access coverage[0] unconditionally, - we don't + + I was confused. Even if we access coverage[0] unconditionally, we don't need bound checks since the array machinary already handles that. src/hb-ot-layout-gsubgpos-private.hh | 2 -- @@ -73362,12 +71800,11 @@ Author: Behdad Esfahbod Date: Wed Aug 8 18:04:29 2012 -0400 Add check-exported-symbols.sh - + And misc linking fixes. src/Makefile.am | 1 + - src/check-exported-symbols.sh | 40 - ++++++++++++++++++++++++++++++++++++++++ + src/check-exported-symbols.sh | 40 ++++++++++++++++++++++++++++++++++++++++ src/check-internal-symbols.sh | 2 +- src/hb-ot-shape-complex-indic.cc | 2 +- src/hb-ot-shape.cc | 6 +++--- @@ -73390,8 +71827,7 @@ Date: Wed Aug 8 17:44:19 2012 -0400 src/hb-ot-shape.cc | 2 +- src/hb-shape-plan.cc | 2 +- src/hb-shape-plan.h | 2 +- - src/hb-tt-font.cc | 166 - +----------------------------------------- + src/hb-tt-font.cc | 166 +----------------------------------------- 12 files changed, 72 insertions(+), 226 deletions(-) commit 560d68af8168d1baff607b9616a3590af70fe9ec @@ -73399,7 +71835,7 @@ Author: Behdad Esfahbod Date: Wed Aug 8 17:16:01 2012 -0400 Use a export-file for Windows builds - + Apparently even that doesn't make check-internal-symbols.sh happy with mingw32. Going to disable that for DLLs again, but hopefully the export-file is doing *something*. @@ -73480,14 +71916,10 @@ Date: Wed Aug 8 14:33:37 2012 -0400 Minor renaming - src/Makefile.am | - 4 ++-- - ...sition-fallback-private.hh => hb-ot-shape-fallback-private.hh} | - 8 ++++---- - src/{hb-ot-shape-position-fallback.cc => hb-ot-shape-fallback.cc} | - 4 ++-- - src/hb-ot-shape.cc | - 4 ++-- + src/Makefile.am | 4 ++-- + ...sition-fallback-private.hh => hb-ot-shape-fallback-private.hh} | 8 ++++---- + src/{hb-ot-shape-position-fallback.cc => hb-ot-shape-fallback.cc} | 4 ++-- + src/hb-ot-shape.cc | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) commit 801298b590effd768607bb532dc83c73ba65d16b @@ -73495,7 +71927,7 @@ Author: Behdad Esfahbod Date: Wed Aug 8 14:26:36 2012 -0400 Fix cast - + https://bugs.freedesktop.org/show_bug.cgi?id=53233 src/hb-buffer-private.hh | 10 ++++++---- @@ -73507,15 +71939,14 @@ Author: Behdad Esfahbod Date: Wed Aug 8 01:20:45 2012 -0400 [OT] Implement fallback positioning - + Implemented for Arabic, Hebrew, and generic marks. Activated if no GPOS table present. src/hb-font.h | 3 +- src/hb-ft.cc | 3 +- src/hb-old.cc | 2 +- - src/hb-ot-shape-position-fallback.cc | 237 - ++++++++++++++++++++++++++++++++++- + src/hb-ot-shape-position-fallback.cc | 237 ++++++++++++++++++++++++++++++++++- src/hb-unicode-private.hh | 81 ++++++++++++ src/hb-unicode.cc | 107 ++++++---------- 6 files changed, 356 insertions(+), 77 deletions(-) @@ -73534,13 +71965,12 @@ Author: Behdad Esfahbod Date: Tue Aug 7 22:41:38 2012 -0400 [OT] Start adding fallback positioning - + Used when there is no GPOS. src/Makefile.am | 2 ++ src/hb-ot-shape-position-fallback-private.hh | 39 +++++++++++++++++++++++ - src/hb-ot-shape-position-fallback.cc | 47 - ++++++++++++++++++++++++++++ + src/hb-ot-shape-position-fallback.cc | 47 ++++++++++++++++++++++++++++ src/hb-ot-shape.cc | 23 +++----------- 4 files changed, 93 insertions(+), 18 deletions(-) @@ -73558,14 +71988,12 @@ Author: Behdad Esfahbod Date: Tue Aug 7 22:25:24 2012 -0400 [GSUB] Generalize would_apply() - - Fixes logic also, where before we were always matching if - glyphs_len==1 + + Fixes logic also, where before we were always matching if glyphs_len==1 and a ligature started with the glyph. src/hb-ot-layout-gsub-table.hh | 26 ++++++++++++++++++++----- - src/hb-ot-layout-gsubgpos-private.hh | 37 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 37 ++++++++++++++++++------------------ src/hb-ot-layout.cc | 3 +-- 3 files changed, 40 insertions(+), 26 deletions(-) @@ -73575,8 +72003,7 @@ Date: Tue Aug 7 22:13:25 2012 -0400 Add hb_font_glyph_from/to_string - src/hb-font-private.hh | 43 - +++++++++++++++++++++++++++++++++++++++++++ + src/hb-font-private.hh | 43 +++++++++++++++++++++++++++++++++++++++++++ src/hb-font.cc | 24 ++++++++++++++++++++---- src/hb-font.h | 11 +++++++++++ src/hb-private.hh | 16 ++++++++++++++++ @@ -73600,7 +72027,7 @@ Author: Behdad Esfahbod Date: Tue Aug 7 21:12:49 2012 -0400 [OT] Apply 'rclt' feature in horizontal mode - + 'rclt' is "Required Contextual Forms" being proposed by Microsoft. It's like 'calt', but supposedly always on. We apply 'calt' anyway, and now apply this too. @@ -73623,10 +72050,8 @@ Date: Tue Aug 7 16:57:02 2012 -0400 More refactoring - src/hb-ot-shape-normalize.cc | 161 - +++++++++++++++++++++++++++++++++++++++++- - src/hb-unicode-private.hh | 164 - +------------------------------------------ + src/hb-ot-shape-normalize.cc | 161 +++++++++++++++++++++++++++++++++++++++++- + src/hb-unicode-private.hh | 164 +------------------------------------------ 2 files changed, 162 insertions(+), 163 deletions(-) commit 428dfcab6634ff264570a0a5d715efb8048c3db5 @@ -73643,11 +72068,10 @@ Author: Behdad Esfahbod Date: Tue Aug 7 16:45:27 2012 -0400 Add Hebrew presentation forms shaping - + Lifted from https://bugzilla.mozilla.org/show_bug.cgi?id=728866 - src/hb-unicode-private.hh | 121 - +++++++++++++++++++++++++++++++++++++++++++++- + src/hb-unicode-private.hh | 121 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 1 deletion(-) commit 32d71dc13317b322e2c5de00d767b2cb15fddd8b @@ -73656,8 +72080,7 @@ Date: Tue Aug 7 14:11:16 2012 -0400 [Graphite] Minor - src/hb-graphite2.cc | 60 - +++++++++++++++++++++++++---------------------------- + src/hb-graphite2.cc | 60 +++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 32 deletions(-) commit 030ac5022e8a43b9329c26e72527bafc582ef44b @@ -73665,7 +72088,7 @@ Author: Behdad Esfahbod Date: Tue Aug 7 13:01:12 2012 -0400 Remove enum trailing comma - + ...again. src/hb-ot-shape-normalize-private.hh | 2 +- @@ -73696,7 +72119,7 @@ Author: Behdad Esfahbod Date: Mon Aug 6 19:35:04 2012 -0700 [Graphite] Fix graphite2 backend with RTL text - + Patch from Martin Hosken. src/hb-graphite2.cc | 33 ++++++++++++++++++--------------- @@ -73708,8 +72131,7 @@ Date: Mon Aug 6 19:25:39 2012 -0700 [Graphite] Port graphite2 backend to new shaper infrastructure - src/hb-graphite2.cc | 234 - +++++++++++++++++++++++--------------------------- + src/hb-graphite2.cc | 234 +++++++++++++++++++++++--------------------------- src/hb-graphite2.h | 2 +- src/hb-shaper-list.hh | 2 +- 3 files changed, 109 insertions(+), 129 deletions(-) @@ -73719,7 +72141,7 @@ Author: Behdad Esfahbod Date: Mon Aug 6 17:07:19 2012 -0700 Remove unnecessary lifecycle bits - + We already set recount to INVALID when destroying. This block was not necessary. @@ -73740,7 +72162,7 @@ Author: Behdad Esfahbod Date: Sun Aug 5 21:16:26 2012 -0700 [Indic] Minor, move 'blwf' after 'half' - + We don't apply them together anyway. Should not make any difference right now. @@ -73770,7 +72192,7 @@ Author: Behdad Esfahbod Date: Sat Aug 4 17:08:38 2012 -0700 Enlarge glyph_name buffer - + Lohit Devanagari has a glyph named: u0924_u094D.half_u0930_u094D.blwf.vatu @@ -73782,7 +72204,7 @@ Author: Behdad Esfahbod Date: Sat Aug 4 16:43:18 2012 -0700 Rewrite ARRAY_LENGTH as a template function - + Such it wouldn't apply to pointers accidentally. src/hb-ot-shape-complex-arabic-table.hh | 4 ++-- @@ -73794,7 +72216,7 @@ Author: Behdad Esfahbod Date: Fri Aug 3 18:54:54 2012 -0700 [Indic] Fix consonant position font lookup logic - + Oops. I broken this badly and the test suite did not notice. That worries me. Have to investigate. @@ -73823,14 +72245,12 @@ commit 71baea0062da4d7f143d62da38492a0813814e49 Author: Behdad Esfahbod Date: Fri Aug 3 17:40:07 2012 -0700 - [OT] Use general-category, not GDEF class, to decide to zero mark - advances - + [OT] Use general-category, not GDEF class, to decide to zero mark advances + At this point, the GDEF glyph synthesis looks pointless. Not that I have many fonts without GDEF lying around. - - As for mark advance zeroing when GPOS not available, that also - is being + + As for mark advance zeroing when GPOS not available, that also is being replaced by proper fallback mark positioning soon. src/hb-ot-shape.cc | 7 ++----- @@ -73851,12 +72271,11 @@ Author: Behdad Esfahbod Date: Thu Aug 2 14:21:40 2012 -0400 [Indic] Add per-script configuration tables - + This concludes the Indic shape_plan work. May do for Arabic also... src/hb-ot-shape-complex-indic-private.hh | 16 +- - src/hb-ot-shape-complex-indic.cc | 309 - +++++++++++++++---------------- + src/hb-ot-shape-complex-indic.cc | 309 +++++++++++++++---------------- 2 files changed, 159 insertions(+), 166 deletions(-) commit 85fc6c483f6d734febbe39270e84701a651f01f1 @@ -73864,12 +72283,11 @@ Author: Behdad Esfahbod Date: Thu Aug 2 12:21:44 2012 -0400 [Indic] Move more stuff to the shape_plan - + Almost done. Need to add per-script static tables. src/hb-ot-shape-complex-indic-machine.rl | 4 +- - src/hb-ot-shape-complex-indic.cc | 216 - ++++++++++++++++--------------- + src/hb-ot-shape-complex-indic.cc | 216 ++++++++++++++++--------------- 2 files changed, 116 insertions(+), 104 deletions(-) commit 914ffaa40fcca020f65bacdd709421e9047afd83 @@ -73878,8 +72296,7 @@ Date: Thu Aug 2 11:03:39 2012 -0400 [Indic] Move more repeated work into shape_plan - src/hb-ot-shape-complex-indic.cc | 63 - ++++++++++++++++++++++++++-------------- + src/hb-ot-shape-complex-indic.cc | 63 ++++++++++++++++++++++++++-------------- 1 file changed, 42 insertions(+), 21 deletions(-) commit a8c6da90f4c6e8d27a3a1b758a55476776d9f750 @@ -73887,12 +72304,11 @@ Author: Behdad Esfahbod Date: Thu Aug 2 10:46:34 2012 -0400 [OT] Add per-complex-shaper shape_plan data - + Hookup some Indic data to it. More to come. src/hb-ot-shape-complex-arabic.cc | 2 + - src/hb-ot-shape-complex-indic.cc | 128 - ++++++++++++++++++++++--------------- + src/hb-ot-shape-complex-indic.cc | 128 ++++++++++++++++++++++--------------- src/hb-ot-shape-complex-misc.cc | 4 ++ src/hb-ot-shape-complex-private.hh | 16 ++++- src/hb-ot-shape-private.hh | 1 + @@ -73908,8 +72324,7 @@ Date: Thu Aug 2 10:07:58 2012 -0400 src/hb-ot-map-private.hh | 8 ++--- src/hb-ot-map.cc | 11 ++++--- src/hb-ot-shape-complex-indic-machine.rl | 4 +-- - src/hb-ot-shape-complex-indic.cc | 50 - +++++++++++++++----------------- + src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++----------------- src/hb-ot-shape-private.hh | 6 ++++ src/hb-ot-shape.cc | 28 ++++++++++-------- 6 files changed, 57 insertions(+), 50 deletions(-) @@ -73959,8 +72374,7 @@ Date: Thu Aug 2 08:42:11 2012 -0400 [Indic] Move consonant-position-setting into initial_reordering() - src/hb-ot-shape-complex-indic.cc | 65 - +++++++++++++++++++++------------------- + src/hb-ot-shape-complex-indic.cc | 65 +++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 30 deletions(-) commit afbcc24be01a64bdb5c05c63880269145fa1d3c8 @@ -73968,7 +72382,7 @@ Author: Behdad Esfahbod Date: Thu Aug 2 08:36:40 2012 -0400 [GSUB] Wire the font, not just the face, down to substitute() - + We need the font for glyph lookup during GSUB pauses in Indic shaper. Could perhaps be avoided, but at this point, we don't mean to support separate substitute()/position() entry points (anymore), so there is @@ -73989,9 +72403,8 @@ Author: Behdad Esfahbod Date: Thu Aug 2 08:11:14 2012 -0400 [OT] Hide some API - - It was impossible to meaningfully use them from the outside these - days. + + It was impossible to meaningfully use them from the outside these days. src/hb-ot-layout-private.hh | 40 ++++++++++++++++++++++++++++++++-------- src/hb-ot-layout.cc | 20 -------------------- @@ -74013,11 +72426,10 @@ Author: Behdad Esfahbod Date: Thu Aug 2 07:53:18 2012 -0400 [Indic] More refactoring of consonant position peeking in the font - + To be moved to initial_reordering next... - src/hb-ot-shape-complex-indic.cc | 59 - ++++++++++++++++++++++++++++------------ + src/hb-ot-shape-complex-indic.cc | 59 ++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 18 deletions(-) commit 3eb6f81fd3f1e56679eec10d08f5e2303121753f @@ -74025,14 +72437,12 @@ Author: Behdad Esfahbod Date: Thu Aug 2 07:37:46 2012 -0400 [Indic] Refactor - + Move all the logic that needs to eventually move into the indic table into hb-ot-shape-complex-indic-private.hh. - src/hb-ot-shape-complex-indic-private.hh | 210 - ++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-indic.cc | 227 - ++----------------------------- + src/hb-ot-shape-complex-indic-private.hh | 210 ++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 227 ++----------------------------- 2 files changed, 218 insertions(+), 219 deletions(-) commit 3614ba242fc7d338761acdda365a134706035b6d @@ -74041,8 +72451,7 @@ Date: Thu Aug 2 07:13:55 2012 -0400 [Indic] Rename - src/hb-ot-shape-complex-indic.cc | 40 - +++++++++++++++++++++------------------- + src/hb-ot-shape-complex-indic.cc | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit 610e5e8f713bb2a68939b72cb2b801a7aaede4f9 @@ -74050,14 +72459,12 @@ Author: Behdad Esfahbod Date: Thu Aug 2 05:27:46 2012 -0400 [Indic] Streamline feature would_apply() - + Comes with some 10% speedup for Devanagari even! - src/hb-ot-map-private.hh | 85 - +++++++++++++++++++++++++--------------- + src/hb-ot-map-private.hh | 85 +++++++++++++++++++++++++--------------- src/hb-ot-map.cc | 18 ++++----- - src/hb-ot-shape-complex-indic.cc | 85 - +++++++++++++++++++++++----------------- + src/hb-ot-shape-complex-indic.cc | 85 +++++++++++++++++++++++----------------- 3 files changed, 110 insertions(+), 78 deletions(-) commit 1d002048d5afcd45abbb09fdf0419f13b2e2265c @@ -74067,8 +72474,7 @@ Date: Thu Aug 2 05:01:11 2012 -0400 [Indic] Minor src/hb-ot-shape-complex-indic-private.hh | 16 -------- - src/hb-ot-shape-complex-indic.cc | 64 - +++++++++++++++++++++----------- + src/hb-ot-shape-complex-indic.cc | 64 +++++++++++++++++++++----------- 2 files changed, 43 insertions(+), 37 deletions(-) commit 6f7611375521c6d285a9aa763f2ea5cb44cd0d39 @@ -74127,17 +72533,15 @@ Author: Behdad Esfahbod Date: Wed Aug 1 21:46:36 2012 -0400 [GSUB/GPOS] Use Coverage digests as gatekeeper - + Gives me a good 10% speedup for the Devanagari test case. Less so for less lookup-intensive tests. - - For the Devanagari test case, the false positive rate of the GSUB - digest + + For the Devanagari test case, the false positive rate of the GSUB digest is 4%. src/hb-ot-layout-gpos-table.hh | 30 +++++++++--------------------- - src/hb-ot-layout-gsub-table.hh | 35 - ++++++++++++----------------------- + src/hb-ot-layout-gsub-table.hh | 35 ++++++++++++----------------------- src/hb-ot-layout-gsubgpos-private.hh | 8 ++++++-- src/hb-ot-layout-private.hh | 4 ++++ src/hb-ot-layout.cc | 29 +++++++++++++++++++++++++---- @@ -74158,11 +72562,10 @@ Author: Behdad Esfahbod Date: Wed Aug 1 21:06:27 2012 -0400 Add hb_set_digest_t - + Implement two set digests, and one that combines the two. - src/hb-set-private.hh | 95 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-set-private.hh | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) commit c8accf1dd2d92cc4f714393eb0ea46f69bb182a6 @@ -74181,8 +72584,7 @@ Date: Wed Aug 1 19:03:46 2012 -0400 Inline font getters src/hb-fallback-shape.cc | 21 ++-- - src/hb-font-private.hh | 204 - ++++++++++++++++++++++++++++++++++++++ + src/hb-font-private.hh | 204 ++++++++++++++++++++++++++++++++++++++ src/hb-font.cc | 129 ++++-------------------- src/hb-graphite2.cc | 6 +- src/hb-old.cc | 10 +- @@ -74201,8 +72603,7 @@ Date: Wed Aug 1 18:07:42 2012 -0400 Use a lookup table for modified_combining_class src/hb-unicode-private.hh | 10 ++- - src/hb-unicode.cc | 213 - +++++++++++++++++++++++++++++++--------------- + src/hb-unicode.cc | 213 +++++++++++++++++++++++++++++++--------------- src/hb-unicode.h | 4 + 3 files changed, 157 insertions(+), 70 deletions(-) @@ -74219,8 +72620,7 @@ Date: Wed Aug 1 17:13:10 2012 -0400 src/hb-ot-shape-normalize.cc | 13 +++-- src/hb-ot-shape-private.hh | 6 +-- src/hb-ot-shape.cc | 4 +- - src/hb-unicode-private.hh | 112 - ++++++++++++++++++++-------------------- + src/hb-unicode-private.hh | 112 ++++++++++++++++++++-------------------- src/hb-unicode.cc | 5 +- 9 files changed, 73 insertions(+), 75 deletions(-) @@ -74230,8 +72630,7 @@ Date: Wed Aug 1 17:01:59 2012 -0400 Move unicode accessors around - src/hb-unicode-private.hh | 73 - ++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-unicode-private.hh | 73 ++++++++++++++++++++++++++++++++++++++++++++++- src/hb-unicode.cc | 65 ++++------------------------------------- 2 files changed, 78 insertions(+), 60 deletions(-) @@ -74246,8 +72645,7 @@ Date: Wed Aug 1 16:23:44 2012 -0400 src/hb-icu.cc | 4 +- src/hb-unicode-private.hh | 2 +- src/hb-unicode.cc | 11 ++-- - src/hb-unicode.h | 124 - +++++++++++++++++++++++++++++++++++++++++++++- + src/hb-unicode.h | 124 +++++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 134 insertions(+), 49 deletions(-) commit 84186a64004e5dcd2ce98b564d0e0a09aa5d68b2 @@ -74264,7 +72662,7 @@ Author: Behdad Esfahbod Date: Wed Aug 1 00:21:09 2012 -0400 [hb-old] Adjust mark positioning parameters - + Fallback mark positioning works now... With hb-ft and hb-view / hb-shape at least. @@ -74286,12 +72684,12 @@ Author: Behdad Esfahbod Date: Tue Jul 31 23:41:06 2012 -0400 [GPOS] Adjust mark advance-width zeroing logic - + If there is no GPOS, zero mark advances. - + If there *is* GPOS and the shaper requests so, zero mark advances for attached marks. - + Fixes regression with Tibetan, where the font has GPOS, and marks a glyph as mark where it shouldn't get zero advance. @@ -74320,7 +72718,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 23:08:25 2012 -0400 [OT] Zero mark advances if the shaper desires so - + Enabled for all shapers except for Indic. src/hb-ot-shape-complex-arabic.cc | 1 + @@ -74354,7 +72752,7 @@ Author: Behdad Esfahbod Date: Tue Jul 31 22:43:32 2012 -0400 [hb-old] Implement getGlyphMetrics() - + Still working on it. src/hb-old.cc | 13 ++++++++++++- @@ -74365,20 +72763,18 @@ Author: Behdad Esfahbod Date: Tue Jul 31 21:36:16 2012 -0400 Implement Unicode compatibility decompositions - + Based on patch from Philip Withnall. https://bugs.freedesktop.org/show_bug.cgi?id=41095 src/hb-glib.cc | 30 +++++++++++++++++++++++++ src/hb-icu.cc | 36 +++++++++++++++++++++++++++++- - src/hb-ot-shape-normalize.cc | 53 - +++++++++++++++++++++++++++++--------------- + src/hb-ot-shape-normalize.cc | 53 +++++++++++++++++++++++++++++--------------- src/hb-unicode-private.hh | 1 + src/hb-unicode.cc | 27 +++++++++++++++++++++- src/hb-unicode.h | 37 ++++++++++++++++++++++++++++++- test/api/hb-test.h | 1 + - test/api/test-unicode.c | 50 - +++++++++++++++++++++++++++++++++++++++++ + test/api/test-unicode.c | 50 +++++++++++++++++++++++++++++++++++++++++ 8 files changed, 214 insertions(+), 21 deletions(-) commit 321ec29cc270e7e66a529696b70b2caac553c95f @@ -74405,14 +72801,13 @@ Author: Behdad Esfahbod Date: Mon Jul 30 21:08:51 2012 -0400 [OT] Streamline complex shaper enumeration - + Add a shaper class struct. src/hb-ot-shape-complex-arabic.cc | 37 ++++---- src/hb-ot-shape-complex-indic.cc | 47 ++++++--- src/hb-ot-shape-complex-misc.cc | 67 ++++++------- - src/hb-ot-shape-complex-private.hh | 179 - ++++++++++------------------------- + src/hb-ot-shape-complex-private.hh | 179 ++++++++++------------------------- src/hb-ot-shape-normalize-private.hh | 4 +- src/hb-ot-shape-private.hh | 2 +- src/hb-ot-shape.cc | 16 ++-- @@ -74438,8 +72833,7 @@ Date: Mon Jul 30 19:47:53 2012 -0400 src/hb-ot-layout-gpos-table.hh | 2 +- src/hb-ot-layout-gsub-table.hh | 2 +- - src/hb-ot-layout-gsubgpos-private.hh | 154 - +++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 154 +++++++++++++++++------------------ 3 files changed, 76 insertions(+), 82 deletions(-) commit 300c7307eb7943ba7416b672345506be1e27c6ba @@ -74468,11 +72862,9 @@ Date: Mon Jul 30 19:30:01 2012 -0400 src/hb-ot-layout-gpos-table.hh | 11 ++-- src/hb-ot-layout-gsub-table.hh | 18 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 99 - +++++++++++++++++++++++++++++---- + src/hb-ot-layout-gsubgpos-private.hh | 99 +++++++++++++++++++++++++++++---- src/hb-ot-layout-private.hh | 12 ---- - src/hb-ot-layout.cc | 104 - +++-------------------------------- + src/hb-ot-layout.cc | 104 +++-------------------------------- src/hb-ot-layout.h | 12 ++-- src/hb-ot-shape.cc | 10 ++-- 7 files changed, 127 insertions(+), 139 deletions(-) @@ -74520,8 +72912,7 @@ Date: Mon Jul 30 17:48:04 2012 -0400 [CoreText] Port to shape_plan infrastructure - src/hb-coretext.cc | 161 - ++++++++++++++++++++++++++--------------------------- + src/hb-coretext.cc | 161 ++++++++++++++++++++++++++--------------------------- 1 file changed, 80 insertions(+), 81 deletions(-) commit 6cdfd14bb19d60ac3d6b20ff611408432254f273 @@ -74538,7 +72929,7 @@ Author: Behdad Esfahbod Date: Mon Jul 30 14:53:41 2012 -0400 Unbreak Hangul jamo composition - + When we removed the separate Hangul shaper, the specific normalization preference of Hangul was lost. Fix that. Also, the Thai shaper was copied from Hangul, so had the fully-composed normalization behavior, @@ -74556,7 +72947,7 @@ Author: Behdad Esfahbod Date: Mon Jul 30 13:54:46 2012 -0400 [Indic] Recategorize Telugu length marks - + Fixes 8 more Telugu tests. Failures at 15 (0.00154548%). src/hb-unicode.cc | 8 ++++++++ @@ -74569,8 +72960,7 @@ Date: Mon Jul 30 12:40:18 2012 -0400 Add Hebrew test - .../texts/in-tree/shaper-default/script-hebrew/misc/diacritics.txt - | 1 + + .../texts/in-tree/shaper-default/script-hebrew/misc/diacritics.txt | 1 + 1 file changed, 1 insertion(+) commit f2377155e35c15919af4d7db21b6edc6783146b6 @@ -74578,15 +72968,15 @@ Author: Behdad Esfahbod Date: Mon Jul 30 10:50:57 2012 -0400 [hb-old] Fix misc leaks - + Backport (forward-port?!) from upstream: - + commit 3ab7b37bdebf0f8773493a1fee910b151c4de30f Author: Behdad Esfahbod Date: Mon Jul 30 10:50:22 2012 -0400 - + Fix misc leaks - + https://bugs.freedesktop.org/show_bug.cgi?id=31992 https://bugs.freedesktop.org/show_bug.cgi?id=31993 https://bugs.freedesktop.org/show_bug.cgi?id=31994 @@ -74623,8 +73013,7 @@ Date: Mon Jul 30 02:38:39 2012 -0400 [OT] Gain back some lost speed src/hb-ot-layout-private.hh | 27 +++++++++++++++- - src/hb-ot-layout.cc | 63 - ++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout.cc | 63 ++++++++++++++++++++++++++++++++++---- src/hb-ot-map-private.hh | 26 +++------------- src/hb-ot-map.cc | 35 +++++++++++++++------ src/hb-ot-shape-complex-indic.cc | 2 +- @@ -74636,7 +73025,7 @@ Author: Behdad Esfahbod Date: Mon Jul 30 02:36:46 2012 -0400 [OT] Remove hb_ot_layout_ensure() - + I didn't like it from the beginning. src/hb-ot-layout.cc | 9 +++++---- @@ -74658,14 +73047,12 @@ Author: Behdad Esfahbod Date: Mon Jul 30 01:46:34 2012 -0400 [GSUB] Further adjustments to mark-attachment vs ligation interaction - - The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada - badly, + + The d1d69ec52e75a78575b620a1c456d528b6078170 change broke Kannada badly, since it was ligating consonants, pushing matra out, and then ligating with the matra. Adjust for that. See comments. - src/hb-ot-layout-gsub-table.hh | - 11 ++++++++--- + src/hb-ot-layout-gsub-table.hh | 11 ++++++++--- .../in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) @@ -74682,11 +73069,9 @@ commit d1d69ec52e75a78575b620a1c456d528b6078170 Author: Behdad Esfahbod Date: Mon Jul 30 00:51:47 2012 -0400 - [GSUB] Don't ligate glyphs attached to different components of - ligatures - - This concludes the mark-attachment vs ligating interaction fixes - (for now). + [GSUB] Don't ligate glyphs attached to different components of ligatures + + This concludes the mark-attachment vs ligating interaction fixes (for now). src/hb-ot-layout-gsub-table.hh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) @@ -74714,13 +73099,12 @@ Author: Behdad Esfahbod Date: Mon Jul 30 00:00:59 2012 -0400 [GSUB] Fix mark component stuff when ligatures form ligatures! - + See comments. - + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=437633 - src/hb-ot-layout-gsub-table.hh | 117 - +++++++++++++++++++++++------------ + src/hb-ot-layout-gsub-table.hh | 117 +++++++++++++++++++++++------------ src/hb-ot-layout-gsubgpos-private.hh | 8 --- src/hb-ot-layout-private.hh | 8 +-- 3 files changed, 79 insertions(+), 54 deletions(-) @@ -74730,7 +73114,7 @@ Author: Behdad Esfahbod Date: Sun Jul 29 22:02:24 2012 -0400 [GSUB/GPOS] Minor - + Start squeezing more out of lig_id/lig_comp. src/hb-ot-layout-gsub-table.hh | 6 +++--- @@ -74751,18 +73135,16 @@ Author: Behdad Esfahbod Date: Sun Jul 29 20:37:38 2012 -0400 [GSUB] Don't set new lig_id on mark ligatures - + If two marks form a ligature, retain their previous lig_id, such that the mark ligature can attach to ligature components... - + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676343 - - In fact, I noticed that we should not let ligatures form between - glyphs + + In fact, I noticed that we should not let ligatures form between glyphs coming from different components of a previous ligature. For example, if the sequence is: LAM,SHADDA,LAM,FATHA,HEH, the LAM,LAM,HEH form a - ligature, putting SHADDA and FATHA next to eachother. However, - it would + ligature, putting SHADDA and FATHA next to eachother. However, it would be wrong to ligate them. Uniscribe has this bug also. src/hb-ot-layout-gsub-table.hh | 18 ++++++++++++++---- @@ -74775,8 +73157,7 @@ Date: Sun Jul 29 20:31:36 2012 -0400 Add Arabic tests for mark ligature component attachments .../script-arabic/misc/diacritics/MANIFEST | 1 + - .../misc/diacritics/ligature-components.txt | 18 - ++++++++++++++++++ + .../misc/diacritics/ligature-components.txt | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) commit a15b70a81a609f024083cb04f9819483f4d5cab7 @@ -74784,7 +73165,7 @@ Author: Behdad Esfahbod Date: Sun Jul 29 20:09:22 2012 -0400 [hb-old] Fix cluster formation in RTL - + Unlike Uniscribe, hb-old returns glyphs in logical order, so the logic does not need to duplicated for RTL. @@ -74815,9 +73196,8 @@ Author: Behdad Esfahbod Date: Sat Jul 28 21:16:08 2012 -0400 [Uniscribe] Remove hb_uniscribe_font_ensure() - - Wasn't a huge fan of putting the burden on the user. Just remove - it and + + Wasn't a huge fan of putting the burden on the user. Just remove it and do what we've got to do transparently. src/hb-uniscribe.cc | 6 +++++- @@ -74828,16 +73208,13 @@ commit 5d874d566fe5d2cc4cfaf02c79b663d8a626ca1e Author: Behdad Esfahbod Date: Sat Jul 28 21:05:25 2012 -0400 - [GPOS] Fix mark-to-mark positioning when one of the marks is - a ligature - - This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke - MarkMarkPos + [GPOS] Fix mark-to-mark positioning when one of the marks is a ligature + + This commit: a3313e54008167e415b72c780ca7b9cda958d07e broke MarkMarkPos when one of the marks itself is a ligature. That regressed 26 Tibetan tests (up from zero!). Fix that. Tibetan back to zero. - src/hb-ot-layout-gpos-table.hh | 27 - ++++++++++++++++------ + src/hb-ot-layout-gpos-table.hh | 27 ++++++++++++++++------ src/hb-ot-layout-private.hh | 5 ++-- test/shaping/texts/in-tree/shaper-indic/MANIFEST | 1 + .../indic/script-sinhala/misc/MANIFEST | 1 + @@ -74862,8 +73239,7 @@ Date: Sat Jul 28 18:34:58 2012 -0400 [GSUB] Simplify would-apply - src/hb-ot-layout-gsub-table.hh | 71 - +++--------------------------------- + src/hb-ot-layout-gsub-table.hh | 71 +++--------------------------------- src/hb-ot-layout-gsubgpos-private.hh | 24 +++--------- 2 files changed, 11 insertions(+), 84 deletions(-) @@ -74883,19 +73259,17 @@ Author: Behdad Esfahbod Date: Sat Jul 28 17:31:01 2012 -0400 [GSUB/GPOS] Add get_coverage() and use it to speed up main loop - + And use it to speed up the hotspot by checking coverage directly in the main loop, not 10 functions deep in. - + Gives me a solid 20% boost with Indic test suite. Less so for less lookup-intensive scenarios. - + Remove the "fast_path" hack from before. - src/hb-ot-layout-gpos-table.hh | 179 - ++++++++++++++++++++++++++++++----- - src/hb-ot-layout-gsub-table.hh | 166 - ++++++++++++++++++++++++++------ + src/hb-ot-layout-gpos-table.hh | 179 ++++++++++++++++++++++++++++++----- + src/hb-ot-layout-gsub-table.hh | 166 ++++++++++++++++++++++++++------ src/hb-ot-layout-gsubgpos-private.hh | 26 +++++ 3 files changed, 321 insertions(+), 50 deletions(-) @@ -74922,15 +73296,14 @@ Author: Behdad Esfahbod Date: Fri Jul 27 04:02:38 2012 -0400 Implement shape_plan caching - + Should give us some performance boost. TODO | 4 ++ src/hb-buffer-private.hh | 30 ++++++++++++++ src/hb-font-private.hh | 6 +++ src/hb-font.cc | 15 ++++++- - src/hb-shape-plan.cc | 100 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-shape-plan.cc | 100 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-shape-plan.h | 7 ++++ src/hb-shape.cc | 2 +- 7 files changed, 162 insertions(+), 2 deletions(-) @@ -74950,7 +73323,7 @@ Author: Behdad Esfahbod Date: Fri Jul 27 03:12:23 2012 -0400 Don't fail choosing shaper on planning failure - + Shapers have a chance to reject a font in face shaper_data creation. No need to allow failing during planning. @@ -74988,8 +73361,7 @@ Date: Fri Jul 27 02:29:32 2012 -0400 Move ot shaper completely to shape_plan src/hb-ot-shape-private.hh | 6 -- - src/hb-ot-shape.cc | 181 - +++++++++++++++++++++------------------------ + src/hb-ot-shape.cc | 181 +++++++++++++++++++++------------------------ src/hb-uniscribe.cc | 2 +- 3 files changed, 84 insertions(+), 105 deletions(-) @@ -75022,8 +73394,7 @@ Date: Fri Jul 27 01:26:11 2012 -0400 src/hb-shape.cc | 5 ++ src/hb-shaper-impl-private.hh | 3 +- src/hb-shaper-private.hh | 4 -- - src/hb-uniscribe.cc | 130 - ++++++++++++------------------------------ + src/hb-uniscribe.cc | 130 ++++++++++++------------------------------ 5 files changed, 48 insertions(+), 174 deletions(-) commit c32c096a429da3e64896cf42ff5ab8c775d3c2ec @@ -75031,7 +73402,7 @@ Author: Behdad Esfahbod Date: Fri Jul 27 01:13:53 2012 -0400 Switch to shape_plan - + Not optimized yet. Eats babies. And no shaper uses the shape_plan. src/hb-shape-plan.cc | 37 +++++++++++++++++++++++++++++++++++-- @@ -75050,8 +73421,7 @@ Date: Thu Jul 26 23:46:53 2012 -0400 src/hb-old.cc | 4 ++- src/hb-ot-shape.cc | 4 ++- src/hb-shape-plan-private.hh | 7 ++++ - src/hb-shape-plan.cc | 76 - ++++++++++++++++++++++++++++++++++++++++++-- + src/hb-shape-plan.cc | 76 ++++++++++++++++++++++++++++++++++++++++++-- src/hb-shape.cc | 4 +++ src/hb-shaper-private.hh | 4 +-- src/hb-uniscribe.cc | 4 ++- @@ -75071,8 +73441,7 @@ Date: Thu Jul 26 22:05:39 2012 -0400 src/hb-shape-plan.cc | 2 + src/hb-shape.cc | 98 ++++---------------------------------- src/hb-shaper-private.hh | 16 ++++++- - src/hb-shaper.cc | 109 - +++++++++++++++++++++++++++++++++++++++++++ + src/hb-shaper.cc | 109 +++++++++++++++++++++++++++++++++++++++++++ src/hb-uniscribe.cc | 3 +- 10 files changed, 145 insertions(+), 95 deletions(-) @@ -75081,7 +73450,7 @@ Author: Behdad Esfahbod Date: Thu Jul 26 17:34:25 2012 -0400 Start adding a unified shaper access infrastructure - + Add global shape_plan. Unused so far. src/Makefile.am | 15 +- @@ -75100,8 +73469,7 @@ Date: Thu Jul 26 17:34:25 2012 -0400 ...scribe-private.hh => hb-shaper-impl-private.hh} | 20 ++- src/{hb-old-private.hh => hb-shaper-list.hh} | 30 ++-- src/hb-shaper-private.hh | 81 +++++++++ - src/hb-uniscribe.cc | 186 - +++++++++++++-------- + src/hb-uniscribe.cc | 186 +++++++++++++-------- 17 files changed, 608 insertions(+), 238 deletions(-) commit fa2dfcd560444d8c54b6349ee106134d3536f79b @@ -75119,11 +73487,10 @@ Author: Jonathan Kew Date: Thu Jul 26 15:58:45 2012 -0400 [CoreText] Ensure cluster indices in output buffer are non-decreasing. - - Does not provide Uniscribe-compatible results, but should at least - avoid + + Does not provide Uniscribe-compatible results, but should at least avoid breaking hb-view due to out-of-order cluster values. - + For RTL runs, ensure cluster values are non-increasing (instead of non-decreasing). @@ -75144,18 +73511,18 @@ Author: Behdad Esfahbod Date: Wed Jul 25 19:30:15 2012 -0400 [hb-old] Fix Arabic cursive positioning - + Backporting from upstream: - + commit b847f24ce855d24f6822bcd9c0006905e81b94d8 Author: Behdad Esfahbod Date: Wed Jul 25 19:29:16 2012 -0400 - + [arabic] Fix Arabic cursive positioning - + This was clearly broken in testing. Who knows... Fixes for me. Test with a Nastaleeq font, or with Arabic Typesetting. - + Backporting from Chromium. src/hb-old/harfbuzz-shaper.cpp | 2 +- @@ -75175,12 +73542,11 @@ Author: Behdad Esfahbod Date: Wed Jul 25 19:20:34 2012 -0400 [hb-old] Fix clusters - + Unlike its "documentation", hb-old's log_clusters are, well, indeed logical, not visual. Fixup. Adapted / copied from hb-uniscribe. - src/hb-old.cc | 51 - ++++++++++++++++++++++++++++++++++---------- + src/hb-old.cc | 51 ++++++++++++++++++++++++++++++++++---------- src/hb-old/harfbuzz-shaper.h | 1 + src/hb-uniscribe.cc | 5 +++-- 3 files changed, 44 insertions(+), 13 deletions(-) @@ -75190,9 +73556,8 @@ Author: Behdad Esfahbod Date: Wed Jul 25 18:37:51 2012 -0400 [GPOS] Fix MarkMarkPos applied to results of MultipleSubst - - This was broken as a result of - 7b84c536c10ab90ed96a033d88e9ad232d46c5b8. + + This was broken as a result of 7b84c536c10ab90ed96a033d88e9ad232d46c5b8. As Khaled reported, MarkMark positioning was broken with glyphs resulting from a MultipleSubst. Fixed. Test with the ALLAH character in Amiri. @@ -75215,7 +73580,7 @@ Author: Behdad Esfahbod Date: Tue Jul 24 21:05:12 2012 -0400 [hb-old] Add HarfBuzz.old shaper - + Choose using shaper name "old". configure.ac | 8 + @@ -75224,8 +73589,7 @@ Date: Tue Jul 24 21:05:12 2012 -0400 src/hb-old.cc | 369 ++++++++++++++++++++++++ src/hb-old/.gitignore | 7 - src/hb-old/Makefile.am | 2 + - src/hb-old/Makefile.in | 762 - ------------------------------------------------- + src/hb-old/Makefile.in | 762 ------------------------------------------------- src/hb-shape.cc | 8 +- 8 files changed, 436 insertions(+), 774 deletions(-) @@ -75236,8 +73600,7 @@ Date: Tue Jul 24 19:53:55 2012 -0400 [hb-old] Define Unicode funcs in terms of new HarfBuzz src/hb-old/Makefile.am | 4 + - src/hb-old/Makefile.in | 182 - ++++++++++++++++++++++++++++++++++++----- + src/hb-old/Makefile.in | 182 ++++++++++++++++++++++++++++++++++++----- src/hb-old/harfbuzz-external.h | 100 +++++++++++++--------- 3 files changed, 224 insertions(+), 62 deletions(-) @@ -75254,8 +73617,7 @@ Date: Tue Jul 24 19:49:48 2012 -0400 src/hb-old/harfbuzz-khmer.c | 25 --- src/hb-old/harfbuzz-myanmar.c | 28 --- src/hb-old/harfbuzz-shaper-private.h | 12 -- - src/hb-old/harfbuzz-shaper.cpp | 403 - +++-------------------------------- + src/hb-old/harfbuzz-shaper.cpp | 403 +++-------------------------------- src/hb-old/harfbuzz-shaper.h | 31 --- src/hb-old/harfbuzz-thai.c | 111 ---------- src/hb-old/harfbuzz-tibetan.c | 26 --- @@ -75278,8 +73640,7 @@ Date: Tue Jul 24 19:21:22 2012 -0400 [hb-old] Remove unused header file - src/hb-old/harfbuzz-shape.h | 199 - -------------------------------------------- + src/hb-old/harfbuzz-shape.h | 199 -------------------------------------------- 1 file changed, 199 deletions(-) commit fb47209c5b3aa992faf18d1a3f78b9d7682cf62f @@ -75316,8 +73677,7 @@ Date: Tue Jul 24 19:16:56 2012 -0400 src/hb-old/harfbuzz-gdef.h | 140 + src/hb-old/harfbuzz-global.h | 118 + src/hb-old/harfbuzz-gpos-private.h | 729 ++++ - src/hb-old/harfbuzz-gpos.c | 6094 - ++++++++++++++++++++++++++++++++++ + src/hb-old/harfbuzz-gpos.c | 6094 ++++++++++++++++++++++++++++++++++ src/hb-old/harfbuzz-gpos.h | 155 + src/hb-old/harfbuzz-greek.c | 447 +++ src/hb-old/harfbuzz-gsub-private.h | 483 +++ @@ -75361,7 +73721,7 @@ Author: Behdad Esfahbod Date: Tue Jul 24 17:03:55 2012 -0400 [Mongolian] Remove Mongolian Vowel Separator at the end of shaping - + Results match Uniscribe now. src/hb-unicode-private.hh | 3 +++ @@ -75371,20 +73731,16 @@ commit aa6d849838d5231465ae1a25a4dd5ea1e9380ff9 Author: Jonathan Kew Date: Tue Jul 24 15:52:32 2012 -0400 - [CoreText] Add basic Core Text backend for comparison with our - native shaping - - Does not attempt to handle clusters in a Uniscribe- or - HarfBuzz-compatible way; - just returns the original string indexes that CT maintains. These - may even be + [CoreText] Add basic Core Text backend for comparison with our native shaping + + Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way; + just returns the original string indexes that CT maintains. These may even be out-of-order in the case of reordrant glyphs. configure.ac | 12 ++ src/Makefile.am | 7 + src/hb-coretext-private.hh | 42 ++++++ - src/hb-coretext.cc | 323 - +++++++++++++++++++++++++++++++++++++++++++++ + src/hb-coretext.cc | 323 +++++++++++++++++++++++++++++++++++++++++++++ src/hb-coretext.h | 43 ++++++ src/hb-shape.cc | 6 + 6 files changed, 433 insertions(+) @@ -75393,11 +73749,9 @@ commit ec8d2494694275dfbbac2dd0d33ca2894b0463d6 Author: Behdad Esfahbod Date: Tue Jul 24 15:40:37 2012 -0400 - Make data members of various OpenType structs protected instead - of private - - Should fix warnings generated when building with - -Wunused-private-field. + Make data members of various OpenType structs protected instead of private + + Should fix warnings generated when building with -Wunused-private-field. Based on patch from Jonathan Kew. src/hb-open-file-private.hh | 8 +++--- @@ -75406,8 +73760,7 @@ Date: Tue Jul 24 15:40:37 2012 -0400 src/hb-ot-hmtx-table.hh | 2 +- src/hb-ot-layout-common-private.hh | 14 ++++++----- src/hb-ot-layout-gdef-table.hh | 20 +++++++-------- - src/hb-ot-layout-gpos-table.hh | 48 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-table.hh | 48 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-table.hh | 30 +++++++++++----------- src/hb-ot-layout-gsubgpos-private.hh | 32 ++++++++++++------------ src/hb-ot-maxp-table.hh | 2 +- @@ -75428,17 +73781,14 @@ Author: Behdad Esfahbod Date: Tue Jul 24 13:48:49 2012 -0400 [Indic] Reposition Gurmukhi top matras to after post - - The font is forming a post-base consonant in some samples, and - Uniscribe + + The font is forming a post-base consonant in some samples, and Uniscribe positions top matra on the post-base. Do the same. - + Gurmukhi failures down from 59 to 41 (0.0674242%). - src/hb-ot-shape-complex-indic.cc | - 2 +- - .../texts/in-tree/shaper-indic/indic/script-gurmukhi/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic.cc | 2 +- + .../texts/in-tree/shaper-indic/indic/script-gurmukhi/misc/misc.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit c3f769ba09df319fa69d04f68c57444f95eceee6 @@ -75446,33 +73796,30 @@ Author: Behdad Esfahbod Date: Tue Jul 24 13:26:32 2012 -0400 [Indic] Ignore Uniscribe output containing two zero-width space glyphs - + Uniscribe is buggy and sometimes /eats/ a mark next to a non-joiner. Most of Malayalam failures where actually hitting this bug. - + Ignore test output with two zero-width space glyphs. This is a hack until we build up the test suite infrastructure better. - + Bengali went down by 9, Devanagari by 2, Kannada by 130, Malayalm down from 1197 to 307, Sinhala down by 16, Telugu down by 26. New stats: - + BENGALI: 353996 out of 354285 tests passed. 289 failed (0.0815727%) DEVANAGARI: 693573 out of 693628 tests passed. 55 failed (0.00792932%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 951086 out of 951913 tests passed. 827 failed (0.0868777%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) - MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed - (0.0292823%) + MALAYALAM: 1048109 out of 1048416 tests passed. 307 failed (0.0292823%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271715 out of 271847 tests passed. 132 failed (0.0485567%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970550 out of 970573 tests passed. 23 failed (0.00236973%) - test/shaping/hb_test_tools.py | - 1 + - .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | - 2 ++ + test/shaping/hb_test_tools.py | 1 + + .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 2 ++ 2 files changed, 3 insertions(+) commit 65c43accdc4d2082282d5cedba8514b8df0c18a2 @@ -75480,26 +73827,24 @@ Author: Behdad Esfahbod Date: Tue Jul 24 03:36:47 2012 -0400 [Indic] Better position left-matra in Malayalam - + Just put it before base, which is what's expected. - + Malayalam failures down from 1559 to 1197 (0.114172%). - + BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%) DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) - MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed - (0.114172%) + MALAYALAM: 1047219 out of 1048416 tests passed. 1197 failed (0.114172%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%) - src/hb-ot-shape-complex-indic.cc | 41 - +++++++++++++++------- + src/hb-ot-shape-complex-indic.cc | 41 +++++++++++++++------- .../indic/script-malayalam/misc/misc.txt | 1 + 2 files changed, 29 insertions(+), 13 deletions(-) @@ -75508,35 +73853,30 @@ Author: Behdad Esfahbod Date: Tue Jul 24 03:04:36 2012 -0400 [Indic] Implement Reph+Ya-Phalaa interaction - - The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded - that to - get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H - sequence - requests subjoining, while a H,ZWJ requests Half form. Implement - that. - + + The sequence Ra,H,Ya in Bengali is ambigious and Unicode encoded that to + get Ya-Phalaa, one would place ZWJ before Halant. Ie. a ZWJ,H sequence + requests subjoining, while a H,ZWJ requests Half form. Implement that. + Bengali failures go down from 377 to 297 (0.0838308%). Gujarati is down by 4 to 17 (0.0046384%). Kannada is down by 226 to 957 (0.100534%). - + Current status: - + BENGALI: 353988 out of 354285 tests passed. 297 failed (0.0838308%) DEVANAGARI: 693571 out of 693628 tests passed. 57 failed (0.00821766%) GUJARATI: 366489 out of 366506 tests passed. 17 failed (0.0046384%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 950956 out of 951913 tests passed. 957 failed (0.100534%) KHMER: 299094 out of 299124 tests passed. 30 failed (0.0100293%) - MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed - (0.148701%) + MALAYALAM: 1046857 out of 1048416 tests passed. 1559 failed (0.148701%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271699 out of 271847 tests passed. 148 failed (0.0544424%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%) - src/hb-ot-shape-complex-indic.cc | - 10 ++++++++-- + src/hb-ot-shape-complex-indic.cc | 10 ++++++++-- .../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) @@ -75545,12 +73885,12 @@ Author: Behdad Esfahbod Date: Tue Jul 24 02:30:38 2012 -0400 [Indic] Limit matras to 4 per syllable - + Also limit joiners. - + This limits our syllable length to a constant, and is closer to what Uniscribe does anyway. - + Two Devanagari tests regressed, but who cares about tests with 20 joiners in a row?! Devanagari at 57 (0.00821766%) now. @@ -75562,13 +73902,11 @@ Author: Behdad Esfahbod Date: Tue Jul 24 02:25:26 2012 -0400 [Indic] Unmark U+17D1 KHMER SIGN VIRIAM to NOT be a Virama - + Fixes another 1 Khmer failure. Down to 30 (0.0100293%) now. - src/hb-ot-shape-complex-indic.cc | - 2 ++ - .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic.cc | 2 ++ + .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 + 2 files changed, 3 insertions(+) commit 6824a7194e01b77eddb95bd95a9b32e219140912 @@ -75576,7 +73914,7 @@ Author: Behdad Esfahbod Date: Tue Jul 24 02:22:18 2012 -0400 [Indic] Recategorize Khmer various signs as top matras - + Khmer failures down from 39 to 31 (0.0103636%). src/hb-ot-shape-complex-indic.cc | 23 ++++++++++------------- @@ -75587,16 +73925,13 @@ Author: Behdad Esfahbod Date: Tue Jul 24 02:10:20 2012 -0400 [Indic] Reposition Khmer prebase-reordering Ra around split matras - - In Khmer coeng model, a V,Ra can go *after* matras. If it goes - after a - split matra, it should be reordered to *before* the left part of - such matra. - + + In Khmer coeng model, a V,Ra can go *after* matras. If it goes after a + split matra, it should be reordered to *before* the left part of such matra. + Khmer failures down from 136 to 39 (0.0130381%). - src/hb-ot-shape-complex-indic.cc | 13 - +++++++++++++ + src/hb-ot-shape-complex-indic.cc | 13 +++++++++++++ .../south-east-asian/script-khmer/misc/misc.txt | 4 ++++ 2 files changed, 17 insertions(+) @@ -75614,11 +73949,10 @@ Author: Behdad Esfahbod Date: Tue Jul 24 01:32:07 2012 -0400 [Indic] Position Khmer U+17CE - + Fixes another 6 Khmer failures. Now at 136 (0.0454661%). - src/hb-ot-shape-complex-indic.cc | - 6 ++++++ + src/hb-ot-shape-complex-indic.cc | 6 ++++++ .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 + 2 files changed, 7 insertions(+) @@ -75627,10 +73961,10 @@ Author: Behdad Esfahbod Date: Tue Jul 24 01:04:18 2012 -0400 [Indic] Don't reposition Khmer Bindu - + Khmer Bindu doesn't like to move to syllable end. Leave it where it was. - + Brings down Khmer failures from 510 to 142 (0.047572%). src/hb-ot-shape-complex-indic.cc | 2 ++ @@ -75641,11 +73975,10 @@ Author: Behdad Esfahbod Date: Tue Jul 24 00:26:43 2012 -0400 [Indic] In Sinhala, form forced Reph even if no other consonant found - + Fixes another 10 Sinhala failures. Down to 148 (0.0544424%). - src/hb-ot-shape-complex-indic.cc | - 10 +++++----- + src/hb-ot-shape-complex-indic.cc | 10 +++++----- .../in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) @@ -75654,20 +73987,18 @@ Author: Behdad Esfahbod Date: Tue Jul 24 00:21:16 2012 -0400 [Indic] Further adjust base algorithm for Sinhala - + Apparently if there is C,V,ZWJ,C, the first C will be base, but if it's C,ZWJ,V,C, the second one will be. - - Note that Uniscribe implements this differently, by breaking - syllable in + + Note that Uniscribe implements this differently, by breaking syllable in the case of C,ZWJ,V,C and putting the first consonant in one syllable and the rest in the next syllable. - + Sinhala failures down from 208 to 158 (0.0581209%). No changes to Khmer. - src/hb-ot-shape-complex-indic.cc | - 11 +++++++---- + src/hb-ot-shape-complex-indic.cc | 11 +++++++---- .../in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 3 +++ 2 files changed, 10 insertions(+), 4 deletions(-) @@ -75676,15 +74007,13 @@ Author: Behdad Esfahbod Date: Tue Jul 24 00:09:12 2012 -0400 [Indic] End Vowel-based syllable at ZWJ - + One Devanagari test regressed, plus 10 Malayalam (at 1545 now). - + Fixed 120 Sinhala failures. Now at 208 (0.0765136%). - src/hb-ot-shape-complex-indic-machine.rl | - 2 +- - .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic-machine.rl | 2 +- + .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit 34c215036f5fcdc7599b1ab0591b56dbb3811902 @@ -75692,22 +74021,20 @@ Author: Behdad Esfahbod Date: Mon Jul 23 23:51:29 2012 -0400 [Indic] Improve Sinhala base algorithm and reph positioning - + Sinhala does not have half forms. And most (all?) consonants can be - base, except when preceded by ZWJ, which would request a subjoined - form. + base, except when preceded by ZWJ, which would request a subjoined form. Hence switch the base algorithm to categorize with Khmer, start search at start, and stop at a ZWJ. - + Also, mark all pos=base consonants after base to be subjoined. Mark base itself to have pos=base. - + Finally, adjust Sinhala's reph position to after-main. - + Brings down Sinhala failures from 455 to 328 (0.120656%). - src/hb-ot-shape-complex-indic.cc | 18 - +++++++++++++++++- + src/hb-ot-shape-complex-indic.cc | 18 +++++++++++++++++- .../shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) @@ -75725,7 +74052,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 20:18:17 2012 -0400 When removing zero-width marks, don't remove ligatures - + If a mark ligated, it probably should NOT be removed. src/hb-ot-shape.cc | 6 +++--- @@ -75737,10 +74064,8 @@ Date: Mon Jul 23 20:14:13 2012 -0400 Minor refactoring - src/hb-ot-layout-gsubgpos-private.hh | 32 - -------------------------------- - src/hb-ot-layout-private.hh | 35 - +++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsubgpos-private.hh | 32 -------------------------------- + src/hb-ot-layout-private.hh | 35 +++++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-indic.cc | 2 +- 3 files changed, 36 insertions(+), 33 deletions(-) @@ -75749,7 +74074,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 20:11:42 2012 -0400 [Indic] Improve check on ligatures - + Only skip actual ligatures, not marks in-between ligature components. src/hb-ot-layout-gsubgpos-private.hh | 5 +++++ @@ -75761,16 +74086,14 @@ Author: Behdad Esfahbod Date: Mon Jul 23 20:07:50 2012 -0400 [Indic] exclude ligatures when matching on Indic category - - If, say, a H,ZWJ,C ligature was formed, we don't want the code - to detec + + If, say, a H,ZWJ,C ligature was formed, we don't want the code to detec that as a Halant. So, ignore ligatures when matching category in final_reordering. - + Sinhala failures down from 514 to 455 (0.167374%). - src/hb-ot-shape-complex-indic.cc | 41 - ++++++++++++---------- + src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++---------- .../indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 23 insertions(+), 19 deletions(-) @@ -75797,7 +74120,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 18:25:02 2012 -0400 [Indic] Remove syllable length check before sorting - + We now limit syllable lengths in the machine. No need to match here. src/hb-ot-shape-complex-indic.cc | 2 -- @@ -75808,33 +74131,30 @@ Author: Behdad Esfahbod Date: Mon Jul 23 18:19:17 2012 -0400 [Indic] Limit syllables to at most five consonants - - Seems to be about what Uniscribe does. Not exactly. But close - enough. + + Seems to be about what Uniscribe does. Not exactly. But close enough. More consonants will start a new cluster. - + A few scripts went way down in failures. In particular: - + - Devanagari failures went down from 490 to 56. - Telugu went down from 113 to 49. - + Other scripts went down slightly or didn't change. New numbers: - + BENGALI: 353908 out of 354285 tests passed. 377 failed (0.106412%) DEVANAGARI: 693572 out of 693628 tests passed. 56 failed (0.00807349%) GUJARATI: 366485 out of 366506 tests passed. 21 failed (0.00572978%) GURMUKHI: 60750 out of 60809 tests passed. 59 failed (0.0970251%) KANNADA: 950730 out of 951913 tests passed. 1183 failed (0.124276%) KHMER: 298613 out of 299124 tests passed. 511 failed (0.170832%) - MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed - (0.146411%) + MALAYALAM: 1046881 out of 1048416 tests passed. 1535 failed (0.146411%) ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%) SINHALA: 271333 out of 271847 tests passed. 514 failed (0.189077%) TAMIL: 1091837 out of 1091837 tests passed. 0 failed (0%) TELUGU: 970524 out of 970573 tests passed. 49 failed (0.00504856%) - - Some of the remaining Telugu and Devanagari issues seem to be - Uniscribe + + Some of the remaining Telugu and Devanagari issues seem to be Uniscribe eating Anusvara when placed before a non-joiner. Ouch! src/hb-ot-shape-complex-indic-machine.rl | 6 +++--- @@ -75845,7 +74165,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 14:04:42 2012 -0400 [Thai] Fix SARA AM handling - + Oops, thinko. src/hb-ot-shape-complex-misc.cc | 6 +++--- @@ -75857,18 +74177,16 @@ Author: Behdad Esfahbod Date: Mon Jul 23 13:52:07 2012 -0400 [Thai] Reorder U+0E3A THAI VOWEL SIGN PHINTHU - - Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39. We do - that by + + Uniscribe reorders U+0E3A to be after U+0E38 and U+0E39. We do that by modifying the ccc for U+0E3A. - + Fixes the two remaining Thai failures (see previous commit). src/hb-ot-shape-complex-misc.cc | 7 +++++++ src/hb-unicode.cc | 6 ++++++ .../texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + - .../in-tree/shaper-thai/script-thai/misc/phinthu.txt | 16 - ++++++++++++++++ + .../in-tree/shaper-thai/script-thai/misc/phinthu.txt | 16 ++++++++++++++++ 4 files changed, 30 insertions(+) commit 4a7f4f3e56f8f7640ae7337aa1b3324f31e0d4ab @@ -75876,28 +74194,25 @@ Author: Behdad Esfahbod Date: Mon Jul 23 13:15:33 2012 -0400 [Thai] Adjust SARA AM reordering to match Uniscribe - + Adjust the list of marks before SARA AM that get the reordering treatment. Also adjust cluster formation to match Uniscribe. - + With Wikipedia test data, now I see: - - - For Thai, with the Angsana New font from Win7, I see 54 - failures out + + - For Thai, with the Angsana New font from Win7, I see 54 failures out of over 4M tests (0.00129107%). Of the 54, two are legitimate reordering issues (fix coming soon), and the other 52 are simply Uniscribe using a zero-width space char instead of an unknown character for missing glyphs. No idea why. The missing-glyph - sequences include one that is a Thai character followed by - an Arabic + sequences include one that is a Thai character followed by an Arabic Sokun. Someone confused it with Nikhahit I assume! - + - For Lao, with the Dokchampa font from Win7, 33 tests fail out of 54k (0.0615167%). All seem to be insignificant mark positioning with two marks on a base. Have to investigate. - src/hb-ot-shape-complex-misc.cc | 42 - +++++++++++++--------- + src/hb-ot-shape-complex-misc.cc | 42 +++++++++++++--------- src/hb-private.hh | 6 ++++ test/shaping/texts/in-tree/shaper-thai/MANIFEST | 1 + .../texts/in-tree/shaper-thai/script-lao/MANIFEST | 1 + @@ -75911,7 +74226,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 08:22:55 2012 -0400 [Indic] Fix cluster formation with left-matras and conjunct forms - + Test case was: . src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -75922,7 +74237,7 @@ Author: Behdad Esfahbod Date: Mon Jul 23 00:11:26 2012 -0400 [Indic] Further streamline cluster formation - + This should address all possible cluster misformations that I had in mind. @@ -75934,7 +74249,7 @@ Author: Behdad Esfahbod Date: Sun Jul 22 23:58:55 2012 -0400 [Indic] Merge clusters before sorting - + This should fix any instabilities in cluster formation that we were speculating may happen with surrounding syllables. Or most of it perhaps. @@ -75947,7 +74262,7 @@ Author: Behdad Esfahbod Date: Sun Jul 22 23:55:19 2012 -0400 [Indic] Update clusters for left-matra even if matra didn't move - + Fixes crashes reported with left matra under non-uniscribe-bug-compatibilty mode. @@ -75959,12 +74274,11 @@ Author: Behdad Esfahbod Date: Sun Jul 22 23:23:56 2012 -0400 [Indic] Merge in Malayalam tests - + From: http://silpa.org.in/pub/tests/hb/ml/ml-harfbuzz-testdata.txt - .../indic/script-malayalam/misc/misc.txt | 94 - +++++++++++----------- + .../indic/script-malayalam/misc/misc.txt | 94 +++++++++++----------- 1 file changed, 46 insertions(+), 48 deletions(-) commit 5c7081770c7a611bbe79b451b7b86dec4fa6395d @@ -75972,12 +74286,11 @@ Author: Behdad Esfahbod Date: Sun Jul 22 23:20:27 2012 -0400 [Indic] Add extensive Sinhala tests - + Generated by: http://git.savannah.gnu.org/cgit/sinhala.git/plain/utils/gen-unicode-sinhala.py - .../indic/script-sinhala/misc/extensive.txt | 4390 - ++++++++++++++++++++ + .../indic/script-sinhala/misc/extensive.txt | 4390 ++++++++++++++++++++ 1 file changed, 4390 insertions(+) commit 2efe4707b1b449962f6e161716477d9775456c46 @@ -75985,12 +74298,11 @@ Author: Behdad Esfahbod Date: Sun Jul 22 23:17:59 2012 -0400 [Indic] Add Sinhala tests - + Merge tests from: http://git.savannah.gnu.org/cgit/sinhala.git/plain/patches/icu-sinhala-rendering.txt - .../indic/script-sinhala/misc/misc.txt | 26 - ++++++++++++++++++++-- + .../indic/script-sinhala/misc/misc.txt | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) commit 3d4c111b7a13700b2f7a0b087eb3992283295f21 @@ -75999,19 +74311,16 @@ Date: Fri Jul 20 19:34:39 2012 -0400 Add a test case - .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit 92a1ad7bef9efb456ab87bd63818cfbed7da3f6f Author: Behdad Esfahbod Date: Fri Jul 20 18:38:27 2012 -0400 - [Indic] Stop searching for base if a post form is found before - below form - - Improves Bengali and Gurmukhi. Malayalam regressed a bit. We will - deal + [Indic] Stop searching for base if a post form is found before below form + + Improves Bengali and Gurmukhi. Malayalam regressed a bit. We will deal with that later. src/hb-ot-shape-complex-indic.cc | 5 ++++- @@ -76022,9 +74331,9 @@ Author: Behdad Esfahbod Date: Fri Jul 20 18:13:04 2012 -0400 [Indic] Recompose Bengali Ya,Nukta - + This is a bunch of hacks for now. - + Improves Bengali a bit. src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -76036,7 +74345,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 17:05:46 2012 -0400 [Uniscribe] Fix script fallback - + Gurmukhi failures half now. Others changed slightly. src/hb-uniscribe.cc | 34 ++++++++++++++-------------------- @@ -76047,9 +74356,8 @@ Author: Behdad Esfahbod Date: Fri Jul 20 16:26:55 2012 -0400 [Indic] Allow a ZWNJ after SM's - - Malayalam failures go way down. Other scripts benefitted slightly - too. + + Malayalam failures go way down. Other scripts benefitted slightly too. Sinhala had one or two test regressions, but... src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -76060,9 +74368,8 @@ Author: Behdad Esfahbod Date: Fri Jul 20 16:17:28 2012 -0400 [Indic] Improve Reph AfterMain positioning - - Fixes 20 out of 48 failing Oriya tests. Failure rate down to - 0.066% now. + + Fixes 20 out of 48 failing Oriya tests. Failure rate down to 0.066% now. src/hb-ot-shape-complex-indic.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) @@ -76072,15 +74379,12 @@ Author: Behdad Esfahbod Date: Fri Jul 20 16:03:09 2012 -0400 [Indic] Reposition Oriya Candrabindu - + Oriya failures down from 0.65% to 0.20%. - src/hb-ot-shape-complex-indic.cc | - 1 + - .../shaping/texts/in-tree/shaper-indic/indic/script-oriya/misc/MANIFEST | - 1 + - .../texts/in-tree/shaper-indic/indic/script-oriya/misc/bindu.txt | - 2 ++ + src/hb-ot-shape-complex-indic.cc | 1 + + .../shaping/texts/in-tree/shaper-indic/indic/script-oriya/misc/MANIFEST | 1 + + .../texts/in-tree/shaper-indic/indic/script-oriya/misc/bindu.txt | 2 ++ 3 files changed, 4 insertions(+) commit 5f0eaaad129ff04d56b8756bebf19fbc242718c9 @@ -76088,7 +74392,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 15:47:24 2012 -0400 [Indic] Fix base search in final_reordering - + Fixes most Malayalam failures. Down from 1.6% to 0.38% now. Fixes a few more in other scripts too. @@ -76102,8 +74406,7 @@ Date: Fri Jul 20 15:10:02 2012 -0400 [Indic] Don't attach SM/VD to other characters src/hb-ot-shape-complex-indic-private.hh | 3 +++ - src/hb-ot-shape-complex-indic.cc | 38 - ++++++++++++++++++-------------- + src/hb-ot-shape-complex-indic.cc | 38 ++++++++++++++++++-------------- 2 files changed, 24 insertions(+), 17 deletions(-) commit efb4ad735691837a52447bedc1a66a87d0d9af51 @@ -76111,7 +74414,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 14:27:38 2012 -0400 Fix compiler warnings - + If x is not constant, we cannot ASSERT_STATIC on it. src/hb-private.hh | 2 +- @@ -76122,7 +74425,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 14:13:35 2012 -0400 [Indic] Form Telugu Reph out of Ra,Virama,ZWJ - + Apparently this was approved in Feb 2012. No font yet. src/hb-ot-shape-complex-indic-private.hh | 2 +- @@ -76134,11 +74437,11 @@ Author: Behdad Esfahbod Date: Fri Jul 20 14:02:35 2012 -0400 [Indic] Don't split U+0AC9 - + Althought IndicMatraCategory.txt classifies it as Top_And_Right matra, it does not have Unicode decomposition, and Uniscribe does not do anything special about it either. - + Gujarati failures down from 0.672% to 0.0130966%. src/hb-unicode.cc | 2 +- @@ -76149,9 +74452,8 @@ Author: Behdad Esfahbod Date: Fri Jul 20 13:56:32 2012 -0400 [Indic] Simplify Uniscribe cluster emulation - - Now that we break syllables on Halant,ZWNJ, this code can be - simplified. + + Now that we break syllables on Halant,ZWNJ, this code can be simplified. src/hb-ot-shape-complex-indic.cc | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) @@ -76170,11 +74472,10 @@ Author: Behdad Esfahbod Date: Fri Jul 20 13:48:03 2012 -0400 [Indic] Break syllables at Halant,ZWNJ - - That's really what Uniscribe does, and explains a lot of pecularities - of + + That's really what Uniscribe does, and explains a lot of pecularities of Halant,ZWNJ before the base. - + Sent Telugu from 1% failures to 0.03%. Improved Kannada and Malayalam slightly. Fixed half of Bengali, and did NOT break anything! @@ -76187,9 +74488,9 @@ Author: Behdad Esfahbod Date: Fri Jul 20 13:37:48 2012 -0400 [Indic] Better check for applying 'init' - + Specifically, don't apply 'init' if previous char is a joiner. - + Fixes some more of Bengali. src/hb-ot-shape-complex-indic.cc | 9 +-------- @@ -76201,11 +74502,10 @@ Author: Behdad Esfahbod Date: Fri Jul 20 12:32:59 2012 -0400 [GPOS] Don't zero mark advances - + Fixes more of Telugu, Kannada, and Oriya. - - May break things (outside Indic...), but we cannot think of any - font relying + + May break things (outside Indic...), but we cannot think of any font relying on this immediately. src/hb-ot-layout-gpos-table.hh | 4 ++-- @@ -76225,7 +74525,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 11:25:41 2012 -0400 [Indic] Implement reph positioning step 5 - + Not tuned, just copied from step 2. Fixes another 0.5% of Kannada failures. 1% to go. @@ -76237,9 +74537,8 @@ Author: Behdad Esfahbod Date: Fri Jul 20 11:04:15 2012 -0400 [Indic] Don't let ZWNJ at the end of syllable affect base search - - Fixes a few Devanagari, half of remaining Kannada failures, - quarter for + + Fixes a few Devanagari, half of remaining Kannada failures, quarter for Telugu, and others slightly improved or unchanged. src/hb-ot-shape-complex-indic.cc | 6 +++++- @@ -76250,7 +74549,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 10:47:46 2012 -0400 [Indic] Apply 'cjct' globally - + Fixes 5 Devanagari failures, and no regressions. src/hb-ot-shape-complex-indic.cc | 15 +++++++++------ @@ -76261,7 +74560,7 @@ Author: Behdad Esfahbod Date: Fri Jul 20 10:30:24 2012 -0400 [Indic] Unbreak old scriptures - + Brings down failures with Lohit-Telugu from 57% to 1.40%. src/hb-ot-shape-complex-indic.cc | 5 +++-- @@ -76281,13 +74580,12 @@ Author: Behdad Esfahbod Date: Thu Jul 19 21:17:48 2012 -0400 [Indic] Recategorize some Kannada right matras - + Kannada failures down from 3.5% to 2.93%. src/hb-ot-shape-complex-indic.cc | 2 +- .../texts/in-tree/shaper-indic/indic/script-kannada/misc/MANIFEST | 1 + - .../shaper-indic/indic/script-kannada/misc/right-matras.txt | - 7 +++++++ + .../shaper-indic/indic/script-kannada/misc/right-matras.txt | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) commit 3604d64ced909ade91998d294a7b4b2ee14d47aa @@ -76295,9 +74593,8 @@ Author: Behdad Esfahbod Date: Thu Jul 19 21:13:04 2012 -0400 [Indic] Recategorize GURMUKHI ADDAK - - It's not in IndicSyllabicCategory.txt. Fixes most of Gurmukhi - failures. + + It's not in IndicSyllabicCategory.txt. Fixes most of Gurmukhi failures. Failures down from 7.7% to 0.222%! src/hb-ot-shape-complex-indic.cc | 1 + @@ -76335,9 +74632,8 @@ Author: Behdad Esfahbod Date: Thu Jul 19 20:30:22 2012 -0400 [Indic] Unbreak Khmer - - For Khmer, all consonants are subjoining. No need to look in - the font. + + For Khmer, all consonants are subjoining. No need to look in the font. We were looking in the wrong order anyway. src/hb-ot-shape-complex-indic.cc | 4 +++- @@ -76348,7 +74644,7 @@ Author: Behdad Esfahbod Date: Thu Jul 19 20:24:14 2012 -0400 [Indic] Apply 'akhn' globally - + Fixes 1.5% more failures for Telugu, 2% for Kannada. Breaks one test in Devanagari. @@ -76361,8 +74657,7 @@ Date: Thu Jul 19 20:03:25 2012 -0400 [Indic] Add failing test for Kannada - .../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-kannada/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit fa247ebe524f92fa95d344ba912f704262879c13 @@ -76370,7 +74665,7 @@ Author: Behdad Esfahbod Date: Thu Jul 19 19:52:19 2012 -0400 [Indic] Better position U+0CD5 - + Fixes another 5% of Kannada failures. src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -76381,12 +74676,11 @@ Author: Behdad Esfahbod Date: Thu Jul 19 16:20:21 2012 -0400 [Indic] Lookup consonant position in the font - + Fixes most failures of Oriya, and improves others a bit. src/hb-ot-map-private.hh | 13 ++-- - src/hb-ot-shape-complex-indic-private.hh | 105 - ------------------------------- + src/hb-ot-shape-complex-indic-private.hh | 105 ------------------------------- src/hb-ot-shape-complex-indic.cc | 63 +++++++++++++------ 3 files changed, 54 insertions(+), 127 deletions(-) @@ -76416,8 +74710,7 @@ Date: Thu Jul 19 14:59:15 2012 -0400 src/Makefile.am | 6 +- src/test-would-substitute.cc | 94 ++++++++++++++++++++++++++++++ - src/test.cc | 132 - +++++++++++++++++++++++++++++++++++++++++++ + src/test.cc | 132 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 231 insertions(+), 1 deletion(-) commit e72b360ac6381b549249b8836fa3e70b909d3437 @@ -76425,13 +74718,12 @@ Author: Behdad Esfahbod Date: Thu Jul 19 14:35:23 2012 -0400 Refactor / finish would_apply() operation - + Untested. src/hb-ot-layout-gpos-table.hh | 6 +- src/hb-ot-layout-gsub-table.hh | 126 +++++++++---------- - src/hb-ot-layout-gsubgpos-private.hh | 233 - ++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsubgpos-private.hh | 233 ++++++++++++++++++++++++++++++++++- src/hb-ot-layout.cc | 11 ++ src/hb-ot-layout.h | 7 ++ 5 files changed, 308 insertions(+), 75 deletions(-) @@ -76441,16 +74733,14 @@ Author: Behdad Esfahbod Date: Thu Jul 19 13:25:08 2012 -0400 [Indic] Implement per-script matra positioning - + Following what the spec says. - - Brings down Telugu failures from 40% to 3.75%, and Kannada failures - from + + Brings down Telugu failures from 40% to 3.75%, and Kannada failures from 44% to 10%. Does NOT affect other scripts' test results. src/hb-ot-shape-complex-indic-private.hh | 2 +- - src/hb-ot-shape-complex-indic.cc | 40 - +++++++++++++++++++++++++++++--- + src/hb-ot-shape-complex-indic.cc | 40 +++++++++++++++++++++++++++++--- src/hb-unicode.cc | 2 +- 3 files changed, 39 insertions(+), 5 deletions(-) @@ -76461,8 +74751,7 @@ Date: Thu Jul 19 12:59:06 2012 -0400 [Indic] More refactoring src/hb-ot-shape-complex-indic-private.hh | 9 ++--- - src/hb-ot-shape-complex-indic.cc | 65 - ++++++++++++++++++++++++-------- + src/hb-ot-shape-complex-indic.cc | 65 ++++++++++++++++++++++++-------- 2 files changed, 54 insertions(+), 20 deletions(-) commit 9ccc6382ba43760167c134c18c1c4ada4b8c3f22 @@ -76471,8 +74760,7 @@ Date: Thu Jul 19 12:32:16 2012 -0400 [Indic] Minor refactoring - src/hb-ot-shape-complex-indic.cc | 127 - ++++++++++++++++++++++----------------- + src/hb-ot-shape-complex-indic.cc | 127 ++++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 56 deletions(-) commit f83aaa3133de5d807be267a100d6a200e8db9017 @@ -76481,8 +74769,7 @@ Date: Thu Jul 19 12:23:23 2012 -0400 [Indic] Minor - src/hb-ot-shape-complex-indic-private.hh | 42 - ++++++++++++++++++++------------ + src/hb-ot-shape-complex-indic-private.hh | 42 ++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 16 deletions(-) commit be8b9f5f715f6fb36b98bd33c3303f79cc068f8a @@ -76491,8 +74778,7 @@ Date: Thu Jul 19 12:11:12 2012 -0400 [Indic] Start refactoring different matra positions per script - src/hb-ot-shape-complex-indic-private.hh | 36 - +++++++++++++++++++------------- + src/hb-ot-shape-complex-indic-private.hh | 36 +++++++++++++++++++------------- src/hb-ot-shape-complex-indic.cc | 4 ++-- 2 files changed, 24 insertions(+), 16 deletions(-) @@ -76510,11 +74796,10 @@ Author: Behdad Esfahbod Date: Thu Jul 19 11:25:49 2012 -0400 [Indic] Disallow decomposition of a couple characters - - This is a hack for now. Will be fixed when we do - complex-shaper-driven + + This is a hack for now. Will be fixed when we do complex-shaper-driven normalization properly. - + The results with or without decomposition are the same, but Uniscribe does not normalize, so this matches better. @@ -76526,20 +74811,17 @@ Author: Behdad Esfahbod Date: Wed Jul 18 23:25:58 2012 -0400 [Indic] Accept a forced Rakar sequence at the end of syllable - - In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra. If you put that - at the + + In Sinhala, Rakar is formed by Al-Lakuna,ZWJ,Ra. If you put that at the end of a Consonant,Matra syllable, you get a dotted-circle from Uniscribe. Apparently adding a ZWJ before the Al-Lakuna "fixes" that. And people have been encoding that sequence... So, allow a forced "ZWJ,Virama,ZWJ,Ra" sequence at the of syllables. - + Fixes some 100 or more of Sinhala failures. Now at 622 only (0.23%). - src/hb-ot-shape-complex-indic-machine.rl | - 3 ++- - .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | - 2 ++ + src/hb-ot-shape-complex-indic-machine.rl | 3 ++- + .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) commit 6fc1732003d71cf90d37247482772c3da884687f @@ -76547,7 +74829,7 @@ Author: Behdad Esfahbod Date: Wed Jul 18 17:49:19 2012 -0400 [Indic] Allow joiners on both sides of Halant at the same time - + The sequence is used in Sinhala to explicitly ask for Rakar. Fixes two-thousand Sinhala tests. Not many left. @@ -76559,14 +74841,13 @@ Author: Behdad Esfahbod Date: Wed Jul 18 17:42:34 2012 -0400 [Indic] In final reordering, find base, even if it disappeared - + POS_BASE can disappear if base ligated backward. Define base as last with position not after base. - + Fixes a few hundred of Sinhala failures with Iskoola Pota. - src/hb-ot-shape-complex-indic.cc | - 7 ++----- + src/hb-ot-shape-complex-indic.cc | 7 ++----- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/misc.txt | 1 + 2 files changed, 3 insertions(+), 5 deletions(-) @@ -76584,15 +74865,13 @@ Author: Behdad Esfahbod Date: Wed Jul 18 17:22:14 2012 -0400 [Indic] Implement Sinhala "Al Lakuna" Reph behavior - + In Sinhala, Reph is formed only explicitly, by the presence of a ZWJ. src/hb-ot-shape-complex-indic-private.hh | 2 ++ - src/hb-ot-shape-complex-indic.cc | - 7 ++++++- + src/hb-ot-shape-complex-indic.cc | 7 ++++++- .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/MANIFEST | 1 + - .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/reph.txt | - 3 +++ + .../texts/in-tree/shaper-indic/indic/script-sinhala/misc/reph.txt | 3 +++ 4 files changed, 12 insertions(+), 1 deletion(-) commit 91cade755534c42bb826a6aefcbca8a543d94387 @@ -76600,9 +74879,9 @@ Author: Behdad Esfahbod Date: Wed Jul 18 16:50:41 2012 -0400 [Indic/Unicode] Decompose Sinhala split matras the way Uniscribe likes - + Makes no visual difference. - + Fixes most of the failures. Down from 15% to 1.3%! src/hb-unicode.cc | 8 ++++++++ @@ -76613,13 +74892,12 @@ Author: Behdad Esfahbod Date: Wed Jul 18 16:34:10 2012 -0400 Apply Tibetan (global) features. - + Fixes all Tibetan failures. All 180k of them! - + Merges back Hangul into the default shaper. - src/hb-ot-shape-complex-misc.cc | 82 - +++++++++++++++++--------------------- + src/hb-ot-shape-complex-misc.cc | 82 +++++++++++++++++--------------------- src/hb-ot-shape-complex-private.hh | 7 ---- 2 files changed, 37 insertions(+), 52 deletions(-) @@ -76628,17 +74906,14 @@ Author: Behdad Esfahbod Date: Wed Jul 18 16:00:49 2012 -0400 [Indic] Treat Register Shifters like Nukta - + Really this time. - + Fixes another 18 Khmer tests. - src/hb-ot-shape-complex-indic-machine.rl | - 2 +- - src/hb-ot-shape-complex-indic.cc | - 2 -- - .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic-machine.rl | 2 +- + src/hb-ot-shape-complex-indic.cc | 2 -- + .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 + 3 files changed, 2 insertions(+), 3 deletions(-) commit e8cd81f76d159f3ecf808952dab24bc07782497a @@ -76655,15 +74930,13 @@ Author: Behdad Esfahbod Date: Wed Jul 18 15:45:43 2012 -0400 [Indic] Fix Matra reordering when base is at end of syllable - + For example: U+915,U+200c,U+93f - + Fixes last Tamil failure! - src/hb-ot-shape-complex-indic.cc | - 2 +- - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | - 1 + + src/hb-ot-shape-complex-indic.cc | 2 +- + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) commit d16ccc4ae7aa8be460881042413fa2637929fede @@ -76671,9 +74944,9 @@ Author: Behdad Esfahbod Date: Wed Jul 18 15:43:55 2012 -0400 Leave one extra item at the end of buffer allocation - + Just in case, for the times we do out-of-bounds access. - + jk src/hb-buffer-private.hh | 2 +- @@ -76693,7 +74966,7 @@ Author: Behdad Esfahbod Date: Wed Jul 18 15:28:25 2012 -0400 [Indic] Allow joiners before matras - + Fixes 1 more Devanagari test! src/hb-ot-shape-complex-indic-machine.rl | 4 ++-- @@ -76704,12 +74977,11 @@ Author: Behdad Esfahbod Date: Wed Jul 18 15:10:05 2012 -0400 [Indic] Allow halant group in Vowel and placeholder syllables - + Fixes 2 out of 560 Devanagari failures. AND: Fixes 1 out of 2 Tamil failures. - src/hb-ot-shape-complex-indic-machine.rl | - 7 ++++--- + src/hb-ot-shape-complex-indic-machine.rl | 7 ++++--- .../in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) @@ -76728,10 +75000,8 @@ Date: Wed Jul 18 14:57:28 2012 -0400 [Indic] Minor - src/hb-ot-shape-complex-indic-machine.rl | - 3 ++- - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | - 3 +++ + src/hb-ot-shape-complex-indic-machine.rl | 3 ++- + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) commit 4c3691d2a32ca7e54a54f7c08098fd96fa7af39e @@ -76739,7 +75009,7 @@ Author: Behdad Esfahbod Date: Wed Jul 18 14:23:55 2012 -0400 [Indic] Hopefully minor! - + Refactoring Indic machin. No semantic change. src/hb-ot-shape-complex-indic-machine.rl | 12 +++++++----- @@ -76759,7 +75029,7 @@ Author: Behdad Esfahbod Date: Wed Jul 18 13:13:03 2012 -0400 [Indic] Unbreak Tamil - + Tamil has only about 150 failures now! src/hb-ot-shape-complex-indic.cc | 18 +++++++++++++++++- @@ -76770,16 +75040,15 @@ Author: Behdad Esfahbod Date: Tue Jul 17 18:17:30 2012 -0400 [Indic] Position Khmer Robat - + It's a visual Repha. - + Still not positioning logical Repha as occurs in Malayalam. - + Another 200 Khmer failures fixed. 547 to go. That's better than Devanagari! - src/hb-ot-shape-complex-indic-machine.rl | 36 - +++++++++++++++++--------------- + src/hb-ot-shape-complex-indic-machine.rl | 36 +++++++++++++++++--------------- src/hb-ot-shape-complex-indic-private.hh | 7 ++++--- src/hb-ot-shape-complex-indic.cc | 13 ++++++++++++ 3 files changed, 36 insertions(+), 20 deletions(-) @@ -76789,11 +75058,10 @@ Author: Behdad Esfahbod Date: Tue Jul 17 17:53:03 2012 -0400 [Indic] Better categorize Register Shifters and Khmer Various signs - + Down another 500 or so Khmer failures! - src/hb-ot-shape-complex-indic-machine.rl | 14 - +++++++------- + src/hb-ot-shape-complex-indic-machine.rl | 14 +++++++------- src/hb-ot-shape-complex-indic-private.hh | 2 +- src/hb-ot-shape-complex-indic.cc | 8 ++++---- .../south-east-asian/script-khmer/misc/MANIFEST | 2 ++ @@ -76806,15 +75074,13 @@ Author: Behdad Esfahbod Date: Tue Jul 17 17:09:29 2012 -0400 Add hb_buffer_normalize_glyphs() and hb-shape --normalize-glyphs - - This reorders glyphs within the cluster to a nominal order. - This should + + This reorders glyphs within the cluster to a nominal order. This should have no visible effect on the output, but helps with testing, for getting the same hb-shape output for visually-equal glyphs for each cluster. - src/hb-buffer.cc | 76 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.cc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 13 ++++++++++ src/hb-private.hh | 29 ++++++++++++++++----- util/options.cc | 1 + @@ -76834,17 +75100,15 @@ commit 5d32690a3428fa86eb26fe5fcec943a10aa95881 Author: Behdad Esfahbod Date: Tue Jul 17 14:23:28 2012 -0400 - [Indic] For scripts without Half forms, always choose first consonant - as base - + [Indic] For scripts without Half forms, always choose first consonant as base + In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for base. So, instead just choose the first consonant as base directly. - + Test sequence: U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7 - src/hb-ot-shape-complex-indic.cc | 59 - ++++++++++++++++++++++++---------------- + src/hb-ot-shape-complex-indic.cc | 59 ++++++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 24 deletions(-) commit 34b57149065d96f7528aaccaa7654e956ce27e93 @@ -76852,13 +75116,11 @@ Author: Behdad Esfahbod Date: Tue Jul 17 14:09:32 2012 -0400 [Indic] Treat Khmer Register Shifters more like Nuktas - + Except that there may be a ZWNJ before a Register Shifter. - src/hb-ot-shape-complex-indic-machine.rl | - 2 +- - .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | - 2 ++ + src/hb-ot-shape-complex-indic-machine.rl | 2 +- + .../in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) commit 11e2a601b19861b05dbb2051d2d078c3cfd75b29 @@ -76875,15 +75137,14 @@ Author: Behdad Esfahbod Date: Tue Jul 17 13:55:10 2012 -0400 [Indic] Apply 'cfar' for Khmer - + Mark stuff after a pre-base reordering Ro 'cfar'. Used in Khmer. This allows distinguishing the following cases with MS Khmer fonts: - + U+1784,U+17D2,U+179A,U+17D2,U+1782 U+1784,U+17D2,U+1782,U+17D2,U+179A - src/hb-ot-shape-complex-indic.cc | 16 - ++++++++++++++-- + src/hb-ot-shape-complex-indic.cc | 16 ++++++++++++++-- .../south-east-asian/script-khmer/misc/misc.txt | 2 ++ 2 files changed, 16 insertions(+), 2 deletions(-) @@ -76892,16 +75153,15 @@ Author: Behdad Esfahbod Date: Tue Jul 17 12:50:13 2012 -0400 [Indic] Position final subjoined consonants (and vowels) after matras - + In Khmer, a final subjoined consonant or independent vowel can occur after matras. This final subjoined thing should NOT be reordered to before the matra even though it's subjoined. - + Fixes another 1k of the Khmer failures. Not much left really. src/hb-ot-shape-complex-indic-private.hh | 1 + - src/hb-ot-shape-complex-indic.cc | 13 - +++++++++++++ + src/hb-ot-shape-complex-indic.cc | 13 +++++++++++++ .../south-east-asian/script-khmer/misc/misc.txt | 2 ++ 3 files changed, 16 insertions(+) @@ -76910,15 +75170,13 @@ Author: Behdad Esfahbod Date: Tue Jul 17 11:54:28 2012 -0400 [Indic] Recategorize Khmer coeng sign as a separate category OT_Coeng - + Amend the syllable structure to allow a final subscripted consonant (Coeng+C) and a final subscripted independent vowel (Coeng+V). Fixes another 2k of Khmer failures. - src/hb-ot-shape-complex-indic-machine.rl | - 7 ++++--- - src/hb-ot-shape-complex-indic.cc | - 6 +++++- + src/hb-ot-shape-complex-indic-machine.rl | 7 ++++--- + src/hb-ot-shape-complex-indic.cc | 6 +++++- .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) @@ -76927,7 +75185,7 @@ Author: Behdad Esfahbod Date: Tue Jul 17 11:37:32 2012 -0400 [Indic] Add a separate Coeng class - + No characters recategorized yet. No semantic change. src/hb-ot-shape-complex-indic-machine.rl | 1 + @@ -76940,18 +75198,16 @@ Author: Behdad Esfahbod Date: Tue Jul 17 11:16:19 2012 -0400 [Indic] Move Halant with after-base consonants - + Normally, we attach the Halant to the previous character and move it - with it. For after-base consonants however, the Halant "belongs" - to the + with it. For after-base consonants however, the Halant "belongs" to the consonant after, so attach it so. - + This fixes Bengali sequences involving post-base consonant Ya, which should ligate with the Halant to form Ya Phala, but previously a reordered matras was blocking the ligation. - src/hb-ot-shape-complex-indic.cc | - 11 +++++++++++ + src/hb-ot-shape-complex-indic.cc | 11 +++++++++++ .../in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 + 2 files changed, 12 insertions(+) @@ -76960,16 +75216,13 @@ Author: Behdad Esfahbod Date: Tue Jul 17 10:40:59 2012 -0400 [Indic] Apply presentation-forms features all at once - - Seems like this is what Uniscribe is doing, and does not break - any fonts - we tested (with Devanagari, Malayalam, Khmer, and Bengali), while - fixing + + Seems like this is what Uniscribe is doing, and does not break any fonts + we tested (with Devanagari, Malayalam, Khmer, and Bengali), while fixing some Ra Phala sequences for Bengali with Vrinda. Fixes another 2% of Bengali failures (a couple more to go). - src/hb-ot-shape-complex-indic.cc | - 6 +++--- + src/hb-ot-shape-complex-indic.cc | 6 +++--- .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) @@ -76978,7 +75231,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 22:43:17 2012 -0400 Fix MarkAttachmentType matching - + Fixes issue reported by Khaled Hosny with his Hussaini Nastaleeq font and sequences like those added in the previous commit. @@ -76990,12 +75243,11 @@ Author: Behdad Esfahbod Date: Mon Jul 16 22:46:06 2012 -0400 [test/arabic] Add Arabic tests for mark skipping - + Expose a bug with Khaled's Hussaini Nastaleeq font. .../shaper-arabic/script-arabic/misc/diacritics/MANIFEST | 1 + - .../script-arabic/misc/diacritics/mark-skipping.txt | - 10 ++++++++++ + .../script-arabic/misc/diacritics/mark-skipping.txt | 10 ++++++++++ 2 files changed, 11 insertions(+) commit ad4494759fa8bfd2497800c24fa414075ed1aa61 @@ -77012,12 +75264,11 @@ Author: Behdad Esfahbod Date: Mon Jul 16 20:31:24 2012 -0400 [Indic] Disable 'kern' in Uniscribe bug compatibility mode - - Uniscribe does not apply 'kern' in the Indic module. Some of - the Khmer + + Uniscribe does not apply 'kern' in the Indic module. Some of the Khmer fonts they ship have small adjustments in the 'kern' table. Disable 'kern' in the Indic module under Uniscribe bug compatibility mode. - + Fixes some 10% of the Khmer failures. Remains under 3% (excluding dotted-circle ones). @@ -77029,7 +75280,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 20:26:57 2012 -0400 Allow complex shapers overriding common features - + In a new callback... Currently unused by all complex shapers. src/hb-ot-shape-complex-arabic.cc | 6 ++++++ @@ -77044,10 +75295,10 @@ Author: Behdad Esfahbod Date: Mon Jul 16 19:56:29 2012 -0400 [Indic] Categorize other Khmer marks - + Mark them the same as the Register Shifters for now. Need to rename that category to something more sensible after all is settled. - + Fixes another percent of Khmer failures. Down to under 3%! src/hb-ot-shape-complex-indic.cc | 4 ++++ @@ -77058,14 +75309,12 @@ Author: Behdad Esfahbod Date: Mon Jul 16 17:04:46 2012 -0400 [Indic] Recognize pre-base reordering Ra anywhere in the syllable - + We were doing that only immediately after base. + + Fixes another percent in the Khmer failures. About three more to go... - Fixes another percent in the Khmer failures. About three more - to go... - - src/hb-ot-shape-complex-indic.cc | 84 - ++++++++++++++++++++++------------------ + src/hb-ot-shape-complex-indic.cc | 84 ++++++++++++++++++++++------------------ 1 file changed, 46 insertions(+), 38 deletions(-) commit 7d09c98a1fff97127e48eae48d380dc9fcff288e @@ -77073,7 +75322,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 16:45:22 2012 -0400 [Indic] Recognizer Register Shifter marks - + Fixes another 6% of the Khmer failures. src/hb-ot-shape-complex-indic-machine.rl | 3 ++- @@ -77086,7 +75335,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 16:13:32 2012 -0400 [GSUB/GDEF] Guess glyph classes after substitution only if no GDEF - + Brings down Khmer failures with Daun Penh font from 36% to 20%. src/hb-ot-layout-gsubgpos-private.hh | 20 +++++++++++++------- @@ -77097,7 +75346,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:52:54 2012 -0400 [Indic] Categorize Khmer Ro - + Khmer failures down from 58% to 36%. src/hb-ot-shape-complex-indic-private.hh | 2 ++ @@ -77108,11 +75357,10 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:49:08 2012 -0400 [Indic] Reoder pre-base reordering Ra - + Brings down Malayalam failures from 14% down to 3%. - src/hb-ot-shape-complex-indic.cc | 42 - +++++++++++++++++++++++++++------------- + src/hb-ot-shape-complex-indic.cc | 42 +++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) commit 1a1dbe9a2787f226f3e43063da8eb6633438b0a0 @@ -77138,7 +75386,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:26:56 2012 -0400 [Indic] Rename - + No semantic change. src/hb-ot-shape-complex-indic.cc | 26 +++++++++++++------------- @@ -77149,7 +75397,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:21:12 2012 -0400 [Indic] Implement After-Main Reph positioning - + Almost... src/hb-ot-shape-complex-indic.cc | 8 +++++++- @@ -77160,7 +75408,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:20:15 2012 -0400 [Indic] Apply 'pref' to pre-base reodering Ra - + No reordering yet. src/hb-ot-shape-complex-indic.cc | 10 ++++++++++ @@ -77171,7 +75419,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 15:15:28 2012 -0400 [Indic] Minor - + Should not be any semantic change. In preparation for implementing pre-base reordering Ra. @@ -77184,8 +75432,7 @@ Date: Mon Jul 16 14:52:18 2012 -0400 Minor - src/hb-ot-shape-complex-indic.cc | 44 - ++++++++++++++++++++-------------------- + src/hb-ot-shape-complex-indic.cc | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) commit 2f903215c5da2330a37abe489a3f45f7c3fd5a09 @@ -77220,7 +75467,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 13:25:17 2012 -0400 Split matras without a Unicode decomposition - + This is a hack for now, to get us going with Khmer. This will be refactored properly later to move the complex logic into complex shapers. @@ -77233,7 +75480,7 @@ Author: Behdad Esfahbod Date: Mon Jul 16 13:24:26 2012 -0400 [Indic] Adjust position for split matras - + We are going to split matras without a Unicode decompositions in a way that the second half takes the codepoint of the whole matra. So, position them where the second half is supposed to end up. @@ -77246,9 +75493,8 @@ Author: Behdad Esfahbod Date: Mon Jul 16 13:23:40 2012 -0400 [GSUB] Allow 1-to-1 ligature substitutions! - - Apparently Uniscribe allows these, and they are used in some Khmer - fonts + + Apparently Uniscribe allows these, and they are used in some Khmer fonts shipped with Windows, namely, Daun Penh. src/hb-ot-layout-gsub-table.hh | 2 +- @@ -77296,9 +75542,8 @@ Author: Behdad Esfahbod Date: Fri Jul 13 10:19:10 2012 -0400 Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers - - So we can use them to switch default visibility to internal if - desired, + + So we can use them to switch default visibility to internal if desired, and use these to make only declared symbols public. src/check-c-linkage-decls.sh | 10 +++++++++- @@ -77329,9 +75574,8 @@ Author: Behdad Esfahbod Date: Fri Jul 13 09:48:39 2012 -0400 Check for exported weak symbols - - Ouch, all our C++ inline functions are being exported (weakly) - already. + + Ouch, all our C++ inline functions are being exported (weakly) already. Fix coming. src/check-internal-symbols.sh | 8 +++++++- @@ -77369,9 +75613,9 @@ Author: Behdad Esfahbod Date: Wed Jul 11 19:00:30 2012 -0400 [ft] Disable ppem setting - + The calculations were wrong. - + FreeType makes it really hard to set size and ppem independently. For now, disable it. Need to come up with a fix later. @@ -77392,15 +75636,14 @@ Author: Behdad Esfahbod Date: Wed Jul 11 18:01:27 2012 -0400 Revert "Towards templatizing common Lookup types" - + This reverts commit 727135f3a9938c1ebd5b9f5015a46c7ccc8573c5. - + This is work-in-progress. Didn't mean to push it out just yet. src/hb-ot-layout-gpos-table.hh | 16 ++++++---------- src/hb-ot-layout-gsub-table.hh | 24 ++++++++++-------------- - src/hb-ot-layout-gsubgpos-private.hh | 33 - ++------------------------------- + src/hb-ot-layout-gsubgpos-private.hh | 33 ++------------------------------- 3 files changed, 18 insertions(+), 55 deletions(-) commit 552bf3a9f9651311084b7979805dbdc18c0335ca @@ -77408,10 +75651,9 @@ Author: Behdad Esfahbod Date: Wed Jul 11 16:44:51 2012 -0400 Bump WINNT version requested from 500 to 600 - + Since we use the OpenType versions of Uniscribe functions, we are - relying on that version of the WINNT API. Otherwise, usp10.h - will hide + relying on that version of the WINNT API. Otherwise, usp10.h will hide those symbols. src/hb-uniscribe.cc | 2 +- @@ -77444,8 +75686,7 @@ Date: Tue Jul 3 22:15:35 2012 -0400 src/hb-ot-layout-gpos-table.hh | 16 ++++++++++------ src/hb-ot-layout-gsub-table.hh | 24 ++++++++++++++---------- - src/hb-ot-layout-gsubgpos-private.hh | 33 - +++++++++++++++++++++++++++++++-- + src/hb-ot-layout-gsubgpos-private.hh | 33 +++++++++++++++++++++++++++++++-- 3 files changed, 55 insertions(+), 18 deletions(-) commit 1167c7bfc9e61f145e11da4881968293a4d3c0a9 @@ -77454,13 +75695,11 @@ Date: Tue Jul 3 11:38:46 2012 -0400 Minor - test/shaping/texts/in-tree/shaper-thai/MANIFEST | - 2 +- + test/shaping/texts/in-tree/shaper-thai/MANIFEST | 2 +- test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | 1 - test/shaping/texts/in-tree/shaper-thai/script-thai/MANIFEST | 1 + test/shaping/texts/in-tree/shaper-thai/script-thai/misc/MANIFEST | 1 + - .../shaper-thai/{misc/misc.txt => script-thai/misc/sara-am.txt} | - 6 ++---- + .../shaper-thai/{misc/misc.txt => script-thai/misc/sara-am.txt} | 6 ++---- 5 files changed, 5 insertions(+), 6 deletions(-) commit aa116582e69d18777448e7993078e5d6335ddfed @@ -77469,8 +75708,7 @@ Date: Fri Jun 29 10:50:12 2012 -0400 Minor - .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit 1f13c7185f02ea18d4fadd2ea8ad444bea863c39 @@ -77497,7 +75735,7 @@ Author: Behdad Esfahbod Date: Tue Jun 26 10:46:31 2012 -0400 Use octal-escaped UTF-8 characters instead of plain text - + https://bugs.freedesktop.org/show_bug.cgi?id=50970 src/hb-private.hh | 17 ++++++++++++----- @@ -77508,7 +75746,7 @@ Author: Behdad Esfahbod Date: Sun Jun 24 13:20:56 2012 -0400 Disable introspection again - + Until I figure out the build issues. Sigh... configure.ac | 2 +- @@ -77655,7 +75893,7 @@ Author: Behdad Esfahbod Date: Sat Jun 9 02:53:57 2012 -0400 Add fast-path for GPOS too - + Shaves another 3% for DejaVu Sans long Latin strings. src/hb-ot-layout-gpos-table.hh | 16 ++++++++++++++-- @@ -77666,7 +75904,7 @@ Author: Behdad Esfahbod Date: Sat Jun 9 02:48:16 2012 -0400 Add fast-path to GSUB to check coverage - + Shaves a good 10% off DejaVu Sans with simple Latin text for me. Now, DejaVu is very ChainContext-intensive, but it's also a very popular font! @@ -77679,7 +75917,7 @@ Author: Behdad Esfahbod Date: Sat Jun 9 02:26:57 2012 -0400 Match input before backtrack - + Makes more sense, optimization-wise. src/hb-ot-layout-gsubgpos-private.hh | 8 ++++---- @@ -77727,12 +75965,11 @@ Author: Behdad Esfahbod Date: Sat Jun 9 01:10:26 2012 -0400 Micro-optimize - + I know... src/hb-ot-layout-gsubgpos-private.hh | 3 ++- - src/hb-ot-layout.cc | 46 - ++++++++++++++++++++++-------------- + src/hb-ot-layout.cc | 46 ++++++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 19 deletions(-) commit 70416de298b811ab6be53a1c67f0d2531d99cd46 @@ -77749,7 +75986,7 @@ Author: Behdad Esfahbod Date: Sat Jun 9 00:50:40 2012 -0400 Use linear search for small counts - + I see about 8% speedup with long strings with DejaVu Sans. src/hb-open-type-private.hh | 19 ++++++++++++++----- @@ -77788,13 +76025,12 @@ commit 7b84c536c10ab90ed96a033d88e9ad232d46c5b8 Author: Behdad Esfahbod Date: Fri Jun 8 22:04:23 2012 -0400 - In MarkBase attachment, only attach to first of a MultipleSubst - sequence - + In MarkBase attachment, only attach to first of a MultipleSubst sequence + This is apparently what Uniscribe does. Test case is: - + SEEN FATHA TEH ALEF - + with Arabic Typesetting. Originally reported by Khaled Hosny. src/hb-ot-layout-gpos-table.hh | 7 ++++++- @@ -77806,7 +76042,7 @@ Author: Behdad Esfahbod Date: Fri Jun 8 21:47:23 2012 -0400 Set lig_comp for MultipleSubst components - + To be used for correct mark attachment to first component of a MultipleSubst output. That's what Uniscribe does. @@ -77921,8 +76157,7 @@ commit e51d2b6ed1c794ac28c5610bfd01dbc9fb383633 Author: Behdad Esfahbod Date: Fri Jun 8 20:33:27 2012 -0400 - Extend into main buffer if extension hit end of out-buffer merging - clusters + Extend into main buffer if extension hit end of out-buffer merging clusters src/hb-buffer.cc | 5 +++++ src/hb-ot-shape-complex-misc.cc | 9 --------- @@ -78015,14 +76250,12 @@ Author: Behdad Esfahbod Date: Fri Jun 8 14:08:32 2012 -0400 Fix Uniscribe charset matching - - Previously was failing to match fonts that didn't support - CHARSET_ANSI. - + + Previously was failing to match fonts that didn't support CHARSET_ANSI. + There still remains a problem with the Uniscribe backend, in that if a font with the same family name is installed, and is newer, the native - one is preferred over the font we provide. Fixing it requires - rewriting + one is preferred over the font we provide. Fixing it requires rewriting the name table with a unique family name... src/hb-uniscribe.cc | 1 + @@ -78051,7 +76284,7 @@ Author: Behdad Esfahbod Date: Fri Jun 8 10:43:49 2012 -0400 Fix regressions introduced by sed. Ouch! - + Introduced in 99c2695759a6af855d565f4994bbdf220570bb48. Broken mark-mark and mark-ligature stuff. @@ -78065,8 +76298,7 @@ Date: Fri Jun 8 10:23:03 2012 -0400 Whitespace - src/hb-uniscribe.cc | 144 - ++++++++++++++++++++++++++-------------------------- + src/hb-uniscribe.cc | 144 ++++++++++++++++++++++++++-------------------------- 1 file changed, 72 insertions(+), 72 deletions(-) commit 8e7beba7c3b3dea3cb3b7e280c5aab4f13b92d31 @@ -78092,7 +76324,7 @@ Author: Behdad Esfahbod Date: Fri Jun 8 09:59:43 2012 -0400 Unbreak Uniscribe - + Oops. hb_tag_t and OPENTYPE_TAG have different endianness. Perhaps something to add API for in hb-uniscribe.h @@ -78105,7 +76337,7 @@ Author: Behdad Esfahbod Date: Fri Jun 8 09:26:17 2012 -0400 Override direction in Uniscribe backend - + Matches OT backend now. src/hb-uniscribe.cc | 2 +- @@ -78134,7 +76366,7 @@ Author: Behdad Esfahbod Date: Thu Jun 7 17:31:46 2012 -0400 Fix alignment-requirement missmatch - + Detected by clang and lots of cmdline options. src/hb-buffer-private.hh | 2 +- @@ -78187,7 +76419,7 @@ Author: Behdad Esfahbod Date: Wed Jun 6 11:27:17 2012 -0400 Fix ASSERT_POD on clang - + As reported by bashi. Not tested. src/hb-private.hh | 8 ++++++-- @@ -78233,7 +76465,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 21:14:04 2012 -0400 Don't link to libstdc++ - + New try. src/Makefile.am | 3 ++- @@ -78253,7 +76485,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 20:39:07 2012 -0400 Disable Intel atomic ops on mingw32 - + Apparently the configure test is not enough... src/hb-atomic-private.hh | 2 +- @@ -78291,8 +76523,7 @@ Date: Tue Jun 5 20:35:40 2012 -0400 util/hb-shape.cc | 2 +- util/helper-cairo.cc | 16 +++++------ util/main-font-text.hh | 2 +- - util/options.cc | 58 - +++++++++++++++++++------------------- + util/options.cc | 58 +++++++++++++++++++------------------- util/options.hh | 2 +- util/view-cairo.hh | 2 +- 29 files changed, 185 insertions(+), 191 deletions(-) @@ -78302,7 +76533,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 20:31:49 2012 -0400 Fix inert buffer set_length() with zero - + Oops! src/hb-buffer.cc | 3 +++ @@ -78333,12 +76564,11 @@ Author: Behdad Esfahbod Date: Tue Jun 5 19:23:29 2012 -0400 Remove last static initializer - + We're free! Lazy or immediate... src/hb-ft.cc | 2 + - src/hb-shape.cc | 150 - ++++++++++++++++++++++++++++++++++++++++---------------- + src/hb-shape.cc | 150 ++++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 110 insertions(+), 42 deletions(-) commit 4a8a529068fc380298bb05b9d878bede3e9f4da1 @@ -78378,11 +76608,10 @@ Author: Behdad Esfahbod Date: Tue Jun 5 18:00:45 2012 -0400 Implement lock-free hb_language_t - + Another static-initialization down. One more to go. - src/hb-common.cc | 66 - +++++++++++++++++++++++++++++++++++++++++++++----------- + src/hb-common.cc | 66 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 54 insertions(+), 12 deletions(-) commit 6843ce01be0df501ef3149a2c1c54cdfb693195d @@ -78390,7 +76619,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 17:27:20 2012 -0400 Add atomic-pointer functions - + Gonig to use these for lock-free linked-lists, to be used for hb_language_t among other things. @@ -78405,8 +76634,7 @@ Date: Tue Jun 5 16:34:49 2012 -0400 configure.ac | 4 ++-- src/hb-atomic-private.hh | 11 +++++++++-- - src/hb-mutex-private.hh | 51 - +++++++++++++++++++++++++++++++++++++++++------- + src/hb-mutex-private.hh | 51 +++++++++++++++++++++++++++++++++++++++++------- src/hb-object-private.hh | 4 +++- src/hb-warning.cc | 14 ++++++------- 5 files changed, 65 insertions(+), 19 deletions(-) @@ -78425,7 +76653,7 @@ Author: Behdad Esfahbod Date: Tue Jun 5 15:37:19 2012 -0400 Add a mutex to object header - + Removes one more static-initialization. A few more to go. src/hb-common.cc | 24 +++++++++--------------- @@ -78440,8 +76668,7 @@ Date: Tue Jun 5 15:17:44 2012 -0400 Remove static initializers from indic - src/hb-ot-shape-complex-indic.cc | 50 - +++++++++++++++++++++++++++++++--------- + src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 11 deletions(-) commit f06ab8a4262c759b4723614fd28f55ee77aa8466 @@ -78452,8 +76679,7 @@ Date: Tue Jun 5 12:31:51 2012 -0400 src/hb-blob.cc | 34 +++++++++++------------ src/hb-buffer.cc | 39 +++++++++++++------------- - src/hb-font.cc | 70 - +++++++++++++++++++++++------------------------ + src/hb-font.cc | 70 +++++++++++++++++++++++------------------------ src/hb-ft.cc | 49 +++++++++++++++------------------ src/hb-glib.cc | 25 ++++++++--------- src/hb-icu.cc | 25 ++++++++--------- @@ -78467,10 +76693,10 @@ Author: Behdad Esfahbod Date: Tue Jun 5 14:17:32 2012 -0400 Remove constructor from hb_prealloced_array_t - + This was causing all object types to be non-POD and have static initializers. We don't need that! - + Now, most nil objects just moved from .bss to .data. Fixing for that coming soon. @@ -78503,48 +76729,27 @@ Date: Mon Jun 4 10:21:22 2012 -0400 s/script-punjabi/script-gurmukhi/ - test/shaping/texts/in-tree/shaper-indic/indic/MANIFEST | - 2 +- - .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/MANIFEST - | 0 - .../indic/{script-punjabi => script-gurmukhi}/misc/MANIFEST | - 0 - .../indic/{script-punjabi => script-gurmukhi}/misc/misc.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/LICENSE | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/MANIFEST | - 0 - .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/utrrs/README - | 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/SOURCES | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt - | 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | - 0 - .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt - | 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/codepoint/MANIFEST - | 0 - .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | - 0 - .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/gpos/MANIFEST - | 0 - .../utrrs/gsub/IndicFontFeatureGSUB.txt | - 0 - .../indic/{script-punjabi => script-gurmukhi}/utrrs/gsub/MANIFEST - | 0 + test/shaping/texts/in-tree/shaper-indic/indic/MANIFEST | 2 +- + .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/MANIFEST | 0 + .../indic/{script-punjabi => script-gurmukhi}/misc/MANIFEST | 0 + .../indic/{script-punjabi => script-gurmukhi}/misc/misc.txt | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/LICENSE | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/MANIFEST | 0 + .../shaper-indic/indic/{script-punjabi => script-gurmukhi}/utrrs/README | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/SOURCES | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt | 0 + .../utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/codepoint/MANIFEST | 0 + .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 0 + .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/gpos/MANIFEST | 0 + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 0 + .../indic/{script-punjabi => script-gurmukhi}/utrrs/gsub/MANIFEST | 0 21 files changed, 1 insertion(+), 1 deletion(-) commit c1885483120d4b686b2fe95b217dce7248e040b1 @@ -78552,7 +76757,7 @@ Author: Behdad Esfahbod Date: Mon Jun 4 08:56:00 2012 -0400 Add --verbose to hb-shape - + Just turns all --show-* options on. util/options.cc | 11 +++++++++++ @@ -78564,7 +76769,7 @@ Author: Behdad Esfahbod Date: Mon Jun 4 08:28:19 2012 -0400 Remove comma at the end of enum - + As reported by Jonathan Kew on the list. src/hb-ot-shape-complex-indic.cc | 2 +- @@ -78575,28 +76780,21 @@ Author: Behdad Esfahbod Date: Sun Jun 3 15:54:19 2012 -0400 Remove const from ref_count.ref_count - + According to Tom Hacohen this was breaking build with some compilers. - + In file included from hb-buffer-private.hh:35:0, from hb-ot-map-private.hh:32, from hb-ot-shape-private.hh:32, from hb-ot-shape.cc:29: - hb-object-private.hh: In constructor - '_hb_object_header_t::_hb_object_header_t()': - hb-object-private.hh:97:8: error: uninitialized const member in - 'struct hb_reference_count_t' - hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' - should be initialized + hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()': + hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t' + hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized In file included from hb-ot-shape.cc:33:0: hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()': - hb-set-private.hh:37:8: note: synthesized method - '_hb_object_header_t::_hb_object_header_t()' first required here - hb-ot-shape.cc: In function 'void - hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const - hb_feature_t*, unsigned int, hb_set_t*)': - hb-ot-shape.cc:521:12: note: synthesized method - '_hb_set_t::_hb_set_t()' first required here + hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here + hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)': + hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here src/hb-object-private.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -78634,8 +76832,7 @@ Date: Sat Jun 2 12:13:08 2012 -0400 util/options.hh | 33 ++++++++++++++-------------- util/shape-consumer.hh | 17 ++++++++++++--- util/view-cairo.cc | 47 +++++++--------------------------------- - util/view-cairo.hh | 52 - +++++++++++++++++++++++++++++++++++++++------ + util/view-cairo.hh | 52 +++++++++++++++++++++++++++++++++++++++------ 8 files changed, 143 insertions(+), 81 deletions(-) commit 96a9ef0c9fca8d58d8dc6baf6b262d96587abee0 @@ -78643,7 +76840,7 @@ Author: Behdad Esfahbod Date: Fri Jun 1 13:46:26 2012 -0400 Remove tab character like other "zero-width" characters - + Uniscribe does that, this make comparing results to Uniscribe easier. @@ -78664,9 +76861,9 @@ Author: Behdad Esfahbod Date: Mon May 28 10:46:47 2012 -0400 Remove hb_atomic_int_set/get() - + We never use them in fact... - + I'm just adjusting these as I better understand the requirements of the code and the guarantees of each operation. @@ -78679,11 +76876,10 @@ Author: Behdad Esfahbod Date: Sun May 27 22:39:48 2012 -0400 Minor Malayalam test case - + From https://bugs.freedesktop.org/show_bug.cgi?id=45166 - .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-malayalam/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit dfff5b3021016d3a472c100272fd8e2f52307860 @@ -78692,14 +76888,10 @@ Date: Sun May 27 22:07:04 2012 -0400 Add Myanmar test case - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST - | 1 + - .../texts/in-tree/shaper-indic/south-east-asian/script-myanmar/MANIFEST - | 1 + - .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/MANIFEST - | 1 + - .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/misc.txt - | 1 + + test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 + + .../texts/in-tree/shaper-indic/south-east-asian/script-myanmar/MANIFEST | 1 + + .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/MANIFEST | 1 + + .../in-tree/shaper-indic/south-east-asian/script-myanmar/misc/misc.txt | 1 + 4 files changed, 4 insertions(+) commit bce095524b3e69a47f8e88a2fb02d6ab537f9b0a @@ -78710,8 +76902,7 @@ Date: Sun May 27 11:29:21 2012 -0400 TODO | 1 + src/hb-font-private.hh | 2 ++ - src/hb-font.cc | 80 - +++++++++++++++++++++++++++++++++++---------- + src/hb-font.cc | 80 +++++++++++++++++++++++++++++++++++---------- src/hb-font.h | 28 ++++++++++++++++ src/hb-ft.cc | 52 ++++++++++++++++++++++++----- util/hb-ot-shape-closure.cc | 9 ++--- @@ -78742,7 +76933,7 @@ Author: Behdad Esfahbod Date: Sun May 27 10:11:13 2012 -0400 Don't use atomic ops in hb_cache_t - + We don't care about linearizability, so unprotected int read/write are enough, no need for expensive memory barriers. It's a cache, that's all. @@ -78764,12 +76955,11 @@ Author: Behdad Esfahbod Date: Sun May 27 10:01:13 2012 -0400 Fix Windows atomic get/set - + According to: http://msdn.microsoft.com/en-us/library/65tt87y8.aspx - - MemoryBarrier() is the right macro to protect these, not - _ReadBarrier() + + MemoryBarrier() is the right macro to protect these, not _ReadBarrier() and/or _WriteBarrier(). src/hb-atomic-private.hh | 4 ++-- @@ -78823,7 +77013,7 @@ Author: Behdad Esfahbod Date: Thu May 24 10:46:39 2012 -0400 Fix hb_atomic_int_set() implementation for HB_NO_MT - + As pointed out by Jonathan Kew. src/hb-atomic-private.hh | 2 +- @@ -78847,8 +77037,7 @@ Date: Wed May 23 21:50:43 2012 -0400 .../shaper-arabic/script-arabic/misc/MANIFEST | 2 +- .../script-arabic/misc/diacritics/MANIFEST | 5 + .../script-arabic/misc/diacritics/lam-alef.txt | 28 + - .../misc/diacritics/language-arabic.txt | 695 - +++++++++++++++++++++ + .../misc/diacritics/language-arabic.txt | 695 +++++++++++++++++++++ .../misc/diacritics/language-persian.txt | 48 ++ .../misc/diacritics/language-urdu.txt | 188 ++++++ .../misc/{ => diacritics}/ligature-diacritics.txt | 0 @@ -78859,9 +77048,9 @@ Author: Behdad Esfahbod Date: Tue May 22 22:12:22 2012 -0400 Fix substitution glyph class propagation - + The old code was doing nothing. - + Still got to find an example font+string that makes this matter, but need this for fixing synthetic GDEF anyway. @@ -78874,26 +77063,18 @@ Author: Behdad Esfahbod Date: Fri May 18 15:04:35 2012 -0400 Add CJK Compatibility Ideographs tests - + From: http://people.mozilla.org/~jdaggett/tests/cjkcompat.html - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 3 ++- - .../in-tree/shaper-default/{script-japanese => script-han}/MANIFEST - | 0 - test/shaping/texts/in-tree/shaper-default/script-han/misc/MANIFEST | - 1 + - .../texts/in-tree/shaper-default/script-han/misc/cjk-compat.txt | - 3 +++ - test/shaping/texts/in-tree/shaper-default/script-hiragana/MANIFEST | - 1 + - .../shaper-default/{script-japanese => script-hiragana}/misc/MANIFEST - | 0 - .../{script-japanese => script-hiragana}/misc/kazuraki-liga-lines.txt - | 0 - .../{script-japanese => script-hiragana}/misc/kazuraki-liga.txt - | 0 + test/shaping/texts/in-tree/shaper-default/MANIFEST | 3 ++- + .../in-tree/shaper-default/{script-japanese => script-han}/MANIFEST | 0 + test/shaping/texts/in-tree/shaper-default/script-han/misc/MANIFEST | 1 + + .../texts/in-tree/shaper-default/script-han/misc/cjk-compat.txt | 3 +++ + test/shaping/texts/in-tree/shaper-default/script-hiragana/MANIFEST | 1 + + .../shaper-default/{script-japanese => script-hiragana}/misc/MANIFEST | 0 + .../{script-japanese => script-hiragana}/misc/kazuraki-liga-lines.txt | 0 + .../{script-japanese => script-hiragana}/misc/kazuraki-liga.txt | 0 8 files changed, 7 insertions(+), 1 deletion(-) commit 20fdb0f41d81b226e076a4830d4b0d03da31fc19 @@ -78901,13 +77082,12 @@ Author: Behdad Esfahbod Date: Thu May 17 22:04:45 2012 -0400 Add a lock-free cache type for int->int functions - + To be used for cmap and advance caching if desired. TODO | 2 ++ src/Makefile.am | 1 + - src/hb-cache-private.hh | 72 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-cache-private.hh | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-font.cc | 2 ++ 4 files changed, 77 insertions(+) @@ -78953,7 +77133,7 @@ Author: Behdad Esfahbod Date: Thu May 17 20:55:12 2012 -0400 Don't use min/max as function names - + They can be macros on some systems. Eg. mingw32. src/hb-set-private.hh | 4 ++-- @@ -78977,8 +77157,7 @@ Date: Thu May 17 20:30:46 2012 -0400 Move atomic ops into their own header src/Makefile.am | 1 + - src/hb-atomic-private.hh | 78 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-atomic-private.hh | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-mutex-private.hh | 1 - src/hb-object-private.hh | 52 ++------------------------------ src/hb-warning.cc | 2 +- @@ -78998,40 +77177,38 @@ Author: Behdad Esfahbod Date: Tue May 15 23:53:18 2012 -0400 [util] Add hb-ot-shape-closure tool - + Computes all the glyphs that may be generated given a font and set of Unicode characters. - + The order of the Unicode characters is irrelevant. - + Sample output: - + behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f f f_f - + behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i i - + behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi f f_i f_f_i f_f i - + behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب uni0628 uni0628.init uni0628.medi uni0628.fina - + behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا uni0627 uni0627.fina - + behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina - - behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با - --no-glyph-names + + behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names 5 6 133 134 135 136 configure.ac | 2 +- util/Makefile.am | 22 ++++++--- - util/hb-ot-shape-closure.cc | 112 - ++++++++++++++++++++++++++++++++++++++++++++ + util/hb-ot-shape-closure.cc | 112 ++++++++++++++++++++++++++++++++++++++++++++ util/options.hh | 12 +++++ 4 files changed, 140 insertions(+), 8 deletions(-) @@ -79042,12 +77219,10 @@ Date: Tue May 15 23:10:39 2012 -0400 [util] Refactor to accommodate for upcoming new tool util/Makefile.am | 10 +++-- - util/hb-shape.cc | 70 - +++++++++++++++------------------- + util/hb-shape.cc | 70 +++++++++++++++------------------- util/hb-view.cc | 8 ++-- util/{hb-view.hh => main-font-text.hh} | 48 +++++++++++------------ - util/shape-consumer.hh | 69 - +++++++++++++++++++++++++++++++++ + util/shape-consumer.hh | 69 +++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+), 70 deletions(-) commit 1d6846db9ebf84561bb30a4e48c6c43184914099 @@ -79055,7 +77230,7 @@ Author: Behdad Esfahbod Date: Sun May 13 18:09:29 2012 +0200 [Indic] Apply vatu feature after cjct - + Testing with old Deva spec this reduces failures. Test sequence: U+0915,U+094D,U+0930. @@ -79068,8 +77243,7 @@ Date: Sun May 13 17:10:18 2012 +0200 Minor - util/ansi-print.cc | 67 - +++++++++++++++++++++++++++--------------------------- + util/ansi-print.cc | 67 +++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 34 deletions(-) commit 617f4ac46f1084859d2034c08760e31e52d3bec3 @@ -79078,8 +77252,7 @@ Date: Sun May 13 16:48:03 2012 +0200 Refactor - src/hb-ot-shape-complex-indic.cc | 44 - +++++++++++++++++++++------------------- + src/hb-ot-shape-complex-indic.cc | 44 +++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 21 deletions(-) commit 5e4e21fce4b548b0b8a5951bc8f35a9f27428192 @@ -79087,7 +77260,7 @@ Author: Behdad Esfahbod Date: Sun May 13 16:46:08 2012 +0200 Revert "[Indic] Refactoring" - + This reverts commit 0831061efb78983b9c6e1e72574c977e56383c08. src/hb-ot-shape-complex-indic.cc | 28 ++++++++-------------------- @@ -79133,8 +77306,7 @@ Date: Sun May 13 16:01:08 2012 +0200 Fix warnings src/hb-fallback-shape.cc | 4 ++-- - src/hb-private.hh | 54 - ++++++++++++++++++++++++------------------------ + src/hb-private.hh | 54 ++++++++++++++++++++++++------------------------ 2 files changed, 29 insertions(+), 29 deletions(-) commit eace47b173807d94b29a6490d0bc3c9f8f6168d1 @@ -79153,8 +77325,7 @@ Date: Sun May 13 15:45:18 2012 +0200 Add accessort to buffer for current info, current pos, and prev info src/hb-buffer-private.hh | 9 ++++++++ - src/hb-ot-layout-gpos-table.hh | 44 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-table.hh | 44 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-table.hh | 28 +++++++++++------------ src/hb-ot-layout-gsubgpos-private.hh | 28 +++++++++++------------ src/hb-ot-shape-complex-arabic.cc | 4 ++-- @@ -79177,7 +77348,7 @@ Author: Behdad Esfahbod Date: Sun May 13 15:17:51 2012 +0200 [GSUB/GPOS] Remove context_length - + The spec doesn't say contextual matching should be done this way, and AOTS doesn't do it either. It was inherited from old HarfBuzz. Remove it. @@ -79185,8 +77356,7 @@ Date: Sun May 13 15:17:51 2012 +0200 src/hb-ot-layout-common-private.hh | 1 - src/hb-ot-layout-gpos-table.hh | 3 --- src/hb-ot-layout-gsub-table.hh | 6 ++---- - src/hb-ot-layout-gsubgpos-private.hh | 32 - +++++++++++--------------------- + src/hb-ot-layout-gsubgpos-private.hh | 32 +++++++++++--------------------- 4 files changed, 13 insertions(+), 29 deletions(-) commit 28b9d502bb69a8045818d5f6113ded9c59a56bd7 @@ -79203,7 +77373,7 @@ Author: Behdad Esfahbod Date: Sun May 13 13:03:44 2012 +0200 Remove ioctl checks - + Ended up not using terminal size after all. configure.ac | 2 +- @@ -79236,8 +77406,7 @@ Date: Sun May 13 02:02:58 2012 +0200 configure.ac | 4 +- util/Makefile.am | 4 + - util/ansi-print.cc | 411 - ++++++++++++++++++++++++++++++++++++++++++++++ + util/ansi-print.cc | 411 ++++++++++++++++++++++++++++++++++++++++++++++ util/ansi-print.hh | 39 +++++ util/helper-cairo-ansi.cc | 102 ++++++++++++ util/helper-cairo-ansi.hh | 39 +++++ @@ -79259,7 +77428,7 @@ Author: Behdad Esfahbod Date: Sat May 12 15:54:27 2012 +0200 [util] Make tools default to stdin if no text is provided - + One less argument to type in typical testing workflow! util/hb-view.hh | 4 +++- @@ -79272,7 +77441,7 @@ Author: Behdad Esfahbod Date: Sat May 12 15:41:48 2012 +0200 [util] Change default font size of hb-view to 256 - + Most common usecase of hb-view is to test rendering of short words for testing / inspection. Not having to type "--font-size 150" each time isn't such a bad idea... @@ -79294,7 +77463,7 @@ Author: Behdad Esfahbod Date: Sat May 12 15:34:40 2012 +0200 [test] Make tool usage easier by not requiring "--stdin" - + Just default to it. Added "--help" instead to get usage. test/shaping/hb_test_tools.py | 9 ++++----- @@ -79306,8 +77475,7 @@ Date: Sat May 12 13:34:18 2012 +0200 [Indic] Add more Malayalam tests - .../indic/script-malayalam/misc/misc.txt | 38 - ++++++++++++++++++++++ + .../indic/script-malayalam/misc/misc.txt | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit 7f852b644b8143492a02edfc853114aaa23446bd @@ -79325,11 +77493,10 @@ Author: Behdad Esfahbod Date: Fri May 11 22:00:06 2012 +0200 [Indic] Unbreak Devanagari - + And this, concludes the HarfBuzz Massala Hackfest. - - I like to specially thank Jonathan Kew for doing all the decription - and + + I like to specially thank Jonathan Kew for doing all the decription and letting me get commit points. configure.ac | 2 +- @@ -79341,11 +77508,10 @@ Author: Behdad Esfahbod Date: Fri May 11 21:42:27 2012 +0200 [Indic] Disambiguate sub vs post vs above matras - + Bengali is at *just* above 5% now. - src/hb-ot-shape-complex-indic-private.hh | 31 - +++++++++++++++---------------- + src/hb-ot-shape-complex-indic-private.hh | 31 +++++++++++++++---------------- src/hb-ot-shape-complex-indic.cc | 12 ++++++------ 2 files changed, 21 insertions(+), 22 deletions(-) @@ -79355,8 +77521,7 @@ Date: Fri May 11 21:36:32 2012 +0200 [Indic] Position Bengali Reph before matras - src/hb-ot-shape-complex-indic.cc | 62 - +++++++++++++++++++++++----------------- + src/hb-ot-shape-complex-indic.cc | 62 +++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 26 deletions(-) commit f89367251109af235f4f0446c13c261a5a4a6f72 @@ -79365,8 +77530,7 @@ Date: Fri May 11 21:10:03 2012 +0200 [Indic] Start categorizing Reph per script - src/hb-ot-shape-complex-indic.cc | 41 - ++++++++++++++++++++++++++++++++++------ + src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) commit a913b024d84973556094fd64ce5f0b7106fcc3b5 @@ -79374,7 +77538,7 @@ Author: Behdad Esfahbod Date: Fri May 11 20:59:26 2012 +0200 [Indic] Apply 'init' feature for Bengali - + Error down from 20% to 7%. src/hb-ot-shape-complex-indic.cc | 15 +++++++++++++++ @@ -79385,11 +77549,10 @@ Author: Behdad Esfahbod Date: Fri May 11 20:50:53 2012 +0200 [Indic] Refactor for the arrival of 'init' feature - + Yep, on Bengali now! - src/hb-ot-shape-complex-indic.cc | 52 - +++++++++++++++++++++++++++------------- + src/hb-ot-shape-complex-indic.cc | 52 +++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 16 deletions(-) commit 18c06e189bd078affbb84c3bb5bb80687a227c5e @@ -79397,10 +77560,9 @@ Author: Behdad Esfahbod Date: Fri May 11 20:02:14 2012 +0200 [Indic] Add Uniscribe bug feature for dotted circle - + For dotted-circle independent clusters, Uniscribe does no Reph shaping - for the exact sequence Ra+Halant+25CC. Which also is the only - possible + for the exact sequence Ra+Halant+25CC. Which also is the only possible sequence with 25CC at the end. src/hb-ot-shape-complex-indic-machine.rl | 4 +++- @@ -79415,8 +77577,7 @@ Date: Fri May 11 19:55:42 2012 +0200 [Indic] Add tests for dottedcircle .../in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 + - .../shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | - 7 +++++++ + .../shaper-indic/indic/script-devanagari/misc/dottedcircle.txt | 7 +++++++ 2 files changed, 8 insertions(+) commit 0831061efb78983b9c6e1e72574c977e56383c08 @@ -79442,7 +77603,7 @@ Author: Behdad Esfahbod Date: Fri May 11 18:46:35 2012 +0200 [Indic] Allow multiple Consonants in Vowel/NBSP syllables - + Uniscribe allows multiple Halant+Consonant after a Vowel. Tests: ↦ * U+0905,U+094D,U+092B,U+094D,930,94d,930 @@ -79455,11 +77616,10 @@ Author: Behdad Esfahbod Date: Fri May 11 18:13:42 2012 +0200 [Indic] Allow two Nuktas per consonant - - Uniscribe allows up to two nuktas per consonant and one per matra. It - does so + + Uniscribe allows up to two nuktas per consonant and one per matra. It does so indepent of whether the consonant already has a nukta in it. Tests: - + * U+0916,U+093C,U+0941 * U+0959,U+093C,U+0941 * U+0916,U+093C,U+093C,U+0941 @@ -79476,7 +77636,7 @@ Author: Behdad Esfahbod Date: Fri May 11 17:54:26 2012 +0200 [Indic] Fix U+0952 and similar classification to match Uniscribe - + See comments. src/hb-ot-shape-complex-indic-machine.rl | 1 + @@ -79497,9 +77657,9 @@ Author: Behdad Esfahbod Date: Fri May 11 17:29:40 2012 +0200 [GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only - + This does not apply to the context matchings. - + This regresses tests right now. And we are not sure whether this is the right thing to do for GPOS. But we'll figure out. @@ -79547,15 +77707,14 @@ Author: Behdad Esfahbod Date: Fri May 11 16:43:12 2012 +0200 [Indic] Add runtime Uniscribe bug compatibility mode! - + Enable by setting envvar: - + HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible - + Plus, LeftMatra+Halant "feature". - src/hb-ot-shape-complex-indic.cc | 44 - ++++++++++++++++++++++++++++++---------- + src/hb-ot-shape-complex-indic.cc | 44 ++++++++++++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 11 deletions(-) commit 616e692e2950d326b6c46aba5b5bead3cc29d315 @@ -79572,7 +77731,7 @@ Author: Behdad Esfahbod Date: Fri May 11 16:23:43 2012 +0200 [Indic] Fix Left Matra + Halant reordering - + As can be seen in: U+092B,U+093F,U+094D src/hb-ot-shape-complex-indic.cc | 6 ++++-- @@ -79584,8 +77743,7 @@ Date: Fri May 11 16:23:38 2012 +0200 Minor - src/hb-ot-shape-complex-indic.cc | 73 - ++++++++++++++++++++-------------------- + src/hb-ot-shape-complex-indic.cc | 73 ++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 36 deletions(-) commit c071b99f150a9344a2056dfeba8c613f8a5602db @@ -79593,12 +77751,10 @@ Author: Behdad Esfahbod Date: Fri May 11 16:22:46 2012 +0200 [Indic] Add test for Left Matra with Halant + + Uniscribe doesn't move the Halant, we do. And do a broken job of it now. - Uniscribe doesn't move the Halant, we do. And do a broken job of - it now. - - .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt - | 1 + + .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt | 1 + 1 file changed, 1 insertion(+) commit 203d71069c45048b6dd8fa22b61fd8f2c844b4f6 @@ -79615,7 +77771,7 @@ Author: Behdad Esfahbod Date: Fri May 11 15:34:13 2012 +0200 [Indic] Apply Reph mask to all POS_REPH glyphs - + Needed for upcoming changes to GSUB/GPOS mask matching. src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -79627,8 +77783,7 @@ Date: Fri May 11 14:39:01 2012 +0200 [Indic] Fix state machine to backtrack - src/hb-ot-shape-complex-indic-machine.rl | 42 - +++++++++++++++----------------- + src/hb-ot-shape-complex-indic-machine.rl | 42 +++++++++++++++----------------- src/hb-private.hh | 2 ++ 2 files changed, 21 insertions(+), 23 deletions(-) @@ -79637,7 +77792,7 @@ Author: Behdad Esfahbod Date: Fri May 11 11:41:39 2012 +0200 [Indic] Move syllable tracking from Indic to generic layer - + This is to incorporate it into GSUB/GPOS processing. src/hb-ot-layout-gpos-table.hh | 1 + @@ -79655,9 +77810,8 @@ Author: Behdad Esfahbod Date: Fri May 11 11:17:23 2012 +0200 [Indic] Disable conjuncts when a ZWJ happens - - Not that the code makes any difference since the presence of ZWJ - itself + + Not that the code makes any difference since the presence of ZWJ itself causes the ligature to fail to match anyway. src/hb-ot-shape-complex-indic.cc | 7 +------ @@ -79668,7 +77822,7 @@ Author: Behdad Esfahbod Date: Fri May 11 11:07:40 2012 +0200 [Indic] Fix bitops typo! - + Another 1000 down! src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -79679,7 +77833,7 @@ Author: Behdad Esfahbod Date: Fri May 11 03:45:28 2012 +0200 Make APPLY debug output print current index and codepoint - + Yay! src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -79699,7 +77853,7 @@ Author: Behdad Esfahbod Date: Fri May 11 03:35:08 2012 +0200 Some more... - + Done. I promise. src/hb-object-private.hh | 1 + @@ -79720,8 +77874,7 @@ Date: Fri May 11 03:16:57 2012 +0200 Finish off debug output beautification - src/hb-open-type-private.hh | 58 - ++++++++++++++++++++------------------------- + src/hb-open-type-private.hh | 58 ++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 32 deletions(-) commit d7bba01a353efc7432c474dd8755a02db4abd2ae @@ -79738,7 +77891,7 @@ Author: Behdad Esfahbod Date: Fri May 11 02:40:42 2012 +0200 Only printout class name in tracing, if one is available - + Makes debug output much more pleasant. src/hb-private.hh | 8 ++++++-- @@ -79759,8 +77912,7 @@ Date: Fri May 11 02:33:11 2012 +0200 Add return annotation for APPLY - src/hb-ot-layout-gpos-table.hh | 163 - +++++++++++++++-------------------- + src/hb-ot-layout-gpos-table.hh | 163 +++++++++++++++-------------------- src/hb-ot-layout-gsub-table.hh | 114 +++++++++++------------- src/hb-ot-layout-gsubgpos-private.hh | 83 ++++++++---------- 3 files changed, 151 insertions(+), 209 deletions(-) @@ -79779,7 +77931,7 @@ Author: Behdad Esfahbod Date: Fri May 11 01:25:34 2012 +0200 Annotate SANITIZE return values - + More to come, for APPLY, CLOSURE, etc. src/hb-open-file-private.hh | 23 ++--- @@ -79789,8 +77941,7 @@ Date: Fri May 11 01:25:34 2012 +0200 src/hb-ot-hmtx-table.hh | 4 +- src/hb-ot-layout-common-private.hh | 51 +++++----- src/hb-ot-layout-gdef-table.hh | 48 +++++----- - src/hb-ot-layout-gpos-table.hh | 180 - ++++++++++++++++------------------- + src/hb-ot-layout-gpos-table.hh | 180 ++++++++++++++++------------------- src/hb-ot-layout-gsub-table.hh | 101 +++++++++----------- src/hb-ot-layout-gsubgpos-private.hh | 88 ++++++++--------- src/hb-ot-maxp-table.hh | 7 +- @@ -79823,8 +77974,7 @@ Date: Fri May 11 00:16:40 2012 +0200 Beautify debug output src/hb-open-type-private.hh | 20 ++++++------ - src/hb-private.hh | 74 - +++++++++++++++++++++++++++------------------ + src/hb-private.hh | 74 +++++++++++++++++++++++++++------------------ 2 files changed, 55 insertions(+), 39 deletions(-) commit 6f4553801729a06e506ffdde7b27c72780d4bb80 @@ -79852,13 +78002,12 @@ Author: Behdad Esfahbod Date: Thu May 10 23:06:58 2012 +0200 Better trace message support infrastructure - + We have varargs in the trace interface now. To be used soon... src/hb-open-type-private.hh | 17 ++++------ src/hb-ot-layout-gsubgpos-private.hh | 4 +-- - src/hb-private.hh | 64 - ++++++++++++++++++++++++++---------- + src/hb-private.hh | 64 ++++++++++++++++++++++++++---------- 3 files changed, 56 insertions(+), 29 deletions(-) commit 02b2922fbf098c8282eb23dc2c54d5829cf67024 @@ -79866,13 +78015,11 @@ Author: Behdad Esfahbod Date: Thu May 10 21:44:50 2012 +0200 [Indic] Towards better Reph positioning - - Fixed for Deva cases with two full-form consonants. Failures **way** - down. + + Fixed for Deva cases with two full-form consonants. Failures **way** down. Not much left to go :-). - src/hb-ot-shape-complex-indic.cc | 111 - ++++++++++++++++++++++++++++----------- + src/hb-ot-shape-complex-indic.cc | 111 ++++++++++++++++++++++++++++----------- 1 file changed, 80 insertions(+), 31 deletions(-) commit 74e54cf446bb979e488685e8c09eeed6b9d03c24 @@ -79880,7 +78027,7 @@ Author: Behdad Esfahbod Date: Thu May 10 21:20:37 2012 +0200 [Indic] Add Ra back for scripts without Reph - + We now check that the 'rphp' table exists before forming Reph, so we don't need to comment out Ra for those scripts. @@ -79901,7 +78048,7 @@ Author: Behdad Esfahbod Date: Thu May 10 18:34:34 2012 +0200 [Indic] Do clustering like Uniscribe does - + Hindi Wikipedia failures down to 6639 (0.938381%)! src/hb-ot-shape-complex-indic.cc | 24 ++++++++++++++++++++---- @@ -79912,15 +78059,13 @@ Author: Behdad Esfahbod Date: Thu May 10 18:31:17 2012 +0200 [Indic] Add test for matra group - + The spec says: "[{M}+[N]+[H]]", and that's what Uniscribe implements. We instead do: "{M+[N]+[H]}", which means we allow Nukta and Halant after all Matras, not just the last one. It makes more sense. - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST - | 1 + - .../shaper-indic/indic/script-devanagari/misc/spec-deviations.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 + + .../shaper-indic/indic/script-devanagari/misc/spec-deviations.txt | 1 + 2 files changed, 2 insertions(+) commit 8df5636968389ac7bf8620ccd091fd4872b0bbee @@ -79928,10 +78073,9 @@ Author: Behdad Esfahbod Date: Thu May 10 15:41:04 2012 +0200 [Indic] Reorder Reph to before the Halant after Matras - + Uniscribe doesn't do it, but we want to do as it gives the Reph the - opportunity to interact with the Matras. Test with mangal for - example. + opportunity to interact with the Matras. Test with mangal for example. Sequence: <0930,094d,0915,094b,094d> In test suite already. @@ -79943,7 +78087,7 @@ Author: Behdad Esfahbod Date: Thu May 10 15:28:27 2012 +0200 [Indic] Don't clear the mask for Reph - + This was removing the mandatory global 1 bit in the mask and hence disabling GPOS for Reph! @@ -79955,7 +78099,7 @@ Author: Behdad Esfahbod Date: Thu May 10 14:48:25 2012 +0200 [Indic] Improve Left Matra repositioning - + Move its dependents too. src/hb-ot-shape-complex-indic.cc | 2 +- @@ -79966,15 +78110,13 @@ Author: Behdad Esfahbod Date: Thu May 10 14:43:53 2012 +0200 [Indic] Add tricky reordering test cases - + In the case of Consonant,LeftMatra,Halant, Uniscribe leaves the Halant where it is, but we want to move it with the Matra as that makes more logical sense. - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | - 1 + - .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt | - 4 ++++ + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/MANIFEST | 1 + + .../shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt | 4 ++++ 2 files changed, 5 insertions(+) commit dbb105883c6e9b83e78dc8b10766cd56b98cd7e1 @@ -79982,21 +78124,18 @@ Author: Behdad Esfahbod Date: Thu May 10 13:45:52 2012 +0200 [Indic] Do Reph repositioning in final reordering like the spec says - - This introduced a failure, which we tracked down to a test case - like this: - + + This introduced a failure, which we tracked down to a test case like this: + U+092E,U+094B,U+094D,U+0930 - + The final character is a Ra that should be put in a syllable of it's own. And we do. But it will interact with the Halant before it. So - now we finally are convinced that we have to limit features to - syllable + now we finally are convinced that we have to limit features to syllable boundaries. That's coming after lunch! src/hb-ot-shape-complex-indic-private.hh | 2 - - src/hb-ot-shape-complex-indic.cc | 103 - +++++++++++++++++++------------ + src/hb-ot-shape-complex-indic.cc | 103 +++++++++++++++++++------------ 2 files changed, 64 insertions(+), 41 deletions(-) commit 4705a7026900e51f6430f03a73c87f2df035df92 @@ -80015,8 +78154,7 @@ Date: Thu May 10 12:53:53 2012 +0200 [Indic] Reorder left matras to be closer to base src/hb-ot-shape-complex-indic-private.hh | 4 --- - src/hb-ot-shape-complex-indic.cc | 50 - +++++++++++++++++++++++++++++--- + src/hb-ot-shape-complex-indic.cc | 50 +++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 8 deletions(-) commit 1a1fa8c655a082fc1439608457ba717306cc83ca @@ -80042,7 +78180,7 @@ Author: Behdad Esfahbod Date: Thu May 10 12:07:33 2012 +0200 [Indic] Handle Vowel syllables - + Reusing the consonant logic! src/hb-ot-shape-complex-indic-private.hh | 3 +-- @@ -80073,9 +78211,8 @@ Author: Behdad Esfahbod Date: Thu May 10 11:32:52 2012 +0200 [Indic] Increase max syllable length - - 20 was way too low, one could hit a syllable with 7ish consonants - with it. + + 20 was way too low, one could hit a syllable with 7ish consonants with it. src/hb-ot-shape-complex-indic.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -80125,8 +78262,7 @@ Date: Wed May 9 17:56:03 2012 +0200 src/hb-ot-shape-complex-arabic.cc | 2 +- src/hb-ot-shape-complex-indic-machine.rl | 21 ++++++++++----- src/hb-ot-shape-complex-indic-private.hh | 1 + - src/hb-ot-shape-complex-indic.cc | 45 - +++++++++++++++++++++++--------- + src/hb-ot-shape-complex-indic.cc | 45 +++++++++++++++++++++++--------- src/hb-ot-shape-complex-private.hh | 5 ++-- 5 files changed, 51 insertions(+), 23 deletions(-) @@ -80147,8 +78283,7 @@ Date: Wed May 9 17:40:00 2012 +0200 Minor - src/hb-ot-shape-complex-indic.cc | 41 - ++++++++++++++++++++-------------------- + src/hb-ot-shape-complex-indic.cc | 41 ++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) commit dbccf87eef0d26838fa4bb3ae26410f6c4818836 @@ -80157,8 +78292,7 @@ Date: Wed May 9 17:24:39 2012 +0200 [Indic] Make room for more reordering positions - src/hb-ot-shape-complex-indic-private.hh | 213 - ++++++++++++++++--------------- + src/hb-ot-shape-complex-indic-private.hh | 213 ++++++++++++++++--------------- src/hb-ot-shape-complex-indic.cc | 12 +- 2 files changed, 115 insertions(+), 110 deletions(-) @@ -80167,11 +78301,10 @@ Author: Behdad Esfahbod Date: Wed May 9 15:56:35 2012 +0200 [Indic] Improve matra vs consonant ordering - + Another 1.5% down. - src/hb-ot-shape-complex-indic-private.hh | 32 - ++++++++++++++++++++------------ + src/hb-ot-shape-complex-indic-private.hh | 32 ++++++++++++++++++++------------ src/hb-ot-shape-complex-indic.cc | 6 +++--- src/indic.cc | 2 +- 3 files changed, 24 insertions(+), 16 deletions(-) @@ -80192,8 +78325,7 @@ Date: Wed May 9 15:27:56 2012 +0200 [Indic] Add joiner test cases for Devanagari .../indic/script-devanagari/misc/MANIFEST | 1 + - .../indic/script-devanagari/misc/joiners.txt | 19 - +++++++++++++++++++ + .../indic/script-devanagari/misc/joiners.txt | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) commit 19d984edaa4f86c842345a9d4150597e045e1887 @@ -80201,7 +78333,7 @@ Author: Behdad Esfahbod Date: Wed May 9 15:21:13 2012 +0200 [Indic] Make sure Reph jumps over all matras to the right - + Another 12 thousand failures gone! (78 to go) src/hb-ot-shape-complex-indic.cc | 2 +- @@ -80221,7 +78353,7 @@ Author: Behdad Esfahbod Date: Wed May 9 15:04:13 2012 +0200 Replace zerowidth invisible chars with a zero-advance space glyph - + Like Uniscribe does. src/hb-ot-shape-complex-arabic.cc | 3 ++- @@ -80229,10 +78361,8 @@ Date: Wed May 9 15:04:13 2012 +0200 src/hb-ot-shape-complex-private.hh | 4 ++-- src/hb-ot-shape-normalize.cc | 25 +++++++++-------------- src/hb-ot-shape-private.hh | 27 +++++++++++++++++++++++++ - src/hb-ot-shape.cc | 41 - +++++++++++++++++++++++++------------- - src/hb-unicode-private.hh | 38 - +++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.cc | 41 +++++++++++++++++++++++++------------- + src/hb-unicode-private.hh | 38 +++++++++++++++++++++++++++++++++++ 7 files changed, 105 insertions(+), 53 deletions(-) commit 49e5da1591b8d28f01e7ff9caac9d9ac53668bba @@ -80240,7 +78370,7 @@ Author: Behdad Esfahbod Date: Wed May 9 13:23:27 2012 +0200 [indic] Keep the syllable modifier marks to the right - + Shaping failures on Hindi Wikipedia go down from 25% to 14%! src/hb-ot-shape-complex-indic.cc | 2 ++ @@ -80296,7 +78426,7 @@ Author: Behdad Esfahbod Date: Wed May 9 11:06:47 2012 +0200 [indic] Apply rakaar forms - + Fixes 10% of the failures against all of Hindi Wikipedia! src/hb-ot-shape-complex-indic.cc | 2 +- @@ -80310,8 +78440,7 @@ Date: Wed May 9 09:54:54 2012 +0200 test/shaping/Makefile.am | 1 + test/shaping/hb-diff-ngrams | 5 +++ - test/shaping/hb_test_tools.py | 71 - ++++++++++++++++++++++++++++++++++++++++--- + test/shaping/hb_test_tools.py | 71 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 72 insertions(+), 5 deletions(-) commit 178e6dce01ad28c8708bad62ce0fb79c46e836dc @@ -80320,8 +78449,7 @@ Date: Wed May 9 08:57:29 2012 +0200 Add N-gram generator - test/shaping/hb_test_tools.py | 72 - +++++++++++++++++++++++++++++++++++++++++-- + test/shaping/hb_test_tools.py | 72 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) commit 98669ceb77657d60435f2cb2e3fc18272c0a2c6a @@ -80358,14 +78486,13 @@ Author: Behdad Esfahbod Date: Tue May 8 23:41:41 2012 +0200 Add hb-diff-colorize - + Accepts --format=html now. test/shaping/Makefile.am | 1 + test/shaping/hb-diff | 4 +- test/shaping/hb-diff-colorize | 7 ++ - test/shaping/hb_test_tools.py | 158 - +++++++++++++++++++++++++----------------- + test/shaping/hb_test_tools.py | 158 +++++++++++++++++++++++++----------------- 4 files changed, 106 insertions(+), 64 deletions(-) commit 9155e4ffe00c96a2c14e14a300004b1038ca3a9c @@ -80373,7 +78500,7 @@ Author: Behdad Esfahbod Date: Tue May 8 22:44:21 2012 +0200 Cleanup diff - + Doesn't do --color anymore. That will go into a new hb-diff-colorize tool. @@ -80399,8 +78526,7 @@ Date: Tue May 8 18:55:29 2012 +0200 .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 + .../texts/in-tree/shaper-arabic/script-mongolian/misc/poem.txt | 4 ++++ .../in-tree/shaper-indic/indic/script-bengali/misc/MANIFEST | 1 + - .../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt | - 10 ++++++++++ + .../in-tree/shaper-indic/indic/script-bengali/misc/reph.txt | 10 ++++++++++ 4 files changed, 16 insertions(+) commit 1a2a4a0078dda834443edd421037a4bcbad18c5e @@ -80408,7 +78534,7 @@ Author: Behdad Esfahbod Date: Sat May 5 22:38:20 2012 +0200 Fix warning and build issues - + As reported by Jonathan Kew on the list. src/hb-set-private.hh | 2 +- @@ -80430,7 +78556,7 @@ Author: Behdad Esfahbod Date: Tue Apr 24 16:56:37 2012 -0400 Add hb_ot_shape_glyphs_closure() - + Experimental API for now. src/hb-ot-map-private.hh | 7 ++++--- @@ -80462,18 +78588,16 @@ Author: Behdad Esfahbod Date: Tue Apr 24 16:00:50 2012 -0400 Add test caes for a minority language using Bengali - + U+0985 BENGALI LETTER A followed by U+09D7 BENGALI AU LENGTH MARK. - According to Bobby de Vos on the mailing list, this results in - a dotted + According to Bobby de Vos on the mailing list, this results in a dotted circle with most shaping engines, but is a legitimate sequence in this minority language. - + We reached the consensus on the list to NOT implement dotted-circle in HarfBuzz. - .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-bengali/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit 6c6ccaf575392f6e6bb9a15534026e4ea462705b @@ -80481,13 +78605,11 @@ Author: Behdad Esfahbod Date: Tue Apr 24 14:21:15 2012 -0400 Add a few more set operations - + TODO: Tests for hb_set_t. - src/hb-set-private.hh | 54 - +++++++++++++++++++++++++++++++++++++++++++++++++- - src/hb-set.cc | 55 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-set-private.hh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-set.cc | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-set.h | 34 ++++++++++++++++++++++++++++--- 3 files changed, 139 insertions(+), 4 deletions(-) @@ -80498,8 +78620,7 @@ Date: Mon Apr 23 23:03:12 2012 -0400 Make closure() return void src/hb-ot-layout-gsub-table.hh | 142 +++++++++++++----------------- - src/hb-ot-layout-gsubgpos-private.hh | 165 - ++++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.hh | 165 ++++++++++++++++++----------------- src/hb-ot-layout.cc | 10 +-- src/hb-ot-layout.h | 8 +- src/hb-set-private.hh | 20 ++--- @@ -80517,8 +78638,7 @@ Date: Mon Apr 23 22:41:09 2012 -0400 src/hb-ot-layout-private.hh | 47 --------------- src/hb-ot-layout.h | 2 - src/hb-set-private.hh | 95 +++++++++++++++++++++++++++++ - src/hb-set.cc | 120 - +++++++++++++++++++++++++++++++++++++ + src/hb-set.cc | 120 +++++++++++++++++++++++++++++++++++++ src/hb-set.h | 91 ++++++++++++++++++++++++++++ src/hb.h | 1 + 9 files changed, 313 insertions(+), 49 deletions(-) @@ -80589,8 +78709,7 @@ Date: Mon Apr 23 16:54:58 2012 -0400 Implement closure() for Context and ChainContext lookups src/hb-ot-layout-common-private.hh | 54 ++++++ - src/hb-ot-layout-gsubgpos-private.hh | 347 - ++++++++++++++++++++++++++++------- + src/hb-ot-layout-gsubgpos-private.hh | 347 ++++++++++++++++++++++++++++------- src/hb-ot-layout-private.hh | 23 ++- 3 files changed, 351 insertions(+), 73 deletions(-) @@ -80599,12 +78718,11 @@ Author: Behdad Esfahbod Date: Mon Apr 23 15:28:35 2012 -0400 Flesh out closure() for GSUB - + The GSUBGPOS part still missing. src/hb-ot-layout-common-private.hh | 61 ++++++++++++++------ - src/hb-ot-layout-gsub-table.hh | 112 - ++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsub-table.hh | 112 ++++++++++++++++++++++++++++--------- src/hb-ot-layout-private.hh | 34 +++++++++++ src/hb-ot-layout.h | 2 +- 4 files changed, 165 insertions(+), 44 deletions(-) @@ -80637,8 +78755,7 @@ Date: Mon Apr 23 13:17:09 2012 -0400 Minor refactoring src/hb-ot-layout-gpos-table.hh | 27 +++++++++++-------------- - src/hb-ot-layout-gsub-table.hh | 39 - +++++++++++++++++------------------- + src/hb-ot-layout-gsub-table.hh | 39 +++++++++++++++++------------------- src/hb-ot-layout-gsubgpos-private.hh | 8 ++------ src/hb-ot-layout.cc | 6 ++++-- 4 files changed, 36 insertions(+), 44 deletions(-) @@ -80648,11 +78765,10 @@ Author: Behdad Esfahbod Date: Mon Apr 23 13:04:38 2012 -0400 Add "closure" operation stubs to GSUB - + Filling in. - src/hb-ot-layout-gsub-table.hh | 179 - +++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-table.hh | 179 +++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gsubgpos-private.hh | 110 ++++++++++++++++++++- src/hb-ot-layout.cc | 8 ++ 3 files changed, 293 insertions(+), 4 deletions(-) @@ -80663,8 +78779,7 @@ Date: Mon Apr 23 13:02:14 2012 -0400 Add Coverage iterators - src/hb-ot-layout-common-private.hh | 59 - ++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-common-private.hh | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) commit 3ed4634ec349fa9e943ad23718c04be4dd4bba62 @@ -80674,10 +78789,8 @@ Date: Thu Apr 19 22:34:06 2012 -0400 Add Indic inspection tool src/Makefile.am | 7 +- - src/hb-ot-shape-complex-indic-private.hh | 264 - +++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-indic.cc | 229 - +-------------------------- + src/hb-ot-shape-complex-indic-private.hh | 264 +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 229 +-------------------------- src/indic.cc | 46 ++++++ 4 files changed, 317 insertions(+), 229 deletions(-) @@ -80686,7 +78799,7 @@ Author: Behdad Esfahbod Date: Thu Apr 19 22:28:25 2012 -0400 Minor matra renumbering - + Should have no visible effect. src/hb-ot-shape-complex-indic.cc | 30 +++++++++++++++++------------- @@ -80697,11 +78810,10 @@ Author: Behdad Esfahbod Date: Thu Apr 19 22:21:38 2012 -0400 Add GSUB "would_apply" API - + To be used in the Indic shaper later. Unused for now. - src/hb-ot-layout-gsub-table.hh | 140 - ++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsub-table.hh | 140 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 2 deletions(-) commit a0d4caeb91fa5e5f2090db4efc35c64ff9a64789 @@ -80754,7 +78866,7 @@ Author: Behdad Esfahbod Date: Mon Apr 16 21:05:51 2012 -0400 Fix ragel regexp in vowel-based syllable - + As reported by datao zhang on the mailing list. src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -80765,7 +78877,7 @@ Author: Behdad Esfahbod Date: Mon Apr 16 21:05:11 2012 -0400 Rewrite ragel expression to better match the one on MS spec - + https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -80776,7 +78888,7 @@ Author: Behdad Esfahbod Date: Mon Apr 16 18:08:20 2012 -0400 Add --utf8-clusters - + Also fix cairo cluster generation. util/hb-shape.cc | 8 +++++--- @@ -80794,7 +78906,7 @@ Author: Behdad Esfahbod Date: Mon Apr 16 16:04:07 2012 -0400 Always use cairo_show_text_glyphs() - + Better catches cluster errors. util/view-cairo.cc | 2 +- @@ -80814,7 +78926,7 @@ Author: Behdad Esfahbod Date: Mon Apr 16 15:55:13 2012 -0400 Apply 'liga' for vertical writing mode too - + Apparently that's what Kazuraki uses to form vertical ligatures, which suggests that it's what Adobe does. @@ -80831,8 +78943,7 @@ Date: Mon Apr 16 15:54:26 2012 -0400 .../shaper-default/script-japanese/MANIFEST | 1 + .../shaper-default/script-japanese/misc/MANIFEST | 2 + .../script-japanese/misc/kazuraki-liga-lines.txt | 8 ++++ - .../script-japanese/misc/kazuraki-liga.txt | 53 - ++++++++++++++++++++++ + .../script-japanese/misc/kazuraki-liga.txt | 53 ++++++++++++++++++++++ 5 files changed, 65 insertions(+) commit e74616b8898b5f18d9bf82b9e81aefad056c1e36 @@ -80862,8 +78973,7 @@ Date: Sat Apr 14 20:23:58 2012 -0400 Move code around src/hb-ot-shape-private.hh | 40 ---------------------------------------- - src/hb-ot-shape.cc | 45 - +++++++++++++++++++++++++++++++++++++++++---- + src/hb-ot-shape.cc | 45 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 41 insertions(+), 44 deletions(-) commit 38a83019e6a7f4aa47662fd557344f62ae001abe @@ -80899,7 +79009,7 @@ Author: Behdad Esfahbod Date: Sat Apr 14 18:51:50 2012 -0400 Remove public enum names again - + As was reported to me, glib-mkenum does not understand named enums, so remove for now. @@ -80922,7 +79032,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 17:38:23 2012 -0400 Make HB_DIRECTION_INVALID be zero - + This changes all the HB_DIRECTION_* enum member values, but is nicer, in preparation for making hb_segment_properties_t public. @@ -80945,7 +79055,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 15:50:40 2012 -0400 Fix hb-view surface size calc for vertical text - + For some reason it doesn't quite work with IranianNastaliq, but that looks like a font issue. @@ -80960,10 +79070,10 @@ Author: Behdad Esfahbod Date: Thu Apr 12 14:53:53 2012 -0400 Hide backend-specific shape functions - + Also remove shaper_options argument to hb_shape_full(). That was unused and for "future". Let it go. - + More shaper API coming in preparation for plan/planned API. configure.ac | 6 ++-- @@ -80978,8 +79088,7 @@ Date: Thu Apr 12 14:53:53 2012 -0400 src/hb-ot.h | 1 - src/hb-shape.cc | 24 ++++++--------- src/hb-shape.h | 1 - - src/hb-uniscribe-private.hh | 42 - ++++++++++++++++++++++++++ + src/hb-uniscribe-private.hh | 42 ++++++++++++++++++++++++++ src/hb-uniscribe.cc | 9 +++--- src/hb-uniscribe.h | 7 ----- util/options.hh | 2 +- @@ -80990,7 +79099,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 13:23:59 2012 -0400 Add names to enums - + gdb was showing instead of useful stuff, so name all our enums. @@ -81008,7 +79117,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 13:17:44 2012 -0400 Make it an error to include non-top-level headers - + Users should #include (or hb-ft.h, hb-glib.h, etc), but never things like hb-shape.h directly. This makes it easier to refactor headers later on without breaking compatibility. @@ -81048,7 +79157,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 10:06:52 2012 -0400 Fix bug with not setting Unicode props of the first character - + Fixes Mongolian shaping issue: https://bugs.freedesktop.org/show_bug.cgi?id=45695 @@ -81061,8 +79170,7 @@ Date: Thu Apr 12 09:59:26 2012 -0400 Minor - test/shaping/texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | - 1 - + test/shaping/texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 1 - 1 file changed, 1 deletion(-) commit 7470b0ff805e4ff59d23d7a1808888fafdf550eb @@ -81071,16 +79179,11 @@ Date: Thu Apr 12 09:44:27 2012 -0400 Add Mongolian test case - test/shaping/texts/in-tree/MANIFEST | - 1 + - .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | - 1 + - .../texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | - 4 ++++ - test/shaping/texts/in-tree/shaper-thai/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | - 1 + + test/shaping/texts/in-tree/MANIFEST | 1 + + .../texts/in-tree/shaper-arabic/script-mongolian/misc/MANIFEST | 1 + + .../texts/in-tree/shaper-arabic/script-mongolian/misc/misc.txt | 4 ++++ + test/shaping/texts/in-tree/shaper-thai/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-thai/misc/MANIFEST | 1 + 5 files changed, 8 insertions(+) commit c65662b71e6160f5adfb6226d97589ca457d98b9 @@ -81088,7 +79191,7 @@ Author: Behdad Esfahbod Date: Thu Apr 12 09:31:55 2012 -0400 Fix left-matra positioning in Indic - + Fixes 200 failures out of previous 4290 cases in the OO.o Indic dictionary (of ~16000 entries). @@ -81109,11 +79212,11 @@ Author: Behdad Esfahbod Date: Wed Apr 11 22:00:46 2012 -0400 [hangul] Apply *jmo features to all Hangul chars - + This is what old HB does. Morever, fixes rendering with Win8 malgun font. The Win7 version doesn't compose with either Uniscribe nor HB, but Win8 version works as expected, like Uniscribe, with this change. - + Lets call Hangul done for now. src/hb-ot-shape-complex-misc.cc | 9 +++++++++ @@ -81134,8 +79237,7 @@ Date: Wed Apr 11 17:48:40 2012 -0400 Add Hangul test - test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt | - 1 + + test/shaping/texts/in-tree/shaper-hangul/script-hangul/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit e95d912b3b0af027c4384553f95236db822e5acc @@ -81152,7 +79254,7 @@ Author: Behdad Esfahbod Date: Wed Apr 11 17:11:05 2012 -0400 Don't create hb_apply_context_t per glyph! - + I couldn't measure significant performance gains out of this; maybe about 5% (with one million Malayalam strings). Still, not bad. But reminds me that optimizing this codebase without profiling first @@ -81168,7 +79270,7 @@ Author: Behdad Esfahbod Date: Wed Apr 11 14:37:53 2012 -0400 Fix shape to presentation forms font check - + As reported by Jonathan Kew on the list. src/hb-ot-shape-complex-arabic.cc | 9 ++++++--- @@ -81179,7 +79281,7 @@ Author: Behdad Esfahbod Date: Wed Apr 11 14:19:55 2012 -0400 Fix build with some compilers - + As reported by Jonathan Kew on the list. src/hb-ot-shape-complex-misc.cc | 7 ++++--- @@ -81214,11 +79316,9 @@ Date: Tue Apr 10 17:20:05 2012 -0400 Implement Arabic fallback shaping mandatory ligatures - src/gen-arabic-table.py | 32 - ++++++++++++++++++++++---------- + src/gen-arabic-table.py | 32 ++++++++++++++++++++++---------- src/hb-ot-shape-complex-arabic-table.hh | 28 +++++++++++++++++++--------- - src/hb-ot-shape-complex-arabic.cc | 31 - +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic.cc | 31 +++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-misc.cc | 4 ++-- 4 files changed, 74 insertions(+), 21 deletions(-) @@ -81228,8 +79328,7 @@ Date: Tue Apr 10 16:44:38 2012 -0400 Do Arabic fallback shaping - src/hb-ot-shape-complex-arabic.cc | 38 - +++++++++++++++++++++++++++++++++----- + src/hb-ot-shape-complex-arabic.cc | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) commit ae4a2b9365051c23c9a299cf76f3ab7e661999b1 @@ -81237,15 +79336,13 @@ Author: Behdad Esfahbod Date: Tue Apr 10 16:25:08 2012 -0400 Generate fallback Arabic shaping table - + Not hooked up yet. src/Makefile.am | 6 +- - src/gen-arabic-table.py | 220 - +++++++++++++++++++++++--------- + src/gen-arabic-table.py | 220 +++++++++++++++++++++++--------- src/gen-indic-table.py | 4 +- - src/hb-ot-shape-complex-arabic-table.hh | 205 - ++++++++++++++++++++++++++++- + src/hb-ot-shape-complex-arabic-table.hh | 205 ++++++++++++++++++++++++++++- 4 files changed, 367 insertions(+), 68 deletions(-) commit 3b26f96ebe859570d14c6902afc23462bca40712 @@ -81253,12 +79350,11 @@ Author: Behdad Esfahbod Date: Tue Apr 10 10:52:07 2012 -0400 Add Thai shaper that does SARA AM decomposition / reordering - + That's not in the OpenType spec, but it's what MS and Adobe do. src/hb-buffer.cc | 1 + - src/hb-ot-shape-complex-misc.cc | 104 - ++++++++++++++++++++++++++++++++++++- + src/hb-ot-shape-complex-misc.cc | 104 ++++++++++++++++++++++++++++++++++++- src/hb-ot-shape-complex-private.hh | 8 +++ 3 files changed, 112 insertions(+), 1 deletion(-) @@ -81287,16 +79383,11 @@ Date: Sat Apr 7 22:07:23 2012 -0400 Move around - test/shaping/texts/in-tree/MANIFEST - | 1 + - test/shaping/texts/in-tree/shaper-default/MANIFEST - | 1 - - .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST - | 0 - .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt - | 0 + test/shaping/texts/in-tree/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 - + .../in-tree/{shaper-default => shaper-hangul}/script-hangul/MANIFEST | 0 + .../{shaper-default => shaper-hangul}/script-hangul/misc/MANIFEST | 0 + .../{shaper-default => shaper-hangul}/script-hangul/misc/misc.txt | 0 5 files changed, 1 insertion(+), 1 deletion(-) commit d4cc44716c1e098f8abbc0e495404598026ef242 @@ -81315,17 +79406,16 @@ Author: Behdad Esfahbod Date: Sat Apr 7 15:06:55 2012 -0400 Add simple Hangul shaper that recomposes Jamo when feasible - + Previously, we were NOT actually recomposing Hangul Jamo. We do now. The two lines in: - + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt - + Now render the same with the UnDotum.ttf font. Previously the second linle was rendering boxes. - - We can also start applying OpenType Jamo features later. At this - time, + + We can also start applying OpenType Jamo features later. At this time, I have no idea how the 'ljmo', 'vjmo', 'tjmo' features are supposed to work. Maybe someone can explain them to me? @@ -81337,9 +79427,8 @@ commit 968318455304804dc53045e8ba0cd4d76800c02d Author: Behdad Esfahbod Date: Sat Apr 7 14:57:21 2012 -0400 - Implement normalization mode - HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL - + Implement normalization mode HB_OT_SHAPE_NORMALIZATION_MODE_COMPOSED_FULL + In this mode we try composing CCC=0 with CCC=0 characters. Useful for Hangul. @@ -81351,7 +79440,7 @@ Author: Behdad Esfahbod Date: Sat Apr 7 14:51:17 2012 -0400 Bring normalization algorithm closer to the spec - + No logical difference so far. src/hb-ot-shape-normalize.cc | 3 ++- @@ -81371,17 +79460,13 @@ Author: Behdad Esfahbod Date: Thu Apr 5 17:27:23 2012 -0400 Add Hangul test case - + Composed, and decomposed, of the same text. - test/shaping/texts/in-tree/shaper-default/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST | - 1 + - test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt | - 2 ++ + test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/script-hangul/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/MANIFEST | 1 + + test/shaping/texts/in-tree/shaper-default/script-hangul/misc/misc.txt | 2 ++ 4 files changed, 5 insertions(+) commit 11138ccff71f442da1fcf64faa0e1d22e083e775 @@ -81389,7 +79474,7 @@ Author: Behdad Esfahbod Date: Thu Apr 5 17:25:19 2012 -0400 Add normalize mode - + In preparation for Hangul shaper. src/Makefile.am | 1 + @@ -81399,8 +79484,7 @@ Date: Thu Apr 5 17:25:19 2012 -0400 src/hb-ot-shape-complex-misc.cc | 8 ++-- src/hb-ot-shape-complex-private.hh | 13 ++++--- src/hb-ot-shape-normalize-private.hh | 46 +++++++++++++++++++++++ - src/hb-ot-shape-normalize.cc | 73 - +++++++++++++++++------------------- + src/hb-ot-shape-normalize.cc | 73 +++++++++++++++++------------------- src/hb-ot-shape-private.hh | 7 +--- src/hb-ot-shape.cc | 2 +- 10 files changed, 102 insertions(+), 61 deletions(-) @@ -81423,11 +79507,9 @@ Date: Thu Apr 5 16:40:37 2012 -0400 Move code around - src/hb-ot-shape-private.hh | 53 - -------------------------------------------- + src/hb-ot-shape-private.hh | 53 -------------------------------------------- src/hb-unicode-private.hh | 3 +++ - src/hb-unicode.cc | 55 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-unicode.cc | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 53 deletions(-) commit cad3821f3d5b68d490b0728bd37bd57428ec809c @@ -81435,13 +79517,12 @@ Author: Behdad Esfahbod Date: Wed Mar 7 17:13:25 2012 -0500 More sorting by Unicode version - + This is the most convenient way to browse scripts. src/hb-common.cc | 2 +- src/hb-common.h | 2 +- - src/hb-ot-shape-complex-private.hh | 94 - ++++++++++++++++++++++++++++---------- + src/hb-ot-shape-complex-private.hh | 94 ++++++++++++++++++++++++++++---------- 3 files changed, 72 insertions(+), 26 deletions(-) commit 317b9504d7a4faa70dcf21e5c2aff4792dbd201a @@ -81458,12 +79539,11 @@ Author: Behdad Esfahbod Date: Wed Mar 7 15:52:02 2012 -0500 More Unicode script age annotation, and a couple more RTL scripts - + Cross-checked with Mark Davis's spreadsheet at http://goo.gl/x9ilM src/hb-common.cc | 8 ++++++++ - src/hb-common.h | 52 - +++++++++++++++++++++++++++++----------------------- + src/hb-common.h | 52 +++++++++++++++++++++++++++++----------------------- 2 files changed, 37 insertions(+), 23 deletions(-) commit 6d4016f1ba48d409800dc3281b93e5cd58c99d9f @@ -81521,8 +79601,7 @@ Date: Wed Mar 7 12:38:39 2012 -0500 Whitespace - src/hb-common.h | 194 - ++++++++++++++++++++++++++++---------------------------- + src/hb-common.h | 194 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 97 insertions(+), 97 deletions(-) commit 183224684a45d7dcd7d28510d4383a7a7cb3dff3 @@ -81530,9 +79609,9 @@ Author: Behdad Esfahbod Date: Wed Mar 7 12:21:28 2012 -0500 Use generic shaper for Buhid - + As requested by Jonathan Kew. - + We need to devise a better mechanism to choose which scripts to pass through the Indic shaper. Moreover, currently we are storing data for some scripts in the Indic shaper that are not even going @@ -81550,8 +79629,7 @@ Date: Wed Mar 7 12:08:33 2012 -0500 src/Makefile.am | 15 +++ src/gen-indic-table.py | 20 ++-- src/hb-ot-shape-complex-arabic-table.hh | 35 ------- - src/hb-ot-shape-complex-indic-table.hh | 178 - +++++++++++++++++++------------- + src/hb-ot-shape-complex-indic-table.hh | 178 +++++++++++++++++++------------- 4 files changed, 134 insertions(+), 114 deletions(-) commit e3b2e077f549b04779c08a9fedb1f35b9f11075c @@ -81577,15 +79655,14 @@ Author: Behdad Esfahbod Date: Tue Mar 6 20:24:31 2012 -0500 Add Hebrew diacritics test cases - + From: https://bugzilla.mozilla.org/show_bug.cgi?id=662055 test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 + .../texts/in-tree/shaper-default/script-hebrew/MANIFEST | 1 + .../in-tree/shaper-default/script-hebrew/misc/MANIFEST | 1 + - .../shaper-default/script-hebrew/misc/diacritics.txt | 15 - +++++++++++++++ + .../shaper-default/script-hebrew/misc/diacritics.txt | 15 +++++++++++++++ 4 files changed, 18 insertions(+) commit 461b9b6347e4f58589f5be82c40a2df61da2c715 @@ -81593,10 +79670,10 @@ Author: Behdad Esfahbod Date: Thu Mar 1 18:11:19 2012 -0800 Fix cluster formation in Indic - + Makes number of failures against Uniscribe with hi_IN dictionary from OO.o to go down from 6334 to 4290. Not bad for a one-line change! - + Mozilla Bug 729626 - ASAN: heap-buffer-overflow HTML src/hb-ot-shape-complex-indic-machine.rl | 2 +- @@ -81607,7 +79684,7 @@ Author: Behdad Esfahbod Date: Thu Mar 1 17:30:29 2012 -0800 Fix atomic-int op on Apple - + The OSAtomicAdd32Barrier operator returns the new value, we want the old value. @@ -81620,12 +79697,10 @@ Author: Behdad Esfahbod Date: Fri Feb 24 13:51:09 2012 -0500 Add support for atomic int and mutex on Apple systems - - So, apparently there's no atomic int 'get' method on Apple. - You have to + + So, apparently there's no atomic int 'get' method on Apple. You have to add(0) to get. And that's not const-friendly. So switch inert-object - checking to a non-atomic get. This, however, is safe, and a - negligible + checking to a non-atomic get. This, however, is safe, and a negligible performance boost too. src/hb-mutex-private.hh | 14 +++++++++----- @@ -81637,9 +79712,8 @@ Author: Behdad Esfahbod Date: Thu Feb 23 18:47:17 2012 -0500 Remove unused hb_atomic_int_set() - - Apparently it can't be implemented on OS X. We weren't using - it anyway. + + Apparently it can't be implemented on OS X. We weren't using it anyway. src/hb-object-private.hh | 4 ---- 1 file changed, 4 deletions(-) @@ -81650,8 +79724,7 @@ Date: Thu Feb 23 19:47:43 2012 -0500 Add hb-warning.cc. Oops! - src/hb-warning.cc | 53 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-warning.cc | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit bd7ff1dec5b92ee59fa060e793f88499adcd8c11 @@ -81659,13 +79732,12 @@ Author: Behdad Esfahbod Date: Thu Feb 23 15:06:16 2012 -0500 Allow disabling multi-threaded support - + By defining HB_NO_MT. - + Also, only warn once per missing MT feature support. - - Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings - on mac + + Mozilla Bug 666661 - gfx/harfbuzz/src/hb-prive.h - compiler warnings on mac src/Makefile.am | 1 + src/hb-mutex-private.hh | 6 +++--- @@ -81678,8 +79750,7 @@ Date: Wed Feb 22 16:43:21 2012 -0500 Minor - src/hb-ot-shape-private.hh | 69 - ++++++++++++++++++++++++++-------------------- + src/hb-ot-shape-private.hh | 69 ++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 30 deletions(-) commit 514b6f88668da4eab85103c536dabe24b7bc457b @@ -81687,9 +79758,9 @@ Author: Behdad Esfahbod Date: Wed Feb 22 16:34:37 2012 -0500 Followup: Reorder Hebrew combining classes for better rendering - + Patch from Jonathan Kew. - + Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order. @@ -81701,11 +79772,10 @@ Author: Behdad Esfahbod Date: Wed Feb 22 16:31:15 2012 -0500 Reorder Hebrew combining classes for better rendering - + Patch from Jonathan Kew. - - Bug 662055 - advanced Hebrew diacritics are shown correctly only in - particular order + + Bug 662055 - advanced Hebrew diacritics are shown correctly only in particular order src/hb-ot-shape-private.hh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) @@ -81716,10 +79786,8 @@ Date: Tue Feb 21 11:31:47 2012 -0500 Add test case from https://bugzilla.mozilla.org/show_bug.cgi?id=714067 - test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST - | 1 + - .../in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt - | 1 + + test/shaping/texts/in-tree/shaper-arabic/script-arabic/misc/MANIFEST | 1 + + .../in-tree/shaper-arabic/script-arabic/misc/ligature-diacritics.txt | 1 + 2 files changed, 2 insertions(+) commit f51e167436a51b890ffe3f7f7920498fa287acd9 @@ -81775,8 +79843,7 @@ Date: Sun Jan 22 19:57:00 2012 -0500 Add a few more tests .../in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 3 +++ - .../shaper-indic/south-east-asian/script-thai/misc/misc.txt | - 9 +++++++++ + .../shaper-indic/south-east-asian/script-thai/misc/misc.txt | 9 +++++++++ 2 files changed, 12 insertions(+) commit 1795f3a222a85cdf80c78a0e9181d23dd1673876 @@ -81785,14 +79852,10 @@ Date: Sun Jan 22 19:29:45 2012 -0500 Add a couple Thai test cases from Thep - test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | - 1 + - .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST | - 1 + - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | - 1 + - .../in-tree/shaper-indic/south-east-asian/script-thai/misc/misc.txt | - 2 ++ + test/shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 + + .../texts/in-tree/shaper-indic/south-east-asian/script-thai/MANIFEST | 1 + + .../in-tree/shaper-indic/south-east-asian/script-thai/misc/MANIFEST | 1 + + .../in-tree/shaper-indic/south-east-asian/script-thai/misc/misc.txt | 2 ++ 4 files changed, 5 insertions(+) commit ec3f506682fc6e2d7d7455e49d6c82ac9dd0c660 @@ -81801,8 +79864,7 @@ Date: Sun Jan 22 19:10:55 2012 -0500 Add Devanagari test from Tom Hacohen - .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-devanagari/misc/misc.txt | 1 + 1 file changed, 1 insertion(+) commit 71be4ca3dd5eaaca31957e34fef11f6aeb4aebdf @@ -81828,7 +79890,7 @@ Author: Behdad Esfahbod Date: Sun Jan 22 16:07:32 2012 -0500 Allow --color=html in hb-diff - + Not that useful right now as we don't escape < and >. Perhaps another tool can be added to convert the ANSI output to HTML. @@ -81841,32 +79903,27 @@ Author: Behdad Esfahbod Date: Sun Jan 22 15:31:44 2012 -0500 Fallback to Latin script if the font has no other usable scripts - + Patch and description from Jonathan Kew: - + It turns out that some legacy Thai fonts provide OpenType substitution features to implement mark positioning, but (incorrectly) put those - features/lookups under the 'latn' script tag instead of using 'thai' - (or + features/lookups under the 'latn' script tag instead of using 'thai' (or possibly 'DFLT'). See https://bugzilla.mozilla.org/show_bug.cgi?id=719366 for an example and more detailed description. - - Although this is really a font bug, I suggest that we could improve - the + + Although this is really a font bug, I suggest that we could improve the rendering of such fonts by looking for the 'latn' as a fallback if neither the requested script nor "default" is found in hb_ot_layout_table_choose_script. Suggested patch against harfbuzz master is attached. - - This does _not_ affect the other kind of legacy Thai font, where - custom - code to support vendor-specific PUA codepoints would be needed. I'm - not - keen to go down that path; IMO, such fonts should be ruthlessly - stamped + + This does _not_ affect the other kind of legacy Thai font, where custom + code to support vendor-specific PUA codepoints would be needed. I'm not + keen to go down that path; IMO, such fonts should be ruthlessly stamped out in favour of standards-based solutions. :) - + JK src/hb-ot-layout.cc | 9 +++++++++ @@ -81927,8 +79984,7 @@ Date: Sat Jan 21 19:31:51 2012 -0500 Port hb-manifest-update to Python test/shaping/hb-manifest-update | 23 +++-------------------- - test/shaping/hb_test_tools.py | 38 - ++++++++++++++++++++++++++++++-------- + test/shaping/hb_test_tools.py | 38 ++++++++++++++++++++++++++++++-------- 2 files changed, 33 insertions(+), 28 deletions(-) commit 3a34e9e351ed0ee3eb27f9c0f154bc227f1226bf @@ -81937,8 +79993,7 @@ Date: Sat Jan 21 19:15:41 2012 -0500 Ignore Broken Pipe errors - test/shaping/hb_test_tools.py | 76 - +++++++++++++++++++++++++++---------------- + test/shaping/hb_test_tools.py | 76 +++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 28 deletions(-) commit d5300241680844f5625f32792f7dd7181ed05f9b @@ -81946,11 +80001,11 @@ Author: Behdad Esfahbod Date: Sat Jan 21 19:07:22 2012 -0500 [util] Make clusters work with char offset instead of UTF-8 offset - + This means the --features indices also refer to char position instead of byte position now. Same for cluster values reported by hb-shape. - + Will add an option for byte indices later. util/options.cc | 7 +++++-- @@ -81984,8 +80039,7 @@ Date: Fri Jan 20 21:16:34 2012 -0500 test/shaping/hb-diff-filter-failures | 2 +- test/shaping/hb-manifest-read | 37 +++------------------------ - test/shaping/hb_test_tools.py | 49 - ++++++++++++++++++++++++++++++++---- + test/shaping/hb_test_tools.py | 49 ++++++++++++++++++++++++++++++++---- 3 files changed, 48 insertions(+), 40 deletions(-) commit a59ed46fa4f7b76605f8ce6e75783ead406468f5 @@ -81995,8 +80049,7 @@ Date: Fri Jan 20 20:56:32 2012 -0500 Add final residues from test-shape-complex .../shaping/texts/in-tree/shaper-arabic/script-nko/misc/MANIFEST | 1 + - .../shaping/texts/in-tree/shaper-arabic/script-nko/misc/misc.txt | - 5 +++++ + .../shaping/texts/in-tree/shaper-arabic/script-nko/misc/misc.txt | 5 +++++ test/shaping/texts/in-tree/shaper-default/MANIFEST | 1 + .../texts/in-tree/shaper-default/script-linear-b/MANIFEST | 1 + .../texts/in-tree/shaper-default/script-linear-b/misc/MANIFEST | 1 + @@ -82005,8 +80058,7 @@ Date: Fri Jan 20 20:56:32 2012 -0500 .../shaping/texts/in-tree/shaper-indic/south-east-asian/MANIFEST | 1 + .../in-tree/shaper-indic/south-east-asian/script-khmer/MANIFEST | 1 + .../shaper-indic/south-east-asian/script-khmer/misc/MANIFEST | 1 + - .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | - 9 +++++++++ + .../shaper-indic/south-east-asian/script-khmer/misc/misc.txt | 9 +++++++++ 11 files changed, 23 insertions(+) commit 820e0ed318d9b187a131baa9491d5d390ec33ef4 @@ -82015,10 +80067,8 @@ Date: Fri Jan 20 20:51:52 2012 -0500 Add Punjabi tests from test-shape-complex also - .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/MANIFEST - | 1 + - .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/misc.txt - | 1 + + .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/MANIFEST | 1 + + .../texts/in-tree/shaper-indic/indic/script-punjabi/misc/misc.txt | 1 + 2 files changed, 2 insertions(+) commit a7d71c105772fb612871b4cae59bdae47bbc8751 @@ -82028,8 +80078,7 @@ Date: Fri Jan 20 20:50:09 2012 -0500 Add Tamil test data from Muguntharaj Subramanian .../shaper-indic/indic/script-tamil/misc/MANIFEST | 1 + - .../shaper-indic/indic/script-tamil/misc/misc.txt | 43 - ++++++++++++++++++++++ + .../shaper-indic/indic/script-tamil/misc/misc.txt | 43 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) commit 5992a9941e7f19181df1e34e79e514ccedc3d284 @@ -82052,8 +80101,7 @@ Date: Fri Jan 20 20:48:14 2012 -0500 .../indic/script-assamese/misc/MANIFEST | 0 .../shaper-indic/indic/script-bengali/MANIFEST | 1 + .../indic/script-bengali/misc/MANIFEST | 1 + - .../indic/script-bengali/misc/misc.txt | 48 - ++++++++++++++++++++++ + .../indic/script-bengali/misc/misc.txt | 48 ++++++++++++++++++++++ .../shaper-indic/indic/script-devanagari/MANIFEST | 1 + .../indic/script-devanagari/misc/MANIFEST | 1 + .../indic/script-devanagari/misc/misc.txt | 23 +++++++++++ @@ -82094,7 +80142,7 @@ Author: Behdad Esfahbod Date: Fri Jan 20 18:39:27 2012 -0500 Make test tools interactive - + By bypassing readlines() buffering. test/shaping/hb_test_tools.py | 33 +++++++++++++++++++++++++++------ @@ -82105,7 +80153,7 @@ Author: Behdad Esfahbod Date: Fri Jan 20 18:27:52 2012 -0500 Move most testing logic into hb_test_tools.py - + The actual utils are one-liners now. test/shaping/hb-diff | 77 ++------------- @@ -82113,8 +80161,7 @@ Date: Fri Jan 20 18:27:52 2012 -0500 test/shaping/hb-unicode-decode | 18 +--- test/shaping/hb-unicode-encode | 21 +--- test/shaping/hb-unicode-prettyname | 53 +---------- - test/shaping/hb_test_tools.py | 180 - +++++++++++++++++++++++++++++++++++ + test/shaping/hb_test_tools.py | 180 +++++++++++++++++++++++++++++++++++ 6 files changed, 197 insertions(+), 179 deletions(-) commit 66aa080033dcff07b8bb5e7b1f0e3511f067d6c1 @@ -82122,12 +80169,11 @@ Author: Behdad Esfahbod Date: Fri Jan 20 17:36:10 2012 -0500 Remove test-shape-complex - + New shaping testsuite and framework coming. test/api/Makefile.am | 6 - - test/api/test-shape-complex.c | 1237 - ------------------------------------ + test/api/test-shape-complex.c | 1237 ------------------------------------ test/shaping/hb-unicode-prettyname | 1 + 3 files changed, 1 insertion(+), 1243 deletions(-) @@ -82164,10 +80210,8 @@ Date: Fri Jan 20 17:16:35 2012 -0500 Move - test/shaping/texts/MANIFEST | - 4 +--- - test/shaping/texts/in-tree/MANIFEST | - 3 +++ + test/shaping/texts/MANIFEST | 4 +--- + test/shaping/texts/in-tree/MANIFEST | 3 +++ test/shaping/texts/{ => in-tree}/shaper-arabic/MANIFEST | 0 test/shaping/texts/{ => in-tree}/shaper-arabic/script-arabic/MANIFEST | 0 .../shaping/texts/{ => in-tree}/shaper-arabic/script-mandaic/MANIFEST | 0 @@ -82404,7 +80448,7 @@ Author: Behdad Esfahbod Date: Fri Jan 20 13:57:57 2012 -0500 [test/shaping] Add some Indic test data for the new test suite - + Imported from UTRRS. test/shaping/texts/shaper-indic/indic/MANIFEST | 2 +- @@ -82462,8 +80506,7 @@ Date: Fri Jan 20 13:57:57 2012 -0500 .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 185 +++ .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 185 +++ .../indic/script-devanagari/utrrs/gpos/MANIFEST | 2 + - .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367 - ++++++++++++++++++++ + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1367 ++++++++++++++++++++ .../indic/script-devanagari/utrrs/gsub/MANIFEST | 1 + .../shaper-indic/indic/script-gujarati/MANIFEST | 1 + .../indic/script-gujarati/utrrs/LICENSE | 19 + @@ -82481,8 +80524,7 @@ Date: Fri Jan 20 13:57:57 2012 -0500 .../utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt | 170 +++ .../utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt | 170 +++ .../indic/script-gujarati/utrrs/gpos/MANIFEST | 2 + - .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156 - +++++++++++++++++ + .../utrrs/gsub/IndicFontFeatureGSUB.txt | 1156 +++++++++++++++++ .../indic/script-gujarati/utrrs/gsub/MANIFEST | 1 + .../shaper-indic/indic/script-kannada/MANIFEST | 1 + .../indic/script-kannada/utrrs/LICENSE | 19 + @@ -82640,8 +80682,7 @@ Date: Fri Jan 20 13:50:05 2012 -0500 test/shaping/{hb-read-manifest => hb-manifest-read} | 0 .../{hb-update-manifests => hb-manifest-update} | 0 - test/shaping/hb-unicode-decode | 19 - +++++++++++++++++++ + test/shaping/hb-unicode-decode | 19 +++++++++++++++++++ 3 files changed, 19 insertions(+) commit 9ab23ef4749b51e60464b9ef2a92739cdc2b36ba @@ -82677,8 +80718,7 @@ Date: Thu Jan 19 20:28:31 2012 -0500 [test/shaping] Add hb-unicode-prettyname - test/shaping/hb-unicode-prettyname | 38 - ++++++++++++++++++++++++++++++++++++++ + test/shaping/hb-unicode-prettyname | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) commit e900869b0f373d25b72d966338beb6cbc53e6446 @@ -82704,7 +80744,7 @@ Author: Behdad Esfahbod Date: Thu Jan 19 17:51:57 2012 -0500 [hb-shape] Change glyphstring brackets from to [/] - + Sorry for the disruption but I need this to differentiate from the Unicode string. @@ -82717,8 +80757,7 @@ Date: Thu Jan 19 16:55:26 2012 -0500 More Indic tests from Pravin - test/api/test-shape-complex.c | 48 - +++++++++++++++++++++++++++++++++++++++++++ + test/api/test-shape-complex.c | 48 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) commit a33e46cf7d9862856fd7ecb04e047cc58a9785c8 @@ -82728,8 +80767,7 @@ Date: Thu Jan 19 15:43:48 2012 -0500 [test/shaping] Add hb-update-manifests test/shaping/Makefile.am | 6 ++---- - test/shaping/hb-update-manifests | 22 - ++++++++++++++++++++++ + test/shaping/hb-update-manifests | 22 ++++++++++++++++++++++ test/shaping/texts/shaper-indic/indic/MANIFEST | 1 + 3 files changed, 25 insertions(+), 4 deletions(-) @@ -82741,8 +80779,7 @@ Date: Thu Jan 19 15:21:04 2012 -0500 configure.ac | 1 + test/Makefile.am | 2 +- - test/shaping/Makefile.am | - 10 ++++++++++ + test/shaping/Makefile.am | 10 ++++++++++ test/shaping/texts/MANIFEST | 3 +++ test/shaping/texts/shaper-arabic/MANIFEST | 5 +++++ test/shaping/texts/shaper-arabic/script-arabic/MANIFEST | 0 @@ -82752,8 +80789,7 @@ Date: Thu Jan 19 15:21:04 2012 -0500 test/shaping/texts/shaper-arabic/script-syriac/MANIFEST | 0 test/shaping/texts/shaper-default/MANIFEST | 0 test/shaping/texts/shaper-indic/MANIFEST | 1 + - test/shaping/texts/shaper-indic/indic/MANIFEST | - 10 ++++++++++ + test/shaping/texts/shaper-indic/indic/MANIFEST | 10 ++++++++++ test/shaping/texts/shaper-indic/indic/script-assamese/MANIFEST | 0 test/shaping/texts/shaper-indic/indic/script-bengali/MANIFEST | 0 .../texts/shaper-indic/indic/script-devanagari/MANIFEST | 0 @@ -82782,10 +80818,8 @@ Date: Thu Jan 19 14:52:02 2012 -0500 Rename test/ to test/api/ configure.ac | 1 + - test/Makefile.am | 128 - +---------------------------------- - test/api/Makefile.am | 131 - ++++++++++++++++++++++++++++++++++++ + test/Makefile.am | 128 +---------------------------------- + test/api/Makefile.am | 131 ++++++++++++++++++++++++++++++++++++ test/{ => api}/hb-test.h | 0 test/{ => api}/test-blob.c | 0 test/{ => api}/test-buffer.c | 0 @@ -82806,12 +80840,11 @@ Author: Behdad Esfahbod Date: Thu Jan 19 14:28:11 2012 -0500 Remove src/test.cc - + Not really useful. src/Makefile.am | 6 +-- - src/test.cc | 132 - -------------------------------------------------------- + src/test.cc | 132 -------------------------------------------------------- 2 files changed, 1 insertion(+), 137 deletions(-) commit 4983feebbbb25e79201bf34035e4d58e61218758 @@ -82828,7 +80861,7 @@ Author: Behdad Esfahbod Date: Thu Jan 19 12:46:18 2012 -0500 [hb-shape] Add --show-line-num - + Ok, much more useful as a test suite driver now. util/hb-shape.cc | 24 +++++------------------- @@ -82870,7 +80903,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 22:47:44 2012 -0500 [util] Add --help-features - + Patch from Khaled Hosny. util/options.cc | 42 +++++++++++++++++++++++++++++++++++++++++- @@ -82890,7 +80923,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 22:16:49 2012 -0500 Replace u_strlen() with u_countChar32() - + The latter is what I meant. src/hb-icu.cc | 8 +++----- @@ -82901,7 +80934,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 21:58:34 2012 -0500 Add test for bug in ICU decompose - + As reported by Kenichi Ishibashi on 2011-10-28. test/test-unicode.c | 2 +- @@ -82912,7 +80945,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 21:51:05 2012 -0500 Fix OOB in replace_glyph() - + Patch from Kenichi Ishibashi. src/hb-buffer.cc | 2 ++ @@ -82923,7 +80956,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 21:28:34 2012 -0500 Fix more possible buffer overruns - + I have this function, but can't clean up it to my satisfaction. src/hb-ot-layout-gsubgpos-private.hh | 6 ++++-- @@ -82944,7 +80977,7 @@ Author: Behdad Esfahbod Date: Wed Jan 18 16:07:53 2012 -0500 Further mark skippy fixes from Jonathan Kew - + We should be in good shape now. src/hb-ot-layout-gsubgpos-private.hh | 4 +++- @@ -82955,7 +80988,7 @@ Author: Behdad Esfahbod Date: Tue Jan 17 18:08:41 2012 -0500 Fix mark skipping regression - + Ouch! src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -82969,8 +81002,7 @@ Date: Mon Jan 16 22:05:08 2012 -0500 src/hb-ot-layout-gpos-table.hh | 95 ++++++++++---------------- src/hb-ot-layout-gsub-table.hh | 21 +++--- - src/hb-ot-layout-gsubgpos-private.hh | 125 - +++++++++++++++++++++++++++-------- + src/hb-ot-layout-gsubgpos-private.hh | 125 +++++++++++++++++++++++++++-------- 3 files changed, 143 insertions(+), 98 deletions(-) commit 370f03e9c69d98d735eafb7e72b13b17f42cbaa9 @@ -82988,16 +81020,14 @@ Author: Behdad Esfahbod Date: Mon Jan 16 16:43:26 2012 -0500 [GSUB/GPOS] Fix mark skip indexing issues - + Mozilla bug 701637 and 714067 combined. - + Patch from Jonathan Kew. - src/hb-ot-layout-gpos-table.hh | 42 - ++++++++++++++++----------------- + src/hb-ot-layout-gpos-table.hh | 42 ++++++++++++++++----------------- src/hb-ot-layout-gsub-table.hh | 21 +++++++++-------- - src/hb-ot-layout-gsubgpos-private.hh | 45 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 45 ++++++++++++++++++------------------ 3 files changed, 54 insertions(+), 54 deletions(-) commit e8eedf2687f05372bf5476e84139d01ba67c9f73 @@ -83005,7 +81035,7 @@ Author: Behdad Esfahbod Date: Mon Jan 16 16:39:40 2012 -0500 Avoid enum trailing commas - + Based on patch from Jonathan Kew. src/hb-ot-shape-complex-indic.cc | 4 ++-- @@ -83026,7 +81056,7 @@ Author: Behdad Esfahbod Date: Sun Jan 15 14:56:56 2012 -0500 Disable gtk-doc macro - + We don't have any docs yet. configure.ac | 2 +- @@ -83064,7 +81094,7 @@ Author: Behdad Esfahbod Date: Mon Oct 17 11:50:54 2011 -0700 Fix intrin.h b0rkage with older MSVC - + Reported by Jonathan Kew. src/hb-object-private.hh | 6 +++++- @@ -83075,7 +81105,7 @@ Author: Behdad Esfahbod Date: Mon Oct 17 11:39:28 2011 -0700 Fix infinite loop in normalization code with variation selectors - + Reported by Jonathan Kew. src/hb-ot-shape-normalize.cc | 5 ++++- @@ -83095,7 +81125,7 @@ Author: Behdad Esfahbod Date: Wed Sep 28 16:57:34 2011 -0400 Make test-c.c actually use hb - + This will make sure we test that C code can actually link to the library. @@ -83161,7 +81191,7 @@ Author: Behdad Esfahbod Date: Wed Sep 21 16:41:43 2011 -0400 hb-shape: In --no-glyph-names, output glyph number directly - + Ie. write "86" instead of "gid86". util/options.cc | 11 +++++++---- @@ -83172,9 +81202,9 @@ Author: Behdad Esfahbod Date: Tue Sep 20 14:43:55 2011 -0400 [util] Fix option parsing - + Wow, who knew bool is one byte and I was using it as a 4byte int?! - + C++ auto casts fails you in mysterious ways... util/helper-cairo.cc | 2 +- @@ -83197,22 +81227,21 @@ Author: Behdad Esfahbod Date: Tue Sep 20 11:20:53 2011 -0400 [util] Add hb-diff - + A diff program written in Python that is more suitable for comparing hb-shape output from different backends. Main differences with stock diff: - + 1. It outputs one line's comparison at a time, as opposed to batching '+' lines and '-' lines. - + 2. It colors the part of the line that changed, taking word boundaries into consideration. - + You can pipe the colored output to 'less -r'. util/Makefile.am | 2 ++ - util/hb-diff | 59 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + util/hb-diff | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) commit 880c1f0e4ede65890592d28dfb38bb06f5b57500 @@ -83220,7 +81249,7 @@ Author: Behdad Esfahbod Date: Mon Sep 19 23:10:22 2011 -0400 Rewrite ICU detection code with in-house macros - + At least works for cross-compiling now... configure.ac | 26 +++++++++++++++----------- @@ -83250,8 +81279,7 @@ commit b5afd8f78e6b372f1bbed469329c1554adb20eea Author: Behdad Esfahbod Date: Mon Sep 19 16:56:21 2011 -0400 - [util] Rename --output to --output_file, and --format to - --output-format + [util] Rename --output to --output_file, and --format to --output-format util/options.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -83288,9 +81316,9 @@ Author: Behdad Esfahbod Date: Mon Sep 19 16:41:17 2011 -0400 [util] Add hb-shape utility - + Like hb-view, but prints out buffer contents. - + The output format is kinda cryptic. Suggestions welcome. configure.ac | 6 - @@ -83298,13 +81326,11 @@ Date: Mon Sep 19 16:41:17 2011 -0400 util/{common.cc => hb-shape.cc} | 57 ++++-- util/hb-view.cc | 44 +---- util/hb-view.hh | 79 ++++++++ - util/helper-cairo.cc | 375 - +++++++++++++++++++++++++++++++++++ + util/helper-cairo.cc | 375 +++++++++++++++++++++++++++++++++++ util/{common.hh => helper-cairo.hh} | 64 ++++-- util/options.cc | 79 ++++++++ util/options.hh | 53 ++++- - util/view-cairo.cc | 381 - ++---------------------------------- + util/view-cairo.cc | 381 ++---------------------------------- util/view-cairo.hh | 8 +- 11 files changed, 717 insertions(+), 473 deletions(-) @@ -83323,8 +81349,7 @@ Date: Mon Sep 19 15:45:52 2011 -0400 [util] If no text is provided, simply call cairo_show_glyphs() - util/view-cairo.cc | 92 - ++++++++++++++++++++++++++++++------------------------ + util/view-cairo.cc | 92 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 41 deletions(-) commit 5c299343118d1eaff32ffb2a5dac077cfff67dee @@ -83352,7 +81377,7 @@ Author: Behdad Esfahbod Date: Sat Sep 17 09:59:58 2011 -0400 Fix Linux build when io.h is available - + Bug 40953 - fail compile git: make[2]: *** [hb_view-options.o] Error 1 configure.ac | 2 +- @@ -83432,8 +81457,7 @@ Date: Fri Sep 16 02:08:36 2011 -0400 Fix reading text from stdin - util/options.cc | 76 - +++++++++++++++++++++++++++++++++++------------------- + util/options.cc | 76 +++++++++++++++++++++++++++++++++++------------------- util/options.hh | 16 +++++++----- util/view-cairo.cc | 6 +++-- 3 files changed, 64 insertions(+), 34 deletions(-) @@ -83453,7 +81477,7 @@ Author: Behdad Esfahbod Date: Fri Sep 16 01:11:30 2011 -0400 Always shape at size=upem - + Fixes bug with uniscribe not handling GIGANTIC sizes. util/options.cc | 2 +- @@ -83475,14 +81499,13 @@ Author: Behdad Esfahbod Date: Fri Sep 16 00:38:19 2011 -0400 Fix binary stdin/stdout io in Windows - + Make --font-file accept "-" to mean stdin, and have it work in Windows too! configure.ac | 2 +- util/common.hh | 5 +++++ - util/options.cc | 64 - +++++++++++++++++++++++++++++++++++++++++++++++---------- + util/options.cc | 64 +++++++++++++++++++++++++++++++++++++++++++++++---------- util/options.hh | 10 +++++++-- 4 files changed, 67 insertions(+), 14 deletions(-) @@ -83501,14 +81524,13 @@ Author: Behdad Esfahbod Date: Thu Sep 15 17:52:00 2011 -0400 [hb-view] Make print to stdout work in Windows - + Apparently there's no equivalent to "/dev/stdout", so write using stdio to be able to output to stdout. util/common.hh | 1 + util/options.hh | 31 ++++++++++++++++----- - util/view-cairo.cc | 79 - ++++++++++++++++++++++++++++++++++++------------------ + util/view-cairo.cc | 79 ++++++++++++++++++++++++++++++++++++------------------ 3 files changed, 78 insertions(+), 33 deletions(-) commit 36b10f58cc70ce9570d17b30616f9cb27423e03b @@ -83536,7 +81558,7 @@ Author: Behdad Esfahbod Date: Tue Sep 13 13:30:39 2011 -0400 [util] Refactor hb-view completely - + Now we can use the same code to do other utils... configure.ac | 2 + @@ -83546,8 +81568,7 @@ Date: Tue Sep 13 13:30:39 2011 -0400 util/hb-view.cc | 244 ++++------------------------- util/options.cc | 321 ++++++++++++++++++++++++++------------ util/options.hh | 179 +++++++++++++++++++--- - util/view-cairo.cc | 440 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + util/view-cairo.cc | 440 +++++++++++++++++++++++++++++++++++++++++++++++++++++ util/view-cairo.hh | 63 ++++++++ 9 files changed, 927 insertions(+), 333 deletions(-) @@ -83558,8 +81579,7 @@ Date: Thu Sep 8 17:08:32 2011 -0400 More reshuffling util/hb-view.cc | 4 ++-- - util/options.cc | 64 - ++++++++++++++++++++++++++++++--------------------------- + util/options.cc | 64 ++++++++++++++++++++++++++++++--------------------------- util/options.hh | 13 ++++++------ 3 files changed, 43 insertions(+), 38 deletions(-) @@ -83587,7 +81607,7 @@ Author: Behdad Esfahbod Date: Thu Sep 8 16:43:15 2011 -0400 Minor - + We now support using -1 for NUL-terminated strings. util/hb-view.cc | 2 -- @@ -83609,8 +81629,7 @@ Date: Thu Sep 8 16:00:04 2011 -0400 [util] Further refactor option parsing - util/options.cc | 80 - +++++++++++++++++++++++++++++++++++++++++++++++---------- + util/options.cc | 80 +++++++++++++++++++++++++++++++++++++++++++++++---------- util/options.hh | 20 ++++++++++++--- 2 files changed, 83 insertions(+), 17 deletions(-) @@ -83620,8 +81639,7 @@ Date: Thu Sep 8 13:35:17 2011 -0400 Refine Indic scripts, following Martin Hosken's recommendation - src/hb-ot-shape-complex-private.hh | 56 - +++++++++++++++++++++++--------------- + src/hb-ot-shape-complex-private.hh | 56 +++++++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 22 deletions(-) commit 738d096a06822e63b3894bd817ecb90e5fb94f73 @@ -83629,7 +81647,7 @@ Author: Behdad Esfahbod Date: Fri Sep 2 13:31:19 2011 -0400 Pass through unknown ISO 639-3 language tags to OpenType engine - + In hb_ot_tag_from_language(), if first component of an unknown language is three letters long, use it directly as OpenType language tag (after case conversion and padding). @@ -83643,7 +81661,7 @@ Author: Behdad Esfahbod Date: Fri Sep 2 12:39:20 2011 -0400 [graphite] Don't preload glyphs - + Doesn't seem to be slower. src/hb-graphite2.cc | 2 +- @@ -83711,12 +81729,12 @@ Author: Behdad Esfahbod Date: Fri Aug 26 09:25:04 2011 +0200 [graphite] Only pass the first part language tag to graphite - + Still not sure about: - + 1) Case. We pass lowercase for now. Would be nice if graphite was uppercase 3letter like OpenType, - + 2) Padding. IMO, tag padding is always with spaces, but Martin was talking about NUL bytes. @@ -83728,13 +81746,13 @@ Author: Behdad Esfahbod Date: Fri Aug 26 09:18:53 2011 +0200 [API] Make all _from_string() functions take a len parameter - + Can be -1 for NUL-terminated string. This is useful for passing parts of a larger string to a function without having to copy or modify the string first. - + Affected functions: - + hb_tag_t hb_tag_from_string() hb_direction_from_string() hb_language_from_string() @@ -83746,8 +81764,7 @@ Date: Fri Aug 26 09:18:53 2011 +0200 src/hb-icu.cc | 2 +- src/hb-ot-tag.cc | 8 +++--- test/test-buffer.c | 4 +-- - test/test-common.c | 79 - +++++++++++++++++++++++++++++++---------------------- + test/test-common.c | 79 +++++++++++++++++++++++++++++++---------------------- test/test-ot-tag.c | 22 +++++++-------- util/hb-view.cc | 6 ++-- util/options.cc | 5 +--- @@ -83766,25 +81783,22 @@ commit 3007ffa9e53e6100a761c2363f50a2b19a0764fc Author: Behdad Esfahbod Date: Thu Aug 25 09:08:53 2011 +0200 - Reorder combining-class to better suit Arabic shadda mark-mark - positioning - + Reorder combining-class to better suit Arabic shadda mark-mark positioning + As reported by Khaled on the list: - + "After the introduction of canonical reordering of combining marks (commit 34c22f8), I'm no longer able to do mark/mark substitution or positioning for mark sequences that involve shadda as a first mark (or most interesting sequences at least). - - "After some digging, it turned out that shadda have a ccc=33 - while most - Arabic marks that combine with it have a lower ccc value, which - results + + "After some digging, it turned out that shadda have a ccc=33 while most + Arabic marks that combine with it have a lower ccc value, which results in the shadda being reordered after the other mark which, unsurprisingly, breaks my contextual substitution and mkmk anchors." - + See: - + http://unicode.org/faq/normalization.html#8 http://unicode.org/faq/normalization.html#9 @@ -83806,11 +81820,10 @@ Author: Behdad Esfahbod Date: Wed Aug 24 19:13:15 2011 +0200 Add hb-ot-hmtx-table.hh - + Oops! - src/hb-ot-hmtx-table.hh | 86 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-hmtx-table.hh | 86 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit a3bd8a0e1862212a2d4141b973039bd000a3054f @@ -83819,8 +81832,7 @@ Date: Wed Aug 24 03:22:49 2011 +0200 [graphite] Rewrite properly - src/hb-graphite2.cc | 633 - ++++++++++++++++++++++------------------------------ + src/hb-graphite2.cc | 633 ++++++++++++++++++++++------------------------------ src/hb-uniscribe.cc | 2 + 2 files changed, 273 insertions(+), 362 deletions(-) @@ -83866,7 +81878,7 @@ Author: Behdad Esfahbod Date: Wed Aug 24 01:45:47 2011 +0200 [graphite] Remove hb_graphite2_feature_check() - + I don't see how this function can be useful. src/hb-graphite2.cc | 10 ---------- @@ -83878,7 +81890,7 @@ Author: Behdad Esfahbod Date: Wed Aug 24 01:29:25 2011 +0200 Add graphite2 integration from Martin Hosken - + To be modified, a lot. configure.ac | 9 +- @@ -83887,8 +81899,7 @@ Date: Wed Aug 24 01:29:25 2011 +0200 contrib/python/scripts/hbtestfont | 4 +- contrib/python/setup.py | 18 +- src/Makefile.am | 7 + - src/hb-graphite2.cc | 446 - ++++++++++++++++++++++++++++++++++++++ + src/hb-graphite2.cc | 446 ++++++++++++++++++++++++++++++++++++++ src/hb-graphite2.h | 47 ++++ src/hb-shape.cc | 7 + 9 files changed, 542 insertions(+), 18 deletions(-) @@ -83908,7 +81919,7 @@ Author: Behdad Esfahbod Date: Tue Aug 23 00:04:57 2011 +0200 Add a constructor for hb_prealloced_array_t - + Fixes build with MSVC. src/hb-private.hh | 2 ++ @@ -83919,14 +81930,13 @@ Author: Behdad Esfahbod Date: Fri Aug 19 19:59:24 2011 +0200 Add gobject enum support, but disabled for now - + need to figure out the naming. The generated code doesn't have the right name. configure.ac | 2 + src/Makefile.am | 13 +++-- - src/hb-gobject-enums.cc.tmpl | 74 - ++++++++++++++++++++++++++++ + src/hb-gobject-enums.cc.tmpl | 74 ++++++++++++++++++++++++++++ src/{hb-gobject.cc => hb-gobject-structs.cc} | 0 4 files changed, 86 insertions(+), 3 deletions(-) @@ -83954,14 +81964,13 @@ Author: Behdad Esfahbod Date: Wed Aug 17 19:07:59 2011 +0200 Remove the pre_allocate argument from hb_buffer_create() - + For two reasons: - + 1. User can always call hb_buffer_pre_allocate() themselves, and - + 2. Now we do a pre_alloc in add_utfX anyway, so the total number of - reallocs is limited to a small number (~3) anyway. This just - makes the + reallocs is limited to a small number (~3) anyway. This just makes the API cleaner. src/hb-buffer.cc | 7 +------ @@ -84008,8 +82017,7 @@ Date: Wed Aug 17 14:43:45 2011 +0200 src/hb-ot-layout-gsub-table.hh | 2 +- src/hb-ot-maxp-table.hh | 2 +- src/hb-ot-name-table.hh | 3 +- - src/hb-tt-font.cc | 207 - +++++++++++++++++++++++++++++++++++++++++ + src/hb-tt-font.cc | 207 +++++++++++++++++++++++++++++++++++++++++ 10 files changed, 314 insertions(+), 6 deletions(-) commit 7a750ac33ec482e2c4856c19ea607f3563741c24 @@ -84018,16 +82026,14 @@ Date: Wed Aug 17 14:19:59 2011 +0200 Rename table files from eg maxp-private.hh to maxp-table.hh - src/Makefile.am | 12 - ++++++------ + src/Makefile.am | 12 ++++++------ src/hb-font.cc | 2 +- src/{hb-ot-head-private.hh => hb-ot-head-table.hh} | 6 +++--- ...-ot-layout-gdef-private.hh => hb-ot-layout-gdef-table.hh} | 6 +++--- ...-ot-layout-gpos-private.hh => hb-ot-layout-gpos-table.hh} | 6 +++--- ...-ot-layout-gsub-private.hh => hb-ot-layout-gsub-table.hh} | 6 +++--- src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-ot-layout.cc | - 8 ++++---- + src/hb-ot-layout.cc | 8 ++++---- src/{hb-ot-maxp-private.hh => hb-ot-maxp-table.hh} | 6 +++--- src/{hb-ot-name-private.hh => hb-ot-name-table.hh} | 6 +++--- src/hb-uniscribe-shape.cc | 2 +- @@ -84039,7 +82045,7 @@ Author: Behdad Esfahbod Date: Mon Aug 15 20:41:59 2011 +0200 [ft] FT_Get_Advance() for advance-width callbacks - + Using graphite2's comparerenderer suggests that this makes hb-ft 15 times faster. No caching layer needed anymore. @@ -84063,7 +82069,7 @@ Author: Behdad Esfahbod Date: Mon Aug 15 16:21:22 2011 +0200 Pre-allocate buffers when adding string - + We do a conservative estimate of the number of characters, but still, this limits the number of buffer reallocs to a small constant. @@ -84093,10 +82099,10 @@ Author: Behdad Esfahbod Date: Mon Aug 15 09:52:05 2011 +0200 Apply 'locl' with 'ccmp' in Arabic shaper - + According to Peter Constable this is indeed what Uniscribe has been doing for years. - + Mozilla Bug 667166 - wrong shape of letter when it comes at the end of word in the arabic version of Firefox 5.0 @@ -84113,10 +82119,8 @@ Date: Sun Aug 14 15:17:16 2011 +0200 src/Makefile.am | 43 ++++++++++++++++------------------- src/hb-common.h | 1 + src/hb-glib.cc | 3 --- - src/hb-gobject.cc | 63 - +++++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-gobject.h | 68 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-gobject.cc | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-gobject.h | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 163 insertions(+), 28 deletions(-) commit 9527fb200ffbbd839334e99b51d9671752d393db @@ -84146,8 +82150,7 @@ Date: Thu Aug 11 11:54:31 2011 +0200 util/Makefile.am | 26 +++- util/common.cc | 40 ++++++ util/common.hh | 49 +++++++ - util/hb-view.cc | 387 - ++++--------------------------------------------------- + util/hb-view.cc | 387 ++++--------------------------------------------------- util/options.cc | 318 +++++++++++++++++++++++++++++++++++++++++++++ util/options.hh | 86 +++++++++++++ 6 files changed, 541 insertions(+), 365 deletions(-) @@ -84186,11 +82189,10 @@ Author: Behdad Esfahbod Date: Wed Aug 10 16:28:38 2011 +0200 [util] Add hb-shape --shapers - + If the specified shapers fail, hb-shape will fail immediately - util/hb-view.cc | 57 - +++++++++++++++++++++++++++++++++------------------------ + util/hb-view.cc | 57 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 24 deletions(-) commit 0501573deda3a8dcdfcea491392f554f21ed0154 @@ -84224,8 +82226,7 @@ Date: Wed Aug 10 15:26:41 2011 +0200 [util] Port hb-view to GOption - util/hb-view.cc | 267 - +++++++++++++++++++++++++++++++++----------------------- + util/hb-view.cc | 267 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 156 insertions(+), 111 deletions(-) commit 511a136f0c092880b19250a5df53bcf9f4b043ca @@ -84300,9 +82301,9 @@ Author: Behdad Esfahbod Date: Tue Aug 9 10:51:24 2011 +0200 [API] Add hb_ft_font_set_funcs(), remove hb_ft_get_font_funcs() - + Remove hb_ft_get_font_funcs() as it cannot be used by the user anyway. - + Add hb_ft_font_set_funcs(). Which will make the font internally use FreeType. That is, no need for the font to have created using the hb-ft API. Just create using hb_face_create()/hb_font_create() and @@ -84310,8 +82311,7 @@ Date: Tue Aug 9 10:51:24 2011 +0200 internally creates an FT_Face and attached to the font. src/Makefile.am | 4 +-- - src/hb-ft.cc | 76 - +++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/hb-ft.cc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++--- src/hb-ft.h | 10 ++++--- src/test.cc | 7 +++++ test/Makefile.am | 8 ------ @@ -84350,7 +82350,7 @@ Author: Behdad Esfahbod Date: Tue Aug 9 00:43:24 2011 +0200 [API] Make set_user_data() functions take a replace parameter - + We need this to set data on objects safely without worrying that some other thread unsets it by setting it at the same time. @@ -84375,7 +82375,7 @@ Author: Behdad Esfahbod Date: Tue Aug 9 00:23:58 2011 +0200 [buffer] Make API take signed int length - + Since we already switched to accepting -1 as 'zero-terminated'. src/hb-buffer.cc | 12 ++++++------ @@ -84409,8 +82409,7 @@ Date: Tue Aug 9 00:13:24 2011 +0200 [uniscribe] Cleanup backend TODO | 2 + - src/hb-uniscribe-shape.cc | 161 - ++++++++++++++++++++++++++++++++++------------ + src/hb-uniscribe-shape.cc | 161 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 123 insertions(+), 40 deletions(-) commit f1f848e2e46ac54ff08aca7cd83390af31c7c9ef @@ -84427,17 +82426,16 @@ Author: Behdad Esfahbod Date: Mon Aug 8 23:37:41 2011 +0200 [API] Sort out get_blob API - + hb_face_get_blob() renamed to hb_face_reference_blob(), returns a reference now. - + hb_face_[sg]et_index() added. - + hb_face_set_upem() added. src/hb-font-private.hh | 3 +- - src/hb-font.cc | 67 - +++++++++++++++++++++++++++++++++++---------- + src/hb-font.cc | 67 +++++++++++++++++++++++++++++++++++---------- src/hb-font.h | 17 ++++++++++-- src/hb-ft.cc | 3 +- src/hb-ot-layout-private.hh | 9 ------ @@ -84463,8 +82461,7 @@ Date: Mon Aug 8 21:36:24 2011 +0200 Fix shaper ordering logic - src/hb-shape.cc | 80 - ++++++++++++++++++++++++--------------------------------- + src/hb-shape.cc | 80 ++++++++++++++++++++++++--------------------------------- 1 file changed, 34 insertions(+), 46 deletions(-) commit cc797e0d5368b2f5732d77eb3e3882283bd87cf7 @@ -84499,8 +82496,7 @@ commit 206e32934592b915b1f3052aecf014c6ced729e1 Author: Behdad Esfahbod Date: Sun Aug 7 01:10:55 2011 -0400 - [test] test-object is not FreeType-specific, move it to the right - place + [test] test-object is not FreeType-specific, move it to the right place test/Makefile.am | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) @@ -84528,7 +82524,7 @@ Author: Behdad Esfahbod Date: Sun Aug 7 00:59:38 2011 -0400 [uniscribe] Fix shaper - + It's kinda working finally! src/hb-uniscribe-shape.cc | 9 ++++++--- @@ -84548,7 +82544,7 @@ Author: Behdad Esfahbod Date: Sun Aug 7 00:51:50 2011 -0400 [buffer] Accept -1 for text_length and item_length - + A -1 text_length means: zero-terminated string. A -1 item_length means: to the end of string. @@ -84560,7 +82556,7 @@ Author: Behdad Esfahbod Date: Sun Aug 7 00:00:27 2011 -0400 Fix name-table lookup - + Oops! src/hb-ot-name-private.hh | 2 +- @@ -84581,7 +82577,7 @@ Author: Behdad Esfahbod Date: Sat Aug 6 22:06:52 2011 -0400 [uniscribe] Make font selection work - + Not tested yet. src/hb-ot-name-private.hh | 37 +++++++++++++++++++++++++++++++++++++ @@ -84596,8 +82592,7 @@ Date: Fri Aug 5 20:34:50 2011 -0400 Start implementing the 'name' table src/Makefile.am | 3 +- - src/hb-ot-name-private.hh | 91 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-name-private.hh | 91 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-uniscribe-shape.cc | 12 ++++--- 3 files changed, 100 insertions(+), 6 deletions(-) @@ -84606,7 +82601,7 @@ Author: Behdad Esfahbod Date: Fri Aug 5 20:11:06 2011 -0400 Skip tests by returning 77 - + automake test runner understands this. src/check-internal-symbols.sh | 3 ++- @@ -84660,7 +82655,7 @@ Author: Behdad Esfahbod Date: Fri Aug 5 17:54:25 2011 -0400 Fix env parsing code - + Also changed the separator to comma instead of colon. src/hb-shape.cc | 34 +++++++++++++++++++++++++--------- @@ -84671,7 +82666,7 @@ Author: Behdad Esfahbod Date: Fri Aug 5 17:22:19 2011 -0400 Change hb_shape() API back to what it was, add hb_shape_full() - + I disliked changing hb_shape() API, and disliked the fact that it was returning a bool now. So, reverted. Added new API for the extra functionality. @@ -84684,7 +82679,7 @@ Author: Behdad Esfahbod Date: Fri Aug 5 17:22:19 2011 -0400 Change hb_shape() API back to what it was, add hb_shape_full() - + I disliked changing hb_shape() API, and disliked the fact that it was returning a bool now. So, reverted. Added new API for the extra functionality. @@ -84700,31 +82695,26 @@ Author: Behdad Esfahbod Date: Thu Aug 4 22:31:05 2011 -0400 [API] Changes to main shape API - + hb_shape() now accepts a shaper_options and a shaper_list argument. - Both can be set to NULL to emulate previous API. And in most - situations + Both can be set to NULL to emulate previous API. And in most situations they are expected to be set to NULL. - - hb_shape() also returns a boolean for now. If shaper_list is - NULL, the + + hb_shape() also returns a boolean for now. If shaper_list is NULL, the return value can be ignored. - + shaper_options is ignored for now, but otherwise it should be a NULL-terminated list of strings. - - shaper_list is a NULL-terminated list of strings. Currently - recognized - strings are "ot" for native OpenType Layout implementation, - "uniscribe" + + shaper_list is a NULL-terminated list of strings. Currently recognized + strings are "ot" for native OpenType Layout implementation, "uniscribe" for the Uniscribe backend, and "fallback" for the non-complex backend (that will be implemented shortly). The fallback backend never fails. - + The env var HB_SHAPER_LIST is also parsed and honored. It's a - colon-separated list of shaper names. The fallback shaper is - invoked if + colon-separated list of shaper names. The fallback shaper is invoked if none of the env-listed shapers succeed. - + New API hb_buffer_guess_properties() added. TODO | 2 - @@ -84737,8 +82727,7 @@ Date: Thu Aug 4 22:31:05 2011 -0400 src/hb-fallback-shape.cc | 43 +++++++++++++ src/hb-ot-shape.cc | 9 ++- src/hb-ot-shape.h | 5 +- - src/hb-shape.cc | 135 - +++++++++++++++++++++++---------------- + src/hb-shape.cc | 135 +++++++++++++++++++++++---------------- src/hb-shape.h | 13 ++-- src/hb-uniscribe-shape.cc | 52 ++++++--------- src/hb-uniscribe.h | 5 +- @@ -84752,7 +82741,7 @@ Author: Behdad Esfahbod Date: Thu Aug 4 20:49:16 2011 -0400 Make test.cc do something more useful - + Hardcoded to the uniscribe backend for now. Will fix soon. src/test.cc | 38 ++++++++++++++++++++++++++++++++++---- @@ -84763,7 +82752,7 @@ Author: Behdad Esfahbod Date: Thu Aug 4 20:00:53 2011 -0400 Remove C++ guards from source files - + Where causing issues for people with MSVC. src/check-c-linkage-decls.sh | 3 +-- @@ -84880,17 +82869,16 @@ Author: Behdad Esfahbod Date: Wed Aug 3 19:55:04 2011 -0400 Add draft experimental Uniscribe backend - + Not complete yet, font selection doesn't work. But hey it shapes! - + This is not supposed to be a production backend, more like a testing backend. configure.ac | 9 ++ src/Makefile.am | 11 ++ src/hb-private.hh | 4 +- - src/hb-uniscribe-shape.cc | 325 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-uniscribe-shape.cc | 325 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-uniscribe.h | 46 +++++++ 5 files changed, 394 insertions(+), 1 deletion(-) @@ -84927,7 +82915,7 @@ Author: Behdad Esfahbod Date: Wed Aug 3 17:38:04 2011 -0400 [API] Add hb_face_get_blob() - + Need to think more about it. src/hb-font.cc | 10 ++++++++++ @@ -84939,7 +82927,7 @@ Author: Behdad Esfahbod Date: Tue Aug 2 14:06:51 2011 -0400 Fix fallback shaping - + Broke it a few commits ago. src/hb-ot-shape.cc | 8 +++++--- @@ -84995,7 +82983,7 @@ Author: Behdad Esfahbod Date: Tue Aug 2 11:25:13 2011 -0400 Bug 39763 - autogen.sh should check pkg-config availability - + (and revert change have_icu change I mistakenly pushed out) autogen.sh | 10 ++++++++-- @@ -85007,9 +82995,9 @@ Author: Behdad Esfahbod Date: Tue Aug 2 09:56:30 2011 -0400 Add mingw32 support - + With these changes, on Ubuntu I can do: - + ./configure --host=i586-mingw32msvc && make configure.ac | 1 + @@ -85042,7 +83030,7 @@ Author: Behdad Esfahbod Date: Mon Aug 1 16:30:11 2011 -0400 [Indic] Disable CJCT-disabling logic - + Read comment. src/hb-ot-shape-complex-indic.cc | 7 ++++++- @@ -85053,11 +83041,10 @@ Author: Behdad Esfahbod Date: Sun Jul 31 17:51:50 2011 -0400 [Indic] Stop looking for base upon seeing joiners - - Not sure where this is documented, but I remember this being the - desired + + Not sure where this is documented, but I remember this being the desired behavior. - + test-shape-complex failures are down from 48 to 46. Meh. src/hb-ot-shape-complex-indic.cc | 11 +++++++++-- @@ -85077,7 +83064,7 @@ Author: Behdad Esfahbod Date: Sun Jul 31 15:57:00 2011 -0400 [Indic] Fix ZWJ/ZWNJ application - + Not quite working just yet. False alarm re 10 failures. It was crashing. Ouch! Back to 48 failures. @@ -85089,11 +83076,10 @@ Author: Behdad Esfahbod Date: Sun Jul 31 15:18:57 2011 -0400 [Indic] Add Final Reordering rules into comments - + Not applied yet. - src/hb-ot-shape-complex-indic.cc | 86 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-shape-complex-indic.cc | 86 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) commit cfd4382ec1af91640129551697de36fd42c0849a @@ -85128,13 +83114,12 @@ Author: Behdad Esfahbod Date: Sun Jul 31 13:46:44 2011 -0400 [Indic] Support ZWJ/ZWNJ - + Brings test-shape-complex failures down from 52 to 10! - + I hereby declare harfbuzz-ng supporting Indic! - src/hb-ot-shape-complex-indic.cc | 57 - +++++++++++++++++++++++++++++++++------- + src/hb-ot-shape-complex-indic.cc | 57 +++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 9 deletions(-) commit 9ee27a928a989c71923cef82a9e9828f8e9ca051 @@ -85151,7 +83136,7 @@ Author: Behdad Esfahbod Date: Sun Jul 31 02:24:51 2011 -0400 Un-Ra U+09F1. According to the test suite this is correct. - + But I'm not sure... Down from 54 failures to 52. src/hb-ot-shape-complex-indic.cc | 2 +- @@ -85180,11 +83165,11 @@ Author: Behdad Esfahbod Date: Sat Jul 30 21:08:10 2011 -0400 [Indic] For old-style Indic tables, move Halant around - + In old-style Indic OT standards, the post-base Halants are moved after their base. Emulate that by moving first post-base Halant to post-last-consonant. - + Brings test-shape-complex failures down from 88 to 54. Getting there! src/hb-ot-map-private.hh | 3 +++ @@ -85217,11 +83202,10 @@ Author: Behdad Esfahbod Date: Sat Jul 30 20:21:40 2011 -0400 [test] Fix problem with N'ko test direction - - Old HarfBuzz test suite always shaped as left-to-right and hence - had wrong + + Old HarfBuzz test suite always shaped as left-to-right and hence had wrong 0x14db, direction expected glyphstring for N'ko. Doh! - + Failures down from 92 to 88. test/test-shape-complex.c | 8 ++++---- @@ -85232,7 +83216,7 @@ Author: Behdad Esfahbod Date: Sat Jul 30 20:14:44 2011 -0400 [Indic] Handle initial Ra+Halant in scripts that support Reph - + Brings test-shape-complex failures down from 104 to 92. Way to go! src/hb-ot-shape-complex-indic.cc | 10 ++++++++++ @@ -85252,7 +83236,7 @@ Author: Behdad Esfahbod Date: Sat Jul 30 19:04:02 2011 -0400 [Indic] Categorize Ra in scripts that have Reph - + Is the categorization correct? I don't know. src/hb-ot-shape-complex-indic.cc | 31 ++++++++++++++++++++++++++++++- @@ -85263,15 +83247,14 @@ Author: Behdad Esfahbod Date: Sat Jul 30 14:44:30 2011 -0400 [Indic] Reorder matras - + Number of failing shape-complex tests goes from 125 down to 94. - + Next: Add Ra handling and it's fair to say we kinda support Indic :). src/hb-ot-shape-complex-indic.cc | 29 +++++++++++++++++++++++++++-- src/hb-ot-shape-normalize.cc | 26 ++++++++++---------------- - src/hb-private.hh | 36 - ++++++++++++++++++++++++++++++------ + src/hb-private.hh | 36 ++++++++++++++++++++++++++++++------ 3 files changed, 67 insertions(+), 24 deletions(-) commit 911bf32acad7f1cd161f666cb659990ade0925ad @@ -85298,18 +83281,17 @@ Author: Behdad Esfahbod Date: Fri Jul 29 16:37:02 2011 -0400 [Indic] Apply Indic features - + Find the base consonant and apply basic Indic features accordingly. Nothing complete, but does something for now. Specifically: no Ra handling right now, and no ZWJ/ZWNJ. - + Number of failing shape-complex tests goes from 174 down to 125. - + Next: reorder matras. src/hb-ot-shape-complex-indic-machine.rl | 35 ++++-- - src/hb-ot-shape-complex-indic.cc | 209 - ++++++++++++++++++++++++++++--- + src/hb-ot-shape-complex-indic.cc | 209 ++++++++++++++++++++++++++++--- 2 files changed, 212 insertions(+), 32 deletions(-) commit 1a1b5013159369b343d0c32df02c9c419277aead @@ -85362,8 +83344,7 @@ Date: Thu Jul 28 16:48:43 2011 -0400 src/hb-ot-shape-complex-arabic.cc | 6 +++- src/hb-ot-shape-complex-indic.cc | 4 +-- src/hb-ot-shape-complex-private.hh | 10 ++++++- - src/hb-ot-shape.cc | 60 - +++++++++++++++++++++++--------------- + src/hb-ot-shape.cc | 60 +++++++++++++++++++++++--------------- src/hb-private.hh | 1 + 9 files changed, 83 insertions(+), 57 deletions(-) @@ -85372,7 +83353,7 @@ Author: Behdad Esfahbod Date: Thu Jul 28 15:42:18 2011 -0400 Move more code around - + Buffer var allocation coming into shape src/hb-buffer-private.hh | 1 + @@ -85392,8 +83373,7 @@ Date: Mon Jul 25 20:25:44 2011 -0400 src/hb-object-private.hh | 8 +-- src/hb-open-type-private.hh | 64 ++++++-------------- src/hb-ot-layout-gsubgpos-private.hh | 2 +- - src/hb-private.hh | 109 - +++++++++++++++++++++++++++++++---- + src/hb-private.hh | 109 +++++++++++++++++++++++++++++++---- 5 files changed, 136 insertions(+), 73 deletions(-) commit 43ff203d8ea3e1b09e316e3aae1a4e5ec15bfdd2 @@ -85401,13 +83381,12 @@ Author: Behdad Esfahbod Date: Mon Jul 25 17:35:24 2011 -0400 Use variadic macros for debugging - + Looks *so* much nicer! src/hb-blob.cc | 26 ++++++++-------- src/hb-object-private.hh | 8 ++--- - src/hb-open-type-private.hh | 75 - ++++++++++++++++++++------------------------- + src/hb-open-type-private.hh | 75 ++++++++++++++++++++------------------------- src/hb-private.hh | 7 +++-- 4 files changed, 56 insertions(+), 60 deletions(-) @@ -85416,13 +83395,12 @@ Author: Behdad Esfahbod Date: Mon Jul 25 16:47:02 2011 -0400 Add sugar syntax for debug messages - + Buffer debugging coming soon. src/hb-blob.cc | 35 +++++++++++++---------------------- src/hb-object-private.hh | 9 ++++----- - src/hb-open-type-private.hh | 44 - ++++++++++++++++++++++---------------------- + src/hb-open-type-private.hh | 44 ++++++++++++++++++++++---------------------- src/hb-private.hh | 7 +++++-- 4 files changed, 44 insertions(+), 51 deletions(-) @@ -85450,7 +83428,7 @@ Author: Behdad Esfahbod Date: Mon Jul 25 14:54:08 2011 -0400 Start cleaning up buffer var allocation - + I've messed up a lot of stuff recently, different parts of the shaping process are stumbling on eachother's toes because manually tracking what's in which buffer var is hard. I'm @@ -85468,8 +83446,7 @@ Date: Mon Jul 25 00:44:50 2011 -0400 Move code around - src/hb-ot-shape.cc | 85 - +++++++++++++++++++++++++++--------------------------- + src/hb-ot-shape.cc | 85 +++++++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 43 deletions(-) commit 18c42850c9327ab4479ff150660a76d4ff6f3e9c @@ -85477,9 +83454,8 @@ Author: Behdad Esfahbod Date: Mon Jul 25 00:36:58 2011 -0400 Shrink space used for ligature ids - - This frees 16bits in the glyph_info struct during the ot_layout - process. + + This frees 16bits in the glyph_info struct during the ot_layout process. We can use the freed space in the shapers now. src/hb-ot-layout-gsubgpos-private.hh | 8 ++++---- @@ -85501,8 +83477,7 @@ Date: Sat Jul 23 23:43:54 2011 -0400 Keep Unicode props updated as we go so we avoid a scan later - src/hb-ot-shape-normalize.cc | 54 - +++++++++++++++++++++----------------------- + src/hb-ot-shape-normalize.cc | 54 +++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 28 deletions(-) commit 5389ff4dbc46c76c9483e3c95f22524b60e21166 @@ -85510,11 +83485,10 @@ Author: Behdad Esfahbod Date: Fri Jul 22 20:22:49 2011 -0400 Implement the Unicode Canonical Composition algorithm - + Fallback normalization is complete and working now! - src/hb-ot-shape-normalize.cc | 49 - +++++++++++++++++++++++++++++++++++++++++--- + src/hb-ot-shape-normalize.cc | 49 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) commit dcdc51cdc0ba9d9fb75f84dd5fa7a49aa0b24ea0 @@ -85532,8 +83506,7 @@ Date: Fri Jul 22 17:04:20 2011 -0400 Implement Unicode Canonical Reordering Algorithm - src/hb-ot-shape-normalize.cc | 80 - +++++++++++++++++++++++++++++++++++++------- + src/hb-ot-shape-normalize.cc | 80 +++++++++++++++++++++++++++++++++++++------- src/hb-ot-shape-private.hh | 2 ++ src/hb-ot-shape.cc | 6 ++-- 3 files changed, 73 insertions(+), 15 deletions(-) @@ -85544,8 +83517,7 @@ Date: Fri Jul 22 16:15:32 2011 -0400 Decomposition works now! - src/hb-ot-shape-normalize.cc | 109 - +++++++++++++++++++++++++++---------------- + src/hb-ot-shape-normalize.cc | 109 +++++++++++++++++++++++++++---------------- src/hb-ot-shape.cc | 3 +- 2 files changed, 70 insertions(+), 42 deletions(-) @@ -85556,8 +83528,7 @@ Date: Fri Jul 22 11:28:07 2011 -0400 Move buffer methods into the object src/hb-buffer-private.hh | 110 +++---- - src/hb-buffer.cc | 605 - +++++++++++++++++------------------ + src/hb-buffer.cc | 605 +++++++++++++++++------------------ src/hb-ot-layout-gpos-private.hh | 88 ++--- src/hb-ot-layout-gsub-private.hh | 58 ++-- src/hb-ot-layout-gsubgpos-private.hh | 50 +-- @@ -85571,8 +83542,7 @@ Date: Fri Jul 22 11:07:05 2011 -0400 More normalization kick - src/hb-ot-shape-normalize.cc | 54 - +++++++++++++++++++++++++++++--------------- + src/hb-ot-shape-normalize.cc | 54 +++++++++++++++++++++++++++++--------------- src/hb-ot-shape-private.hh | 8 ++++++- src/hb-ot-shape.cc | 13 +++-------- 3 files changed, 46 insertions(+), 29 deletions(-) @@ -85581,9 +83551,8 @@ commit 63c0ef4a0763e579c9c80887bbfbd2651de05067 Author: Behdad Esfahbod Date: Thu Jul 21 20:58:42 2011 -0400 - Fix decompose() implementations to work with non-starter - non-composables - + Fix decompose() implementations to work with non-starter non-composables + Add tests. src/hb-glib.cc | 10 +++++----- @@ -85597,8 +83566,7 @@ Date: Thu Jul 21 15:25:01 2011 -0400 Document normalization design - src/hb-ot-shape-normalize.cc | 78 - +++++++++++++++++++++++++++++++++++--------- + src/hb-ot-shape-normalize.cc | 78 +++++++++++++++++++++++++++++++++++--------- src/hb-ot-shape-private.hh | 2 +- src/hb-ot-shape.cc | 6 ++-- 3 files changed, 67 insertions(+), 19 deletions(-) @@ -85608,9 +83576,8 @@ Author: Behdad Esfahbod Date: Thu Jul 21 12:23:12 2011 -0400 Add prefer_decomposed() complex-shaper callback - - This allows the Indic shaper to request decomposed characters. - This will + + This allows the Indic shaper to request decomposed characters. This will handle split matra for free. Other shapers prefer precomposed characters. @@ -85634,7 +83601,7 @@ Author: Behdad Esfahbod Date: Thu Jul 21 12:13:04 2011 -0400 Remove intermittent_glyph() - + Lets not worry about performance for now... src/hb-ot-shape-normalize.cc | 3 ++- @@ -85655,7 +83622,7 @@ Author: Behdad Esfahbod Date: Thu Jul 21 11:34:59 2011 -0400 Only form clusters if we are reversing - + This produces more accurate cluster mappings. Cluster mappings are minimal now. Combining marks get their own cluster value most of the time. @@ -85697,7 +83664,7 @@ Author: Behdad Esfahbod Date: Thu Jul 21 01:11:09 2011 -0400 Form clusters before ensuring native direciton - + This is essential as ensure_native_direction uses cluster info that is set by form_clusters(). @@ -85722,8 +83689,7 @@ Date: Thu Jul 21 00:51:18 2011 -0400 Towards normalization src/Makefile.am | 1 + - src/hb-ot-shape-normalize.cc | 71 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-normalize.cc | 71 ++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-shape-private.hh | 12 ++++++++ src/hb-ot-shape.cc | 10 ++----- 4 files changed, 86 insertions(+), 8 deletions(-) @@ -85760,9 +83726,8 @@ commit 5157e12a55f943b7fc5be7dce0b2ee1bcacca6ec Author: Behdad Esfahbod Date: Thu Jul 21 00:12:33 2011 -0400 - Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to - HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK - + Rename HB_UNICODE_GENERAL_CATEGORY_COMBINING_MARK to HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK + Spacing_Mark is the current Unicode long-name for this property value. The previous name was wrongly carried from glib. @@ -85786,8 +83751,7 @@ Date: Wed Jul 20 23:19:49 2011 -0400 [icu] Implement compose()/decompose() - src/hb-icu.cc | 87 - +++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-icu.cc | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++-- test/test-unicode.c | 1 + 2 files changed, 86 insertions(+), 2 deletions(-) @@ -85796,15 +83760,14 @@ Author: Behdad Esfahbod Date: Wed Jul 20 22:30:29 2011 -0400 Add tests for compose()/decompose() - + Adjust glib fallback implementation. - + The tests are not hooked up for ICU yet. src/hb-glib.cc | 17 ++++++++++++-- src/hb-unicode.cc | 2 +- - test/test-unicode.c | 66 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-unicode.c | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 3 deletions(-) commit fca0923b04aeff9369849da97d247a647611f346 @@ -85813,8 +83776,7 @@ Date: Wed Jul 20 22:16:13 2011 -0400 Minor - src/hb-icu.cc | 62 - ++++++++++++++++++++++++++++++++++++----------------------- + src/hb-icu.cc | 62 ++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 24 deletions(-) commit 26b6024962b254b624d4f22088b6c87745074743 @@ -85832,8 +83794,7 @@ Date: Wed Jul 20 21:51:37 2011 -0400 [glib] Add compose() and decompose() implementations with fallback - src/hb-glib.cc | 126 - +++++++++++++++++++++++++++++++++++++++++++----------- + src/hb-glib.cc | 126 +++++++++++++++++++++++++++++++++++++++++++----------- src/hb-unicode.cc | 6 ++- 2 files changed, 106 insertions(+), 26 deletions(-) @@ -85869,11 +83830,10 @@ Author: Behdad Esfahbod Date: Fri Jul 8 00:22:40 2011 -0400 Let shapers decide when to apply ccmp and locl - - Instead of always applying those two features before the complex - shaper, + + Instead of always applying those two features before the complex shaper, let the complex shaper decide whether they should be applied first. - + Also add stub for Indic's final_reordering(). src/hb-ot-shape-complex-arabic.cc | 2 ++ @@ -85886,14 +83846,14 @@ Author: Behdad Esfahbod Date: Thu Jul 7 23:47:19 2011 -0400 [API] Add compose() and decompose() unicode funcs, rename other ones - + Add compose() and decompose() unicode funcs. These implement pair-wise canonical composition/decomposition. - + The glib/icu implementations are lacking for now. We are adding API for this to glib, but I cannot find any useful API in ICU. May end of implementing these in-house. - + Changed all unicode_funcs callback names to remove the "_get" part. Eg, hb_unicode_get_script_func_t is now hb_unicode_script_func_t, and hb_unicode_get_script() is hb_unicode_script() now. @@ -85904,8 +83864,7 @@ Date: Thu Jul 7 23:47:19 2011 -0400 src/hb-ot-shape.cc | 6 ++-- src/hb-shape.cc | 2 +- src/hb-unicode-private.hh | 8 +++-- - src/hb-unicode.cc | 85 - ++++++++++++++++++++++++++++++++++------------- + src/hb-unicode.cc | 85 ++++++++++++++++++++++++++++++++++------------- src/hb-unicode.h | 70 +++++++++++++++++++++++++++----------- test/test-unicode.c | 21 +++++++----- 9 files changed, 146 insertions(+), 62 deletions(-) @@ -85916,8 +83875,7 @@ Date: Thu Jul 7 23:42:40 2011 -0400 More code generation through preprocessor - src/hb-ot-shape-complex-private.hh | 46 - ++++++++++++++++++++++++-------------- + src/hb-ot-shape-complex-private.hh | 46 ++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 17 deletions(-) commit 891c4755baae6cd59fad59d27fd8933e5f548a74 @@ -85925,14 +83883,13 @@ Author: Behdad Esfahbod Date: Thu Jul 7 23:19:27 2011 -0400 Humm, undo some shuffling - + In preparation for adding more advanced unicode funcs. src/hb-ot-shape.cc | 6 ++--- src/hb-shape.cc | 2 +- src/hb-unicode-private.hh | 36 +++++++++++++------------- - src/hb-unicode.cc | 65 - ++++++++++++++++++++++++++++++++++------------- + src/hb-unicode.cc | 65 ++++++++++++++++++++++++++++++++++------------- 4 files changed, 70 insertions(+), 39 deletions(-) commit 4b6317c4f426cfaf21e509dbf6ee6d4e0422cdac @@ -85944,8 +83901,7 @@ Date: Thu Jul 7 23:14:42 2011 -0400 src/hb-font-private.hh | 16 +++--- src/hb-font.cc | 3 +- src/hb-unicode-private.hh | 42 +++++++------- - src/hb-unicode.cc | 140 - +++++++++++++++++----------------------------- + src/hb-unicode.cc | 140 +++++++++++++++++----------------------------- 4 files changed, 82 insertions(+), 119 deletions(-) commit 3361c9a323575309d9fd55fe076697a3e22073c0 @@ -85955,8 +83911,7 @@ Date: Thu Jul 7 22:35:17 2011 -0400 Minor src/Makefile.am | 1 + - src/hb-ot-shape-complex-misc.cc | 51 - ++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-misc.cc | 51 ++++++++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-private.hh | 12 ++++++--- 3 files changed, 60 insertions(+), 4 deletions(-) @@ -85969,8 +83924,7 @@ Date: Thu Jul 7 22:25:25 2011 -0400 src/hb-ot-shape-complex-arabic.cc | 36 +++++++++++++------------- src/hb-ot-shape-complex-indic-machine.rl | 12 ++++----- src/hb-ot-shape-complex-indic.cc | 25 +++++++++--------- - src/hb-ot-shape-complex-private.hh | 44 - +++++++++++++++++++++----------- + src/hb-ot-shape-complex-private.hh | 44 +++++++++++++++++++++----------- src/hb-ot-shape-private.hh | 13 ++-------- src/hb-ot-shape.cc | 4 +-- 6 files changed, 69 insertions(+), 65 deletions(-) @@ -86003,8 +83957,7 @@ Date: Thu Jul 7 21:22:08 2011 -0400 Refactor some code common to GSUB and GPOS src/hb-ot-map-private.hh | 29 ++++++++++++++++++-------- - src/hb-ot-map.cc | 54 - +++++++++--------------------------------------- + src/hb-ot-map.cc | 54 +++++++++--------------------------------------- 2 files changed, 30 insertions(+), 53 deletions(-) commit b70c96dbe41d6512b80fe3d966a1942e1ef64a4b @@ -86012,10 +83965,10 @@ Author: Behdad Esfahbod Date: Thu Jul 7 21:07:41 2011 -0400 Enable applying GSUB/GPOS features in multiple segments - + Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=644184 among others. - + Shapers now can request segmented feature application by calling add_gsub_pause() or add_gpos_pause(). They can also provide a callback to be called at the pause. Currently the Arabic shaper @@ -86024,8 +83977,7 @@ Date: Thu Jul 7 21:07:41 2011 -0400 callback. src/hb-ot-map-private.hh | 50 +++++++++++---- - src/hb-ot-map.cc | 132 - +++++++++++++++++++++++++++++++++----- + src/hb-ot-map.cc | 132 +++++++++++++++++++++++++++++++++----- src/hb-ot-shape-complex-arabic.cc | 24 ++++++- src/hb-private.hh | 5 ++ 4 files changed, 181 insertions(+), 30 deletions(-) @@ -86036,8 +83988,7 @@ Date: Thu Jul 7 16:20:35 2011 -0400 Shuffle code around - src/hb-ot-map-private.hh | 68 - ++++++++++++++++++++++++------------------------ + src/hb-ot-map-private.hh | 68 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 34 deletions(-) commit fc551edbf236d71a522ae7c2c9461aa71c5f7d66 @@ -86045,7 +83996,7 @@ Author: Behdad Esfahbod Date: Thu Jul 7 16:09:38 2011 -0400 Add todo - + I'm too lazy to fix the tests now. test/test-shape.c | 1 + @@ -86056,7 +84007,7 @@ Author: Behdad Esfahbod Date: Wed Jul 6 16:05:45 2011 -0400 Fix reverse_range() position loop - + Mozilla Bug 669175 - Slow rendering of text sometimes in this case, using direction: rtl @@ -86077,7 +84028,7 @@ Author: Behdad Esfahbod Date: Mon Jul 4 12:56:38 2011 -0400 [Indic] Well, at least finding syllables works now :) - + Still not much there. src/hb-ot-shape-complex-indic-machine.rl | 4 +++- @@ -86089,7 +84040,7 @@ Author: Behdad Esfahbod Date: Tue Jun 28 17:26:03 2011 -0400 [test-shape-complex] Remove the greek tests - + They are outdated with respect to the DejaVu Sans I'm using. We need to add font version checking to the tests. @@ -86100,9 +84051,8 @@ commit afa74bf90405fb121d3132982b87762c1686d80c Author: Behdad Esfahbod Date: Tue Jun 28 17:25:17 2011 -0400 - [test-shape-complex] Print out expected and actual glyphstrings - upon failure - + [test-shape-complex] Print out expected and actual glyphstrings upon failure + One has to run the test with --verbose to see that right now. test/test-shape-complex.c | 25 ++++++++++++++++++++++--- @@ -86115,8 +84065,7 @@ Date: Tue Jun 28 16:59:16 2011 -0400 [test] Name tests after their input string test/Makefile.am | 2 +- - test/test-shape-complex.c | 150 - ++++++++++++++++++++++++++++++---------------- + test/test-shape-complex.c | 150 ++++++++++++++++++++++++++++++---------------- 2 files changed, 100 insertions(+), 52 deletions(-) commit 27413169782fdf79e278dd6552c8e194b3bc4eaa @@ -86124,7 +84073,7 @@ Author: Behdad Esfahbod Date: Tue Jun 28 16:21:31 2011 -0400 Minor - + Towards a better test runner. test/test-shape-complex.c | 10 +++++++++- @@ -86144,11 +84093,10 @@ Author: Behdad Esfahbod Date: Tue Jun 28 16:16:21 2011 -0400 [test] Remove disabled code - + We'd add normalization and decomposition tests later. - test/test-shape-complex.c | 92 - ----------------------------------------------- + test/test-shape-complex.c | 92 ----------------------------------------------- 1 file changed, 92 deletions(-) commit 9704f0ca6c2defed52640da77506c80bc67b4f56 @@ -86157,8 +84105,7 @@ Date: Tue Jun 28 16:15:46 2011 -0400 [test] Restructure shape test data a bit - test/test-shape-complex.c | 75 - +++++++++++++++++++++++++++-------------------- + test/test-shape-complex.c | 75 +++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 32 deletions(-) commit 4ec30aec3014be6effc09cbbc88dcd075f3826df @@ -86178,8 +84125,7 @@ Date: Tue Jun 28 14:03:29 2011 -0400 [Indic] Generate a single data table instead of multiple ones src/gen-indic-table.py | 30 +++++++++------- - src/hb-ot-shape-complex-indic-table.hh | 62 - ++++++++++++++++------------------ + src/hb-ot-shape-complex-indic-table.hh | 62 ++++++++++++++++------------------ 2 files changed, 48 insertions(+), 44 deletions(-) commit a346e923a99f920bbebc25b335db51fdfb1429ea @@ -86187,15 +84133,14 @@ Author: Behdad Esfahbod Date: Tue Jun 28 12:49:18 2011 -0400 [test] Add Indic tests from harfbuzz.old - + Needs fonts to be put in test/fonts. Tests are skipped otherwise. Run with --verbose for details. Working on improving the test runner to make it easier to make sense of what's going on. test/Makefile.am | 11 +- test/hb-test.h | 21 + - test/test-shape-complex.c | 1179 - +++++++++++++++++++++++++++++++++++++++++++++ + test/test-shape-complex.c | 1179 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1209 insertions(+), 2 deletions(-) commit 8fdba506f0f1c66b50f8f4b114d624cb956d03b7 @@ -86204,8 +84149,7 @@ Date: Fri Jun 24 20:45:55 2011 -0400 [Indic] Define indic_position_t - src/hb-ot-shape-complex-indic.cc | 239 - ++++++++++++++++++++------------------- + src/hb-ot-shape-complex-indic.cc | 239 ++++++++++++++++++++------------------- 1 file changed, 122 insertions(+), 117 deletions(-) commit 65988a145b4a52c37fd53c1473034f9e701f61d9 @@ -86213,12 +84157,11 @@ Author: Behdad Esfahbod Date: Fri Jun 24 19:05:52 2011 -0400 [Indic] Add a table of consonant positions - + Copied form HarfBuzz.old Indic data. These are below and post consonants. This is temporary. Read the comment in the patch. - src/hb-ot-shape-complex-indic.cc | 106 - +++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic.cc | 106 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) commit c7fe56a1d5d3e969b6ec51cd9ecd471706a19568 @@ -86228,8 +84171,7 @@ Date: Fri Jun 24 19:05:34 2011 -0400 [Indic] Some of the basic features are global; Mark them so src/hb-ot-shape-complex-indic-machine.rl | 1 + - src/hb-ot-shape-complex-indic.cc | 48 - ++++++++++++++++++++++---------- + src/hb-ot-shape-complex-indic.cc | 48 ++++++++++++++++++++++---------- 2 files changed, 35 insertions(+), 14 deletions(-) commit 867361c3ad39629a8d5b7dc48d558a1c19e37d43 @@ -86237,12 +84179,11 @@ Author: Behdad Esfahbod Date: Fri Jun 17 18:35:46 2011 -0400 [indic] Add syllable recognition state machine - + Using an incredible tool called Ragel. src/Makefile.am | 5 ++ - src/hb-ot-shape-complex-indic-machine.rl | 105 - +++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic-machine.rl | 105 +++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-indic.cc | 21 +++++-- 3 files changed, 125 insertions(+), 6 deletions(-) @@ -86251,11 +84192,10 @@ Author: Behdad Esfahbod Date: Wed Jun 15 17:22:48 2011 -0400 Better categorize Indic character classes - + Matches OT types now. - src/hb-ot-shape-complex-indic.cc | 51 - +++++++++++++++++++++++++--------------- + src/hb-ot-shape-complex-indic.cc | 51 +++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 19 deletions(-) commit 31f18abecb149f8888a72510f2660328dd6de16d @@ -86319,8 +84259,7 @@ Date: Mon Jun 13 16:02:18 2011 -0400 Cosmetic src/gen-indic-table.py | 9 +- - src/hb-ot-shape-complex-indic-table.hh | 1038 - ++++++++++++++++---------------- + src/hb-ot-shape-complex-indic-table.hh | 1038 ++++++++++++++++---------------- 2 files changed, 524 insertions(+), 523 deletions(-) commit 902ab866f2d2edc3a71c1203065e6ddf49e5b431 @@ -86338,8 +84277,7 @@ Date: Tue Jun 7 17:02:48 2011 -0400 More Indic data shuffling - src/hb-ot-shape-complex-indic.cc | 74 - +++++++++++++++++++++++++++------------- + src/hb-ot-shape-complex-indic.cc | 74 +++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 24 deletions(-) commit 63b177e45c2405272da3fa6c26fe11ae37950bd0 @@ -86356,21 +84294,18 @@ Author: Behdad Esfahbod Date: Thu Jun 2 17:43:12 2011 -0400 [Indic] Start an Indic shaper - + Nothing functional in there yet. - - So far, we're parsing IndicSyllabicCategory.txt and - IndicMatraCategory.txt - fils from Unicode Character Database and store them in an array to - be used + + So far, we're parsing IndicSyllabicCategory.txt and IndicMatraCategory.txt + fils from Unicode Character Database and store them in an array to be used by the shaper. Also hooked up the shaper, but it does not do anything right now. src/Makefile.am | 3 + src/gen-indic-table.py | 201 ++++++++ src/hb-ot-shape-complex-arabic.cc | 4 +- - src/hb-ot-shape-complex-indic-table.hh | 834 - +++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-indic-table.hh | 834 +++++++++++++++++++++++++++++++++ src/hb-ot-shape-complex-indic.cc | 141 ++++++ src/hb-ot-shape-complex-private.hh | 58 ++- src/hb-ot-shape-private.hh | 3 +- @@ -86392,8 +84327,7 @@ Date: Wed Jun 1 20:45:14 2011 -0400 Update to ArabicShaping-6.1.0d2.txt - src/hb-ot-shape-complex-arabic-table.hh | 307 - ++++++++++++++++++++------------ + src/hb-ot-shape-complex-arabic-table.hh | 307 ++++++++++++++++++++------------ 1 file changed, 197 insertions(+), 110 deletions(-) commit 9d49433efba2217852f4e44f056465b451961c49 @@ -86421,12 +84355,11 @@ Author: Behdad Esfahbod Date: Tue May 31 15:18:13 2011 -0400 [Vertical] Apply vertical features - + We apply all of vert, vrt2, vkrn, valt, and vpal. TODO | 7 ------- - src/hb-ot-shape.cc | 50 - +++++++++++++++++++++++++++++++++++++++++--------- + src/hb-ot-shape.cc | 50 +++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 41 insertions(+), 16 deletions(-) commit 0c6a9767c812c00f2a6a02d9f43f4694e1f43815 @@ -86443,9 +84376,9 @@ Author: Behdad Esfahbod Date: Tue May 31 12:33:11 2011 -0400 Fix TTC header handling - + Also change the Version type to avoid similar bugs in the future. - + Reported by Grigori Goronzy. src/hb-open-file-private.hh | 6 +++--- @@ -86458,9 +84391,9 @@ Author: Behdad Esfahbod Date: Mon May 30 11:08:40 2011 -0400 Fixed inifinite loop introduced in 7403e055cd1463f - + k is the index, not j. - + Reported by Tom Hacohen. src/hb-ot-layout-gpos-private.hh | 4 ++-- @@ -86481,11 +84414,10 @@ Author: Behdad Esfahbod Date: Fri May 27 18:13:31 2011 -0400 [OT] Separate map_builder from the actual map - + Respectively, separate planner from the actual plan. - src/hb-ot-map-private.hh | 121 - ++++++++++++++++++++----------------- + src/hb-ot-map-private.hh | 121 ++++++++++++++++++++----------------- src/hb-ot-map.cc | 33 +++++----- src/hb-ot-shape-complex-arabic.cc | 6 +- src/hb-ot-shape-complex-private.hh | 8 +-- @@ -86529,8 +84461,7 @@ Date: Fri May 27 15:58:54 2011 -0400 src/Makefile.am | 7 +++++++ src/check-c-linkage-decls.sh | 6 +++++- src/check-header-guards.sh | 8 +++++++- - src/check-includes.sh | 42 - ++++++++++++++++++++++++++++++++++++++++++ + src/check-includes.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ src/check-internal-symbols.sh | 8 ++++---- src/check-libstdc++.sh | 7 ++++--- src/hb-ot-shape.h | 1 + @@ -86577,14 +84508,13 @@ Author: Behdad Esfahbod Date: Wed May 25 16:08:06 2011 -0400 Release 0.6.0. First official tarball release! - + There are no API guarantees just yet, but I *expect* that no incompatible API changes to happen before 1.0.0. - + Update NEWS. - NEWS | 262 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + NEWS | 262 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 2 +- 2 files changed, 263 insertions(+), 1 deletion(-) @@ -86593,7 +84523,7 @@ Author: Behdad Esfahbod Date: Fri May 27 03:38:46 2011 -0400 [test-common] Test hb_direction_to_string() - + Caught by "make check-symbols". test/test-common.c | 6 ++++++ @@ -86604,7 +84534,7 @@ Author: Behdad Esfahbod Date: Fri May 27 03:38:30 2011 -0400 [test] Rename test-symbols to check-symbols - + Shows undocumented symbols. test/Makefile.am | 37 +++++++++++++++++++++---------------- @@ -86624,7 +84554,7 @@ Author: Behdad Esfahbod Date: Fri May 27 02:46:28 2011 -0400 [test/unicode] Fix double-free - + Caught by "make check-valgrind". test/Makefile.am | 2 +- @@ -86636,15 +84566,14 @@ Author: Behdad Esfahbod Date: Fri May 27 02:44:29 2011 -0400 [test] Switch to automake-based test-runner - + Adds check-valgrind among other modes. We do not run under gtester by default anymore. Makefile.am | 2 + test/.valgrind-suppressions | 0 test/Makefile.am | 48 ++++++++++++++++++++++-- - test/Makefile.decl | 90 - --------------------------------------------- + test/Makefile.decl | 90 --------------------------------------------- 4 files changed, 47 insertions(+), 93 deletions(-) commit adbc97ddde27cf609d95d3249f3ea8060a6e1d20 @@ -86652,7 +84581,7 @@ Author: Behdad Esfahbod Date: Fri May 27 01:33:18 2011 -0400 [test] Add test-symbols that checks API symbol text coverage - + We're not at 100% coverage yet, so do not enable the test by default. test/Makefile.am | 21 +++++++++++++++++++++ @@ -86665,8 +84594,7 @@ Date: Fri May 27 01:00:55 2011 -0400 [test/version] Test hb-version.h test/Makefile.am | 1 + - test/test-version.c | 80 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-version.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) commit 329c15714be90d3fc2d9054f80cb14fa325dc959 @@ -86674,7 +84602,7 @@ Author: Behdad Esfahbod Date: Wed May 25 16:07:07 2011 -0400 Add libtool versioning - + The versioning is automatic. For now, soname-major is 0. With the 1.0.0 release it will jump to 1 and stay there forever. @@ -86708,13 +84636,12 @@ Author: Behdad Esfahbod Date: Wed May 25 11:27:33 2011 -0400 [API] One last font-funcs API change - + Now that vertical text works correctly, I'm doing a last round modification of the font-funcs API to simplify. Expect no more changes around here. - src/hb-font.cc | 107 - ++++++++++++++++++------------------------------------ + src/hb-font.cc | 107 ++++++++++++++++++------------------------------------ src/hb-font.h | 50 +++++++++++-------------- src/hb-ft.cc | 26 ++++++------- test/test-font.c | 27 +++++++------- @@ -86727,8 +84654,7 @@ Date: Wed May 25 11:01:32 2011 -0400 [test] Update to API changes - test/test-font.c | 72 - ++++++++++++++++++++++--------------------------------- + test/test-font.c | 72 ++++++++++++++++++++++--------------------------------- test/test-shape.c | 35 +++++++++++++-------------- 2 files changed, 44 insertions(+), 63 deletions(-) @@ -86737,16 +84663,15 @@ Author: Behdad Esfahbod Date: Tue May 24 21:04:15 2011 -0400 [Vertical] fix vertical gpos - + Wow, it took me a few days to find the right fix! - + We now set the advance for attached marks to zero, but we do this in the _finish() state of gpos, so it shouldn't regress with fonts like DejaVuSansMono that explicitly decrease the mark advance width to set it to zero. - src/hb-ot-layout-gpos-private.hh | 167 - +++++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-private.hh | 167 +++++++++++++++++++++++---------------- src/hb-ot-shape.cc | 9 ++- 2 files changed, 103 insertions(+), 73 deletions(-) @@ -86763,8 +84688,7 @@ commit 3b0bb855e011099f1a4c77ffc5214c658e280b2d Author: Behdad Esfahbod Date: Fri May 20 15:59:59 2011 -0400 - [Vertical] GPOS x/y advance adjustments only apply in hori/vert - respectively + [Vertical] GPOS x/y advance adjustments only apply in hori/vert respectively src/hb-ot-layout-gpos-private.hh | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) @@ -86794,8 +84718,7 @@ Date: Thu May 19 18:46:15 2011 -0400 [Vertical] GPOS is always done with horizontal origin src/hb-font-private.hh | 4 +- - src/hb-font.cc | 187 - ++++++++++++++++++--------------------- + src/hb-font.cc | 187 ++++++++++++++++++--------------------- src/hb-font.h | 53 ++++++----- src/hb-ft.cc | 47 ++++------ src/hb-ot-layout-gdef-private.hh | 18 ++-- @@ -86809,9 +84732,9 @@ Author: Behdad Esfahbod Date: Thu May 19 13:08:00 2011 -0400 More vertical - + Starting to get there, but not without yet another round of changes. - + I think I know wheere to go now. src/hb-font.cc | 44 ++++++++++++++++++++++++++++++++------------ @@ -86825,7 +84748,7 @@ Author: Behdad Esfahbod Date: Wed May 18 10:17:02 2011 -0400 [hb-view] Add --annotate - + Currently it only marks glyph origins. src/hb-view.cc | 20 +++++++++++++++++++- @@ -86836,7 +84759,7 @@ Author: Behdad Esfahbod Date: Tue May 17 23:31:00 2011 -0400 Vertical: Adjust origin in glyph_extents() and glyph_contour_point() - + The base for vertical is almost ready now. src/hb-font.cc | 12 ++++++++---- @@ -86848,8 +84771,7 @@ Date: Tue May 17 23:27:22 2011 -0400 Cosmetic - src/hb-font.cc | 114 - ++++++++++++++++++++++++++++----------------------------- + src/hb-font.cc | 114 ++++++++++++++++++++++++++++----------------------------- src/hb-ft.cc | 36 +++++++++--------- 2 files changed, 74 insertions(+), 76 deletions(-) @@ -86867,13 +84789,12 @@ Author: Behdad Esfahbod Date: Tue May 17 17:55:03 2011 -0400 [API] Vertical support, take 2 - + I like this API *much* better. Implementation still incomplete, but horizontal works. src/hb-font-private.hh | 7 +- - src/hb-font.cc | 185 - +++++++++++++++++++++++---------------- + src/hb-font.cc | 185 +++++++++++++++++++++++---------------- src/hb-font.h | 109 ++++++++++++----------- src/hb-ft.cc | 66 ++++++++------ src/hb-ot-layout-gdef-private.hh | 2 +- @@ -86886,13 +84807,12 @@ Author: Behdad Esfahbod Date: Mon May 16 18:15:37 2011 -0400 [API] Add support for vertical text - + Design not final yet, and in fact I'm going to change it immediately, but this is an standalone change for itself. src/hb-font-private.hh | 35 ++-- - src/hb-font.cc | 387 - +++++++++++++++++++++++++---------- + src/hb-font.cc | 387 +++++++++++++++++++++++++---------- src/hb-font.h | 164 +++++++++++---- src/hb-ft.cc | 227 +++++++++++++------- src/hb-ot-layout-gdef-private.hh | 2 +- @@ -86919,7 +84839,7 @@ Author: Behdad Esfahbod Date: Tue May 17 15:05:34 2011 -0400 Check for mmap() - + Apparently there exist systems with mprotect(), but not mmap()? configure.ac | 2 +- @@ -87008,13 +84928,12 @@ Author: Behdad Esfahbod Date: Fri May 13 22:46:36 2011 -0400 [test/test-ot-tag] Test hb-ot-tag.h, fix many bugs - + I'm in awe with how many bugs this test revealed. All fixed. src/hb-ot-tag.cc | 153 +++++++++++++++++++++--------------- test/Makefile.am | 3 + - test/test-ot-tag.c | 227 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-ot-tag.c | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 320 insertions(+), 63 deletions(-) commit 1368018b475c2a6dd5f625af99695ae2fcba1f05 @@ -87053,7 +84972,7 @@ Author: Behdad Esfahbod Date: Thu May 12 15:14:13 2011 -0400 [API] Make get_glyph() callback return a boolean - + We need to know whether the glyph exists, so we can fallback to composing / decomposing. Assuming that glyph==0 means "doesn't exist" wouldn't work for applications like Pango that want to use different @@ -87081,9 +85000,8 @@ commit 805af72405a2f653f08de392d7172291ffe8e902 Author: Behdad Esfahbod Date: Thu May 12 12:39:40 2011 -0400 - Rename get_kernings() arguments from first/second_glyph to - left/right_glyph - + Rename get_kernings() arguments from first/second_glyph to left/right_glyph + Makes it clear that kerning is in visual order. src/hb-font.cc | 10 +++++----- @@ -87097,8 +85015,7 @@ Date: Thu May 12 10:53:57 2011 -0400 [test] Add test-shape.c. Oops - test/test-shape.c | 125 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-shape.c | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) commit c098c3acc8c48b4b6883c50c9a87e81dbe98ba24 @@ -87106,7 +85023,7 @@ Author: Behdad Esfahbod Date: Thu May 12 10:49:30 2011 -0400 [test/blob] Use MAP_ANON instead of MAP_ANONYMOUS - + More portable. test/test-blob.c | 2 +- @@ -87126,7 +85043,7 @@ Author: Behdad Esfahbod Date: Thu May 12 01:19:39 2011 -0400 [object] Make object inert during destruction - + Such that user_data and other finalizers cannot resurrect object src/hb-object-private.hh | 2 ++ @@ -87146,7 +85063,7 @@ Author: Behdad Esfahbod Date: Thu May 12 00:46:57 2011 -0400 Fix font subclass chainup - + Test passing now. src/hb-font.cc | 6 +----- @@ -87158,8 +85075,7 @@ Date: Thu May 12 00:35:12 2011 -0400 [test/font] Test font_funcs subclassing - test/test-font.c | 158 - +++++++++++++++++++++++++++++++++++++++++++++++++++++-- + test/test-font.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 155 insertions(+), 3 deletions(-) commit 14f1e81b77971204e9325e2a8b6f8b690fac20a7 @@ -87168,8 +85084,7 @@ Date: Thu May 12 00:18:28 2011 -0400 [test/font] Test empty funcs - test/test-font.c | 75 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + test/test-font.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 73 insertions(+), 2 deletions(-) commit 2ca0b5ae1e65d3f43df3a4a2144a1451d8b485c4 @@ -87178,8 +85093,7 @@ Date: Wed May 11 23:57:36 2011 -0400 [test/font] Test more - test/test-font.c | 63 - ++++++++++++++++++++++++++++++++++++++++++++++++-------- + test/test-font.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 9 deletions(-) commit 7033518f756490e9cf00b96387fee6f2f7fae785 @@ -87247,8 +85161,7 @@ Date: Wed May 11 23:05:02 2011 -0400 [test/font] Add test_font_properties() - test/test-font.c | 85 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-font.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) commit da603e80386b41b360acb070a862b6ed87da57b8 @@ -87259,8 +85172,7 @@ Date: Wed May 11 22:52:35 2011 -0400 test/Makefile.am | 1 + test/test-buffer.c | 2 +- - test/test-font.c | 69 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-font.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test/test-unicode.c | 1 + 4 files changed, 72 insertions(+), 1 deletion(-) @@ -87349,8 +85261,7 @@ Date: Wed May 11 21:27:52 2011 -0400 Streamline mutex stuff - src/hb-mutex-private.hh | 61 - ++++++++++++++++++++++++++++++------------------- + src/hb-mutex-private.hh | 61 ++++++++++++++++++++++++++++++------------------- src/hb-private.hh | 8 +++++++ 2 files changed, 46 insertions(+), 23 deletions(-) @@ -87403,7 +85314,7 @@ Author: Behdad Esfahbod Date: Wed May 11 18:06:12 2011 -0400 [API] Add HB_UNTAG() - + Useful in C API only. src/hb-common.h | 1 + @@ -87423,7 +85334,7 @@ Author: Behdad Esfahbod Date: Wed May 11 14:30:56 2011 -0400 Plug more leaks - + All good now. src/hb-blob.cc | 2 +- @@ -87466,15 +85377,13 @@ Author: Behdad Esfahbod Date: Wed May 11 10:31:33 2011 -0400 Add maxp table - - Not used for anything right now. Will use to get num_glyphs in - the future. + + Not used for anything right now. Will use to get num_glyphs in the future. src/Makefile.am | 1 + src/hb-ot-head-private.hh | 1 - src/hb-ot-layout.cc | 1 + - src/hb-ot-maxp-private.hh | 68 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-maxp-private.hh | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) commit e0b0710ae52bcc8c6fbd87dfae83818faa5d5f5f @@ -87491,13 +85400,12 @@ Author: Behdad Esfahbod Date: Wed May 11 00:24:34 2011 -0400 [API] Change signature of get_contour_point and get_kerning ffuncs - + get_contour_point now takes glyph id before point_index. - + get_kerning now takes a vector to fill-in. - src/hb-font.cc | 56 - +++++++++++++++++++++------------------- + src/hb-font.cc | 56 +++++++++++++++++++++------------------- src/hb-font.h | 16 +++++++----- src/hb-ft.cc | 11 +++++--- src/hb-ot-layout-gdef-private.hh | 2 +- @@ -87536,8 +85444,7 @@ Date: Wed May 11 00:02:02 2011 -0400 src/hb-font.cc | 6 +- src/hb-ot-layout-common-private.hh | 8 +-- src/hb-ot-layout-gdef-private.hh | 34 +++++----- - src/hb-ot-layout-gpos-private.hh | 121 - ++++++++++++++++++----------------- + src/hb-ot-layout-gpos-private.hh | 121 ++++++++++++++++++----------------- src/hb-ot-layout-gsub-private.hh | 24 +++---- src/hb-ot-layout-gsubgpos-private.hh | 11 ++-- src/hb-ot-layout-private.hh | 13 ---- @@ -87561,8 +85468,7 @@ Date: Tue May 10 20:41:13 2011 -0400 [API] Pass down closure user_data to font funcs src/hb-font-private.hh | 30 ++++++-- - src/hb-font.cc | 184 - +++++++++++++++++++++++++------------------------ + src/hb-font.cc | 184 +++++++++++++++++++++++++------------------------ src/hb-font.h | 42 ++++++----- src/hb-ft.cc | 103 ++++++++++++++------------- 4 files changed, 198 insertions(+), 161 deletions(-) @@ -87591,7 +85497,7 @@ Author: Behdad Esfahbod Date: Tue May 10 20:02:49 2011 -0400 [API] Add hb_font_create_sub_font() and hb_font_get_parent() - + Not quite useful just yet. src/hb-font-private.hh | 1 + @@ -87605,9 +85511,8 @@ Author: Behdad Esfahbod Date: Tue May 10 19:57:00 2011 -0400 [font] Fix internal sign of x/y_scale - - Should have been done as part of - da975419884a535281745f30f4b32fee0bc8a7a1 + + Should have been done as part of da975419884a535281745f30f4b32fee0bc8a7a1 src/hb-font-private.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -87656,16 +85561,14 @@ commit 45bfa99034512e886d75b1d45a5a649647f4711f Author: Behdad Esfahbod Date: Tue May 10 19:12:49 2011 -0400 - Fix set implementation to be truly threadsafe even with destroy() - callbacks - + Fix set implementation to be truly threadsafe even with destroy() callbacks + The test/object test is passing again, instead of deadlocking. src/hb-common.cc | 26 +++++------ src/hb-mutex-private.hh | 47 +++++++------------ src/hb-object-private.hh | 6 ++- - src/hb-private.hh | 117 - ++++++++++++++++++++++++++++++++++++++--------- + src/hb-private.hh | 117 ++++++++++++++++++++++++++++++++++++++--------- 4 files changed, 128 insertions(+), 68 deletions(-) commit 0c2ec1d78bfa0166ffd4afc204c2668d4f456ed9 @@ -87673,7 +85576,7 @@ Author: Behdad Esfahbod Date: Tue May 10 19:11:27 2011 -0400 [test] Always initialize gthread such that our mutex() stuff is tested - + Now the test/object test deadlocks as expected. Fix coming. configure.ac | 1 + @@ -87685,12 +85588,10 @@ commit 6a9093cc486c1899197cd7cc9a3eb907c2e756f7 Author: Behdad Esfahbod Date: Tue May 10 19:00:07 2011 -0400 - [test/object] Test user_data with destroy() callback that calls - user_data - + [test/object] Test user_data with destroy() callback that calls user_data + Exposes the non-atomicity of user_data opertaions at this time because - we call finish() while still locked and modifying the object. - In fact, + we call finish() while still locked and modifying the object. In fact, I'm surprised that it doesn't deadlock. It should. test/test-object.c | 22 ++++++++++++++++++++++ @@ -87731,8 +85632,7 @@ Date: Tue May 10 17:37:08 2011 -0400 [test] Test blob API test/Makefile.am | 1 + - test/test-blob.c | 280 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-blob.c | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++++ test/test-buffer.c | 149 ++++++++++++++-------------- 3 files changed, 359 insertions(+), 71 deletions(-) @@ -87743,8 +85643,7 @@ Date: Fri May 6 22:28:26 2011 -0400 [API] Simplify blob API, remove lock TODO | 2 - - src/hb-blob.cc | 206 - ++++++++++++++++++-------------------------- + src/hb-blob.cc | 206 ++++++++++++++++++-------------------------- src/hb-blob.h | 19 ++-- src/hb-font.cc | 2 - src/hb-open-type-private.hh | 32 ++++--- @@ -87795,14 +85694,12 @@ Author: Behdad Esfahbod Date: Fri May 6 00:04:28 2011 -0400 [API] Add hb_language_get_default() - + It uses locale information to detect default language. It's used by hb_shape() whenever language is not set on the buffer. - - Not sure how to properly test it in the test suite. Tested by - observing - that with DejaVu Sans we select the proper local glyph version - for U+431 + + Not sure how to properly test it in the test suite. Tested by observing + that with DejaVu Sans we select the proper local glyph version for U+431 under Serbian locale. See http://www.pango.org/ScriptGallery src/hb-common.cc | 21 +++++++++++++++++++++ @@ -87816,17 +85713,16 @@ Author: Behdad Esfahbod Date: Thu May 5 21:31:04 2011 -0400 [API] Add version macros and functions - + Step version up to 0.5.0. - + Also, fix to pass "make distcheck" configure.ac | 24 ++++++++++++----- src/Makefile.am | 9 +++++++ src/check-c-linkage-decls.sh | 2 +- src/hb-common.cc | 29 +++++++++++++++++++++ - src/hb-version.h.in | 62 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-version.h.in | 62 ++++++++++++++++++++++++++++++++++++++++++++ src/hb.h | 1 + test/Makefile.am | 2 ++ 7 files changed, 122 insertions(+), 7 deletions(-) @@ -87836,9 +85732,8 @@ Author: Behdad Esfahbod Date: Thu May 5 19:47:59 2011 -0400 Add disable-static libtool flag - - No one who builds harfbuzz static uses the autotools build system - to do it. + + No one who builds harfbuzz static uses the autotools build system to do it. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -87848,7 +85743,7 @@ Author: Behdad Esfahbod Date: Thu May 5 19:47:12 2011 -0400 Remove win32-dll libtool flag - + Since we're not win32-dll clean the way libtool docs define it. configure.ac | 2 +- @@ -87870,8 +85765,7 @@ Date: Thu May 5 16:24:42 2011 -0400 Fix build with older glib configure.ac | 2 +- - test/hb-test.h | 55 - +++++++++++++++++++++++++++++++++---------------------- + test/hb-test.h | 55 +++++++++++++++++++++++++++++++++---------------------- 2 files changed, 34 insertions(+), 23 deletions(-) commit 3935af1c0d0f53a5fd6054e1ee219f3adda42dca @@ -87879,7 +85773,7 @@ Author: Behdad Esfahbod Date: Thu May 5 16:09:45 2011 -0400 [buffer] Remove wrong optimization - + While the cluster fields of the glyph string are usually sorted, they wouldn't be in special cases (for example for non-native direction). Blindly using bsearch is plain wrong. If we want to reintroduce this @@ -87894,7 +85788,7 @@ Author: Behdad Esfahbod Date: Thu May 5 15:33:19 2011 -0400 Make user_data access threadsafe - + For now, by taking a global user_data mutex. src/hb-common.cc | 25 +++++++++++++++++++++++-- @@ -87916,7 +85810,7 @@ Author: Behdad Esfahbod Date: Thu May 5 15:14:04 2011 -0400 Use threadsafe set implementation for hb_language lookups - + Note that the static variable has to be a global static, as gcc implements local statics differently and that would require linking to libstdc++, which we don't want. @@ -87930,8 +85824,7 @@ Date: Thu May 5 15:07:54 2011 -0400 Add hb_threadsafe_set_t - src/hb-mutex-private.hh | 54 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-mutex-private.hh | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-private.hh | 3 +-- 2 files changed, 55 insertions(+), 2 deletions(-) @@ -87941,8 +85834,7 @@ Date: Thu May 5 15:00:43 2011 -0400 Use hb_array_t for hb_language_t mapping - src/hb-common.cc | 48 - ++++++++++++++++++++++-------------------------- + src/hb-common.cc | 48 ++++++++++++++++++++++-------------------------- src/hb-object-private.hh | 4 ++-- src/hb-private.hh | 19 +++++++++++++++---- 3 files changed, 39 insertions(+), 32 deletions(-) @@ -87972,8 +85864,7 @@ Date: Thu May 5 14:38:16 2011 -0400 Replace fixed-size lookup_maps array with hb_array_t src/hb-ot-map-private.hh | 13 +++++-------- - src/hb-ot-map.cc | 47 - +++++++++++++++++++++++++---------------------- + src/hb-ot-map.cc | 47 +++++++++++++++++++++++++---------------------- src/hb-private.hh | 6 ++---- 3 files changed, 32 insertions(+), 34 deletions(-) @@ -88016,8 +85907,7 @@ Date: Thu May 5 13:21:04 2011 -0400 Replace hb_map_t with hb_set_t which is more intuitive and flexible src/hb-object-private.hh | 24 ++++++++++++++---------- - src/hb-private.hh | 44 - +++++++++++++++++--------------------------- + src/hb-private.hh | 44 +++++++++++++++++--------------------------- test/test-object.c | 4 ++++ 3 files changed, 35 insertions(+), 37 deletions(-) @@ -88036,7 +85926,7 @@ Author: Behdad Esfahbod Date: Thu May 5 00:21:16 2011 -0400 Make hb_mutex_*() macros take a pointer - + More intuitive. src/hb-blob.cc | 28 ++++++++++++++-------------- @@ -88057,7 +85947,7 @@ Author: Behdad Esfahbod Date: Wed May 4 19:27:37 2011 -0400 Move code around - + Mutex (and Windows.h by extension) are fairly isolated now. src/Makefile.am | 8 ++-- @@ -88065,8 +85955,7 @@ Date: Wed May 4 19:27:37 2011 -0400 src/hb-blob.cc | 24 ++++++++++- src/hb-font-private.hh | 3 -- src/hb-font.cc | 12 +++--- - src/hb-mutex-private.hh | 105 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-mutex-private.hh | 105 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-object-private.hh | 33 ++------------- src/hb-unicode.cc | 1 - 8 files changed, 141 insertions(+), 105 deletions(-) @@ -88076,7 +85965,7 @@ Author: Behdad Esfahbod Date: Tue May 3 01:03:53 2011 -0400 [ft] Fix font->face handling - + Don't use _cached() src/hb-ft.cc | 7 +++++-- @@ -88087,16 +85976,14 @@ Author: Behdad Esfahbod Date: Tue May 3 00:49:06 2011 -0400 Move Win32 thread-safety stuff to hb-object-private.h - + The Win32 definitions for LONG, ULONG, etc conflicts with hb-open-type.h. Avoid that by making sure hb-object-private.h and hb-open-type.h are not included in the same compilation unit. src/hb-common.cc | 54 --------------------------------------- - src/hb-object-private.hh | 66 - ++++++++++++++++++++++++++++++++++++++++++++++++ - src/hb-private.hh | 66 - ------------------------------------------------ + src/hb-object-private.hh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-private.hh | 66 ------------------------------------------------ 3 files changed, 66 insertions(+), 120 deletions(-) commit 266b34418c9bbe23ccaf29cb354b58c465fa3b22 @@ -88104,12 +85991,11 @@ Author: Behdad Esfahbod Date: Tue May 3 00:35:53 2011 -0400 Refactor to keep hb-object-private.h and hb-open-type.h separate - + Needed to be able to include from hb-object-private.h. src/hb-font.cc | 19 ++++---------- - src/hb-ot-layout-private.hh | 60 - +++++++++++++++++++++++++-------------------- + src/hb-ot-layout-private.hh | 60 +++++++++++++++++++++++++-------------------- src/hb-ot-layout.cc | 28 ++++++++++++++++++--- 3 files changed, 63 insertions(+), 44 deletions(-) @@ -88118,9 +86004,9 @@ Author: Behdad Esfahbod Date: Tue May 3 00:19:18 2011 -0400 [blob] Implement sub_blob() in terms of create() - + Fixes problem with uninitialized sub_blob->mutex among other things. - + Reported by Bradley Grainger. src/hb-blob.cc | 12 +++++------- @@ -88131,11 +86017,10 @@ Author: Behdad Esfahbod Date: Tue May 3 00:09:16 2011 -0400 Implement win32 thread-safety stuff - + Patch from Bradley Grainger. - src/hb-common.cc | 54 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-common.cc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-private.hh | 30 +++++++++++++++++++++++++----- 2 files changed, 79 insertions(+), 5 deletions(-) @@ -88144,7 +86029,7 @@ Author: Behdad Esfahbod Date: Mon May 2 20:57:28 2011 -0400 Add hb_mutex_free() and use it - + Based on patch by Bradley Grainger. src/hb-blob.cc | 1 + @@ -88167,8 +86052,7 @@ Date: Mon May 2 20:46:32 2011 -0400 [API] Make hb_font_create() take a face and reference it src/hb-font-private.hh | 2 ++ - src/hb-font.cc | 42 - +++++++++++++++++++++++++--------------- + src/hb-font.cc | 42 +++++++++++++++++++++++++--------------- src/hb-font.h | 26 ++++++++++++++----------- src/hb-ft.cc | 7 +------ src/hb-ot-layout-gdef-private.hh | 2 +- @@ -88198,7 +86082,7 @@ Author: Behdad Esfahbod Date: Mon May 2 19:54:29 2011 -0400 Fix bug in array growth implementation - + With this, test/object is now passing. Yay! src/hb-private.hh | 24 +++++++++++------------- @@ -88227,13 +86111,12 @@ Author: Behdad Esfahbod Date: Mon May 2 19:52:47 2011 -0400 [test/object] Add test for object lifecycle stuff - + Revealed many bugs in the (untested and known buggy) user_data support. test/Makefile.am | 4 + - test/test-object.c | 316 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-object.c | 316 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 320 insertions(+) commit f74d6c81f14f117b3cecfb65f0d5df22849c9a07 @@ -88270,8 +86153,7 @@ commit e87867cb88280e3f3a38d829e359cb686168b2cb Author: Behdad Esfahbod Date: Mon May 2 19:35:05 2011 -0400 - [buffer] Fail in _create() if we cannot pre-allocate the requested - size + [buffer] Fail in _create() if we cannot pre-allocate the requested size src/hb-buffer.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) @@ -88301,8 +86183,7 @@ Date: Mon May 2 14:58:04 2011 -0400 [test/unicode] Add script roundtrip tests for glib and ICU - test/test-unicode.c | 70 - ++++++++++++++++++++++++++++++++++++++++++++++++----- + test/test-unicode.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 64 insertions(+), 6 deletions(-) commit 7cda65935c73c277550f6ac12f6730e96d4852a7 @@ -88311,8 +86192,7 @@ Date: Mon May 2 14:33:53 2011 -0400 [test/unicode] Better test chainup - test/test-unicode.c | 54 - ++++++++++++++++++++++++++++++++++++++++++++++++----- + test/test-unicode.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 5 deletions(-) commit 250c59225ead28449deb11522dee3819480a19b4 @@ -88321,8 +86201,7 @@ Date: Mon May 2 14:21:30 2011 -0400 [test/unicode] Port the _custom test to test all property setters - test/test-unicode.c | 186 - +++++++++++++++++++++++++++++----------------------- + test/test-unicode.c | 186 +++++++++++++++++++++++++++++----------------------- 1 file changed, 104 insertions(+), 82 deletions(-) commit e74b5b339ab0af53d893ec84a0955d5aa508fed3 @@ -88339,11 +86218,10 @@ Author: Behdad Esfahbod Date: Mon May 2 13:52:17 2011 -0400 [test/buffer] Clean up testing - + Getting the hang of how to cleanly use gtest. - test/test-buffer.c | 154 - +++++++++++++++++++++++++++++------------------------ + test/test-buffer.c | 154 +++++++++++++++++++++++++++++------------------------ 1 file changed, 85 insertions(+), 69 deletions(-) commit 819e9d9e5310e67e8dcce9fa885f8a086a9b9ee8 @@ -88369,9 +86247,9 @@ Author: Behdad Esfahbod Date: Mon May 2 12:35:14 2011 -0400 ISO 15924 fixes - + Update to http://unicode.org/iso15924 - + Fixes some of the test failures in test-unicode with ICU. Still one more to fix before the test passes. @@ -88385,7 +86263,7 @@ Author: Behdad Esfahbod Date: Mon May 2 12:06:18 2011 -0400 [test/unicode] Add log messages - + Use with --verbose to see what's failing test/test-unicode.c | 9 ++++++--- @@ -88397,8 +86275,7 @@ Date: Sun May 1 20:04:01 2011 -0400 Minor - test/test-unicode.c | 478 - ++++++++++++++++++++++++++-------------------------- + test/test-unicode.c | 478 ++++++++++++++++++++++++++-------------------------- 1 file changed, 243 insertions(+), 235 deletions(-) commit 60833efaf1310c3f18e150b61daaeb0074ae3d91 @@ -88406,12 +86283,11 @@ Author: Behdad Esfahbod Date: Fri Apr 29 16:49:57 2011 -0400 [test/unicode] Add testing of all unicode properties - + ICU fails for now. test/hb-test.h | 4 +- - test/test-unicode.c | 432 - +++++++++++++++++++++++++++++++++++++++++++++++++--- + test/test-unicode.c | 432 +++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 416 insertions(+), 20 deletions(-) commit da96ee072fa3544c3d36cf0b82ada11806789d70 @@ -88435,8 +86311,7 @@ Date: Fri Apr 29 12:00:38 2011 -0400 test/test-c.c | 1 + test/test-common.c | 3 +- test/test-cplusplus.cc | 1 + - test/test-unicode.c | 112 - +++++++++++++++++++++++++++------------------- + test/test-unicode.c | 112 +++++++++++++++++++++++++++------------------- 7 files changed, 74 insertions(+), 49 deletions(-) commit 13db3d40bfc09c68f9761a71435b1840b9d34099 @@ -88455,8 +86330,7 @@ Date: Thu Apr 28 19:37:51 2011 -0400 [test/buffer] Add more extensive UTF-8 test data from glib src/hb-buffer.cc | 2 +- - test/test-buffer.c | 317 - ++++++++++++++++++++++++++++++++++++++++++++++++++--- + test/test-buffer.c | 317 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 303 insertions(+), 16 deletions(-) commit dfec67f958482e5c3bb01e06b08694cd4ded6f66 @@ -88474,12 +86348,11 @@ Author: Behdad Esfahbod Date: Thu Apr 28 17:10:44 2011 -0400 Add test suite infrastructure - + Wraps around glib for convenience and ease of use. test/Makefile.am | 1 + - test/hb-test.h | 132 - ++++++++++++++++++++++++++++++++++++++++++++++++---- + test/hb-test.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++++---- test/test-buffer.c | 29 ++++++------ test/test-common.c | 14 +++--- test/test-unicode.c | 32 ++++++------- @@ -88490,7 +86363,7 @@ Author: Behdad Esfahbod Date: Thu Apr 28 16:03:29 2011 -0400 [API Remove hb_font_funcs_copy() - + Will be adding font_funcs subclassing instead. src/hb-font.cc | 13 ------------- @@ -88552,12 +86425,11 @@ Author: Behdad Esfahbod Date: Thu Apr 28 12:56:49 2011 -0400 [buffer] More error handling - + Should be all set now. src/hb-buffer-private.hh | 2 +- - src/hb-buffer.cc | 60 - +++++++++++++++++++++++++++++++++--------------- + src/hb-buffer.cc | 60 +++++++++++++++++++++++++++++++++--------------- 2 files changed, 43 insertions(+), 19 deletions(-) commit 15c57e04bf05026ef424f8ae912d2f379301bf93 @@ -88565,9 +86437,9 @@ Author: Behdad Esfahbod Date: Thu Apr 28 12:28:54 2011 -0400 [test/buffer] Add test pre_alloc(); hangs in the buffer code right now - + Because the following loop overflows: - + while (size > new_allocated) new_allocated += (new_allocated >> 1) + 32; @@ -88580,8 +86452,7 @@ Date: Thu Apr 28 12:15:24 2011 -0400 [test/buffer] Test reset(), set_length(), and set/get_unicode_data() - test/test-buffer.c | 66 - ++++++++++++++++++++++++++++++++++++++++++++++++------ + test/test-buffer.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 7 deletions(-) commit db126b5448ec802285cf2b6f0e7da412d02dfb28 @@ -88590,8 +86461,7 @@ Date: Thu Apr 28 11:56:29 2011 -0400 [test/buffer] Test reverse() and reverse_clusters() - test/test-buffer.c | 61 - ++++++++++++++++++++++++++++++++++++++++++++++++++---- + test/test-buffer.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 4 deletions(-) commit 5fa849b77d49da2212825ebb1bea9145713b8449 @@ -88604,8 +86474,7 @@ Date: Wed Apr 27 21:46:01 2011 -0400 src/hb-blob.h | 12 ++++++++++++ src/hb-buffer.cc | 16 ++++++++++++++++ src/hb-buffer.h | 10 ++++++++++ - src/hb-font.cc | 51 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-font.cc | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-font.h | 36 ++++++++++++++++++++++++++++++++++++ src/hb-unicode.cc | 17 +++++++++++++++++ src/hb-unicode.h | 12 ++++++++++++ @@ -88617,8 +86486,7 @@ Date: Wed Apr 27 21:45:51 2011 -0400 Move code around - src/hb-object-private.hh | 153 - ++++++++++------------------------------------- + src/hb-object-private.hh | 153 ++++++++++------------------------------------- src/hb-private.hh | 136 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 157 insertions(+), 132 deletions(-) @@ -88629,8 +86497,7 @@ Date: Wed Apr 27 21:22:32 2011 -0400 Add initial implementation of user_data to objects src/hb-common.h | 11 ++- - src/hb-object-private.hh | 186 - ++++++++++++++++++++++++++++++++++++++++++++++- + src/hb-object-private.hh | 186 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 193 insertions(+), 4 deletions(-) commit 47e71d9661946a4ffb96026bf1d697d788414ab5 @@ -88670,7 +86537,7 @@ Author: Behdad Esfahbod Date: Wed Apr 27 15:10:12 2011 -0400 GNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm - + With gcc on arm, request 8-bit structure alignment. configure.ac | 10 +++++++++- @@ -88681,7 +86548,7 @@ Author: Behdad Esfahbod Date: Wed Apr 27 14:48:19 2011 -0400 [API] Add hb_direction_from/to_string() - + And hb-view --direction argument. TODO | 1 - @@ -88741,9 +86608,9 @@ Author: Behdad Esfahbod Date: Wed Apr 27 01:49:03 2011 -0400 Replace simple macros with inline functions for better type safety - + Now that we use C++ for all source code, lets benefit from it! - + The hb_be_int16/32_get/put/eq() macros grow code size if replaced with inline functions, so leave them as is. @@ -88765,7 +86632,7 @@ Author: Behdad Esfahbod Date: Wed Apr 27 01:41:24 2011 -0400 Don't return in void function - + Would have been nice if gcc had warned... src/hb-private.hh | 2 +- @@ -88777,8 +86644,7 @@ Date: Thu Apr 21 18:35:58 2011 -0400 Further simplify object handling - src/hb-object-private.hh | 53 - ++++++++++++++++++++++++------------------------ + src/hb-object-private.hh | 53 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 26 deletions(-) commit fca368c4682624346a0aaee690e1ad6ed4c0b337 @@ -88786,7 +86652,7 @@ Author: Behdad Esfahbod Date: Thu Apr 21 18:24:02 2011 -0400 Add hb_object_header_t which is the common part of all objects - + Makes way for adding arbitrary user_data support. src/hb-blob-private.hh | 3 +- @@ -88798,8 +86664,7 @@ Date: Thu Apr 21 18:24:02 2011 -0400 src/hb-ft.cc | 3 +- src/hb-glib.cc | 3 +- src/hb-icu.cc | 3 +- - src/hb-object-private.hh | 95 - ++++++++++++++++++++++++++--------------------- + src/hb-object-private.hh | 95 ++++++++++++++++++++++++++--------------------- src/hb-private.hh | 5 +-- src/hb-unicode-private.hh | 6 ++- src/hb-unicode.cc | 3 +- @@ -88885,7 +86750,7 @@ Author: Behdad Esfahbod Date: Thu Apr 21 16:59:10 2011 -0400 [hb-view] Accept numbers in feature tag name - + Reported by Adam Twardoch. src/hb-view.c | 6 +++--- @@ -88896,9 +86761,9 @@ Author: Behdad Esfahbod Date: Thu Apr 21 16:55:17 2011 -0400 Remove obsolete comment - + Talking to Ryan Lortie, he thinks my comment doesn't make sense. - + So I'm making the getter const. Note that g_atomic_int_get() casts that away itself, so we don't need to worry about that (which kinda makes me uncomfortable actually). @@ -88911,7 +86776,7 @@ Author: Behdad Esfahbod Date: Thu Apr 21 16:34:22 2011 -0400 Add ASSERT_STATIC_EXPR macro - + Unused right now. src/hb-private.hh | 2 ++ @@ -88942,24 +86807,20 @@ Author: Behdad Esfahbod Date: Thu Apr 21 15:08:01 2011 -0400 [API] Allow negative font x_scale/y_scale - + I was reconsidering whether y should grow down, since all three/four times I've used this API I was tricked and got that wrong in my use. So I was very inclined to make y grow down instead of up. However, - considering that the font space has y up and it would be very - confusing + considering that the font space has y up and it would be very confusing for callbacks to work against that, I decided that what I really want - is for the user to be able to set y_scale to a negative number - to imply + is for the user to be able to set y_scale to a negative number to imply that user-space y grows down. - - Changing x_scale/y_scale from unsigned int to int allows that, - and I've - made pango to use that instead of negating glyph y_offset later. - hb-ft + + Changing x_scale/y_scale from unsigned int to int allows that, and I've + made pango to use that instead of negating glyph y_offset later. hb-ft however still has y group up. I *guess* that's how FreeType works? I'm not sure, FreeType docs don't make this clear... - + I'm happy with the resolution :-). src/hb-font.cc | 8 ++++---- @@ -88974,8 +86835,7 @@ Date: Thu Apr 21 14:58:23 2011 -0400 [icu] Remove big script switch(), rely on reverse-lookup - src/hb-icu.cc | 137 - ++++------------------------------------------------------ + src/hb-icu.cc | 137 ++++------------------------------------------------------ 1 file changed, 9 insertions(+), 128 deletions(-) commit d18431b4cd8c1b14523733cd60a62b862f5b471f @@ -88992,12 +86852,11 @@ Author: Behdad Esfahbod Date: Wed Apr 20 18:50:27 2011 -0400 Rename all private sources and headers to C++ files - + So we can liberally use the simple features of C++ that parts of the codebase is already using. - src/Makefile.am | 17 - +++++++++-------- + src/Makefile.am | 17 +++++++++-------- src/{hb-blob-private.h => hb-blob-private.hh} | 8 ++++---- src/hb-blob.cc | 4 ++-- src/hb-buffer-private.hh | 2 +- @@ -89047,12 +86906,12 @@ Author: Behdad Esfahbod Date: Wed Apr 20 17:21:23 2011 -0400 [API] Make hb_face_reference_table() return empty blob instead of NULL - + The idea here is that: - + - Like pretty much all other API in harfbuzz, user does not have to check for NULL. - + - In any caller code, the case of missing table should be handled exactly the same way that a too-short table is handled. Turning a non-existent talbe into a table of size 0 makes the user code @@ -89067,7 +86926,7 @@ Author: Behdad Esfahbod Date: Wed Apr 20 17:03:00 2011 -0400 [API] Rename hb_face_get_table() to hb_face_reference_table() - + That correctly reflects the reference ownership transfer happening. src/hb-font.cc | 4 ++-- @@ -89091,10 +86950,9 @@ Author: Behdad Esfahbod Date: Wed Apr 20 15:49:31 2011 -0400 [API] Remove hb_*_get_reference_count() - + This was a bizzare piece of API that I inherited from cairo. It has - been wrong adding them to cairo in the first place. Remove them - before + been wrong adding them to cairo in the first place. Remove them before someone uses them! src/hb-blob.c | 6 ------ @@ -89134,8 +86992,7 @@ Date: Wed Apr 20 03:15:31 2011 -0400 [test] Add test for headers included from C and C++ test/Makefile.am | 17 +++++++++++++++++ - test/test-c.c | 49 - +++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-c.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ test/test-cplusplus.cc | 29 +++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) @@ -89153,7 +87010,7 @@ Author: Behdad Esfahbod Date: Wed Apr 20 03:03:32 2011 -0400 [API] font: move user_data before destroy() - + This is the common convention for language binding tools. src/hb-font-private.h | 4 ++-- @@ -89167,7 +87024,7 @@ Author: Behdad Esfahbod Date: Wed Apr 20 02:59:28 2011 -0400 [API] blob: move user_data before destroy() - + This is the common convention for language binding tools. src/hb-blob-private.h | 2 +- @@ -89190,12 +87047,11 @@ Author: Behdad Esfahbod Date: Wed Apr 20 02:54:42 2011 -0400 [icu] Add two-way script conversion functions - + Also optimizes the common-direction script lookup. src/hb-common.c | 5 +- - src/hb-icu.cc | 205 - +++++++++++++++++++++++++++++------------------------- + src/hb-icu.cc | 205 +++++++++++++++++++++++++++++------------------------- src/hb-icu.h | 9 +++ test/test-types.c | 2 +- 4 files changed, 124 insertions(+), 97 deletions(-) @@ -89205,12 +87061,10 @@ Author: Behdad Esfahbod Date: Wed Apr 20 02:44:29 2011 -0400 [glib] Add two-way script conversion functions + + Also optimizes the common-direction script lookup to be an array lookup. - Also optimizes the common-direction script lookup to be an array - lookup. - - src/hb-glib.cc | 270 - ++++++++++++++++++++++++++++++--------------------------- + src/hb-glib.cc | 270 ++++++++++++++++++++++++++++++--------------------------- src/hb-glib.h | 8 ++ 2 files changed, 148 insertions(+), 130 deletions(-) @@ -89221,8 +87075,7 @@ Date: Wed Apr 20 02:29:22 2011 -0400 Remove verbose comments src/hb-glib.cc | 194 ++++++++++++++++++++--------------------- - src/hb-icu.cc | 266 - ++++++++++++++++++++++++++++----------------------------- + src/hb-icu.cc | 266 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 230 insertions(+), 230 deletions(-) commit fb194b8794898f51eb596fa4092c26606889d376 @@ -89238,8 +87091,7 @@ Date: Wed Apr 20 02:00:47 2011 -0400 src/hb-ot-shape.cc | 14 +- src/hb-shape.cc | 4 +- ...{hb-unicode-private.h => hb-unicode-private.hh} | 65 ++++--- - src/{hb-unicode.c => hb-unicode.cc} | 213 - +++++++++------------ + src/{hb-unicode.c => hb-unicode.cc} | 213 +++++++++------------ src/hb-unicode.h | 57 +++--- test/test-unicode.c | 23 ++- 10 files changed, 237 insertions(+), 244 deletions(-) @@ -89258,10 +87110,10 @@ Author: Ryan Lortie Date: Wed Apr 20 00:19:20 2011 -0400 [API] unicode: rework virtual functions for subclassing - + Unicode data providers can now be subclassed, including support for chain-up. The interface should now be nicely bindable, as well. - + Also fix glib unicode funcs that where broken after hb_script_t changes. Nicely caught by the test-unicode.c added in this commit. @@ -89270,12 +87122,10 @@ Date: Wed Apr 20 00:19:20 2011 -0400 src/hb-ot-shape.cc | 9 +- src/hb-shape.cc | 2 +- src/hb-unicode-private.h | 17 ++++ - src/hb-unicode.c | 231 - +++++++++++++++++++++++++---------------------- + src/hb-unicode.c | 231 +++++++++++++++++++++++++---------------------- src/hb-unicode.h | 68 +++++++------- test/Makefile.am | 1 + - test/test-unicode.c | 215 - +++++++++++++++++++++++++++++++++++++++++++ + test/test-unicode.c | 215 +++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 610 insertions(+), 164 deletions(-) commit f85faee9b3cb841ea977403945e2c877ab32b97a @@ -89294,7 +87144,7 @@ Author: Behdad Esfahbod Date: Tue Apr 19 00:32:19 2011 -0400 [API] Add hb_buffer_allocation_successful() - + Returns the error status of the buffer. src/hb-buffer.cc | 6 ++++++ @@ -89307,7 +87157,7 @@ Author: Ryan Lortie Date: Fri Apr 15 18:34:45 2011 -0400 [API] Rename hb_buffer_ensure() to hb_buffer_pre_allocate() - + The new name is self-documenting. src/hb-buffer.cc | 4 ++-- @@ -89319,9 +87169,8 @@ Author: Ryan Lortie Date: Fri Apr 15 18:32:36 2011 -0400 [API} hb_buffer_get_glyph_{infos,positions}: Add length out parameter - - Return the length, whenever we return an array. Makes it easier - on the + + Return the length, whenever we return an array. Makes it easier on the language bindings. src/hb-buffer.cc | 12 ++++++++++-- @@ -89336,12 +87185,11 @@ Author: Behdad Esfahbod Date: Mon Apr 18 23:40:21 2011 -0400 [API] Use ISO 15924 tags for hb_script_t - + This simplifies the code, reduces static data, and makes the design more extensible to future additions of new scripts. - src/hb-common.c | 411 - ++++--------------------------------- + src/hb-common.c | 411 ++++--------------------------------- src/hb-common.h | 199 +++++++++--------- src/hb-ot-map.cc | 4 +- src/hb-ot-shape-complex-private.hh | 3 +- @@ -89356,9 +87204,9 @@ Author: Behdad Esfahbod Date: Fri Apr 15 19:26:24 2011 -0400 Change buffer default properties to invalid - + This includes HB_DIRECTION_INVALID and HB_SCRIPT_INVALID. - + The INVALID will cause a "guess whatever from the text" in hb_shape(). While it's not ideal, it works better than the previous defaults at least (HB_DIRECTION_LTR and HB_SCRIPT_COMMON). @@ -89375,11 +87223,9 @@ Date: Fri Apr 15 19:16:54 2011 -0400 Move enum types to hb-common.h - src/hb-common.c | 406 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-common.c | 406 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-common.h | 170 +++++++++++++++++++++++ - src/hb-unicode.c | 406 - ------------------------------------------------------- + src/hb-unicode.c | 406 ------------------------------------------------------- src/hb-unicode.h | 166 ----------------------- 4 files changed, 576 insertions(+), 572 deletions(-) @@ -89431,7 +87277,7 @@ Author: Behdad Esfahbod Date: Fri Apr 15 18:35:08 2011 -0400 [API] Remove hb_buffer_clear() - + One should use hb_buffer_reset() really. src/hb-buffer.cc | 16 +++++----------- @@ -89532,8 +87378,7 @@ Date: Wed Apr 13 01:09:09 2011 -0400 [test] Test hb-buffer.h test/Makefile.am | 8 ++- - test/test-buffer.c | 195 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-buffer.c | 195 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+), 1 deletion(-) commit 72d89404c2837d578f5305456c817130b6a15c73 @@ -89577,10 +87422,9 @@ Author: Behdad Esfahbod Date: Mon Apr 11 19:43:51 2011 -0400 [test] Actually hook up hb_script_t tests - + I really shall find a way to automate the test enumeration. Otherwise - it's too easy to add a test and wrongly hook it up. Did it twice - today. + it's too easy to add a test and wrongly hook it up. Did it twice today. test/test-types.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -89595,8 +87439,7 @@ Date: Mon Apr 11 17:55:58 2011 -0400 src/hb-buffer.h | 1 - src/hb-common.c | 92 ++++++++++++++++++++++++++++++++++++++++- src/hb-common.h | 42 +++++++++++++------ - src/hb-language.c | 120 - ------------------------------------------------------ + src/hb-language.c | 120 ------------------------------------------------------ src/hb-language.h | 46 --------------------- src/hb-ot-tag.h | 1 - src/hb.h | 1 - @@ -89637,14 +87480,12 @@ Date: Mon Apr 11 15:47:40 2011 -0400 Rename hb_category_t to hb_unicode_general_category_t src/hb-glib.c | 2 +- - src/hb-icu.c | 64 - ++++++++++++++++++------------------- + src/hb-icu.c | 64 ++++++++++++++++++------------------- src/hb-ot-shape-complex-arabic.cc | 8 ++--- src/hb-ot-shape-private.hh | 2 +- src/hb-ot-shape.cc | 2 +- src/hb-unicode.c | 4 +-- - src/hb-unicode.h | 66 - +++++++++++++++++++-------------------- + src/hb-unicode.h | 66 +++++++++++++++++++-------------------- 7 files changed, 74 insertions(+), 74 deletions(-) commit 4188096a7722f09ffa9319986c0286071da10a27 @@ -89652,7 +87493,7 @@ Author: Behdad Esfahbod Date: Mon Apr 11 14:58:28 2011 -0400 Make HB_TAG_CHAR4 private - + It's just sugar. src/hb-common.h | 5 +---- @@ -89694,7 +87535,7 @@ Author: Behdad Esfahbod Date: Mon Apr 11 13:12:37 2011 -0400 Rename HB_TAG_STR() to HB_TAG_CHAR4() - + The problem with HB_TAG_STR() was that it expected a string of size 4 exactly, and unlike hb_tag_from_string() it doesn't pad the tag with space characters. So, the new name is more appropriate. @@ -89710,7 +87551,7 @@ Author: Behdad Esfahbod Date: Mon Apr 11 12:46:49 2011 -0400 Add an in-tree test suite - + Uses the glib testing framework. Wrote unit tests for hb-common.h types. @@ -89718,8 +87559,7 @@ Date: Mon Apr 11 12:46:49 2011 -0400 test/Makefile.am | 18 +++++++++ test/Makefile.decl | 90 ++++++++++++++++++++++++++++++++++++++++++++ test/hb-test.h | 67 +++++++++++++++++++++++++++++++++ - test/test-types.c | 108 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + test/test-types.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 284 insertions(+), 1 deletion(-) commit d77b76200efbaa0611691920f9f2018b1e8be340 @@ -89727,7 +87567,7 @@ Author: Behdad Esfahbod Date: Mon Apr 11 12:29:52 2011 -0400 Add few more paratheses to the HB_TAG macro - + Never hurts. src/hb-common.h | 2 +- @@ -89747,12 +87587,11 @@ Author: Behdad Esfahbod Date: Mon Apr 11 11:49:08 2011 -0400 Remove warning message from public header file - - Since we now assert thos in hb-private.h, the int types cannot - be wrong. + + Since we now assert thos in hb-private.h, the int types cannot be wrong. (Except for when someone else includes hb-common.h in a very broken configuration, but that's not our problem!) - + Plus, we don't use inline in the public headers, so remove that too. src/hb-common.h | 7 ------- @@ -89792,7 +87631,7 @@ Author: Behdad Esfahbod Date: Wed Apr 6 14:04:56 2011 -0400 Disable 'cswh' by default except for Arabic shaper - + That better matches OpenType spec. Note that we enable it for all Arabic-shaper scripts. Ie. we enable it by default for Syriac too, but the SyriacOT spec does not require it. I think this is a more @@ -89807,7 +87646,7 @@ Author: Behdad Esfahbod Date: Mon Apr 4 15:36:51 2011 -0400 [hb-view] setlocale (LC_ALL, "") - + For now we don't use anything from the locale, but we should default to using $LANG, etc, if --language is not specified. Right? @@ -89819,13 +87658,13 @@ Author: Behdad Esfahbod Date: Mon Apr 4 14:50:09 2011 -0400 [hb-view] Rewrite --features parsing, with range support - + The --features parsing handles errors now. More importantly, it allos limiting individual features to specific byte ranges. The format is Python-esque. Here is how it all works: - + Syntax: Value: Start: End: - + Setting value: "kern" 1 0 ∞ # Turn feature on "+kern" 1 0 ∞ # Turn feature off @@ -89833,7 +87672,7 @@ Date: Mon Apr 4 14:50:09 2011 -0400 "kern=0" 0 0 ∞ # Turn feature off "kern=1" 1 0 ∞ # Turn feature on "kern=2" 2 0 ∞ # Choose 2nd alternate - + Setting index: "kern[]" 1 0 ∞ # Turn feature on "kern[:]" 1 0 ∞ # Turn feature on @@ -89841,13 +87680,12 @@ Date: Mon Apr 4 14:50:09 2011 -0400 "kern[:5]" 1 0 5 # Turn feature on, partial "kern[3:5]" 1 3 5 # Turn feature on, range "kern[3]" 1 3 3+1 # Turn feature on, single char - + Mixing it all: - + "kern[3:5]=0" 1 3 5 # Turn feature off for range - src/hb-view.c | 169 - +++++++++++++++++++++++++++++++++++++++++++++------------- + src/hb-view.c | 169 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 132 insertions(+), 37 deletions(-) commit ccc6745afaa68ce7497a6cd02ce85986d3c863d0 @@ -89855,7 +87693,7 @@ Author: Behdad Esfahbod Date: Mon Apr 4 14:49:50 2011 -0400 [hb-view] Use cached hb-ft face creation - + Avoids recreating the face the second time we call draw(). src/hb-view.c | 2 +- @@ -89866,7 +87704,7 @@ Author: Behdad Esfahbod Date: Mon Apr 4 14:45:28 2011 -0400 [hb-view] Add --debug - + Frees all allocated memory before exiting. Useful for valgrind run. src/hb-view.c | 17 +++++++++++++++++ @@ -89877,16 +87715,15 @@ Author: Behdad Esfahbod Date: Fri Apr 1 15:48:43 2011 -0400 [hb-view] Support --features - + Accepts values like: - + --features="-mkmk,aalt=2,calt=1,+cswh" - + A minus sign means "=0", a plus sign means "=1". Default is "=1". A minus sign overrides an explicit value. - src/hb-view.c | 70 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-view.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) commit f48ff19b629070d13cee3c0eeeb06c98992f93c6 @@ -89903,16 +87740,15 @@ Author: Behdad Esfahbod Date: Wed Mar 16 17:36:32 2011 -0300 Add script to/from ISO 15924 tag support - + Also adds --script support to hb-view. - + If a script tag is not known to us, we pass the ISO 15924 tag around. Right now, the OT layer ignores that, but we can fix it to blindly convert that to an OT script tag. src/hb-ot-tag.c | 4 + - src/hb-unicode.c | 273 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-unicode.c | 273 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-unicode.h | 8 +- src/hb-view.c | 10 +- 4 files changed, 293 insertions(+), 2 deletions(-) @@ -89922,38 +87758,32 @@ Author: Behdad Esfahbod Date: Wed Mar 16 14:53:32 2011 -0300 Let hb_shape() guess script and direction... - + - Rename HB_SCRIPT_INVALID_CODE to HB_SCRIPT_INVALID - + - Add HB_DIRECTION_INVALID - + - Make hb_script_get_horizontal_direction() public - + - Make hb_shape() guess script from buffer text (first non-common - non-inherit script) if buffer script is set to HB_SCRIPT_INVALID - (this + non-inherit script) if buffer script is set to HB_SCRIPT_INVALID (this is NOT the default.) - - - Make hb_shape() guess direction from buffer script if buffer - direction + + - Make hb_shape() guess direction from buffer script if buffer direction is set to HB_DIRECTION_INVALID (this is NOT the default.) - + - Make hb-view.c set INVALID script and direction on the buffer. - - The above changes are meant to make hb-view fairly useful for - uni-script - uni-direction text. The guessing behavior however is NOT the - default of - hb_shape() and must be asked for explicitly. This is intended, - because + + The above changes are meant to make hb-view fairly useful for uni-script + uni-direction text. The guessing behavior however is NOT the default of + hb_shape() and must be asked for explicitly. This is intended, because the guess is not a suitable substitute to full-fledged bidi and script segmentation. It's just a testing tool. src/hb-common.h | 3 ++- src/hb-icu.c | 2 +- src/hb-ot-shape.cc | 3 ++- - src/hb-shape.cc | 52 - ++++++++++++++++++++++++++++++++++++++++++------ + src/hb-shape.cc | 52 ++++++++++++++++++++++++++++++++++++++++++------ src/hb-unicode-private.h | 4 ---- src/hb-unicode.c | 2 +- src/hb-unicode.h | 8 +++++++- @@ -89992,7 +87822,7 @@ Author: Behdad Esfahbod Date: Wed Feb 23 12:47:56 2011 -0500 Default background color shall either be white or transparent - + Definitely not black! src/hb-view.c | 2 +- @@ -90003,13 +87833,12 @@ Author: Behdad Esfahbod Date: Tue Feb 22 18:06:19 2011 -0500 Add initial hb-view tool - + Currently doesn't handle script or direction. configure.ac | 18 +++ src/Makefile.am | 14 +++ - src/hb-view.c | 342 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-view.c | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 374 insertions(+) commit 82438c6ad5f60b6afc75c48cef72e18bef532468 @@ -90017,7 +87846,7 @@ Author: Bradley Grainger Date: Tue Feb 15 18:37:29 2011 -0500 Fix #pragma message for MSVC. - + __LOC__ was renamed to _HB__LOC__ in cd7555 but the corresponding change wasn't made in hb-private.h. @@ -90038,7 +87867,7 @@ Author: Behdad Esfahbod Date: Mon Jan 10 02:27:49 2011 -0500 Don't use the m4/ dir - + We just require people to have libtool, pkg-config, etc installed when running autogen.sh @@ -90062,8 +87891,7 @@ Date: Sun Jan 9 22:18:53 2011 -0500 Bug 31174 - Update autotools configuration Makefile.am | 2 + - autogen.sh | 188 - ++++------------------------------------------------------- + autogen.sh | 188 ++++------------------------------------------------------- configure.ac | 22 +++++-- 3 files changed, 29 insertions(+), 183 deletions(-) @@ -90072,7 +87900,7 @@ Author: Behdad Esfahbod Date: Thu Jan 6 14:58:52 2011 -0500 Fix ChanContext backtrack matching with GPOS - + Reported on mailing list by Keith Stribley and Khaled Hosny. src/hb-buffer-private.hh | 5 +++-- @@ -90085,7 +87913,7 @@ Author: Behdad Esfahbod Date: Thu Jan 6 14:44:14 2011 -0500 Remove unused realloc - + We always allocate and grow str and pos together. src/hb-buffer.cc | 6 ------ @@ -90105,14 +87933,13 @@ Author: Behdad Esfahbod Date: Sun Dec 26 20:52:40 2010 -0500 Remove Graphite backend - + It was unmaintained and the code has to be replaced to use the new grphite-ng code base. configure.ac | 6 -- src/Makefile.am | 14 --- - src/hb-graphite.cc | 310 - ----------------------------------------------------- + src/hb-graphite.cc | 310 ----------------------------------------------------- src/hb-graphite.h | 47 -------- 4 files changed, 377 deletions(-) @@ -90122,8 +87949,7 @@ Date: Wed Dec 22 01:39:29 2010 -0500 Docs - src/hb-unicode.h | 60 - ++++++++++++++++++++++++++++---------------------------- + src/hb-unicode.h | 60 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) commit d86a5b3c5752abcc791724035ba4115958e6b5e2 @@ -90131,20 +87957,18 @@ Author: Behdad Esfahbod Date: Tue Dec 21 18:36:25 2010 -0500 Bug 32274 - classic mongolian shaper - + Add support for classic Mongolian script to the Arabic shaper. - + Still work to be done around U+180E MONGOLIAN VOWEL SEPARATOR as it should not be included in the final glyph stream the same way that ZWNJ, etc should not appear in the final glyph stream. - + But the joining part should be done. - - There remains the question of how should the U+18A9 MONGOLIAN - LETTER ALI + + There remains the question of how should the U+18A9 MONGOLIAN LETTER ALI GALI DAGALGA be handled as it has General Category NSM but a letter - nonetheless. For now, our generic logic makes this a joining - T instead + nonetheless. For now, our generic logic makes this a joining T instead of joining D as other Mongolian letters are. src/hb-ot-shape-complex-arabic.cc | 8 ++++++++ @@ -90156,7 +87980,7 @@ Author: Behdad Esfahbod Date: Tue Dec 21 14:19:32 2010 -0500 Reroute Mandaic shaping through the Arabic shaper - + We added Mandaic joining data to the Arabic shaper a while ago, but were not actually using the Arabic shaper for Mandaic. Fixed. @@ -90169,8 +87993,7 @@ Date: Tue Dec 21 14:18:24 2010 -0500 Annotate the Arabic joining table with block information - src/gen-arabic-joining-table.py | 93 - +++++++++++++++++++++------------- + src/gen-arabic-joining-table.py | 93 +++++++++++++++++++++------------- src/hb-ot-shape-complex-arabic-table.h | 24 +++++++-- 2 files changed, 80 insertions(+), 37 deletions(-) @@ -90215,7 +88038,7 @@ Author: Behdad Esfahbod Date: Mon Dec 13 14:13:35 2010 -0500 Mozilla Bug 618592 - freeze on typekit - + Fix apply_lookup() for zero-input broken fonts. src/hb-ot-layout-gsubgpos-private.hh | 4 ++-- @@ -90236,10 +88059,9 @@ Author: Behdad Esfahbod Date: Tue Dec 7 16:20:42 2010 -0500 Fix arabic shaping of LTR text - + We should ensure-direction before doing any complex work. The only - exception is mirroring that needs to see the original / final - direction, + exception is mirroring that needs to see the original / final direction, not the native. Handle that. src/hb-ot-shape.cc | 6 +++--- @@ -90249,9 +88071,8 @@ commit d1f1707adc03317760b0f75e04d0f3dd425e547f Author: Behdad Esfahbod Date: Tue Nov 30 00:57:15 2010 -0500 - Bug 31965 - some GNU/Linux distributions lack icu.pc but have - icu-config - + Bug 31965 - some GNU/Linux distributions lack icu.pc but have icu-config + Patch from suzuki toshiya. configure.ac | 10 +++++++++- @@ -90262,7 +88083,7 @@ Author: Behdad Esfahbod Date: Sun Nov 28 19:39:47 2010 -0500 Adjust pyx files to reflect change from int to hb_var_int_t - + Patch from Thomas Hunger. contrib/python/lib/harfbuzz.pyx | 7 +++++-- @@ -90274,8 +88095,7 @@ Date: Mon Nov 22 11:30:32 2010 -0500 Fix failing checks - src/hb-ot-shape-complex-arabic-table.h | 37 - ++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic-table.h | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) commit 9da26d6669e7f3b91ba37e71f6f8a6e2ea806688 @@ -90308,10 +88128,8 @@ Date: Wed Nov 17 16:58:21 2010 -0500 Move generated table to its own file src/Makefile.am | 1 + - src/hb-ot-shape-complex-arabic-table.h | 619 - ++++++++++++++++++++++++++++++++ - src/hb-ot-shape-complex-arabic.cc | 621 - +-------------------------------- + src/hb-ot-shape-complex-arabic-table.h | 619 ++++++++++++++++++++++++++++++++ + src/hb-ot-shape-complex-arabic.cc | 621 +-------------------------------- 3 files changed, 621 insertions(+), 620 deletions(-) commit 14d784116b08685425e4ddcb1c1f813dbe2b2986 @@ -90319,16 +88137,13 @@ Author: Behdad Esfahbod Date: Wed Nov 17 16:52:58 2010 -0500 Update Arabic joining table to include Mandaic - - Mandaic was added to Unicode 6.0, but the joining data was not - updated. - Draft ArabicShaping.txt from 6.1 includes the joining data for - Mandaic. + + Mandaic was added to Unicode 6.0, but the joining data was not updated. + Draft ArabicShaping.txt from 6.1 includes the joining data for Mandaic. Use that. src/gen-arabic-joining-table.py | 45 ++++++++++---- - src/hb-ot-shape-complex-arabic.cc | 123 - ++++++++++++++++++++++++++++++++------ + src/hb-ot-shape-complex-arabic.cc | 123 ++++++++++++++++++++++++++++++++------ 2 files changed, 137 insertions(+), 31 deletions(-) commit 43bf2f7f1ec427c431e2ee2fd1a9345e7d5c9718 @@ -90336,7 +88151,7 @@ Author: Behdad Esfahbod Date: Wed Nov 17 14:49:40 2010 -0500 Add OpenType script tags for Unicode 5.2 and Unicode 6.0 scripts - + Based on tags proposed by Microsoft for inclusion in OpenType. src/hb-ot-tag.c | 34 +++++++++++++++++----------------- @@ -90359,7 +88174,7 @@ Author: Behdad Esfahbod Date: Wed Nov 17 14:25:44 2010 -0500 Change HB_SCRIPT_MEITEI_MAYEK to HB_SCRIPT_MEETEI_MAYEK - + The new name matches the Unicode name. Reported by Jonathan Kew. src/hb-icu.c | 2 +- @@ -90411,7 +88226,7 @@ Author: Behdad Esfahbod Date: Wed Nov 3 15:50:36 2010 -0400 More "unreached code" warning fixes - + Ugly :(. src/hb-blob.c | 48 ++++++++++++++++++++++++------------------------ @@ -90442,8 +88257,7 @@ Date: Wed Nov 3 15:28:56 2010 -0400 Minor code shuffling src/hb-ot-layout-private.hh | 21 +++------------- - src/hb-ot-layout.cc | 61 - +++++++++++++++++++++++++++++++++------------ + src/hb-ot-layout.cc | 61 +++++++++++++++++++++++++++++++++------------ 2 files changed, 48 insertions(+), 34 deletions(-) commit 11e3ec444a85fc72541823c2e98cc92c4ceb19af @@ -90454,8 +88268,7 @@ Date: Wed Nov 3 15:11:04 2010 -0400 src/hb-blob.c | 2 +- src/hb-object-private.h | 12 +++--- - src/hb-open-type-private.hh | 84 - +++++++++++++++++------------------- + src/hb-open-type-private.hh | 84 +++++++++++++++++------------------- src/hb-ot-layout-gsubgpos-private.hh | 2 +- src/hb-private.h | 3 +- 5 files changed, 49 insertions(+), 54 deletions(-) @@ -90507,10 +88320,8 @@ Date: Wed Oct 27 22:48:31 2010 -0400 Move code around - src/hb-ot-layout-gpos-private.hh | 59 - ++++++++++++++++++++++++++++++++++++++++ - src/hb-ot-layout.cc | 59 - ++-------------------------------------- + src/hb-ot-layout-gpos-private.hh | 59 ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 59 ++-------------------------------------- src/hb-ot-layout.h | 4 +-- src/hb-ot-shape.cc | 2 +- 4 files changed, 63 insertions(+), 61 deletions(-) @@ -90523,8 +88334,7 @@ Date: Wed Oct 27 22:37:59 2010 -0400 src/hb-ot-layout-gdef-private.hh | 21 +++++++++++++++ src/hb-ot-layout-private.hh | 27 ++++++++++++++++--- - src/hb-ot-layout.cc | 56 - ++++++---------------------------------- + src/hb-ot-layout.cc | 56 ++++++---------------------------------- 3 files changed, 52 insertions(+), 52 deletions(-) commit 6334658fe79d6acfb46a2a147721b78f92510ebb @@ -90547,8 +88357,7 @@ Date: Wed Oct 27 22:07:49 2010 -0400 src/hb-ot-layout-gsub-private.hh | 8 ++++---- src/hb-ot-layout-gsubgpos-private.hh | 10 +++++----- src/hb-ot-layout-private.hh | 4 ++-- - src/hb-ot-layout.cc | 36 - ++++++++++++++++++------------------ + src/hb-ot-layout.cc | 36 ++++++++++++++++++------------------ src/main.cc | 4 ++-- 7 files changed, 43 insertions(+), 39 deletions(-) @@ -90556,8 +88365,7 @@ commit 98370e89d1bff248737b482d129c2a4deb8bfd95 Author: Behdad Esfahbod Date: Wed Oct 27 17:39:01 2010 -0400 - WIP removing external synthesized GDEF support and implementing - it internally + WIP removing external synthesized GDEF support and implementing it internally TODO | 2 - src/hb-buffer-private.hh | 4 - @@ -90568,8 +88376,7 @@ Date: Wed Oct 27 17:39:01 2010 -0400 src/hb-ot-layout-gsub-private.hh | 66 ++++++----------- src/hb-ot-layout-gsubgpos-private.hh | 29 +++++++- src/hb-ot-layout-private.hh | 29 +++----- - src/hb-ot-layout.cc | 138 - +++++------------------------------ + src/hb-ot-layout.cc | 138 +++++------------------------------ src/hb-ot-layout.h | 26 ------- src/hb-ot-shape.cc | 10 +++ 12 files changed, 98 insertions(+), 227 deletions(-) @@ -90620,8 +88427,7 @@ Date: Wed Oct 27 16:57:01 2010 -0400 Minor renaming - src/hb-buffer-private.hh | 41 - ++++++++++++++++++++-------------------- + src/hb-buffer-private.hh | 41 ++++++++++++++++++++-------------------- src/hb-buffer.cc | 20 ++++++++++---------- src/hb-ot-layout-gsub-private.hh | 8 ++++---- src/hb-ot-shape.cc | 6 +++--- @@ -90634,8 +88440,7 @@ Date: Wed Oct 27 16:51:02 2010 -0400 Move setting lig_id/component out of buffer and to the gsub code src/hb-buffer-private.hh | 30 +++++++---------------- - src/hb-buffer.cc | 52 - +++++++--------------------------------- + src/hb-buffer.cc | 52 +++++++--------------------------------- src/hb-ot-layout-gsub-private.hh | 27 ++++++++++++--------- 3 files changed, 34 insertions(+), 75 deletions(-) @@ -90644,7 +88449,7 @@ Author: Behdad Esfahbod Date: Wed Oct 27 16:25:28 2010 -0400 Always allocate new ligature id - + No practical point in reusing ligature ids. src/hb-ot-layout-gsub-private.hh | 5 +---- @@ -90673,13 +88478,12 @@ Author: Behdad Esfahbod Date: Wed Oct 27 14:42:15 2010 -0400 Get rid of the OpenType-specific internal buffer representation - + Add variant integers to buffer item types. More cleanup coming. TODO | 2 -- src/hb-buffer-private.hh | 35 ++++++---------------- - src/hb-buffer.cc | 62 - +++++++++++++++++++-------------------- + src/hb-buffer.cc | 62 +++++++++++++++++++-------------------- src/hb-buffer.h | 2 +- src/hb-ot-layout-gpos-private.hh | 24 +++++++-------- src/hb-ot-layout-gsub-private.hh | 2 +- @@ -90712,12 +88516,11 @@ Author: Behdad Esfahbod Date: Wed Oct 27 14:09:27 2010 -0400 Supposedly implement vertical support in GPOS - + Not tested at all. src/hb-ot-layout-gpos-private.hh | 27 ++++++++++++++++++++------- - src/hb-ot-layout.cc | 39 - ++++++++++++++++++++++++--------------- + src/hb-ot-layout.cc | 39 ++++++++++++++++++++++++--------------- 2 files changed, 44 insertions(+), 22 deletions(-) commit 9624de5b496846cd89ee4f7b07d38029aca70ce1 @@ -90743,8 +88546,7 @@ commit e204674fe340a57c48a9fe7e1ed02a9a08f4aca4 Author: Behdad Esfahbod Date: Wed Oct 27 12:32:02 2010 -0400 - Rename hb_ot_layout_get_lig_carets() to - hb_ot_layout_get_ligature_carets() + Rename hb_ot_layout_get_lig_carets() to hb_ot_layout_get_ligature_carets() src/hb-ot-layout.cc | 14 +++++++------- src/hb-ot-layout.h | 14 +++++++------- @@ -90784,12 +88586,10 @@ Author: Behdad Esfahbod Date: Wed Oct 27 11:54:26 2010 -0400 Rewrite Cursive joining to act more like other pair lookups + + Look forward for next character instead of joining to the last character. - Look forward for next character instead of joining to the last - character. - - src/hb-ot-layout-gpos-private.hh | 71 - ++++++++++++++++++---------------------- + src/hb-ot-layout-gpos-private.hh | 71 ++++++++++++++++++---------------------- src/hb-ot-layout-private.hh | 10 ------ 2 files changed, 31 insertions(+), 50 deletions(-) @@ -90798,11 +88598,10 @@ Author: Behdad Esfahbod Date: Wed Oct 27 11:09:48 2010 -0400 Fix Cursive positioning - + Test case: "مرا" rendered using IranNastaliq. - src/hb-ot-layout-gpos-private.hh | 124 - +-------------------------------------- + src/hb-ot-layout-gpos-private.hh | 124 +-------------------------------------- 1 file changed, 3 insertions(+), 121 deletions(-) commit aefdb64689aab19df76590a36c4a04052a8bffdb @@ -90819,7 +88618,7 @@ Author: Behdad Esfahbod Date: Wed Oct 27 01:28:28 2010 -0400 Remove obsolete TODO item - + We don't cache any metrics internally, so the correct way to add more glyph metrics items is to add new callbacks for them. We already have separeate callbacks for advance vs extents. @@ -90841,14 +88640,13 @@ Author: Behdad Esfahbod Date: Wed Oct 27 01:13:56 2010 -0400 Divide get_metrics into get_advance and get_extents - + Graphite module not updated. Bump version to 0.3. configure.ac | 2 +- src/hb-font-private.h | 3 +- - src/hb-font.cc | 96 - +++++++++++++++++++++++++++++++++++---------------- + src/hb-font.cc | 96 +++++++++++++++++++++++++++++++++++---------------- src/hb-font.h | 61 ++++++++++++++++++++------------ src/hb-ft.c | 72 +++++++++++++++++++++++--------------- src/hb-ot-shape.cc | 7 ++-- @@ -90868,7 +88666,7 @@ Author: Behdad Esfahbod Date: Wed Oct 13 18:33:16 2010 -0400 Massage mask setting a bit more - + Still finding the exact correct way the masks should be set. src/hb-buffer-private.hh | 19 ++++++++++++++++--- @@ -90890,11 +88688,9 @@ Author: Behdad Esfahbod Date: Wed Oct 13 15:54:06 2010 -0400 Make sure boolean features always use value=1 - - Previously boolean features turned on the entire feature mask. - This is - wrong if feature is Alternate and user has provided values bigger - than one. + + Previously boolean features turned on the entire feature mask. This is + wrong if feature is Alternate and user has provided values bigger than one. Though, I don't think other engines support such corner cases. src/hb-ot-map-private.hh | 10 ++++++++-- @@ -90926,7 +88722,7 @@ Author: Behdad Esfahbod Date: Wed Oct 13 15:34:50 2010 -0400 Fix applying default-value for features - + Previously if a default global feature was overrided by a non-global user feature, we were not setting any default mask for the feature, essentially disabling the feature by default. Fix that. @@ -90959,11 +88755,10 @@ Author: Behdad Esfahbod Date: Wed Oct 13 10:57:27 2010 -0400 Cleanup TODO - + Looks like a roadmap now. - TODO | 72 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- + TODO | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 59 insertions(+), 13 deletions(-) commit 3111b8a0d5b38da57c0f6285aec2b92eb690188f @@ -90989,7 +88784,7 @@ Author: Behdad Esfahbod Date: Tue Oct 12 17:37:44 2010 -0400 Fix Arabic shaper - + It's tested now. It works! src/hb-ot-shape-complex-arabic.cc | 7 ++++--- @@ -91000,12 +88795,11 @@ Author: Behdad Esfahbod Date: Tue Oct 12 17:23:54 2010 -0400 Hookup Arabic shaper! - + Not tested yet. src/hb-ot-shape-complex-arabic.cc | 6 +++--- - src/hb-ot-shape-complex-private.hh | 37 - ++++++++++++++++++++++--------------- + src/hb-ot-shape-complex-private.hh | 37 ++++++++++++++++++++++--------------- src/hb-ot-shape-private.hh | 14 +++++++++++++- src/hb-ot-shape.cc | 3 ++- 4 files changed, 40 insertions(+), 20 deletions(-) @@ -91045,7 +88839,7 @@ Author: Behdad Esfahbod Date: Tue Oct 12 16:57:47 2010 -0400 Add hb_ot_shape_execute() - + Not public yet. src/hb-ot-shape-private.hh | 5 ++--- @@ -91062,8 +88856,7 @@ Date: Tue Oct 12 16:50:36 2010 -0400 src/hb-ot-map-private.hh | 2 +- src/hb-ot-map.cc | 2 +- ...ape-arabic.cc => hb-ot-shape-complex-arabic.cc} | 9 +++ - src/hb-ot-shape-complex-private.hh | 88 - ++++++++++++++++++++++ + src/hb-ot-shape-complex-private.hh | 88 ++++++++++++++++++++++ src/hb-ot-shape-private.hh | 12 +-- src/hb-ot-shape.cc | 8 +- 7 files changed, 107 insertions(+), 17 deletions(-) @@ -91073,9 +88866,8 @@ Author: Behdad Esfahbod Date: Tue Oct 12 16:19:29 2010 -0400 Add hb_ot_shape_plan_t - - This is the object that a separate plan/execute shaping API will - use in + + This is the object that a separate plan/execute shaping API will use in between the two stages. src/hb-ot-shape-private.hh | 12 ++++++++++-- @@ -91103,8 +88895,7 @@ Date: Tue Oct 12 15:35:45 2010 -0400 src/hb-ot-map-private.hh | 32 +++++--------------------------- src/hb-ot-map.cc | 32 +++++++++++++++++++++++++++++--- src/hb-ot-shape-private.hh | 16 ++++++++++++++-- - src/hb-ot-shape.cc | 43 - ++++++++++++++++++++++++++++--------------- + src/hb-ot-shape.cc | 43 ++++++++++++++++++++++++++++--------------- src/hb-ot-shape.h | 10 +++++----- 5 files changed, 81 insertions(+), 52 deletions(-) @@ -91122,9 +88913,9 @@ Author: Behdad Esfahbod Date: Tue Oct 12 12:32:18 2010 -0400 Fix infinite loop! - + Untested code is indeed buggy code. - + Mozilla bug #603352. src/hb-ot-tag.c | 6 ++---- @@ -91135,7 +88926,7 @@ Author: Behdad Esfahbod Date: Tue Oct 12 11:17:30 2010 -0400 Fix missing negation in unreachable code! - + Mozilla bug #603346 src/hb-open-type-private.hh | 5 ++--- @@ -91174,14 +88965,13 @@ Author: Behdad Esfahbod Date: Fri Oct 8 20:20:32 2010 -0400 Rename hb_mask_allocator_t to hb_ot_map_t - + hb_ot_plan_t may be a better name, donno. src/hb-ot-map-private.hh | 4 ++-- src/hb-ot-map.cc | 2 +- src/hb-ot-shape-private.hh | 4 ++-- - src/hb-ot-shape.cc | 49 - +++++++++++++++++++++------------------------- + src/hb-ot-shape.cc | 49 +++++++++++++++++++++------------------------- 4 files changed, 27 insertions(+), 32 deletions(-) commit f5dd3be46b5c77a2c5b97b82a0b67ac9e851b898 @@ -91202,8 +88992,7 @@ Date: Fri Oct 8 20:14:57 2010 -0400 src/Makefile.am | 1 + src/hb-ot-map-private.hh | 129 +----------------------------------- - src/hb-ot-map.cc | 165 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-map.cc | 165 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 168 insertions(+), 127 deletions(-) commit ecc4550ed7bc900a61081edfbcd0ad09cbf29b36 @@ -91222,8 +89011,7 @@ Date: Fri Oct 8 19:43:48 2010 -0400 Minor cleanup src/hb-open-type-private.hh | 8 ++---- - src/hb-ot-map-private.hh | 61 - +++++++++++++-------------------------------- + src/hb-ot-map-private.hh | 61 +++++++++++++-------------------------------- src/hb-ot-tag.c | 11 ++++---- src/hb-private.h | 4 +++ 4 files changed, 28 insertions(+), 56 deletions(-) @@ -91236,8 +89024,7 @@ Date: Fri Oct 8 19:18:40 2010 -0400 src/Makefile.am | 1 + src/hb-ot-shape-arabic.cc | 2 +- - src/hb-ot-shape-private.hh | 60 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-private.hh | 60 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 62 insertions(+), 1 deletion(-) commit 4924affe0f0adf75f2a0e2137a71206b0576d63f @@ -91247,8 +89034,7 @@ Date: Fri Oct 8 19:18:16 2010 -0400 Add hb-ot-map-private.hh src/Makefile.am | 1 + - src/hb-ot-map-private.hh | 307 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-map-private.hh | 307 +++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-shape.cc | 274 ++---------------------------------------- 3 files changed, 315 insertions(+), 267 deletions(-) @@ -91266,11 +89052,10 @@ Author: Behdad Esfahbod Date: Fri Oct 8 18:41:57 2010 -0400 Flip the OT bit-allocation vs gsub/gpos inside-out - + We now build our entire attack plan before jumping in. - src/hb-ot-shape.cc | 333 - ++++++++++++++++++++++++++++------------------------- + src/hb-ot-shape.cc | 333 ++++++++++++++++++++++++++++------------------------- 1 file changed, 176 insertions(+), 157 deletions(-) commit e89b7d2a61b7f58e6c7cec00d5ce2246dee1e8a1 @@ -91315,8 +89100,7 @@ Date: Thu Oct 7 21:12:46 2010 -0400 Simplify compiling lookups - src/hb-ot-shape.cc | 66 - ++++++++++++++++++++++-------------------------------- + src/hb-ot-shape.cc | 66 ++++++++++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 39 deletions(-) commit 476c94218b4f5b8e119e82b0e10b641e0c10bf56 @@ -91371,8 +89155,7 @@ Date: Tue Oct 5 23:00:05 2010 -0400 Add internal hb_ot_shape_context_t src/hb-ot-shape-arabic.cc | 26 ++--- - src/hb-ot-shape.cc | 237 - +++++++++++++++++++--------------------------- + src/hb-ot-shape.cc | 237 +++++++++++++++++++--------------------------- 2 files changed, 108 insertions(+), 155 deletions(-) commit 3eb936f1539475098f39be78654b9c39b86f0799 @@ -91380,13 +89163,12 @@ Author: Behdad Esfahbod Date: Tue Oct 5 18:36:58 2010 -0400 Add Arabic/Syriac/N'ko shaping logic - + Not hooked up just yet. src/Makefile.am | 9 + src/gen-arabic-joining-table.py | 39 +++ - src/hb-ot-shape-arabic.cc | 716 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-arabic.cc | 716 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 764 insertions(+) commit 0109816b50064a314389333ff64aaf22cb4b1e56 @@ -91432,7 +89214,7 @@ Author: Behdad Esfahbod Date: Mon Oct 4 17:01:01 2010 -0400 Add is_mutable() functions - + Correspond to the make_mutable() ones. src/hb-font.cc | 6 ++++++ @@ -91446,13 +89228,12 @@ Author: Behdad Esfahbod Date: Mon Oct 4 16:45:21 2010 -0400 Add getters for all setter APIs - + One in particular is not a straight getter: hb_font_unset_funcs() is special because of the specific needs of the lifecycle management of the user_data object. - src/hb-font.cc | 64 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-font.cc | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-font.h | 40 +++++++++++++++++++++++++++++++++++ src/hb-unicode.c | 32 ++++++++++++++++++++++++++++ src/hb-unicode.h | 31 ++++++++++++++++++++++++++- @@ -91494,7 +89275,7 @@ Author: Behdad Esfahbod Date: Wed Sep 29 12:20:36 2010 -0400 Don't zero glyph advances in MarkToBase and similar lookups - + See email thread "Should MarkToBase attachment zero the mark advance?" started by Jonathan Kew on 23 August 2010 for details. @@ -91515,7 +89296,7 @@ Author: Behdad Esfahbod Date: Tue Sep 28 16:23:58 2010 -0400 Improve cmp function parameter namings and casts - + No semantic change. src/hb-open-type-private.hh | 6 +++--- @@ -91555,7 +89336,7 @@ Author: Behdad Esfahbod Date: Thu Sep 23 10:27:08 2010 -0400 Remove unimplemented method hb_font_get_funcs() - + Got to add a suitable replacement. src/hb-font.h | 3 --- @@ -91568,8 +89349,7 @@ Date: Wed Sep 22 17:42:59 2010 -0400 Add test.c using public API src/Makefile.am | 6 +++- - src/test.c | 94 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/test.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 1 deletion(-) commit 9ea7368fce3fa373d8d2925961ad211f5cf6ce70 @@ -91613,7 +89393,7 @@ Author: Behdad Esfahbod Date: Mon Aug 16 14:36:27 2010 -0400 Fix NULL dereference - + Reported by Jonathan Kew. Face table handling needs to be redone anyway, but fix this for now. @@ -91625,7 +89405,7 @@ Author: Behdad Esfahbod Date: Fri Aug 13 14:10:02 2010 -0400 [GPOS] Fix div-by-zero - + Patch by Jonathan Kew. Mozilla bug #465728. src/hb-ot-layout-gpos-private.hh | 2 +- @@ -91668,8 +89448,7 @@ Date: Fri Jul 23 17:22:11 2010 -0400 src/hb-buffer.cc | 12 ++++++------ src/hb-ot-layout-gpos-private.hh | 2 +- src/hb-ot-layout.cc | 2 +- - src/hb-ot-shape.cc | 41 - ++++++++++++++++------------------------ + src/hb-ot-shape.cc | 41 ++++++++++++++++------------------------ 5 files changed, 30 insertions(+), 36 deletions(-) commit da6cff3864d2ef4a061a29e5918359bafcd51f4c @@ -91742,7 +89521,7 @@ Author: Behdad Esfahbod Date: Fri Jul 23 15:00:13 2010 -0400 De-C++ where possible - + Helps with avoiding many "extern C" declarations in source files. src/Makefile.am | 4 ++-- @@ -91771,8 +89550,7 @@ Date: Fri Jul 23 14:54:22 2010 -0400 dos2unix - src/hb-ot-head-private.hh | 256 - +++++++++++++++++++++++----------------------- + src/hb-ot-head-private.hh | 256 +++++++++++++++++++++++----------------------- 1 file changed, 128 insertions(+), 128 deletions(-) commit 81408cd51ce575891e79e6483be187130f864c28 @@ -91780,9 +89558,8 @@ Author: Behdad Esfahbod Date: Fri Jul 23 14:46:57 2010 -0400 Don't use "operator =" - - Some compilers don't like operator = defined on members of union - members + + Some compilers don't like operator = defined on members of union members either. Reported by Ginn Chen for Sun Studio compilers. src/hb-open-type-private.hh | 6 +++--- @@ -91820,7 +89597,7 @@ Author: Behdad Esfahbod Date: Wed Jul 21 16:37:01 2010 -0400 Mozilla bug 580233 - check for zero-length record in hb sanitizer. - + Patch / report by Jonathan Kew. src/hb-open-type-private.hh | 2 +- @@ -91840,8 +89617,7 @@ commit fd56ae49637b978ea3b36fab5b48f1a3cc99e90e Author: Behdad Esfahbod Date: Thu Jul 8 00:53:40 2010 -0400 - Don't bother sorting, it's a safe font error if the array is not - sorted + Don't bother sorting, it's a safe font error if the array is not sorted src/hb-open-type-private.hh | 29 ----------------------------- src/hb-ot-layout-common-private.hh | 7 ------- @@ -91854,8 +89630,7 @@ Date: Thu Jul 8 00:40:04 2010 -0400 Use bsearch where applicable src/hb-open-type-private.hh | 49 +++++++++++++ - src/hb-ot-layout-common-private.hh | 145 - +++++++++++++------------------------ + src/hb-ot-layout-common-private.hh | 145 +++++++++++++------------------------ 2 files changed, 100 insertions(+), 94 deletions(-) commit 2f418f5709b2b8b3ef2f6056b9d8c13b66f0b74a @@ -91905,7 +89680,7 @@ Author: Behdad Esfahbod Date: Thu Jun 3 11:37:51 2010 -0400 Followup fix for variation-selectors - + Patch from Jonathan Kew src/hb-ot-shape.cc | 3 ++- @@ -91971,8 +89746,7 @@ Date: Fri May 28 20:21:47 2010 -0400 Towards a mask allocator - src/hb-ot-shape.cc | 291 - ++++++++++++++++++++++++++++++++++------------------- + src/hb-ot-shape.cc | 291 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 186 insertions(+), 105 deletions(-) commit 81c5e8724b740c6e42ed3a45e0574c7c5f3ad8e6 @@ -91980,13 +89754,12 @@ Author: Behdad Esfahbod Date: Fri May 28 18:31:16 2010 -0400 Allow disabling default features - + Patch from Jonathan Kew src/hb-buffer-private.hh | 18 +++-- src/hb-buffer.cc | 15 ++-- - src/hb-ot-shape.cc | 196 - ++++++++++++++++++++++++++++++++--------------- + src/hb-ot-shape.cc | 196 ++++++++++++++++++++++++++++++++--------------- 3 files changed, 153 insertions(+), 76 deletions(-) commit 2163afbf35044f59dbf449254e65b8c9feb6cdeb @@ -92015,10 +89788,8 @@ Date: Thu May 27 10:09:04 2010 +0100 contrib/python/README | 10 ++++ contrib/python/lib/fontconfig.pyx | 47 +++++++++++++++++ - contrib/python/lib/harfbuzz.pyx | 104 - ++------------------------------------ - contrib/python/scripts/hbtestfont | 103 - +++++++++++++++++++++++++++++++++---- + contrib/python/lib/harfbuzz.pyx | 104 ++------------------------------------ + contrib/python/scripts/hbtestfont | 103 +++++++++++++++++++++++++++++++++---- contrib/python/setup.py | 3 +- src/hb-graphite.cc | 8 +-- 6 files changed, 159 insertions(+), 116 deletions(-) @@ -92046,17 +89817,14 @@ Author: Behdad Esfahbod Date: Wed May 26 10:48:10 2010 -0400 Revert "Merge remote branch 'martin/master'" - - This reverts commit 80af2812fb3b231ddcb4608ec13c6038a681c818, - reversing + + This reverts commit 80af2812fb3b231ddcb4608ec13c6038a681c818, reversing changes made to c442672ec2fb83ed41f3994b3aa4f92a097664ab. contrib/python/README | 10 ---- contrib/python/lib/fontconfig.pyx | 47 ----------------- - contrib/python/lib/harfbuzz.pyx | 104 - ++++++++++++++++++++++++++++++++++++-- - contrib/python/scripts/hbtestfont | 98 - ++++------------------------------- + contrib/python/lib/harfbuzz.pyx | 104 ++++++++++++++++++++++++++++++++++++-- + contrib/python/scripts/hbtestfont | 98 ++++------------------------------- contrib/python/setup.py | 3 +- src/Makefile.am | 2 +- src/hb-graphite.cc | 8 +-- @@ -92098,7 +89866,7 @@ Author: Behdad Esfahbod Date: Mon May 24 17:50:19 2010 +0100 Make sure we initialize all callbacks upon creation - + Also fixes issue with unicode callbacks never being set really. src/hb-font.cc | 18 +++++++----------- @@ -92122,10 +89890,7 @@ commit 3109a86add936ae4cc77541fc026c4fe2db4e328 Author: Martin Hosken Date: Mon May 24 13:25:37 2010 +0100 - hb-graphite now no longer has -ve advances within clusters. Fix - infinite loop in tag_to_script(). python fixed to use tag_to_script - and allow hbtestfont to be passed font files, where fontconfig knows - about them. + hb-graphite now no longer has -ve advances within clusters. Fix infinite loop in tag_to_script(). python fixed to use tag_to_script and allow hbtestfont to be passed font files, where fontconfig knows about them. contrib/python/lib/harfbuzz.pyx | 4 ++-- contrib/python/scripts/hbtestfont | 6 +++++- @@ -92140,8 +89905,7 @@ Date: Sat May 22 20:19:00 2010 +0100 Tidy up hbtestfont and add README contrib/python/README | 10 +++ - contrib/python/scripts/hbtestfont | 134 - +++++++++++++++++++------------------- + contrib/python/scripts/hbtestfont | 134 +++++++++++++++++++------------------- 2 files changed, 77 insertions(+), 67 deletions(-) commit 70ae332fe66510500d303b6fcc79537833b42f05 @@ -92151,8 +89915,7 @@ Date: Sat May 22 19:58:00 2010 +0100 Add fontconfig to hbtestfont contrib/python/lib/fontconfig.pyx | 47 ++++++++++++++++++++++++++++ - contrib/python/scripts/hbtestfont | 64 - ++++++++++++++++++++++++--------------- + contrib/python/scripts/hbtestfont | 64 ++++++++++++++++++++++++--------------- contrib/python/setup.py | 3 +- 3 files changed, 88 insertions(+), 26 deletions(-) @@ -92169,8 +89932,7 @@ Date: Sat May 22 00:56:40 2010 +0100 Add graphical output to hbtestfont - contrib/python/lib/harfbuzz.pyx | 100 - +------------------------------------- + contrib/python/lib/harfbuzz.pyx | 100 +------------------------------------- contrib/python/scripts/hbtestfont | 62 ++++++++++++++++++++++- src/Makefile.am | 2 +- src/hb-ot-shape.cc | 2 +- @@ -92220,8 +89982,7 @@ Date: Fri May 21 17:53:10 2010 +0100 Add ltra, ltrm, and rtla features - src/hb-ot-shape.cc | 60 - +++++++++++++++++++++++++++++++++++++++++++----------- + src/hb-ot-shape.cc | 60 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 48 insertions(+), 12 deletions(-) commit 1ce7b87c4d8d1ab3ec1d5198351d71b7199f7c64 @@ -92232,8 +89993,7 @@ Date: Fri May 21 17:31:45 2010 +0100 src/hb-buffer-private.hh | 16 +++++++++++++ src/hb-buffer.cc | 36 +++++++++++++++++++++++++++++ - src/hb-ot-shape.cc | 60 - +++++++++++++++++++++--------------------------- + src/hb-ot-shape.cc | 60 +++++++++++++++++++++--------------------------- 3 files changed, 78 insertions(+), 34 deletions(-) commit dd22a8f7bfd424a69286e90f79d2a23af6e89ec1 @@ -92307,10 +90067,8 @@ Date: Fri May 21 14:34:23 2010 +0100 Move main shaper code into hb_ot_shape() src/hb-ot-shape-private.hh | 53 ----------- - src/hb-ot-shape.cc | 225 - ++++++++++++++++++++++++++++++++++++++++++--- - src/hb-shape.cc | 209 - +---------------------------------------- + src/hb-ot-shape.cc | 225 ++++++++++++++++++++++++++++++++++++++++++--- + src/hb-shape.cc | 209 +---------------------------------------- 3 files changed, 214 insertions(+), 273 deletions(-) commit 7acd232d36c2b2ed03823e6aa6bb2b814bf673b3 @@ -92339,8 +90097,7 @@ Date: Fri May 21 14:02:20 2010 +0100 configure.ac | 6 ++ src/Makefile.am | 11 ++ - src/hb-graphite.cc | 308 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-graphite.cc | 308 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-graphite.h | 46 ++++++++ src/hb-shape.cc | 15 +++ 5 files changed, 386 insertions(+) @@ -92351,8 +90108,7 @@ Date: Fri May 21 13:51:29 2010 +0100 Update the Python module - contrib/python/lib/harfbuzz.pyx | 40 - +++++++++++++++++++++------------------- + contrib/python/lib/harfbuzz.pyx | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) commit 83f34677bcbc6bb194940407b0fcb23575650e3d @@ -92380,7 +90136,7 @@ Author: Behdad Esfahbod Date: Fri May 21 13:32:38 2010 +0100 Speed up feature mask setting - + Patch from Jonathan Kew. src/hb-ot-shape.cc | 31 +++++++++++++++++++++++++------ @@ -92423,8 +90179,7 @@ Date: Fri May 21 10:33:23 2010 +0100 Add Python wrapper from Martin Hosken - contrib/python/lib/harfbuzz.pyx | 306 - ++++++++++++++++++++++++++++++++++++++ + contrib/python/lib/harfbuzz.pyx | 306 ++++++++++++++++++++++++++++++++++++++ contrib/python/runpy | 2 + contrib/python/scripts/hbtestfont | 35 +++++ contrib/python/setup.py | 24 +++ @@ -92485,7 +90240,7 @@ Author: Behdad Esfahbod Date: Thu May 20 17:26:35 2010 +0100 Do alternate glyph selection! - + Kinda hand-wavy right now. Not tested. src/hb-ot-layout-gpos-private.hh | 12 +++++++----- @@ -92508,9 +90263,8 @@ commit 99d9ef785f108df76f80a307eaa2784685ea86ba Author: Behdad Esfahbod Date: Thu May 20 15:47:49 2010 +0100 - Write hb_face_create_for_data() in terms of - hb_face_create_for_tables() - + Write hb_face_create_for_data() in terms of hb_face_create_for_tables() + Fixes lack of head_table initialization in create_for_tables() also. src/hb-font.cc | 35 ++++++++++++----------------------- @@ -92548,7 +90302,7 @@ Author: Behdad Esfahbod Date: Thu May 20 14:05:02 2010 +0100 Update always-apply mask from 0xFFFF to 1 - + We plan to use the first bit to be always on. src/hb-ot-shape.cc | 4 ++-- @@ -92559,11 +90313,11 @@ Author: Behdad Esfahbod Date: Thu May 20 14:00:57 2010 +0100 Invert the mask logic - + Before, the mask in the buffer was inverted. That is, a 0 bit meant feature should be applied and 1 meant not applied, whereas in the lookups, the logic was positive. - + Now both are in sync. When calling hb_buffer_add_glyph() manually, the mask should be 1 instead of 0. @@ -92577,7 +90331,7 @@ Author: Behdad Esfahbod Date: Thu May 20 13:40:18 2010 +0100 Apply user features - + No ranges yet src/hb-ot-shape.cc | 8 ++++++++ @@ -92597,14 +90351,11 @@ Author: Behdad Esfahbod Date: Wed May 19 15:45:06 2010 -0400 Fix scale issues - + hb_font_set_scale() now sets the value to be used to represent a unit - pixel. For example, if rendering a 10px font with a 26.6 - representation, - you would set scale to (10 << 6). For 10px in 16.16 you would set - it to - (10 << 16). This space should be the same space that the - get_glyph_metrics + pixel. For example, if rendering a 10px font with a 26.6 representation, + you would set scale to (10 << 6). For 10px in 16.16 you would set it to + (10 << 16). This space should be the same space that the get_glyph_metrics and get_kerning callbacks work in. src/hb-common.h | 1 - @@ -92613,8 +90364,7 @@ Date: Wed May 19 15:45:06 2010 -0400 src/hb-font.h | 12 +++--------- src/hb-ft.cc | 4 ++-- src/hb-ot-layout-gdef-private.hh | 6 +++--- - src/hb-ot-layout-gpos-private.hh | 37 - +++++++++++++++++-------------------- + src/hb-ot-layout-gpos-private.hh | 37 +++++++++++++++++-------------------- src/hb-ot-layout-gsub-private.hh | 2 +- src/hb-ot-layout-private.hh | 20 +++++++++++--------- src/hb-ot-layout.cc | 31 +++++++++++++++---------------- @@ -92631,8 +90381,7 @@ Date: Wed May 19 12:03:35 2010 -0400 src/hb-font-private.hh | 5 ++ src/hb-font.cc | 9 ++++ src/hb-open-type-private.hh | 2 +- - src/hb-ot-head-private.hh | 128 - ++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-head-private.hh | 128 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 144 insertions(+), 1 deletion(-) commit e29caf3f943b2b6f4997f469f7274252c82f465e @@ -92650,8 +90399,7 @@ Date: Mon May 17 15:14:14 2010 -0400 Minor - src/hb-ot-layout.cc | 52 - +++++++++++++++++++++++++++------------------------- + src/hb-ot-layout.cc | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) commit 73af7756dc6d3961f176854246e5722baff101fb @@ -92669,8 +90417,7 @@ Date: Fri May 14 23:28:44 2010 -0400 Add an inline version of hb_buffer_ensure() - src/hb-buffer.cc | 117 - ++++++++++++++++++++++++++++++------------------------- + src/hb-buffer.cc | 117 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 63 insertions(+), 54 deletions(-) commit a6a79df5fe2ed2cd307e7a991346faee164e70d9 @@ -92680,8 +90427,7 @@ Date: Fri May 14 23:20:16 2010 -0400 Handle malloc failture in the buffer src/hb-buffer-private.hh | 5 ++-- - src/hb-buffer.cc | 71 - +++++++++++++++++++++++++++++------------------- + src/hb-buffer.cc | 71 +++++++++++++++++++++++++++++------------------- src/hb-buffer.h | 2 +- 3 files changed, 47 insertions(+), 31 deletions(-) @@ -92691,8 +90437,7 @@ Date: Fri May 14 22:25:42 2010 -0400 Minor - src/hb-shape.cc | 60 - +++++++++++++++++++++++++-------------------------------- + src/hb-shape.cc | 60 +++++++++++++++++++++++++-------------------------------- 1 file changed, 26 insertions(+), 34 deletions(-) commit 910a33fe8457a8e13f7eb77fc92fa59c31f5e8fd @@ -92713,8 +90458,7 @@ Date: Fri May 14 22:10:39 2010 -0400 src/hb-buffer-private.hh | 2 +- src/hb-buffer.cc | 52 ++++++++++---------- - src/hb-ot-layout-gpos-private.hh | 94 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 94 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 48 +++++++++--------- src/hb-ot-layout-gsubgpos-private.hh | 46 +++++++++--------- src/hb-shape.cc | 40 +++++++-------- @@ -92724,12 +90468,10 @@ commit 29427c5c51ac70aca53ed523fa5ddb3de4355fb0 Author: Behdad Esfahbod Date: Fri May 14 22:08:22 2010 -0400 - Shortening buffer accessors: rename buffer->out_length to - buffer->out_len + Shortening buffer accessors: rename buffer->out_length to buffer->out_len src/hb-buffer-private.hh | 2 +- - src/hb-buffer.cc | 52 - ++++++++++++++++++------------------ + src/hb-buffer.cc | 52 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 2 +- src/hb-ot-layout-gsubgpos-private.hh | 6 ++--- 4 files changed, 31 insertions(+), 31 deletions(-) @@ -92764,12 +90506,10 @@ commit 9d5e26df0877aa5b187764ba09bd7bf221e92968 Author: Behdad Esfahbod Date: Fri May 14 22:03:11 2010 -0400 - Shortening buffer accessors: rename buffer->out_string to - buffer->out_info + Shortening buffer accessors: rename buffer->out_string to buffer->out_info src/hb-buffer-private.hh | 2 +- - src/hb-buffer.cc | 56 - ++++++++++++++++++------------------ + src/hb-buffer.cc | 56 ++++++++++++++++++------------------ src/hb-ot-layout-gsubgpos-private.hh | 4 +-- 3 files changed, 31 insertions(+), 31 deletions(-) @@ -92780,8 +90520,7 @@ Date: Fri May 14 22:02:37 2010 -0400 Shortening buffer accessors: rename buffer->in_string to buffer->info src/hb-buffer-private.hh | 2 +- - src/hb-buffer.cc | 82 - ++++++++++++++++++------------------ + src/hb-buffer.cc | 82 ++++++++++++++++++------------------ src/hb-ot-layout-gpos-private.hh | 58 ++++++++++++------------- src/hb-ot-layout-gsub-private.hh | 30 ++++++------- src/hb-ot-layout-gsubgpos-private.hh | 26 ++++++------ @@ -92795,8 +90534,7 @@ Date: Fri May 14 21:58:22 2010 -0400 Merge buffer->out_pos and buffer->out_length src/hb-buffer-private.hh | 1 - - src/hb-buffer.cc | 48 - +++++++++++++++--------------------- + src/hb-buffer.cc | 48 +++++++++++++++--------------------- src/hb-ot-layout-gsub-private.hh | 2 +- src/hb-ot-layout-gsubgpos-private.hh | 6 ++--- 4 files changed, 24 insertions(+), 33 deletions(-) @@ -92933,8 +90671,7 @@ Date: Fri May 14 19:55:27 2010 -0400 Remove POSITION() and CURPOSITION() macros src/hb-buffer-private.hh | 2 -- - src/hb-ot-layout-gpos-private.hh | 54 - ++++++++++++++++++++-------------------- + src/hb-ot-layout-gpos-private.hh | 54 ++++++++++++++++++++-------------------- src/hb-shape.cc | 10 ++++---- 3 files changed, 32 insertions(+), 34 deletions(-) @@ -92948,8 +90685,7 @@ Date: Thu May 13 14:18:49 2010 -0400 src/hb-open-type-private.hh | 100 ++++---- src/hb-ot-layout-common-private.hh | 84 +++---- src/hb-ot-layout-gdef-private.hh | 98 ++++---- - src/hb-ot-layout-gpos-private.hh | 460 - +++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 460 +++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 306 +++++++++++------------ src/hb-ot-layout-gsubgpos-private.hh | 258 ++++++++++---------- src/hb-ot-layout.cc | 24 +- @@ -92997,7 +90733,7 @@ Author: Behdad Esfahbod Date: Wed May 12 23:46:16 2010 -0400 Make HB_PRIVATE more useful - + So we can apply it to class methods also. Not sure if that works! src/hb-blob-private.h | 2 +- @@ -93024,8 +90760,7 @@ Date: Wed May 12 23:34:52 2010 -0400 Add buffer->swap() - src/hb-buffer-private.hh | 68 - ++++++++++++++++++++++------------------ + src/hb-buffer-private.hh | 68 ++++++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 2 +- 2 files changed, 38 insertions(+), 32 deletions(-) @@ -93065,7 +90800,7 @@ Author: Behdad Esfahbod Date: Wed May 12 18:29:25 2010 -0400 Use bit tricks for HB_DIRECTION_IS_* - + We already depend on the exact values of the direction enum in HB_DIRECTION_REVERSE(), so we may as well use that. @@ -93077,14 +90812,12 @@ Author: Behdad Esfahbod Date: Wed May 12 18:23:21 2010 -0400 Rename a few files to be C++ sources - + In anticipation for buffer revamp coming. - src/Makefile.am | 16 - ++++++++-------- + src/Makefile.am | 16 ++++++++-------- src/{hb-buffer-private.h => hb-buffer-private.hh} | 2 +- - src/{hb-buffer.c => hb-buffer.cc} | 14 - +++++++------- + src/{hb-buffer.c => hb-buffer.cc} | 14 +++++++------- src/hb-common.h | 1 + src/{hb-font-private.h => hb-font-private.hh} | 2 +- src/hb-font.cc | 4 ++-- @@ -93123,8 +90856,7 @@ Date: Tue May 11 00:23:50 2010 -0400 Simplify PairSet - src/hb-ot-layout-gpos-private.hh | 101 - +++++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 101 +++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 47 deletions(-) commit 97e7f8f305c47caf2968a9da3b8407825547286d @@ -93141,7 +90873,7 @@ Author: Behdad Esfahbod Date: Mon May 10 23:50:07 2010 -0400 Simplify likely() implementation - + Shrinks .text by 1%! src/hb-private.h | 10 +--------- @@ -93161,7 +90893,7 @@ Author: Behdad Esfahbod Date: Mon May 10 23:27:54 2010 -0400 Sprinkle a few strategic likely()'s - + Shrinks the code size by some 2% even. src/hb-open-file-private.hh | 4 ++-- @@ -93224,7 +90956,7 @@ Author: Behdad Esfahbod Date: Mon May 10 21:39:24 2010 -0400 Fix awful confusion between lookup format and subtable format - + As reported by John Daggett. src/hb-ot-layout-gpos-private.hh | 14 +++++++------- @@ -93279,8 +91011,7 @@ Date: Mon May 10 19:45:41 2010 -0400 src/hb-open-file-private.hh | 24 +++---- src/hb-ot-layout-common-private.hh | 24 +++---- src/hb-ot-layout-gdef-private.hh | 24 +++---- - src/hb-ot-layout-gpos-private.hh | 120 - +++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 120 +++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 88 ++++++++++++------------- src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++------- 6 files changed, 163 insertions(+), 161 deletions(-) @@ -93384,11 +91115,9 @@ Date: Mon May 10 17:47:22 2010 -0400 src/hb-open-type-private.hh | 12 ++++++------ src/hb-ot-layout-common-private.hh | 2 +- - src/hb-ot-layout-gpos-private.hh | 34 - +++++++++++++++++----------------- + src/hb-ot-layout-gpos-private.hh | 34 +++++++++++++++++----------------- src/hb-ot-layout-gsub-private.hh | 4 ++-- - src/hb-ot-layout-gsubgpos-private.hh | 34 - +++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.hh | 34 +++++++++++++++++----------------- 5 files changed, 43 insertions(+), 43 deletions(-) commit 09766b1ec5ec55a61edbcd7a89ed3613cc92d4cb @@ -93396,7 +91125,7 @@ Author: Behdad Esfahbod Date: Mon May 10 17:36:03 2010 -0400 Make StructAtOffset take a pointer - + Is safer. src/hb-open-type-private.hh | 26 +++++++++++++------------- @@ -93438,8 +91167,7 @@ Date: Mon May 10 16:57:29 2010 -0400 src/hb-open-type-private.hh | 20 +++++++++++++--- src/hb-ot-layout-common-private.hh | 24 ++++++++++++-------- src/hb-ot-layout-gdef-private.hh | 22 +++++++++++------- - src/hb-ot-layout-gpos-private.hh | 44 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-private.hh | 44 ++++++++++++++++++++---------------- src/hb-ot-layout-gsub-private.hh | 32 ++++++++++++++++---------- src/hb-ot-layout-gsubgpos-private.hh | 27 ++++++++++++++-------- src/hb-private.h | 2 -- @@ -93474,7 +91202,7 @@ Author: Behdad Esfahbod Date: Thu May 6 19:35:19 2010 -0400 Simplify DEFINE_NULL_DATA - + Using ::min_size. src/hb-open-type-private.hh | 6 +++--- @@ -93486,12 +91214,11 @@ Author: Behdad Esfahbod Date: Thu May 6 19:33:31 2010 -0400 Start cleaning up get_size() - + So we know when the size is static and when dynamic. src/hb-open-file-private.hh | 7 +++--- - src/hb-open-type-private.hh | 42 - +++++++++++++++++++++++++----------- + src/hb-open-type-private.hh | 42 +++++++++++++++++++++++++----------- src/hb-ot-layout-common-private.hh | 14 ++++++------ src/hb-ot-layout-gpos-private.hh | 17 ++++++--------- src/hb-ot-layout-gsubgpos-private.hh | 19 ++++++++-------- @@ -93545,8 +91272,7 @@ Date: Thu May 6 12:55:14 2010 -0400 src/hb-open-type-private.hh | 2 - src/hb-ot-layout-common-private.hh | 6 +-- src/hb-ot-layout-gdef-private.hh | 24 +++++----- - src/hb-ot-layout-gpos-private.hh | 90 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 90 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 31 ++++++------- src/hb-ot-layout-gsubgpos-private.hh | 44 +++++++++--------- 7 files changed, 98 insertions(+), 101 deletions(-) @@ -93625,8 +91351,7 @@ Date: Wed May 5 01:37:58 2010 -0400 Simplify chaining - src/hb-ot-layout-gsubgpos-private.hh | 61 - +++++++++++++++--------------------- + src/hb-ot-layout-gsubgpos-private.hh | 61 +++++++++++++++--------------------- 1 file changed, 25 insertions(+), 36 deletions(-) commit 1911b9d21b2b7b6b8219ce6c888540e3a60aa9c3 @@ -93635,12 +91360,9 @@ Date: Wed May 5 01:32:04 2010 -0400 Remove APPLY_ARG_DEF and APPLY_ARG - src/hb-ot-layout-gpos-private.hh | 92 - ++++++++++++++++++------------------ - src/hb-ot-layout-gsub-private.hh | 88 - +++++++++++++++++----------------- - src/hb-ot-layout-gsubgpos-private.hh | 89 - ++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 92 ++++++++++++++++++------------------ + src/hb-ot-layout-gsub-private.hh | 88 +++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.hh | 89 ++++++++++++++++------------------ 3 files changed, 132 insertions(+), 137 deletions(-) commit 6c42cddfe53a1c664081862bb9a3e1c38d05a823 @@ -93662,8 +91384,7 @@ Date: Wed May 5 01:23:44 2010 -0400 src/hb-ot-layout-gpos-private.hh | 9 ++--- src/hb-ot-layout-gsub-private.hh | 9 ++--- - src/hb-ot-layout-gsubgpos-private.hh | 70 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gsubgpos-private.hh | 70 ++++++++++++++++++++---------------- 3 files changed, 50 insertions(+), 38 deletions(-) commit 94a23aaeca39c662614037ef887412249bdc8d49 @@ -93673,8 +91394,7 @@ Date: Wed May 5 01:13:09 2010 -0400 Move buffer into apply_context src/hb-buffer-private.h | 30 +++++++++-------- - src/hb-ot-layout-gpos-private.hh | 64 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-private.hh | 64 ++++++++++++++++++++---------------- src/hb-ot-layout-gsub-private.hh | 45 ++++++++++++++----------- src/hb-ot-layout-gsubgpos-private.hh | 49 ++++++++++++++------------- 4 files changed, 106 insertions(+), 82 deletions(-) @@ -93685,8 +91405,7 @@ Date: Wed May 5 01:01:05 2010 -0400 Move layout_context into apply_context - src/hb-ot-layout-gpos-private.hh | 105 - ++++++++++++++++++----------------- + src/hb-ot-layout-gpos-private.hh | 105 ++++++++++++++++++----------------- src/hb-ot-layout-gsub-private.hh | 47 ++++++++-------- src/hb-ot-layout-gsubgpos-private.hh | 11 ++-- 3 files changed, 82 insertions(+), 81 deletions(-) @@ -93719,8 +91438,7 @@ Date: Wed May 5 00:23:19 2010 -0400 src/hb-open-type-private.hh | 59 +++++++-------- src/hb-ot-layout-common-private.hh | 42 +++++------ src/hb-ot-layout-gdef-private.hh | 28 ++++---- - src/hb-ot-layout-gpos-private.hh | 136 - +++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 136 +++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 72 +++++++++---------- src/hb-ot-layout-gsubgpos-private.hh | 46 ++++++------ 7 files changed, 197 insertions(+), 202 deletions(-) @@ -93747,11 +91465,9 @@ commit 20e3dd5d292b65f70d2eae63b8d8713a1c889d47 Author: Behdad Esfahbod Date: Tue May 4 23:21:57 2010 -0400 - Make sanitize_depth variable automatic and not passed through - function args + Make sanitize_depth variable automatic and not passed through function args - src/hb-open-type-private.hh | 72 - +++++++++++++++++++++++++++------------------ + src/hb-open-type-private.hh | 72 +++++++++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 29 deletions(-) commit 4a446ac35136eff23d55f47bdd7b40095ad707ab @@ -93770,8 +91486,7 @@ Date: Tue May 4 22:42:49 2010 -0400 Make _hb_sanitize_*() methods of the context object - src/hb-open-type-private.hh | 190 - +++++++++++++++++++++++--------------------- + src/hb-open-type-private.hh | 190 +++++++++++++++++++++++--------------------- 1 file changed, 98 insertions(+), 92 deletions(-) commit bb029af943faa9905e652d58856998687e60c31d @@ -93784,8 +91499,7 @@ Date: Tue May 4 15:28:52 2010 -0400 src/hb-open-type-private.hh | 3 +- src/hb-ot-layout-common-private.hh | 4 +-- src/hb-ot-layout-gdef-private.hh | 25 ++++++++-------- - src/hb-ot-layout-gpos-private.hh | 55 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-private.hh | 55 ++++++++++++++++++++---------------- src/hb-ot-layout-gsub-private.hh | 29 ++++++++++--------- src/hb-ot-layout-gsubgpos-private.hh | 42 +++++++++++++-------------- 7 files changed, 85 insertions(+), 75 deletions(-) @@ -93917,8 +91631,7 @@ Date: Mon May 3 22:51:19 2010 -0400 src/hb-open-type-private.hh | 38 ++++++++++----------- src/hb-ot-layout-common-private.hh | 16 ++++----- src/hb-ot-layout-gdef-private.hh | 2 +- - src/hb-ot-layout-gpos-private.hh | 64 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 64 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 52 ++++++++++++++--------------- src/hb-ot-layout-gsubgpos-private.hh | 40 +++++++++++----------- src/hb-ot-layout.cc | 12 +++---- @@ -94007,8 +91720,7 @@ Date: Thu Apr 29 13:56:44 2010 -0400 Rename HB_GNUC_UNUSED -> HB_UNUSED src/hb-buffer.c | 6 ++--- - src/hb-font.cc | 44 - ++++++++++++++++++------------------ + src/hb-font.cc | 44 ++++++++++++++++++------------------ src/hb-ft.c | 16 ++++++------- src/hb-object-private.h | 2 +- src/hb-open-type-private.hh | 18 +++++++-------- @@ -94038,11 +91750,10 @@ Author: Behdad Esfahbod Date: Thu Apr 29 13:48:26 2010 -0400 [sanitize] Make debug code always available to the compiler - + Such that we don't break debug build all the time. - src/hb-open-type-private.hh | 71 - ++++++++++++++++++++------------------------- + src/hb-open-type-private.hh | 71 ++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 40 deletions(-) commit fde6f5bd682f5ad0cc5e2ec69fc831b0192bf90b @@ -94097,7 +91808,7 @@ Author: Behdad Esfahbod Date: Thu Apr 29 03:39:39 2010 -0400 Make sure mirroring is done in original direction - + Reported by Jonathan Kew. src/hb-shape.c | 5 ++++- @@ -94126,7 +91837,7 @@ Author: Behdad Esfahbod Date: Thu Apr 29 02:58:38 2010 -0400 Fix bug in hb_language_from_string() - + Reported by Jonathan Kew. src/hb-language.c | 2 ++ @@ -94167,8 +91878,7 @@ Date: Thu Apr 29 02:24:25 2010 -0400 Rename - src/hb-ot-layout-gpos-private.hh | 98 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 98 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 46 ++++++++--------- src/hb-ot-layout-gsubgpos-private.hh | 12 ++--- 3 files changed, 78 insertions(+), 78 deletions(-) @@ -94177,13 +91887,11 @@ commit 1376fb7bf9ef07970f0ba13dc64d6a8ab8252762 Author: Behdad Esfahbod Date: Thu Apr 29 02:19:21 2010 -0400 - [apply] Use a context object to reduce number of parameters passed - around + [apply] Use a context object to reduce number of parameters passed around src/hb-open-type-private.hh | 5 ++--- src/hb-ot-layout-gpos-private.hh | 26 ++++++++++++++----------- - src/hb-ot-layout-gsub-private.hh | 37 - +++++++++++++++++++----------------- + src/hb-ot-layout-gsub-private.hh | 37 +++++++++++++++++++----------------- src/hb-ot-layout-gsubgpos-private.hh | 29 +++++++++++++++------------- 4 files changed, 53 insertions(+), 44 deletions(-) @@ -94207,8 +91915,7 @@ Date: Thu Apr 29 01:40:26 2010 -0400 src/hb-open-type-private.hh | 41 +++++++++--------------------- src/hb-ot-layout-gsubgpos-private.hh | 25 +++++-------------- - src/hb-private.h | 48 - +++++++++++++++++++++++++----------- + src/hb-private.h | 48 +++++++++++++++++++++++++----------- 3 files changed, 51 insertions(+), 63 deletions(-) commit 807c5b03a2251a3c29a520852639421783101b55 @@ -94216,7 +91923,7 @@ Author: Behdad Esfahbod Date: Wed Apr 28 20:25:22 2010 -0400 [sanitize] Make debug code always available to the compiler - + Such that we don't break debug build all the time. src/hb-open-type-private.hh | 31 ++++++++++++++++++++----------- @@ -94228,11 +91935,10 @@ Author: Behdad Esfahbod Date: Wed Apr 28 15:15:09 2010 -0400 [gsubgpos] Make debug code always available to the compiler - + Such that we don't break debug build all the time. - src/hb-ot-layout-gsubgpos-private.hh | 52 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) commit 41011a6ed7c4891b20c0eddbb6d4ad9c820cfddb @@ -94249,7 +91955,7 @@ Author: Behdad Esfahbod Date: Wed Apr 28 13:29:55 2010 -0400 [object] Make debug code always available to the compiler - + Such that we don't break debug build all the time. src/hb-object-private.h | 42 +++++++++++++++++++++++++++--------------- @@ -94269,11 +91975,10 @@ Author: Behdad Esfahbod Date: Wed Apr 28 13:16:38 2010 -0400 [blob] Make debug code always available to the compiler - + Such that we don't break debug build all the time. - src/hb-blob.c | 78 - ++++++++++++++++++++++++----------------------------------- + src/hb-blob.c | 78 ++++++++++++++++++++++++----------------------------------- 1 file changed, 32 insertions(+), 46 deletions(-) commit ba51b25c7ba568aeced17f016eceba987569c5d9 @@ -94300,7 +92005,7 @@ Author: Behdad Esfahbod Date: Tue Apr 27 23:28:10 2010 -0400 [object] Actually handle malloc() failure - + Caught by John Daggett. src/hb-object-private.h | 10 ++++++---- @@ -94329,7 +92034,7 @@ Author: Behdad Esfahbod Date: Sun Apr 25 22:51:05 2010 -0400 Remove use of flexible arrays - + Also remove wrong ASSERT_SIZE that would trigger only when not using flexible arrays (which was the case on win32, but not with gcc). @@ -94348,8 +92053,7 @@ Date: Fri Apr 23 20:49:18 2010 -0400 src/hb-blob-private.h | 57 +++++++++++++++++++++++++++++++ src/hb-blob.c | 20 ++--------- src/hb-font-private.h | 3 -- - src/hb-font.cc | 92 - +++++++++++++++++++++++++++++++++++---------------- + src/hb-font.cc | 92 +++++++++++++++++++++++++++++++++++---------------- 5 files changed, 123 insertions(+), 50 deletions(-) commit d6b3c83a90f60bedb4049750ffb351161710980d @@ -94399,7 +92103,7 @@ Author: Behdad Esfahbod Date: Fri Apr 23 16:22:54 2010 -0400 Remove GET_FOR_DATA macros - + The major-version check is now handled by sanitize. If major doesn't match, we reject and fall back to the Null object. @@ -94481,13 +92185,10 @@ Author: Behdad Esfahbod Date: Fri Apr 23 13:57:10 2010 -0400 When sanitizing, delay making writable - - Before, as soon as we needed to make an edit, we tried to make - the blob - writable inplace. That grows code unnecessarily though. We can - simply - fail, make writable, then start again. That's indeed what the - fallback + + Before, as soon as we needed to make an edit, we tried to make the blob + writable inplace. That grows code unnecessarily though. We can simply + fail, make writable, then start again. That's indeed what the fallback was doing anyway. src/hb-open-type-private.hh | 11 +++++++---- @@ -94508,8 +92209,7 @@ Date: Fri Apr 23 13:32:03 2010 -0400 Cleanup OpenTypeFontFile - src/hb-open-file-private.hh | 44 - ++++++++++++++++++++++++++------------------ + src/hb-open-file-private.hh | 44 ++++++++++++++++++++++++++------------------ src/main.cc | 2 +- 2 files changed, 27 insertions(+), 19 deletions(-) @@ -94519,8 +92219,7 @@ Date: Fri Apr 23 12:33:02 2010 -0400 Properly define separate structs for TTCHeader and TTCHeaderVersion1 - src/hb-open-file-private.hh | 71 - +++++++++++++++++++++++++++++++++++---------- + src/hb-open-file-private.hh | 71 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 16 deletions(-) commit a065f471b3bc23d33ef75217308efeaed4ffd033 @@ -94528,18 +92227,17 @@ Author: Behdad Esfahbod Date: Thu Apr 22 20:15:11 2010 -0400 Cleanup Extension lookups - + Two things: - + 1. Allow nested Extension lookups. The offset is always positive, so it can't loop circularly. - + 2. Move the check for all Extension subtables having the same lookup type to the correct place. Before it wasn't really working. src/hb-ot-layout-gpos-private.hh | 29 +------------------- - src/hb-ot-layout-gsub-private.hh | 57 - ++++++++++++++++++++++------------------ + src/hb-ot-layout-gsub-private.hh | 57 ++++++++++++++++++++++------------------ 2 files changed, 33 insertions(+), 53 deletions(-) commit a0bb49c5830f8a7f25d573ec57b79df2620ddba7 @@ -94569,8 +92267,7 @@ Date: Thu Apr 22 18:29:09 2010 -0400 Convert the last set of cast macros to templates src/hb-open-file-private.hh | 4 +-- - src/hb-open-type-private.hh | 53 - +++++++++++++++++++++++------------- + src/hb-open-type-private.hh | 53 +++++++++++++++++++++++------------- src/hb-ot-layout-gpos-private.hh | 16 +++++------ src/hb-ot-layout-gsub-private.hh | 14 +++++----- src/hb-ot-layout-gsubgpos-private.hh | 12 ++++---- @@ -94602,7 +92299,7 @@ Author: Behdad Esfahbod Date: Thu Apr 22 14:15:11 2010 -0400 Fail sanitize on major version mismatch - + We handle major-version differences via get_for_data(), so sanitize should never see a major version mismatch. @@ -94626,7 +92323,7 @@ Author: Behdad Esfahbod Date: Thu Apr 22 13:59:39 2010 -0400 Minor cleanup of sanitize - + Done with an audit of all sanitize() src/hb-ot-layout-gpos-private.hh | 18 +++++++++--------- @@ -94673,7 +92370,7 @@ Author: Behdad Esfahbod Date: Thu Apr 22 13:22:41 2010 -0400 Remove integrity check in Tag sanitize - + Serves no useful purpose. src/hb-open-type-private.hh | 9 --------- @@ -94685,7 +92382,7 @@ Author: Behdad Esfahbod Date: Thu Apr 22 11:06:30 2010 -0400 Don't sanitize raw table data - + That part is performed by individual table sanitize. src/hb-open-file-private.hh | 15 +++++++++------ @@ -94960,8 +92657,7 @@ Date: Wed Apr 21 15:56:11 2010 -0400 Convert NEXT() and ARRAY_AFTER() macros to templates - src/hb-open-type-private.hh | 40 - ++++++++++++++++++++++++++---------- + src/hb-open-type-private.hh | 40 ++++++++++++++++++++++++++---------- src/hb-ot-layout-common-private.hh | 4 ++-- src/hb-ot-layout-gsub-private.hh | 8 ++++---- src/hb-ot-layout-gsubgpos-private.hh | 24 +++++++++++----------- @@ -94974,8 +92670,7 @@ Date: Wed Apr 21 13:35:36 2010 -0400 Use templates for const char * casts src/hb-open-file-private.hh | 12 ++++----- - src/hb-open-type-private.hh | 48 - ++++++++++++++++++------------------ + src/hb-open-type-private.hh | 48 ++++++++++++++++++------------------ src/hb-ot-layout-common-private.hh | 2 +- src/hb-ot-layout-gpos-private.hh | 32 ++++++++++++------------ src/hb-ot-layout-gsub-private.hh | 4 +-- @@ -94998,8 +92693,7 @@ Date: Wed Apr 21 03:11:46 2010 -0400 Use templates for defining int typess - src/hb-open-type-private.hh | 66 - ++++++++++++++++++++++++++++++--------------- + src/hb-open-type-private.hh | 66 ++++++++++++++++++++++++++++++--------------- src/hb-private.h | 10 ++----- 2 files changed, 46 insertions(+), 30 deletions(-) @@ -95037,8 +92731,7 @@ Date: Wed Apr 21 02:12:45 2010 -0400 Move macros around - src/hb-private.h | 122 - ++++++++++++++++++++++++++++--------------------------- + src/hb-private.h | 122 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 62 insertions(+), 60 deletions(-) commit 649a4344ca363da3d44cdd908350449ec40ed0f9 @@ -95054,11 +92747,9 @@ commit eba8b4f644701cc6b78b0fcb4e932dce15561598 Author: Behdad Esfahbod Date: Mon Mar 29 00:04:12 2010 -0400 - GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced - from ValueRecords + GNOME Bug 613015 - [HB] Does not sanitize Device tables referenced from ValueRecords - src/hb-ot-layout-gpos-private.hh | 47 - ++++++++++++++++++++++++++++++---------- + src/hb-ot-layout-gpos-private.hh | 47 ++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 11 deletions(-) commit 673a4efcbc72a62105a24d9b0b54047417160f7d @@ -95067,8 +92758,7 @@ Date: Wed Apr 21 02:02:57 2010 -0400 WIP - src/hb-ot-layout-gpos-private.hh | 102 - +++++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gpos-private.hh | 102 +++++++++++++++++++++++++++++++-------- 1 file changed, 81 insertions(+), 21 deletions(-) commit 40d73bc68dd828cf68f90fde0f9499a6ce9fbb19 @@ -95193,37 +92883,36 @@ Author: Behdad Esfahbod Date: Tue Mar 16 03:46:17 2010 -0400 Fix the mystery bug! - + A couple bugs joined forces to exhibit the mystery behavior of crashes / infinite loops on OS X / wrong kerning / invalid memory access. Pooh! - + The bugs were involved: - + - Wrong pointer math with ValueRecord in PairPosFormat1 - + - Fallout from avoiding flex arrays, code not correctly updated to remove sizeof() usage. - + We strictly never use sizeof() directly now. And the PairPos code is cleaned up. Should fix them all. Bugs are: - + Bug 605655 - Pango 1.26.2 introduces kerning bug Bug 611229 - Pango reads from uninitialized memory Bug 593240 - (pangoosx) Crash / infinite loop with Mac OS X - + We were also doing wrong math converting Device adjustments to hb_position_t. Fallout from FreeType days. Should shift 16, not 6. Fixed that too. - + There's still another bug: we don't sanitize Device records referenced from value records. Fixing that also. src/hb-open-file-private.hh | 4 +++- src/hb-open-type-private.hh | 11 ++++++----- src/hb-ot-layout-common-private.hh | 10 ++++++++-- - src/hb-ot-layout-gpos-private.hh | 37 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gpos-private.hh | 37 ++++++++++++++++++++---------------- src/hb-ot-layout-gsubgpos-private.hh | 15 ++++++++------- 5 files changed, 46 insertions(+), 31 deletions(-) @@ -95250,7 +92939,7 @@ Author: Behdad Esfahbod Date: Mon Mar 1 22:33:45 2010 -0500 [ft] Check stream->read instead of stream->base - + The former is more robust. See discussion on freetype-devel. src/hb-ft.c | 5 +++-- @@ -95261,9 +92950,8 @@ Author: Behdad Esfahbod Date: Tue Feb 23 16:47:51 2010 -0500 Make blob unlocking 64bit-safe - - GNOME Bug 604128 - Applications crash when displaying Hebrew - characters + + GNOME Bug 604128 - Applications crash when displaying Hebrew characters src/hb-blob.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) @@ -95282,7 +92970,7 @@ Author: Behdad Esfahbod Date: Wed Feb 17 15:14:57 2010 -0500 Use __attribute__((unused)) only with gcc 4 and later - + See discussion at: https://bugzilla.gnome.org/show_bug.cgi?id=610183 @@ -95332,11 +93020,10 @@ Author: Behdad Esfahbod Date: Sun Dec 20 21:26:24 2009 +0100 Revert "Fallback to 'kern' if no GPOS applied" - + This reverts commit d740c8f78bcbe80a8bcd8a9468830a406da37cc0. - - The change is wrong. If there is a GPOS table, we should not use - 'kern'. + + The change is wrong. If there is a GPOS table, we should not use 'kern'. src/hb-ot-shape.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) @@ -95367,8 +93054,7 @@ Date: Sun Dec 20 20:59:51 2009 +0100 Oops, add file. - src/hb-ot-shape-private.h | 53 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape-private.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) commit 2014b8d110231b13e524008282ece7451f1ae9e7 @@ -95376,14 +93062,13 @@ Author: Behdad Esfahbod Date: Sun Dec 20 20:58:26 2009 +0100 Hook OpenType shaping up - + Default features only for now. src/Makefile.am | 2 + src/hb-ot-layout.cc | 28 +++++++++ src/hb-ot-layout.h | 7 +++ - src/hb-ot-shape.c | 165 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-shape.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-shape.c | 8 +-- 5 files changed, 206 insertions(+), 4 deletions(-) @@ -95411,8 +93096,7 @@ Date: Sun Dec 20 17:58:25 2009 +0100 Refactor hb_shape a bit - src/hb-shape.c | 87 - +++++++++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-shape.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 13 deletions(-) commit 001fc2d2aa22f14302739fe4ca45f7535855e0fb @@ -95421,8 +93105,7 @@ Date: Sun Dec 20 17:24:05 2009 +0100 Add TrueType kern support - src/hb-shape.c | 74 - +++++++++++++++++++++++++++++++++++++--------------------- + src/hb-shape.c | 74 +++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 26 deletions(-) commit 2c1b85cf66e5ecb7521b6018b76f0e161fb68967 @@ -95467,11 +93150,9 @@ commit b8a53e44ce05911ce98b7cff34dee165e19d87ba Author: Behdad Esfahbod Date: Sun Dec 20 14:56:25 2009 +0100 - We'll have to link to libstdc++ if linking to ICU, so disable test - for now - - We have to get rid of the ICU in main lib. Still thinking about - best way + We'll have to link to libstdc++ if linking to ICU, so disable test for now + + We have to get rid of the ICU in main lib. Still thinking about best way to do it. src/Makefile.am | 9 ++++++--- @@ -95520,20 +93201,17 @@ Author: Behdad Esfahbod Date: Thu Nov 19 20:28:03 2009 -0500 Another C++ strictness fix - - Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ - Compiler + + Pango Bug 602408 - Invalid C++ code breaks compile with Sun C++ Compiler (Error: A union member cannot have a user-defined assignment operator) - + According to the bug: - + C++ Programming Language by Bjarne Stroustrup: Chapter 10.4.12 forbids - explicitly using of union members with constructors, destructors - or assignment + explicitly using of union members with constructors, destructors or assignment operations. - - So we use a set() method instead of the assignment operator. Ugly, - but hey, + + So we use a set() method instead of the assignment operator. Ugly, but hey, that's life. src/hb-open-type-private.hh | 8 ++++---- @@ -95617,8 +93295,7 @@ Date: Fri Nov 6 19:48:16 2009 -0500 src/hb-common.h | 11 +++++ src/hb-shape.c | 38 +++++++++++++++-- src/hb-unicode-private.h | 5 +++ - src/hb-unicode.c | 103 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-unicode.c | 103 +++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 196 insertions(+), 14 deletions(-) commit b4b4272c8d19ba3e0cb8f12b3b7d1590349e3d14 @@ -95654,9 +93331,8 @@ Author: Behdad Esfahbod Date: Fri Nov 6 17:23:31 2009 -0500 [GSUB] More ligature/component fixing - - We can only reuse the ligid if it belongs to a previous ligature, - not a + + We can only reuse the ligid if it belongs to a previous ligature, not a component! src/hb-ot-layout-gsub-private.hh | 4 ++-- @@ -95669,8 +93345,7 @@ Date: Fri Nov 6 17:21:01 2009 -0500 Add _hb_buffer_add_output_glyphs() that takes codepoint_t* src/hb-buffer-private.h | 10 ++++++++- - src/hb-buffer.c | 45 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-buffer.c | 45 ++++++++++++++++++++++++++++++++++++++-- src/hb-ot-layout-gsub-private.hh | 16 +++++++------- 3 files changed, 60 insertions(+), 11 deletions(-) @@ -95679,14 +93354,13 @@ Author: Behdad Esfahbod Date: Fri Nov 6 16:47:31 2009 -0500 Add hb_ot_layout_position_finish() - + We expect buffer to be setup with default positions before GPOS. src/hb-buffer-private.h | 6 +---- src/hb-buffer.h | 11 +-------- src/hb-ot-layout-gpos-private.hh | 8 +++---- - src/hb-ot-layout.cc | 52 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout.cc | 52 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 16 +++++++++---- 5 files changed, 69 insertions(+), 24 deletions(-) @@ -95869,8 +93543,7 @@ Date: Thu Nov 5 12:20:11 2009 -0500 src/hb-buffer.h | 4 ++-- src/hb-font.h | 4 ++-- src/hb-ft.c | 10 +++++----- - src/hb-ot-layout-gpos-private.hh | 40 - ++++++++++++---------------------------- + src/hb-ot-layout-gpos-private.hh | 40 ++++++++++++---------------------------- src/hb-shape.c | 14 +++++++------- src/hb-shape.h | 4 ++-- 7 files changed, 32 insertions(+), 48 deletions(-) @@ -95917,8 +93590,7 @@ Date: Wed Nov 4 19:45:39 2009 -0500 src/hb-language.h | 44 ++++ src/hb-ot-layout.cc | 6 +- src/hb-ot-layout.h | 4 +- - src/hb-ot-tag.c | 662 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-tag.c | 662 ++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ot-tag.h | 49 ++++ src/hb-ot.h | 1 + src/hb-private.h | 3 + @@ -95968,9 +93640,9 @@ Author: Behdad Esfahbod Date: Wed Nov 4 16:36:14 2009 -0500 Fix array query API - + The array query APIs now all do: - + - Return the total number of items - Take a start_offset, such that individual items can be fetched - The _count IN/OUT variable always has number of items written @@ -95978,8 +93650,7 @@ Date: Wed Nov 4 16:36:14 2009 -0500 TODO | 1 - src/hb-ot-layout-common-private.hh | 59 ++++++++++++++----------- - src/hb-ot-layout-gdef-private.hh | 84 - +++++++++++++++++++++--------------- + src/hb-ot-layout-gdef-private.hh | 84 +++++++++++++++++++++--------------- src/hb-ot-layout-gsubgpos-private.hh | 14 +++--- src/hb-ot-layout.cc | 40 ++++++++++------- src/hb-ot-layout.h | 24 +++++++---- @@ -95993,8 +93664,7 @@ Date: Wed Nov 4 15:48:32 2009 -0500 src/hb-font.cc | 2 +- src/hb-font.h | 2 +- - src/hb-ft.c | 114 - ++++++++++++++++++++++++++++++--------------------------- + src/hb-ft.c | 114 ++++++++++++++++++++++++++++++--------------------------- 3 files changed, 63 insertions(+), 55 deletions(-) commit f8be443aecd54b479470e6559b1dfbc8f33c5f55 @@ -96014,8 +93684,7 @@ Date: Tue Nov 3 20:27:05 2009 -0500 TODO | 1 + src/hb-font-private.h | 8 ++--- - src/hb-font.cc | 72 - +++++++++++++++++++++++++++++++++++++--- + src/hb-font.cc | 72 +++++++++++++++++++++++++++++++++++++--- src/hb-font.h | 9 +++-- src/hb-ot-layout-gpos-private.hh | 7 ++-- src/hb-ot-layout-gsub-private.hh | 2 +- @@ -96033,8 +93702,7 @@ Date: Tue Nov 3 18:34:20 2009 -0500 src/hb-font-private.h | 4 +- src/hb-font.cc | 17 ++++- src/hb-font.h | 6 +- - src/hb-ft.c | 192 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-ft.c | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-ft.h | 52 ++++++++++++++ src/hb-glib.h | 2 - src/hb-icu.h | 2 - @@ -96049,8 +93717,7 @@ Date: Tue Nov 3 16:35:10 2009 -0500 configure.ac | 8 +- src/Makefile.am | 23 +++++- - src/hb-icu.c | 221 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-icu.c | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-icu.h | 41 +++++++++++ 4 files changed, 288 insertions(+), 5 deletions(-) @@ -96080,8 +93747,7 @@ Date: Tue Nov 3 15:15:07 2009 -0500 TODO | 1 - src/hb-buffer-private.h | 12 +++++++++++- - src/hb-buffer.c | 47 - ++++++++++++++++++++++++++++++++++++++--------- + src/hb-buffer.c | 47 ++++++++++++++++++++++++++++++++++++++--------- src/hb-buffer.h | 10 ++++++++++ src/hb-font-private.h | 3 --- src/hb-font.cc | 17 ----------------- @@ -96093,7 +93759,7 @@ Author: Behdad Esfahbod Date: Tue Nov 3 15:14:40 2009 -0500 [Makefile] Install hb-unicode.h - + Separate OT headers also. src/Makefile.am | 27 ++++++++++++++++----------- @@ -96124,7 +93790,7 @@ Author: Behdad Esfahbod Date: Tue Nov 3 14:18:33 2009 -0500 Use the C linker, not C++ linker - + Such that we don't link to libstdc++. src/Makefile.am | 2 ++ @@ -96172,17 +93838,15 @@ Author: Behdad Esfahbod Date: Tue Nov 3 10:47:29 2009 -0500 Don't use zero-sized arrays - - It's not part of the standard and MSVC doesn't like it. It makes - the code + + It's not part of the standard and MSVC doesn't like it. It makes the code a lot less elegant than it used to be, but I think it should work now. src/hb-open-file-private.hh | 4 +- src/hb-open-type-private.hh | 36 +++++++++++------ src/hb-ot-layout-common-private.hh | 33 ++++++++-------- src/hb-ot-layout-gdef-private.hh | 14 +++---- - src/hb-ot-layout-gpos-private.hh | 76 - ++++++++++++++---------------------- + src/hb-ot-layout-gpos-private.hh | 76 ++++++++++++++---------------------- src/hb-ot-layout-gsub-private.hh | 44 ++++++++------------- src/hb-ot-layout-gsubgpos-private.hh | 47 +++++++++++----------- src/hb-private.h | 5 +++ @@ -96248,9 +93912,8 @@ Author: Behdad Esfahbod Date: Mon Nov 2 18:31:53 2009 -0500 Build without glib - - Thready-safety disabled in that case, until we add support for - pthread, etc. + + Thready-safety disabled in that case, until we add support for pthread, etc. Fun... src/hb-private.h | 19 +++++++++++++++++-- @@ -96305,11 +93968,9 @@ Date: Mon Nov 2 16:28:39 2009 -0500 NEWS | 0 src/README => README | 0 src/TODO => TODO | 0 - autogen.sh | 189 - +++++++++++++++++++++++++++++++++++++++++++++++++ + autogen.sh | 189 +++++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 40 +++++++++++ - git.mk | 184 - +++++++++++++++++++++++++++++++++++++++++++++++ + git.mk | 184 +++++++++++++++++++++++++++++++++++++++++++++++ harfbuzz.pc.in | 11 +++ src/.gitignore | 1 - src/Makefile.ng | 11 --- @@ -96329,7 +93990,7 @@ Author: Behdad Esfahbod Date: Thu Oct 29 03:05:18 2009 -0400 [HB] Add point_index to get_contour_point() - + Pointed out by Keith Stribley on HarfBuzz list. src/hb-font.h | 1 + @@ -96340,7 +94001,7 @@ Author: Behdad Esfahbod Date: Thu Oct 29 03:00:44 2009 -0400 [HB] Fix lookup_flag ignoring - + Reported by Keith Stribley on HarfBuzz list. src/hb-ot-layout-common-private.hh | 1 + @@ -96361,9 +94022,8 @@ Author: Behdad Esfahbod Date: Mon Sep 21 13:43:54 2009 -0400 [HB] Fix apply_lookup() loop - - Part of Bug 595539 - Regressions in rendering certain Thai sequences - with + + Part of Bug 595539 - Regressions in rendering certain Thai sequences with OpenType font src/hb-ot-layout-gsubgpos-private.hh | 3 ++- @@ -96374,9 +94034,8 @@ Author: Behdad Esfahbod Date: Mon Sep 21 13:40:38 2009 -0400 [HB] Fix bug in chain_context_lookup() invocations - - Part of Bug 595539 - Regressions in rendering certain Thai sequences - with + + Part of Bug 595539 - Regressions in rendering certain Thai sequences with OpenType font src/hb-ot-layout-gsubgpos-private.hh | 4 ++-- @@ -96401,8 +94060,7 @@ Date: Fri Aug 28 17:17:11 2009 -0400 src/hb-open-type-private.hh | 50 ++++++++++---------- src/hb-ot-layout-common-private.hh | 32 ++++++------- src/hb-ot-layout-gdef-private.hh | 20 ++++---- - src/hb-ot-layout-gpos-private.hh | 92 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.hh | 92 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.hh | 72 ++++++++++++++-------------- src/hb-ot-layout-gsubgpos-private.hh | 78 +++++++++++++++--------------- 7 files changed, 176 insertions(+), 176 deletions(-) @@ -96415,8 +94073,7 @@ Date: Fri Aug 28 17:14:33 2009 -0400 src/hb-ot-layout-gpos-private.hh | 29 ++++++++++++++++++--- src/hb-ot-layout-gsub-private.hh | 28 ++++++++++++++++++--- - src/hb-ot-layout-gsubgpos-private.hh | 49 - ++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-gsubgpos-private.hh | 49 ++++++++++++++++++++++++++++++++++-- 3 files changed, 98 insertions(+), 8 deletions(-) commit 95e202403ffa543c817f45cca21fbc116eb8e807 @@ -96470,7 +94127,7 @@ Author: Behdad Esfahbod Date: Thu Aug 20 14:01:37 2009 -0400 Bug 592484 - invalid write in HB - + Fix off-by-one. src/hb-ot-layout.cc | 4 ++-- @@ -96499,7 +94156,7 @@ Author: Behdad Esfahbod Date: Wed Aug 19 18:07:36 2009 -0400 [HB] Rename CAIRO_ in macro prefix to HB_ - + Hiss! src/hb-private.h | 6 +++--- @@ -96510,13 +94167,13 @@ Author: Behdad Esfahbod Date: Wed Aug 19 16:45:41 2009 -0400 [HB] Remove HB_MEMORY_MODE_READONLY_NEVER_DUPLICATE - + Unlike the rest of the memory-mode enum, this one didn't only describe the access mode of the input memory region. Remove it. - + If someone wants to inhibit duplicating, they can lock the blob and throw away the key. - + Based on mailing list discussion with Carl Worth. src/hb-blob.c | 51 +++++++++++++++++++++++++-------------------------- @@ -96609,11 +94266,10 @@ Author: Behdad Esfahbod Date: Tue Aug 18 15:49:23 2009 -0400 Bug 592194 - Fix missing _SC_PAGE_SIZE macro - + Autoconfiscate a simple call to mprotect() even more. - src/hb-blob.c | 94 - ++++++++++++++++++++++++++++++++++++++--------------------- + src/hb-blob.c | 94 ++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 34 deletions(-) commit 3c69bd46e27069fac0bfdefdecf5492c17eb01df @@ -96621,9 +94277,8 @@ Author: Behdad Esfahbod Date: Mon Aug 17 16:48:13 2009 -0400 [HB] Avoid int overflow in GPOS - - Bug 592036 - integer overflow bug causes misrendering of Nepali - characters + + Bug 592036 - integer overflow bug causes misrendering of Nepali characters src/hb-ot-layout-gpos-private.hh | 20 ++++++++++---------- src/hb-private.h | 3 +++ @@ -96644,8 +94299,7 @@ Date: Fri Aug 14 19:33:24 2009 -0400 [HB] Merge mark positionin code between three types of lookups - src/hb-ot-layout-gpos-private.hh | 95 - ++++++++++++---------------------------- + src/hb-ot-layout-gpos-private.hh | 95 ++++++++++++---------------------------- 1 file changed, 29 insertions(+), 66 deletions(-) commit cd33cb9ed84308da72bd7c64b9355dc2410c63ec @@ -96686,8 +94340,7 @@ Date: Fri Aug 14 18:14:03 2009 -0400 [HB] Simplify MarkBase and MarkLig too - src/hb-ot-layout-gpos-private.hh | 127 - +++++++++++++++------------------------ + src/hb-ot-layout-gpos-private.hh | 127 +++++++++++++++------------------------ 1 file changed, 48 insertions(+), 79 deletions(-) commit dfa54f4440960c39d37ef02fff4c0d9eb315d4b4 @@ -96755,8 +94408,7 @@ Date: Thu Aug 13 17:13:25 2009 -0400 src/Makefile.am | 2 ++ src/hb-shape.c | 40 ++++++++++++++++++++++++++++++++++++++++ - src/hb-shape.h | 53 - +++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-shape.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) commit 2866d2974b6768e93cc7d473d14c5a8abae5f7fd @@ -96764,7 +94416,7 @@ Author: Behdad Esfahbod Date: Thu Aug 13 11:47:08 2009 -0400 [HB] Bitfield packing *is* very delicate - + Fix the second instance. src/hb-buffer.h | 2 +- @@ -96775,7 +94427,7 @@ Author: Behdad Esfahbod Date: Thu Aug 13 05:25:23 2009 -0400 Bug 591511 – hh-blob.c does not compile using mingw on windows - + Check for sys/mman.h, not mprotect(). src/hb-blob.c | 8 ++++---- @@ -96786,9 +94438,8 @@ Author: Behdad Esfahbod Date: Thu Aug 13 05:20:46 2009 -0400 [HB] Fix buffer sizing issue with mingw gcc - - Bit field packing is a delicate field. Issue reported in comment - 3 here: + + Bit field packing is a delicate field. Issue reported in comment 3 here: http://bugzilla.gnome.org/show_bug.cgi?id=591511 src/hb-buffer-private.h | 14 +++++++------- @@ -96799,7 +94450,7 @@ Author: Behdad Esfahbod Date: Wed Aug 12 19:45:50 2009 -0400 Bug 591413 – needs to link with libstdc++ - + Enforce -fno-exceptions better. src/Makefile.am | 2 +- @@ -96810,7 +94461,7 @@ Author: Behdad Esfahbod Date: Wed Aug 12 19:36:29 2009 -0400 Bug 591511 – hb-blob.c does not compile using mingw on windows - + Only call mprotect() when available. For optimal performance, a win32 way to make memory writeable needs to be added. @@ -96840,7 +94491,7 @@ Author: Behdad Esfahbod Date: Wed Aug 12 16:47:27 2009 -0400 [HB] Fix _hb_buffer_next() when positioning - + We were copying glyphs to output. This should not happen when in GPOS. Back then it was fine, then some optimizations broke then assumption. @@ -96872,7 +94523,7 @@ Author: Behdad Esfahbod Date: Wed Aug 12 15:40:04 2009 -0400 [HB] Fix invalid access / overflow on x86-64 - + Bug 591557 – [HB] crash scrolling the evolution message list Bug 591576 – crashed with SIGSEGV at pango @@ -96920,8 +94571,7 @@ Date: Mon Aug 10 23:35:05 2009 -0400 [HB] Add hb-glib src/Makefile.am | 4 +++- - src/hb-glib.c | 56 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-glib.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-glib.h | 41 +++++++++++++++++++++++++++++++++++ src/hb-unicode-private.h | 2 +- src/hb-unicode.c | 10 ++++----- @@ -96967,8 +94617,7 @@ Date: Mon Aug 10 22:58:56 2009 -0400 src/hb-object-private.h | 2 +- src/hb-unicode-private.h | 12 ++++----- - src/hb-unicode.c | 67 - ++++++++++++++++++++++++++++++++++++++++++------ + src/hb-unicode.c | 67 ++++++++++++++++++++++++++++++++++++++++++------ src/hb-unicode.h | 3 --- 4 files changed, 65 insertions(+), 19 deletions(-) @@ -96978,8 +94627,7 @@ Date: Mon Aug 10 22:47:57 2009 -0400 [HB] Implement buffer UTF-X input - src/hb-buffer.c | 110 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-buffer.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/hb-buffer.h | 12 +++---- 2 files changed, 116 insertions(+), 6 deletions(-) @@ -97024,8 +94672,7 @@ Date: Mon Aug 10 20:05:16 2009 -0400 src/hb-font.h | 140 ++++++++++-------------------- src/hb-unicode-private.h | 54 ++++++++++++ src/hb-unicode.c | 89 +++++++++++++++++++ - src/hb-unicode.h | 220 - +++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-unicode.h | 220 +++++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 463 insertions(+), 235 deletions(-) commit 20b035dad41247076815a2bbb0346d63058b322f @@ -97033,7 +94680,7 @@ Author: Behdad Esfahbod Date: Mon Aug 10 19:00:36 2009 -0400 [HB] Put C++ inline's back - + Apparetly in C++, inline means a totally different thing. src/hb-open-file-private.hh | 14 +++++++------- @@ -97050,7 +94697,7 @@ Author: Behdad Esfahbod Date: Mon Aug 10 13:57:02 2009 -0400 [HB] Don't override CXX compiler - + Just add couple of options to it (still assuming gcc) src/Makefile.am | 3 ++- @@ -97109,9 +94756,8 @@ Author: Behdad Esfahbod Date: Sat Aug 8 16:57:27 2009 -0400 [HB] Remove hb_ot_layout_table_find_feature() - - That function doesn't make much sense as multiple features in the - table may + + That function doesn't make much sense as multiple features in the table may have the same tag. src/hb-ot-layout.cc | 16 ---------------- @@ -97155,8 +94801,7 @@ Date: Fri Aug 7 19:46:30 2009 -0400 src/hb-open-type-private.hh | 104 +------------------------ src/hb-ot-layout-common-private.hh | 103 ++++++++++++++++++------ src/hb-ot-layout-gsubgpos-private.hh | 35 +++++++-- - src/hb-ot-layout.cc | 146 - ++++++++++++----------------------- + src/hb-ot-layout.cc | 146 ++++++++++++----------------------- src/hb-ot-layout.h | 101 ++++++++++-------------- 7 files changed, 240 insertions(+), 292 deletions(-) @@ -97233,8 +94878,7 @@ Date: Thu Aug 6 13:33:51 2009 -0400 [HB] Fix blob to use a actual mutex - src/hb-blob.c | 125 - +++++++++++++++++++++++++++++++++++------------- + src/hb-blob.c | 125 +++++++++++++++++++++++++++++++++++------------- src/hb-object-private.h | 4 +- src/hb-private.h | 20 +++++--- 3 files changed, 106 insertions(+), 43 deletions(-) @@ -97248,8 +94892,7 @@ Date: Thu Aug 6 12:32:35 2009 -0400 src/Makefile.am | 5 +++-- src/hb-blob.c | 4 ++-- src/hb-object-private.h | 19 ++++++------------- - src/hb-private.h | 45 - ++++++++++++++++++++++++++------------------- + src/hb-private.h | 45 ++++++++++++++++++++++++++------------------- 4 files changed, 37 insertions(+), 36 deletions(-) commit 9b76a290a94f2603f3cb9498ae976125347cf54b @@ -97303,8 +94946,7 @@ Date: Wed Aug 5 15:20:34 2009 -0400 [HB] Improve debug output and fix mprotect bug - src/hb-blob.c | 57 - ++++++++++++++++++++++++++++++++++++++------- + src/hb-blob.c | 57 ++++++++++++++++++++++++++++++++++++++------- src/hb-open-type-private.hh | 30 +++++++++++------------- src/hb-private.h | 3 ++- 3 files changed, 65 insertions(+), 25 deletions(-) @@ -97361,8 +95003,7 @@ Date: Tue Aug 4 23:01:23 2009 -0400 [HB] More debugging output - src/hb-open-type-private.hh | 45 - ++++++++++++++++++++++++++++++++++++++++----- + src/hb-open-type-private.hh | 45 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 5 deletions(-) commit 8cd6fa28d1b77100491519b8dedb2e113508bf59 @@ -97390,8 +95031,7 @@ Date: Tue Aug 4 22:35:36 2009 -0400 [HB] Add sanitize debugging facilities src/hb-open-file-private.hh | 4 ++++ - src/hb-open-type-private.hh | 43 - +++++++++++++++++++++++++++++++----- + src/hb-open-type-private.hh | 43 +++++++++++++++++++++++++++++++----- src/hb-ot-layout-common-private.hh | 17 ++++++++++++++ src/hb-ot-layout-gdef-private.hh | 10 +++++++++ src/hb-ot-layout-gpos-private.hh | 28 +++++++++++++++++++++++ @@ -97468,8 +95108,7 @@ Date: Tue Aug 4 20:52:47 2009 -0400 [HB] Add Sanitizer - src/hb-open-types-private.hh | 58 - ++++++++++++++++++++++++++++++++++++++++---- + src/hb-open-types-private.hh | 58 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) commit 2765d333e523a13dbd932fa33f3b39a5cf83f0f7 @@ -97499,8 +95138,7 @@ Date: Tue Aug 4 19:31:02 2009 -0400 [HB] Shuffle code around - src/hb-open-types-private.hh | 127 - ++++++++++++++++++++++--------------------- + src/hb-open-types-private.hh | 127 ++++++++++++++++++++++--------------------- 1 file changed, 65 insertions(+), 62 deletions(-) commit b1e187fc6365f5355c652a61494a5e9f6acf51b4 @@ -97518,8 +95156,7 @@ Date: Tue Aug 4 15:07:24 2009 -0400 [HB] open-file sanitize() - src/hb-open-file-private.hh | 46 - ++++++++++++++++++++++++++++++++++++++++---- + src/hb-open-file-private.hh | 46 ++++++++++++++++++++++++++++++++++++++++---- src/hb-open-types-private.hh | 13 +++++++++++++ 2 files changed, 55 insertions(+), 4 deletions(-) @@ -97539,8 +95176,7 @@ Date: Tue Aug 4 14:33:23 2009 -0400 [HB] GDEF sanitize() - src/hb-ot-layout-gdef-private.hh | 54 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gdef-private.hh | 54 ++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gpos-private.hh | 2 +- src/hb-ot-layout-gsub-private.hh | 2 +- src/hb-ot-layout-gsubgpos-private.hh | 2 +- @@ -97598,8 +95234,7 @@ Date: Tue Aug 4 13:30:49 2009 -0400 [HB] GPOS sanitize() src/hb-open-types-private.hh | 22 ++++- - src/hb-ot-layout-gpos-private.hh | 195 - ++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gpos-private.hh | 195 ++++++++++++++++++++++++++++++++++++++- src/hb-ot-layout-gsub-private.hh | 2 - 3 files changed, 213 insertions(+), 6 deletions(-) @@ -97641,8 +95276,7 @@ Date: Tue Aug 4 11:38:50 2009 -0400 src/hb-open-types-private.hh | 23 ++++++++----- src/hb-ot-layout-common-private.hh | 7 ++-- src/hb-ot-layout-gsub-private.hh | 27 ++++++--------- - src/hb-ot-layout-gsubgpos-private.hh | 64 - +++++++++++++----------------------- + src/hb-ot-layout-gsubgpos-private.hh | 64 +++++++++++++----------------------- 4 files changed, 50 insertions(+), 71 deletions(-) commit 196598bbccff08415ff5192314cba044df258cad @@ -97656,8 +95290,7 @@ Date: Tue Aug 4 11:04:32 2009 -0400 src/hb-ot-layout-common-private.hh | 8 +++---- src/hb-ot-layout-gpos-private.hh | 12 +++++----- src/hb-ot-layout-gsub-private.hh | 20 ++++++++-------- - src/hb-ot-layout-gsubgpos-private.hh | 44 - ++++++++++++++++++------------------ + src/hb-ot-layout-gsubgpos-private.hh | 44 ++++++++++++++++++------------------ 6 files changed, 57 insertions(+), 50 deletions(-) commit 92b5dd8e71e1bdeaa6e86a53f167683a3f5f4289 @@ -97666,8 +95299,7 @@ Date: Tue Aug 4 10:41:32 2009 -0400 [HB] Merge more templates - src/hb-open-types-private.hh | 167 - ++++++++++++++----------------------------- + src/hb-open-types-private.hh | 167 ++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 112 deletions(-) commit e6ab2c59ba2d37942ac5fcbfe61d38b7e359ac8c @@ -97676,8 +95308,7 @@ Date: Tue Aug 4 10:23:01 2009 -0400 [HB] Simplify indirect sanitize() - src/hb-open-types-private.hh | 52 - ++++++++++++++++++-------------------- + src/hb-open-types-private.hh | 52 ++++++++++++++++++-------------------- src/hb-ot-layout-common-private.hh | 11 +------- 2 files changed, 26 insertions(+), 37 deletions(-) @@ -97716,8 +95347,7 @@ Date: Tue Aug 4 02:09:34 2009 -0400 src/hb-open-file-private.hh | 2 +- src/hb-open-types-private.hh | 12 ++++--- - src/hb-ot-layout-common-private.hh | 64 - +++++++++++++++++++++++++++++++----- + src/hb-ot-layout-common-private.hh | 64 +++++++++++++++++++++++++++++++----- src/hb-ot-layout-gdef-private.hh | 2 +- src/hb-ot-layout-gsubgpos-private.hh | 15 +++++++-- 5 files changed, 79 insertions(+), 16 deletions(-) @@ -97730,8 +95360,7 @@ Date: Tue Aug 4 00:58:28 2009 -0400 src/hb-open-types-private.hh | 105 ++++++++++++++++++++++++++++- src/hb-ot-layout-common-private.hh | 48 +++++++++++++- - src/hb-ot-layout-gsub-private.hh | 125 - ++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsub-private.hh | 125 ++++++++++++++++++++++++++++++++++- src/hb-ot-layout-gsubgpos-private.hh | 104 +++++++++++++++++++++++++++++ 4 files changed, 376 insertions(+), 6 deletions(-) @@ -97755,8 +95384,7 @@ Date: Mon Aug 3 22:01:47 2009 -0400 src/hb-font.cc | 23 ++++++++++++--------- src/hb-ot-layout-private.h | 9 +++++--- - src/hb-ot-layout.cc | 51 - +++++++++++++++++++++++----------------------- + src/hb-ot-layout.cc | 51 +++++++++++++++++++++++----------------------- 3 files changed, 44 insertions(+), 39 deletions(-) commit 23c86aa0009324433e78fcd0c47f2c0ff14b1949 @@ -97775,8 +95403,7 @@ Date: Mon Aug 3 21:40:20 2009 -0400 src/hb-ot-layout-gsub-private.hh | 32 ++--- src/hb-ot-layout-gsubgpos-private.hh | 8 +- src/hb-ot-layout-private.h | 40 ++++--- - src/hb-ot-layout.cc | 220 - +++++++++++++++-------------------- + src/hb-ot-layout.cc | 220 +++++++++++++++-------------------- 11 files changed, 237 insertions(+), 197 deletions(-) commit fc6c94002dd5478cf9fbdaff12d8374a786c85e1 @@ -97785,8 +95412,7 @@ Date: Mon Aug 3 21:27:08 2009 -0400 [HB] Simplify sub-blob support - src/hb-blob.c | 172 - ++++++++++++++++++++++------------------------------------ + src/hb-blob.c | 172 ++++++++++++++++++++++------------------------------------ src/hb-blob.h | 14 +++-- 2 files changed, 74 insertions(+), 112 deletions(-) @@ -97796,8 +95422,7 @@ Date: Mon Aug 3 17:53:29 2009 -0400 [HB] Add sub-blobs - src/hb-blob.c | 162 - +++++++++++++++++++++++++++++++++++++++++++++++++--------- + src/hb-blob.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++--------- src/hb-blob.h | 12 ++++- 2 files changed, 147 insertions(+), 27 deletions(-) @@ -97817,8 +95442,7 @@ Date: Sun Aug 2 20:03:12 2009 -0400 [OT] Rename C++ header files from *.h to *.hh - src/Makefile.am | 14 - +++++++------- + src/Makefile.am | 14 +++++++------- src/{hb-open-file-private.h => hb-open-file-private.hh} | 8 ++++---- src/{hb-open-types-private.h => hb-open-types-private.hh} | 6 +++--- ...out-common-private.h => hb-ot-layout-common-private.hh} | 8 ++++---- @@ -97837,10 +95461,8 @@ Date: Sun Aug 2 19:57:00 2009 -0400 [HB] Move OT file handling out of ot-layout src/Makefile.am | 3 +- - src/hb-open-file-private.h | 145 - +++++++++++++++++++++ - ...yout-open-private.h => hb-open-types-private.h} | 117 - +---------------- + src/hb-open-file-private.h | 145 +++++++++++++++++++++ + ...yout-open-private.h => hb-open-types-private.h} | 117 +---------------- src/hb-ot-layout-common-private.h | 4 +- src/hb-ot-layout.cc | 2 +- src/main.cc | 4 +- @@ -97861,8 +95483,7 @@ Date: Sun Aug 2 17:41:36 2009 -0400 src/hb-ot-layout-gsub-private.h | 50 +++--- src/hb-ot-layout-gsubgpos-private.h | 12 +- src/hb-ot-layout-private.h | 36 +++- - src/hb-ot-layout.cc | 334 - ++++++++++++++++++++---------------- + src/hb-ot-layout.cc | 334 ++++++++++++++++++++---------------- src/hb-ot-layout.h | 207 ++++++++++------------ 11 files changed, 415 insertions(+), 376 deletions(-) @@ -97892,7 +95513,7 @@ Author: Behdad Esfahbod Date: Sat Aug 1 23:06:27 2009 -0400 [HB] Rename _duplicate to _copy - + To be in line with cairo src/hb-font.c | 4 ++-- @@ -97914,10 +95535,8 @@ Date: Sat Aug 1 22:53:04 2009 -0400 [HB] Cleanup public buffer structs - src/hb-buffer-private.h | 46 - +++++++++++++++++++++++++++++++------- - src/hb-buffer.c | 49 - +++++++++++++++++++++-------------------- + src/hb-buffer-private.h | 46 +++++++++++++++++++++++++++++++------- + src/hb-buffer.c | 49 +++++++++++++++++++++-------------------- src/hb-buffer.h | 35 ++++++++++++++--------------- src/hb-ot-layout-gpos-private.h | 8 +++---- src/hb-ot-layout-private.h | 5 +++-- @@ -97942,8 +95561,7 @@ Date: Sat Aug 1 22:19:06 2009 -0400 [HB] Port buffert to new object API src/hb-buffer-private.h | 24 +++++++++++++++--- - src/hb-buffer.c | 65 - +++++++++++++++++++++++++++++++++++++------------ + src/hb-buffer.c | 65 +++++++++++++++++++++++++++++++++++++------------ src/hb-buffer.h | 53 +++++++++++++++++++++++++--------------- 3 files changed, 104 insertions(+), 38 deletions(-) @@ -97990,8 +95608,7 @@ Date: Sat Aug 1 20:46:02 2009 -0400 [HB] Assorted compiler macros src/hb-ot-layout-open-private.h | 4 +- - src/hb-private.h | 88 - +++++++++++++++++++++++++++++++---------- + src/hb-private.h | 88 +++++++++++++++++++++++++++++++---------- 2 files changed, 70 insertions(+), 22 deletions(-) commit ba8d94ce3360bfaf2c530d01f2af69237018a531 @@ -98003,8 +95620,7 @@ Date: Sat Aug 1 20:29:22 2009 -0400 src/Makefile.am | 2 +- src/hb-blob.c | 6 +--- src/hb-font-private.h | 1 - - src/hb-font.c | 37 - +++++++--------------- + src/hb-font.c | 37 +++++++--------------- src/{hb-refcount-private.h => hb-object-private.h} | 14 ++++++-- src/hb-private.h | 2 ++ 6 files changed, 27 insertions(+), 35 deletions(-) @@ -98014,14 +95630,13 @@ Author: Behdad Esfahbod Date: Sat Aug 1 19:54:49 2009 -0400 [HB] Add abstract font and face API - + Not used yet. src/Makefile.am | 3 + src/hb-blob.c | 6 +- src/hb-font-private.h | 108 +++++++++++++++ - src/hb-font.c | 331 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-font.c | 331 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-font.h | 182 +++++++++++++++++++++++++ src/hb-refcount-private.h | 14 +- 6 files changed, 636 insertions(+), 8 deletions(-) @@ -98078,8 +95693,7 @@ Date: Thu Jul 30 15:33:57 2009 -0400 [HB] Add a "blob" manager src/Makefile.am | 5 +- - src/hb-blob.c | 181 - ++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-blob.c | 181 ++++++++++++++++++++++++++++++++++++++++++++++ src/hb-blob.h | 74 +++++++++++++++++++ src/hb-private.h | 2 + src/hb-refcount-private.h | 54 ++++++++++++++ @@ -98105,8 +95719,7 @@ Date: Wed Jul 29 18:37:57 2009 -0400 [HB] Rename internal vars - src/hb-ot-layout-gsubgpos-private.h | 56 - ++++++++++++++++++------------------- + src/hb-ot-layout-gsubgpos-private.h | 56 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit b196e6f2743d631ef181f1116370be3055063d36 @@ -98124,8 +95737,7 @@ Date: Tue Jul 28 15:43:34 2009 -0400 Apply patch from Jonathan Kew - src/hb-buffer.c | 75 - ++++++++++++++++++++++++++++------------------------- + src/hb-buffer.c | 75 ++++++++++++++++++++++++++++------------------------- src/hb-buffer.h | 6 ++++- src/hb-ot-layout.cc | 31 ++++++++++++++++++++++ src/hb-ot-layout.h | 15 +++++++++++ @@ -98137,7 +95749,7 @@ Author: Behdad Esfahbod Date: Sat Jul 25 19:09:01 2009 -0400 Revert "XX" - + This reverts commit c939f6aff405ca7b10b1f1538f46148bff719fcb. src/Makefile.am | 2 - @@ -98145,8 +95757,7 @@ Date: Sat Jul 25 19:09:01 2009 -0400 src/hb-buffer.h | 14 ----- src/hb-common.h | 3 - src/hb-ot-layout-gdef-private.h | 32 +++++------ - src/hb-ot-layout-gpos-private.h | 108 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.h | 108 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.h | 46 +++++++-------- src/hb-ot-layout-gsubgpos-private.h | 68 +++++++++++------------ src/hb-ot-layout-private.h | 28 ++++------ @@ -98166,8 +95777,7 @@ Date: Wed Jun 10 23:26:51 2009 -0400 src/hb-buffer.h | 14 +++++ src/hb-common.h | 3 + src/hb-ot-layout-gdef-private.h | 32 +++++------ - src/hb-ot-layout-gpos-private.h | 108 - ++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.h | 108 ++++++++++++++++++------------------ src/hb-ot-layout-gsub-private.h | 46 +++++++-------- src/hb-ot-layout-gsubgpos-private.h | 68 +++++++++++------------ src/hb-ot-layout-private.h | 28 ++++++---- @@ -98189,13 +95799,11 @@ commit e35bbd570a5d914f86f1ea83941ee4328f268059 Author: Behdad Esfahbod Date: Sat May 30 12:02:46 2009 -0400 - [HB] Improve buffer. Don't dup out buffer unless out is longer - than in - + [HB] Improve buffer. Don't dup out buffer unless out is longer than in + That is, we work in-place even for ligatures now. - src/hb-buffer.c | 156 - ++++++++++++++++++++++++-------------------------------- + src/hb-buffer.c | 156 ++++++++++++++++++++++++-------------------------------- src/hb-buffer.h | 7 ++- 2 files changed, 71 insertions(+), 92 deletions(-) @@ -98261,8 +95869,7 @@ Date: Tue May 26 17:58:37 2009 -0400 [GPOS] Fix mark matching - src/hb-ot-layout-gpos-private.h | 44 - +++++++++++++++++++---------------------- + src/hb-ot-layout-gpos-private.h | 44 +++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 24 deletions(-) commit 4189b92aaa41e4a1756c561cc6e08b0ed024afda @@ -98276,8 +95883,7 @@ Date: Tue May 26 17:31:56 2009 -0400 src/hb-ot-layout-gsub-private.h | 38 +++++++++----------- src/hb-ot-layout-gsubgpos-private.h | 14 ++++---- src/hb-ot-layout-private.h | 6 ++++ - src/hb-ot-layout.cc | 69 - ++++++++++++++++++++++++------------- + src/hb-ot-layout.cc | 69 ++++++++++++++++++++++++------------- 6 files changed, 76 insertions(+), 65 deletions(-) commit 1246e41021ab1d782b4c97e5d81c4917a57e3ed4 @@ -98286,8 +95892,7 @@ Date: Tue May 26 15:58:34 2009 -0400 [GDEF] Support MarkFilteringSets - src/hb-ot-layout.cc | 59 - +++++++++++++++++++---------------------------------- + src/hb-ot-layout.cc | 59 +++++++++++++++++++---------------------------------- 1 file changed, 21 insertions(+), 38 deletions(-) commit 5130c35e93528bcf3095fee5baf3847589167a58 @@ -98307,8 +95912,7 @@ Date: Tue May 26 15:38:53 2009 -0400 [HB] Support parsing MarkFilteringSets introduced in OpenType 1.6 - src/hb-ot-layout-gdef-private.h | 55 - +++++++++++++++++++++++++++++++++++------ + src/hb-ot-layout-gdef-private.h | 55 +++++++++++++++++++++++++++++++++++------ src/hb-ot-layout-gpos-private.h | 1 + src/hb-ot-layout.cc | 6 ++--- 3 files changed, 51 insertions(+), 11 deletions(-) @@ -98337,8 +95941,7 @@ Date: Tue May 26 12:40:10 2009 -0400 [HB] Implement get_lig_carets() - src/hb-ot-layout-gdef-private.h | 57 - ++++++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gdef-private.h | 57 ++++++++++++++++++++++++++++++++--------- src/hb-ot-layout.cc | 17 +++++++++--- src/hb-ot-layout.h | 8 +++++- src/main.cc | 9 +------ @@ -98376,8 +95979,7 @@ Date: Mon May 25 04:04:24 2009 -0400 [HB] More buffer cleanup src/hb-buffer-private.h | 39 +++-------- - src/hb-buffer.c | 136 - ++++++++++++++++++------------------ + src/hb-buffer.c | 136 ++++++++++++++++++------------------ src/hb-buffer.h | 22 +++--- src/hb-ot-layout-gpos-private.h | 29 ++++---- src/hb-ot-layout-gsub-private.h | 10 +-- @@ -98397,8 +95999,7 @@ Date: Mon May 25 03:39:11 2009 -0400 src/hb-buffer.c | 26 ++++++++------ src/hb-ot-layout-gsub-private.h | 26 +++++--------- src/hb-ot-layout-gsubgpos-private.h | 2 +- - src/hb-ot-layout.cc | 71 - ------------------------------------- + src/hb-ot-layout.cc | 71 ------------------------------------- 5 files changed, 25 insertions(+), 102 deletions(-) commit 347f0b8621d3adfec157e5634ff3defc818ea37f @@ -98461,8 +96062,7 @@ Date: Mon May 25 02:41:49 2009 -0400 [HB] Simplify Tag - src/hb-ot-layout-open-private.h | 46 - ++++++++++++++++------------------------- + src/hb-ot-layout-open-private.h | 46 ++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 28 deletions(-) commit 3ec0092c5e2d48e8c4fc1618d3bee427adddb1e7 @@ -98480,8 +96080,7 @@ Date: Mon May 25 02:27:29 2009 -0400 [HB] Simplify some basic things - src/hb-ot-layout-open-private.h | 90 - +++++++++++++++++++++++++++-------------- + src/hb-ot-layout-open-private.h | 90 +++++++++++++++++++++++++++-------------- src/main.cc | 8 ++-- 2 files changed, 64 insertions(+), 34 deletions(-) @@ -98522,7 +96121,7 @@ Author: Behdad Esfahbod Date: Sun May 24 14:22:22 2009 -0400 [HB] Remove old code! - + Goodbye 16 thousand lines of ten-year old code! src/harfbuzz-dump-main.c | 97 - @@ -98533,8 +96132,7 @@ Date: Sun May 24 14:22:22 2009 -0400 src/harfbuzz-gdef.h | 135 - src/harfbuzz-global.h | 84 - src/harfbuzz-gpos-private.h | 712 ----- - src/harfbuzz-gpos.c | 6071 - ----------------------------------------- + src/harfbuzz-gpos.c | 6071 ----------------------------------------- src/harfbuzz-gpos.h | 174 -- src/harfbuzz-gsub-private.h | 476 ---- src/harfbuzz-gsub.c | 4304 ----------------------------- @@ -98585,8 +96183,7 @@ Date: Sun May 24 01:03:24 2009 -0400 src/hb-ot-layout-gdef-private.h | 2 +- src/hb-ot-layout-gsubgpos-private.h | 2 +- - src/hb-ot-layout-open-private.h | 54 - ++++--------------------------------- + src/hb-ot-layout-open-private.h | 54 ++++--------------------------------- 3 files changed, 7 insertions(+), 51 deletions(-) commit 5876bf1b73fcb56cc41b4d348248a4817f9688cb @@ -98645,11 +96242,10 @@ Author: Behdad Esfahbod Date: Fri May 22 18:29:45 2009 -0400 [GPOS] MarkLigPosFormat1 - + GPOS is complete now! Yay! - src/hb-ot-layout-gpos-private.h | 128 - +++++++++++++++++++++++++++++----------- + src/hb-ot-layout-gpos-private.h | 128 +++++++++++++++++++++++++++++----------- 1 file changed, 92 insertions(+), 36 deletions(-) commit 923923feb248250626c637c11a886804011197b0 @@ -98669,8 +96265,7 @@ Date: Thu May 21 22:31:33 2009 -0400 [HB] Share Extension lookup code between GSUB and GPOS src/hb-ot-layout-gpos-private.h | 64 +++++----------------------- - src/hb-ot-layout-gsub-private.h | 83 - +++++++------------------------------ + src/hb-ot-layout-gsub-private.h | 83 +++++++------------------------------ src/hb-ot-layout-gsubgpos-private.h | 52 +++++++++++++++++++++++ 3 files changed, 77 insertions(+), 122 deletions(-) @@ -98679,7 +96274,7 @@ Author: Behdad Esfahbod Date: Thu May 21 15:51:04 2009 -0400 [GPOS] Remove printf. MarkMarkPos1 is working - + The "bug" was in the font. src/hb-ot-layout-gpos-private.h | 1 - @@ -98692,8 +96287,7 @@ Date: Thu May 21 12:46:29 2009 -0400 [HB] Ouch. Add files. src/hb-common.h | 13 +++++----- - src/hb-private.h | 74 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/hb-private.h | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 78 insertions(+), 9 deletions(-) commit fe550f4dd815285e9de8c3cbff810b0a1c7b377f @@ -98701,12 +96295,11 @@ Author: Behdad Esfahbod Date: Thu May 21 08:27:07 2009 -0400 [GPOS] MarkMarkPosFormat1 - + Still not quite working. src/TODO | 4 +- - src/hb-ot-layout-gpos-private.h | 105 - +++++++++++++++++++++++++++++----------- + src/hb-ot-layout-gpos-private.h | 105 +++++++++++++++++++++++++++++----------- 2 files changed, 79 insertions(+), 30 deletions(-) commit 357ccde36bba01a405d59b7da061fc5048cdc7b4 @@ -98716,8 +96309,7 @@ Date: Thu May 21 06:32:01 2009 -0400 [GPOS] MarkBasePosFormat1 src/TODO | 1 + - src/hb-ot-layout-gpos-private.h | 62 - +++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-gpos-private.h | 62 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 58 insertions(+), 5 deletions(-) commit 377bfc5860ae018f54e4a2dd737b4b000383ab54 @@ -98744,8 +96336,7 @@ Date: Thu May 21 04:49:04 2009 -0400 [GPOS] Remove apply_value() return value - src/hb-ot-layout-gpos-private.h | 75 - +++++++++++++++++++---------------------- + src/hb-ot-layout-gpos-private.h | 75 +++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 41 deletions(-) commit fb3b5ccfefc4c38c9184d432703e81f73e1f5bc7 @@ -98755,8 +96346,7 @@ Date: Thu May 21 04:47:05 2009 -0400 [GPOS] Start MarkBasePosFormat1 src/TODO | 1 + - src/hb-ot-layout-gpos-private.h | 38 - +++++++++++++++++--------------------- + src/hb-ot-layout-gpos-private.h | 38 +++++++++++++++++--------------------- 2 files changed, 18 insertions(+), 21 deletions(-) commit ee8776d9e009a7fb8e1f3c1f9cf3ad42d9746a16 @@ -98784,8 +96374,7 @@ Date: Wed May 20 06:01:16 2009 -0400 [HB] Remove last dependence on the old code base! - src/hb-buffer-private.h | 88 - ++++++++++++++++++++--------------------- + src/hb-buffer-private.h | 88 ++++++++++++++++++++--------------------- src/hb-buffer.c | 47 +++++++++++----------- src/hb-ot-layout-gpos-private.h | 11 ++---- src/hb-ot-layout-gsub-private.h | 12 +++--- @@ -98815,8 +96404,7 @@ Date: Wed May 20 05:35:14 2009 -0400 [HB] Remove all references to the old code! src/Makefile.am | 76 +++++++--------------- - src/harfbuzz-buffer.c | 154 - +++++++++++++++++++-------------------------- + src/harfbuzz-buffer.c | 154 +++++++++++++++++++-------------------------- src/harfbuzz-buffer.h | 80 +++++++++++------------ src/hb-ot-layout-private.h | 6 +- src/hb-ot-layout.cc | 17 ++--- @@ -98828,7 +96416,7 @@ Author: Behdad Esfahbod Date: Wed May 20 04:51:30 2009 -0400 [GPOS] Finally it's working, up to Cursive - + Wow, IranNastaliq renders perfectly again! src/hb-ot-layout.cc | 24 ++++++++++++++++++++++++ @@ -98842,8 +96430,7 @@ Date: Wed May 20 04:16:35 2009 -0400 [GPOS] Fix more brokenness src/Makefile.am | 2 +- - src/hb-ot-layout-gpos-private.h | 37 - ++++++++++++++++++++----------------- + src/hb-ot-layout-gpos-private.h | 37 ++++++++++++++++++++----------------- src/hb-ot-layout.cc | 7 +++++++ src/hb-ot-layout.h | 5 +++++ 4 files changed, 33 insertions(+), 18 deletions(-) @@ -98854,8 +96441,7 @@ Date: Wed May 20 03:53:00 2009 -0400 [HB] Move lookup types enum into subtable class - src/hb-ot-layout-gpos-private.h | 66 - ++++++++++++++++++++--------------------- + src/hb-ot-layout-gpos-private.h | 66 ++++++++++++++++++++--------------------- src/hb-ot-layout-gsub-private.h | 44 +++++++++++++-------------- 2 files changed, 55 insertions(+), 55 deletions(-) @@ -98874,12 +96460,10 @@ Date: Tue May 19 23:58:54 2009 -0400 [HB] Indentation - src/hb-ot-layout-common-private.h | 170 - +++++++++++++++++------------------- + src/hb-ot-layout-common-private.h | 170 +++++++++++++++++------------------- src/hb-ot-layout-gdef-private.h | 65 +++++++------- src/hb-ot-layout-gsubgpos-private.h | 150 +++++++++++++++++-------------- - src/hb-ot-layout-open-private.h | 159 - ++++++++++++++++----------------- + src/hb-ot-layout-open-private.h | 159 ++++++++++++++++----------------- src/hb-ot-layout-private.h | 9 +- 5 files changed, 288 insertions(+), 265 deletions(-) @@ -98898,10 +96482,8 @@ Date: Tue May 19 23:42:30 2009 -0400 [HB] Indentation - src/hb-ot-layout-gpos-private.h | 253 - +++++++++++++++++++++----------------- - src/hb-ot-layout-gsub-private.h | 262 - ++++++++++++++++++++++------------------ + src/hb-ot-layout-gpos-private.h | 253 +++++++++++++++++++++----------------- + src/hb-ot-layout-gsub-private.h | 262 ++++++++++++++++++++++------------------ 2 files changed, 284 insertions(+), 231 deletions(-) commit d18fd8e3f7185f531fa4c4988d3f5d5c5282b8eb @@ -98910,8 +96492,7 @@ Date: Tue May 19 23:25:41 2009 -0400 [GPOS] CursivePosFormat1 - src/hb-ot-layout-gpos-private.h | 174 - ++++++++++++++++++++++++++++++++++++++-- + src/hb-ot-layout-gpos-private.h | 174 ++++++++++++++++++++++++++++++++++++++-- src/hb-ot-layout-private.h | 2 +- 2 files changed, 169 insertions(+), 7 deletions(-) @@ -98921,8 +96502,7 @@ Date: Tue May 19 22:30:09 2009 -0400 [GSUB] PairPosFormat2 - src/hb-ot-layout-gpos-private.h | 43 - ++++++++++++++++++++++++++++++++++++----- + src/hb-ot-layout-gpos-private.h | 43 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) commit b24ecbadf44d56fd3286d1d3ff6928151ccec9bd @@ -98931,8 +96511,7 @@ Date: Tue May 19 22:16:04 2009 -0400 [GPOS] PairPosFormat1 - src/hb-ot-layout-gpos-private.h | 91 - +++++++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gpos-private.h | 91 +++++++++++++++++++++++++++++++++-------- 1 file changed, 73 insertions(+), 18 deletions(-) commit 056c7ec1aea1eca60a3b20b583b8a8072be9d758 @@ -98944,8 +96523,7 @@ Date: Mon May 18 19:47:52 2009 -0400 src/harfbuzz-buffer-private.h | 1 + src/harfbuzz-buffer.c | 3 - src/hb-ot-layout-common-private.h | 35 ++++++----- - src/hb-ot-layout-gpos-private.h | 127 - ++++++++++++++++++++++++++++---------- + src/hb-ot-layout-gpos-private.h | 127 ++++++++++++++++++++++++++++---------- 4 files changed, 116 insertions(+), 50 deletions(-) commit 4fa77d3c4305a76b956de8c1a9b83a961d035a80 @@ -98975,12 +96553,9 @@ Date: Mon May 18 18:22:44 2009 -0400 [HB] Rename LOOKUP_ARGS to APPLY_ARGS - src/hb-ot-layout-gpos-private.h | 88 - ++++++++++++++++++------------------ - src/hb-ot-layout-gsub-private.h | 84 - +++++++++++++++++----------------- - src/hb-ot-layout-gsubgpos-private.h | 90 - ++++++++++++++++++------------------- + src/hb-ot-layout-gpos-private.h | 88 ++++++++++++++++++------------------ + src/hb-ot-layout-gsub-private.h | 84 +++++++++++++++++----------------- + src/hb-ot-layout-gsubgpos-private.h | 90 ++++++++++++++++++------------------- 3 files changed, 131 insertions(+), 131 deletions(-) commit 2a8e6accdf798a78ff180dcb593140592d62b872 @@ -98989,10 +96564,8 @@ Date: Mon May 18 18:21:44 2009 -0400 [HB] Internally rename position() and substitute() to apply() - src/hb-ot-layout-gpos-private.h | 110 - ++++++++++++++++++++-------------------- - src/hb-ot-layout-gsub-private.h | 104 - ++++++++++++++++++------------------- + src/hb-ot-layout-gpos-private.h | 110 ++++++++++++++++++++-------------------- + src/hb-ot-layout-gsub-private.h | 104 ++++++++++++++++++------------------- 2 files changed, 107 insertions(+), 107 deletions(-) commit f6c8a6eacf27fd1c509d07c85985f0367c5e475f @@ -99024,8 +96597,7 @@ Date: Mon May 18 17:09:33 2009 -0400 [HB] Start GPOS! - src/hb-ot-layout-gpos-private.h | 915 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gpos-private.h | 915 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gsub-private.h | 2 - src/hb-ot-layout-private.h | 15 +- src/hb-ot-layout.cc | 5 +- @@ -99064,11 +96636,10 @@ Author: Behdad Esfahbod Date: Mon May 18 05:47:47 2009 -0400 [GSUB] Implement ReverseChainSingleSubst - + GSUB is done! - src/hb-ot-layout-gsub-private.h | 55 - +++++++++++++++++++++++++++---------- + src/hb-ot-layout-gsub-private.h | 55 +++++++++++++++++++++++++++---------- src/hb-ot-layout-gsubgpos-private.h | 43 +++++++++-------------------- 2 files changed, 54 insertions(+), 44 deletions(-) @@ -99158,11 +96729,10 @@ Author: Behdad Esfahbod Date: Mon May 18 03:56:39 2009 -0400 [HB] ChainContext complete - + IranNastaliq renders perfectly again! - src/hb-ot-layout-gsubgpos-private.h | 63 - +++++++++++++++++++++++++++---------- + src/hb-ot-layout-gsubgpos-private.h | 63 +++++++++++++++++++++++++++---------- 1 file changed, 46 insertions(+), 17 deletions(-) commit e072c24e79f0e7c1e078a87c782ab5dd8f21dcda @@ -99171,8 +96741,7 @@ Date: Mon May 18 03:47:31 2009 -0400 [HB] Implement backtrack matching - src/hb-ot-layout-gsubgpos-private.h | 61 - +++++++++++++++++++++++++++---------- + src/hb-ot-layout-gsubgpos-private.h | 61 +++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 16 deletions(-) commit 02e1e5c63fa4f896053fa3c21e495239e1e9caa2 @@ -99181,8 +96750,7 @@ Date: Mon May 18 02:47:57 2009 -0400 [HB] One more step to go, for fully working GSUB and ChainContext - src/hb-ot-layout-gsubgpos-private.h | 107 - ++++++++++++++++++++---------------- + src/hb-ot-layout-gsubgpos-private.h | 107 ++++++++++++++++++++---------------- 1 file changed, 61 insertions(+), 46 deletions(-) commit f14c2b7acfba75b8a6880f41ceec758f9a56abce @@ -99191,8 +96759,7 @@ Date: Mon May 18 02:36:18 2009 -0400 [HB] Further modularize Context matching - src/hb-ot-layout-gsubgpos-private.h | 92 - +++++++++++++++++++++++++------------ + src/hb-ot-layout-gsubgpos-private.h | 92 +++++++++++++++++++++++++------------ 1 file changed, 63 insertions(+), 29 deletions(-) commit 13ed4405c558e445b052360f1ed8ee27ecf48e6e @@ -99201,8 +96768,7 @@ Date: Mon May 18 02:14:37 2009 -0400 [HB] A step closer to working ChainContext - src/hb-ot-layout-gsubgpos-private.h | 36 - ++++++++++++++++++++++++++---------- + src/hb-ot-layout-gsubgpos-private.h | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) commit e8cbaaf6d538036ff9b880b018db402e0895ed01 @@ -99222,8 +96788,7 @@ Date: Mon May 18 01:49:57 2009 -0400 [HB] More template goodness - src/hb-ot-layout-gsubgpos-private.h | 37 - +++++++++++++++---------------------- + src/hb-ot-layout-gsubgpos-private.h | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) commit aa3d7adca5c821c91a2a1b5380fd6b3d19656ab1 @@ -99234,8 +96799,7 @@ Date: Sun May 17 23:17:56 2009 -0400 src/hb-ot-layout-common-private.h | 6 +- src/hb-ot-layout-gsub-private.h | 15 +++- - src/hb-ot-layout-gsubgpos-private.h | 174 - ++++++++++++++++++++++-------------- + src/hb-ot-layout-gsubgpos-private.h | 174 ++++++++++++++++++++++-------------- 3 files changed, 125 insertions(+), 70 deletions(-) commit 48f16ed96ac7041b511d9e0864623d2aa09c6da3 @@ -99244,8 +96808,7 @@ Date: Sun May 17 22:11:30 2009 -0400 [HB] Towards sharing Context and ChainContext code - src/hb-ot-layout-gsubgpos-private.h | 220 - ++++++++++++++++-------------------- + src/hb-ot-layout-gsubgpos-private.h | 220 ++++++++++++++++-------------------- 1 file changed, 99 insertions(+), 121 deletions(-) commit 6cf2a52593cb4b23e3efe5e16228e3172bdcdd05 @@ -99272,8 +96835,7 @@ Date: Sun May 17 20:48:27 2009 -0400 [HB] Start ChainContext and ReverseChainSingleSubst lookups - src/hb-ot-layout-gsub-private.h | 269 - ++++++++---------------------------- + src/hb-ot-layout-gsub-private.h | 269 ++++++++---------------------------- src/hb-ot-layout-gsubgpos-private.h | 214 +++++++++++++++++++++++++++- 2 files changed, 268 insertions(+), 215 deletions(-) @@ -99292,13 +96854,11 @@ Date: Sun May 17 20:28:01 2009 -0400 [HB] Split Layout-common tables into new files - src/hb-ot-layout-common-private.h | 429 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-common-private.h | 429 ++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-gdef-private.h | 3 +- src/hb-ot-layout-gsub-private.h | 1 + src/hb-ot-layout-gsubgpos-private.h | 2 + - src/hb-ot-layout-open-private.h | 408 - ---------------------------------- + src/hb-ot-layout-open-private.h | 408 ---------------------------------- 5 files changed, 434 insertions(+), 409 deletions(-) commit f45107fe0904414f1266648a6c42849c494fe611 @@ -99307,8 +96867,7 @@ Date: Sun May 17 20:13:02 2009 -0400 [HB] More shuffling - src/hb-ot-layout-gsub-private.h | 71 - +++++++++++++++++++++---------------- + src/hb-ot-layout-gsub-private.h | 71 +++++++++++++++++++++---------------- src/hb-ot-layout-gsubgpos-private.h | 30 ++++++++++++++++ src/hb-ot-layout-open-private.h | 41 --------------------- 3 files changed, 71 insertions(+), 71 deletions(-) @@ -99320,8 +96879,7 @@ Date: Sun May 17 19:47:54 2009 -0400 [HB] Cleanup format unions src/hb-ot-layout-gdef-private.h | 18 ++++---- - src/hb-ot-layout-gsub-private.h | 87 - +++++++++++++++++++------------------ + src/hb-ot-layout-gsub-private.h | 87 +++++++++++++++++++------------------ src/hb-ot-layout-gsubgpos-private.h | 16 +++---- src/hb-ot-layout-open-private.h | 41 +++++++---------- 4 files changed, 77 insertions(+), 85 deletions(-) @@ -99351,11 +96909,10 @@ Author: Behdad Esfahbod Date: Sun May 17 09:34:41 2009 -0400 [HB] Propagate property of first glyph - + This slightly grows code size. - src/hb-ot-layout-gsub-private.h | 100 - +++++++++++++++++++----------------- + src/hb-ot-layout-gsub-private.h | 100 +++++++++++++++++++----------------- src/hb-ot-layout-gsubgpos-private.h | 7 +-- 2 files changed, 56 insertions(+), 51 deletions(-) @@ -99374,8 +96931,7 @@ Date: Sun May 17 08:59:01 2009 -0400 [HB] Unify first glyph property checking - src/hb-ot-layout-gsub-private.h | 81 - ++++++++++++++++--------------------- + src/hb-ot-layout-gsub-private.h | 81 ++++++++++++++++--------------------- src/hb-ot-layout-gsubgpos-private.h | 12 ------ 2 files changed, 35 insertions(+), 58 deletions(-) @@ -99386,10 +96942,8 @@ Date: Sun May 17 08:28:42 2009 -0400 [HB] Move Context matching logic out of GSUB src/hb-ot-layout-gdef-private.h | 2 - - src/hb-ot-layout-gsub-private.h | 331 - +--------------------------------- - src/hb-ot-layout-gsubgpos-private.h | 347 - ++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-private.h | 331 +--------------------------------- + src/hb-ot-layout-gsubgpos-private.h | 347 ++++++++++++++++++++++++++++++++++++ 3 files changed, 352 insertions(+), 328 deletions(-) commit a1625528cd5ed94bc8f18903da3300e823ee5b54 @@ -99398,8 +96952,7 @@ Date: Sun May 17 07:52:11 2009 -0400 [GSUB] Unify ContextSubst matching - src/hb-ot-layout-gsub-private.h | 378 - ++++++++++++++++------------------------ + src/hb-ot-layout-gsub-private.h | 378 ++++++++++++++++------------------------ 1 file changed, 154 insertions(+), 224 deletions(-) commit c36238bea40e9e2b589028eb6de0710455b31585 @@ -99408,8 +96961,7 @@ Date: Sun May 17 07:39:34 2009 -0400 [HB] Renames - src/hb-ot-layout-gsub-private.h | 122 - ++++++++++++++++++++-------------------- + src/hb-ot-layout-gsub-private.h | 122 ++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 61 deletions(-) commit 15c3e75b39797a153b6bc0598f87b27c4a487228 @@ -99452,8 +97004,7 @@ Date: Sun May 17 04:59:56 2009 -0400 [HB] Simplify more arrays - src/hb-ot-layout-open-private.h | 241 - ++++++++++++++++------------------------ + src/hb-ot-layout-open-private.h | 241 ++++++++++++++++------------------------ src/hb-ot-layout.cc | 8 +- 2 files changed, 100 insertions(+), 149 deletions(-) @@ -99464,8 +97015,7 @@ Date: Sun May 17 01:22:51 2009 -0400 [HB] Use ArrayOf<> in GSUB src/hb-ot-layout-gdef-private.h | 3 +- - src/hb-ot-layout-gsub-private.h | 157 - +++++++++++++--------------------------- + src/hb-ot-layout-gsub-private.h | 157 +++++++++++++--------------------------- src/hb-ot-layout-open-private.h | 5 -- 3 files changed, 53 insertions(+), 112 deletions(-) @@ -99476,8 +97026,7 @@ Date: Sun May 17 00:54:25 2009 -0400 [HB] Add ArrayOf<> src/hb-ot-layout-gdef-private.h | 62 ++++++++------------------------- - src/hb-ot-layout-open-private.h | 77 - ++++++++++++++++++++++++++++++----------- + src/hb-ot-layout-open-private.h | 77 ++++++++++++++++++++++++++++++----------- 2 files changed, 71 insertions(+), 68 deletions(-) commit 238c855fcd4f0ef97a94a8662d2a2f2bb5c21ecb @@ -99487,8 +97036,7 @@ Date: Sun May 17 00:22:37 2009 -0400 [HB] Use OffsetTo<> for Coverage src/hb-ot-layout-gdef-private.h | 1 + - src/hb-ot-layout-gsub-private.h | 55 - ++++++++++++++++------------------------- + src/hb-ot-layout-gsub-private.h | 55 ++++++++++++++++------------------------- src/hb-ot-layout-open-private.h | 10 +------- 3 files changed, 23 insertions(+), 43 deletions(-) @@ -99527,13 +97075,12 @@ Author: Behdad Esfahbod Date: Sat May 16 22:48:14 2009 -0400 [HB] Use templates for Null objects - + Also use a common pool for all nul-content ones. src/hb-ot-layout-gdef-private.h | 12 ++-- src/hb-ot-layout-gsub-private.h | 28 ++++---- - src/hb-ot-layout-open-private.h | 142 - +++++++++++++++++++++++----------------- + src/hb-ot-layout-open-private.h | 142 +++++++++++++++++++++++----------------- src/hb-ot-layout.cc | 8 +-- 4 files changed, 105 insertions(+), 85 deletions(-) @@ -99552,8 +97099,7 @@ Date: Sat May 16 19:59:15 2009 -0400 [GSUB] Start ChainContextSubst - src/hb-ot-layout-gsub-private.h | 50 - ++++++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsub-private.h | 50 ++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 11 deletions(-) commit 7fca9e5245d2d283e8b5354eb1ddf553a7ffc033 @@ -99562,8 +97108,7 @@ Date: Sat May 16 19:44:24 2009 -0400 [GSUB] Implement ContextSubstFormat3 - src/hb-ot-layout-gsub-private.h | 62 - ++++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsub-private.h | 62 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) commit 1ff926a5681b5d4bfce65351062cda9dc1ffeba2 @@ -99572,8 +97117,7 @@ Date: Fri May 15 20:25:37 2009 -0400 [GSUB] Implement ContextSubstFormat2 - src/hb-ot-layout-gsub-private.h | 105 - +++++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout-gsub-private.h | 105 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 97 insertions(+), 8 deletions(-) commit fc36d9453ed7edb0a570abc44d7caa87aafb0fcf @@ -99592,8 +97136,7 @@ Date: Fri May 15 18:54:53 2009 -0400 [GSUB] Finish ContextSubstFormat1 - src/hb-ot-layout-gsub-private.h | 77 - ++++++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsub-private.h | 77 ++++++++++++++++++++++++++++++++--------- src/hb-ot-layout-private.h | 14 ++++++++ src/hb-ot-layout.cc | 13 ------- 3 files changed, 74 insertions(+), 30 deletions(-) @@ -99634,8 +97177,7 @@ Date: Fri May 8 21:12:18 2009 -0400 [HB] Remove get_size() src/hb-ot-layout-gdef-private.h | 9 ------ - src/hb-ot-layout-gsub-private.h | 63 - ----------------------------------------- + src/hb-ot-layout-gsub-private.h | 63 ----------------------------------------- src/hb-ot-layout-open-private.h | 42 ++------------------------- 3 files changed, 3 insertions(+), 111 deletions(-) @@ -99645,8 +97187,7 @@ Date: Fri May 8 19:09:17 2009 -0400 [GSUB] ContextSubst format 1 - src/hb-ot-layout-gsub-private.h | 52 - +++++++++++++++++++++++++++++++++++------ + src/hb-ot-layout-gsub-private.h | 52 +++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 7 deletions(-) commit f70229510303109bd0f71423cdf13aa200066d17 @@ -99655,8 +97196,7 @@ Date: Fri May 8 18:45:53 2009 -0400 [GSUB] Shuffle - src/hb-ot-layout-gsub-private.h | 170 - ++++++++++++++++++++-------------------- + src/hb-ot-layout-gsub-private.h | 170 ++++++++++++++++++++-------------------- 1 file changed, 86 insertions(+), 84 deletions(-) commit a83e08f8728439ef75e3dfab2191ac913d8f907b @@ -99683,8 +97223,7 @@ Date: Wed May 6 00:12:29 2009 -0400 [GSUB] Towards Context subtitutes - src/hb-ot-layout-gsub-private.h | 137 - +++++++++++++++++++++++++++++++--------- + src/hb-ot-layout-gsub-private.h | 137 +++++++++++++++++++++++++++++++--------- 1 file changed, 108 insertions(+), 29 deletions(-) commit c9c6a78aec2b16ac06dfca8cbfaf28a77a10bae2 @@ -99693,8 +97232,7 @@ Date: Tue May 5 16:22:02 2009 -0400 [GSUB] Minor refactoring - src/hb-ot-layout-gsub-private.h | 42 - ++++++++++++++++++++++------------------- + src/hb-ot-layout-gsub-private.h | 42 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) commit bb3899a579b00134b24df8891b69bf1621a8190f @@ -99704,8 +97242,7 @@ Date: Tue May 5 13:25:13 2009 -0400 [GSUB] Implement ligature substitutions src/Makefile.am | 2 + - src/hb-ot-layout-gsub-private.h | 113 - ++++++++++++++++++++++++++++++++-------- + src/hb-ot-layout-gsub-private.h | 113 ++++++++++++++++++++++++++++++++-------- 2 files changed, 93 insertions(+), 22 deletions(-) commit 38b011a293181856463dd08d43e2106e5bf1d56e @@ -99723,8 +97260,7 @@ Date: Thu Apr 16 16:53:40 2009 -0400 [GSUB] Start Ligature subtable support - src/hb-ot-layout-gsub-private.h | 132 - +++++++++++++++++++++++++++++----------- + src/hb-ot-layout-gsub-private.h | 132 +++++++++++++++++++++++++++++----------- src/hb-ot-layout.h | 2 +- 2 files changed, 96 insertions(+), 38 deletions(-) @@ -99734,8 +97270,7 @@ Date: Thu Apr 16 14:19:42 2009 -0400 [GSUB] Implement Alternate subtables - src/hb-ot-layout-gsub-private.h | 104 - ++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-gsub-private.h | 104 ++++++++++++++++++++++++++++++++++++---- src/hb-ot-layout-open-private.h | 2 +- 2 files changed, 97 insertions(+), 9 deletions(-) @@ -99745,8 +97280,7 @@ Date: Thu Apr 16 13:40:13 2009 -0400 [GSUB] Implement Extension subtables - src/hb-ot-layout-gsub-private.h | 169 - +++++++++++++++++++++++++--------------- + src/hb-ot-layout-gsub-private.h | 169 +++++++++++++++++++++++++--------------- 1 file changed, 108 insertions(+), 61 deletions(-) commit 83e61ff4702121d3418fe82a8fe7ef6bb63bb5d2 @@ -99768,8 +97302,7 @@ Date: Thu Apr 16 04:45:30 2009 -0400 src/harfbuzz-impl.h | 2 +- src/harfbuzz.c | 1 - src/hb-ot-layout-gdef-private.h | 4 +- - src/hb-ot-layout-gsub-private.h | 383 - +++++++++++++++++++++++++++++----------- + src/hb-ot-layout-gsub-private.h | 383 +++++++++++++++++++++++++++++----------- src/hb-ot-layout-open-private.h | 31 +++- src/hb-ot-layout-private.h | 6 +- src/hb-ot-layout.cc | 94 +++++++--- @@ -99791,8 +97324,7 @@ Date: Wed Apr 15 22:56:15 2009 -0400 src/harfbuzz-gpos.c | 8 ++-- src/harfbuzz-gpos.h | 2 +- src/harfbuzz-gsub.h | 2 +- - src/hb-ot-layout-gsub-private.h | 88 - +++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout-gsub-private.h | 88 +++++++++++++++++++++++++++++++++++++---- src/hb-ot-layout-open-private.h | 2 +- src/hb-ot-layout-private.h | 23 ++++++----- src/hb-ot-layout.cc | 54 +++++++++++++++++-------- @@ -99823,8 +97355,7 @@ Date: Wed Apr 15 19:50:16 2009 -0400 src/hb-common.h | 5 +- src/hb-ot-layout-gdef-private.h | 24 ++++---- - src/hb-ot-layout-gsub-private.h | 120 - +++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout-gsub-private.h | 120 +++++++++++++++++++++++++++++++++++++++- src/hb-ot-layout-open-private.h | 51 ++++++++++------- src/hb-ot-layout-private.h | 2 +- src/hb-ot-layout.cc | 63 +++++++++++++++++++-- @@ -99837,7 +97368,7 @@ Author: Behdad Esfahbod Date: Thu Apr 9 13:30:26 2009 -0400 Bug 577952 – Error loading {GDEF,GSUB,GPOS} table 0x6EAD - + Detect TrueType Collections by checking the font data header instead of checking for "face->num_faces >1". @@ -99877,19 +97408,16 @@ commit aca4d11388eedd532a73bd34747abb65c0ea9291 Author: Behdad Esfahbod Date: Mon Feb 2 00:13:07 2009 +0000 - Allocate all array rows in a single ALLOC call. Saves over 100 - alloc calls - + Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls + 2009-01-31 Behdad Esfahbod - + * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array), (Free_Mark2Array): - Allocate all array rows in a single ALLOC call. Saves over - 100 + Allocate all array rows in a single ALLOC call. Saves over 100 alloc calls when loading DejaVu Sans, - src/harfbuzz-gpos.c | 59 - +++++++++++++++-------------------------------------- + src/harfbuzz-gpos.c | 59 +++++++++++++++-------------------------------------- 1 file changed, 17 insertions(+), 42 deletions(-) commit c561d69c721105b78bb06d1e3c5f21ca314d924a @@ -99897,9 +97425,9 @@ Author: Behdad Esfahbod Date: Thu Jan 29 09:20:08 2009 +0000 Remove ClassDef->Defined field. This is the comment accompanying it: - + 2009-01-29 Behdad Esfahbod - + * pango/opentype/harfbuzz-open.h: * pango/opentype/harfbuzz-gdef.c (Make_ClassRange), (HB_GDEF_Build_ClassDefinition): @@ -99911,41 +97439,28 @@ Date: Thu Jan 29 09:20:08 2009 +0000 (Load_ClassDef2), (_HB_OPEN_Load_ClassDefinition), (_HB_OPEN_Load_EmptyClassDefinition), (_HB_OPEN_Free_ClassDefinition): - Remove ClassDef->Defined field. This is the comment - accompanying it: - - The `Defined' field is not defined in the OpenType - specification - but apparently needed for processing fonts like trado.ttf: - This - font refers to a class which contains not a single element. - We + Remove ClassDef->Defined field. This is the comment accompanying it: + + The `Defined' field is not defined in the OpenType specification + but apparently needed for processing fonts like trado.ttf: This + font refers to a class which contains not a single element. We map such classes to class 0. - - The comment is correct that trado.ttf (MS Traditional - Arabic) uses + + The comment is correct that trado.ttf (MS Traditional Arabic) uses such classes. However, in my testing I couldn't identify any - problems with the font if the special handling is removed. - I also - processed as many fonts as I could get my hand on and - trado.ttf was - the only not-totally-broken font hitting the special-case - code. + problems with the font if the special handling is removed. I also + processed as many fonts as I could get my hand on and trado.ttf was + the only not-totally-broken font hitting the special-case code. DejaVu fonts hit it too, but I'm sure they do not require the - special-handling code. Most probably, that code introduces - bugs + special-handling code. Most probably, that code introduces bugs in them. - - The special-casing was consuming lots of memory. - EIGHT MEGABYTES - for loading DejaVu Sans! While this could be complete - fixed, I - decided to remove the special-handling code altogether. - I don't - think it will make any real difference, and if it does, - we'll fix + + The special-casing was consuming lots of memory. EIGHT MEGABYTES + for loading DejaVu Sans! While this could be complete fixed, I + decided to remove the special-handling code altogether. I don't + think it will make any real difference, and if it does, we'll fix fonts. Such hacks will not be in harfbuzz-ng anyway. - + Bug originally reported by nsf. src/harfbuzz-gdef.c | 8 -------- @@ -99960,9 +97475,9 @@ Author: Behdad Esfahbod Date: Thu Jan 29 09:19:56 2009 +0000 Use calloc(), instead of malloc()ing and memset()ing. - + 2009-01-29 Behdad Esfahbod - + * pango/opentype/harfbuzz-impl.c (_hb_alloc): Use calloc(), instead of malloc()ing and memset()ing. @@ -99974,14 +97489,12 @@ Author: Behdad Esfahbod Date: Thu Jan 29 09:19:43 2009 +0000 Remove old cruft. - + 2009-01-29 Behdad Esfahbod + + * pango/opentype/harfbuzz-dump-main.c (main): Remove old cruft. - * pango/opentype/harfbuzz-dump-main.c (main): Remove old - cruft. - - src/harfbuzz-dump-main.c | 144 - +---------------------------------------------- + src/harfbuzz-dump-main.c | 144 +---------------------------------------------- 1 file changed, 1 insertion(+), 143 deletions(-) commit 0a47c4f78e8a9e81cd305f24ec92ea61ead7dd8d @@ -99989,17 +97502,14 @@ Author: Behdad Esfahbod Date: Thu Jan 29 09:19:20 2009 +0000 Allocate all array rows in a single ALLOC call. Saves over 2000 alloc - + 2009-01-29 Behdad Esfahbod - - * pango/opentype/harfbuzz-gpos.c (Load_BaseArray), - (Free_BaseArray): - Allocate all array rows in a single ALLOC call. Saves over - 2000 + + * pango/opentype/harfbuzz-gpos.c (Load_BaseArray), (Free_BaseArray): + Allocate all array rows in a single ALLOC call. Saves over 2000 alloc calls when loading DejaVu Sans! - src/harfbuzz-gpos.c | 57 - ++++++++++++++++------------------------------------- + src/harfbuzz-gpos.c | 57 ++++++++++++++++------------------------------------- 1 file changed, 17 insertions(+), 40 deletions(-) commit 549be924bccd187f53791dfa27647981ac909545 @@ -100007,24 +97517,21 @@ Author: Behdad Esfahbod Date: Fri Dec 26 02:31:47 2008 +0000 Bug 469049 – Fix all compiler warnings - + 2008-12-25 Behdad Esfahbod - + Bug 469049 – Fix all compiler warnings - + * pango-view/viewer-pangocairo.c (render_callback): - * pango/fonts.c (append_field), - (pango_font_description_to_string): + * pango/fonts.c (append_field), (pango_font_description_to_string): * pango/opentype/harfbuzz-dump.c: - * pango/pango-bidi-type.c - (pango_log2vis_get_embedding_levels): + * pango/pango-bidi-type.c (pango_log2vis_get_embedding_levels): * pango/pango-coverage.c (pango_coverage_set): * pango/pango-markup.c (span_parse_func): * pango/pango-renderer.c (pango_renderer_default_draw_error_underline): * pango/pango-utils.c (pango_scan_string): - * pango/pangocairo-render.c - (pango_cairo_renderer_draw_trapezoid), + * pango/pangocairo-render.c (pango_cairo_renderer_draw_trapezoid), (draw_error_underline), (pango_cairo_renderer_class_init): Fix all the remaining warnings. @@ -100036,9 +97543,9 @@ Author: Behdad Esfahbod Date: Fri Dec 26 02:31:35 2008 +0000 Fix more warnings. - + 2008-12-25 Behdad Esfahbod - + * pango/modules.c (pango_module_load), (script_info_free): * pango/opentype/harfbuzz-gpos.c (HB_Load_GPOS_Table): * pango/pango-bidi-type.c: @@ -100058,8 +97565,7 @@ Date: Fri Dec 26 02:31:35 2008 +0000 (get_first_font), (_pango_fc_font_map_get_coverage), (cleanup_font), (pango_fc_font_description_from_pattern), (pango_fc_face_list_sizes), (pango_fc_family_list_faces): - * pango/pangoft2-fontmap.c - (pango_ft2_font_map_get_resolution): + * pango/pangoft2-fontmap.c (pango_ft2_font_map_get_resolution): * pango/pangoft2-render.c (pango_ft2_renderer_init), (pango_ft2_renderer_draw_trapezoid): * pango/pangoft2.c (pango_ft2_font_get_face), @@ -100075,15 +97581,13 @@ Author: Behdad Esfahbod Date: Wed Oct 15 03:45:29 2008 +0000 Bug 528272 – "Error loading GPOS table 5503" when using katakana - + 2008-10-14 Behdad Esfahbod - - Bug 528272 – "Error loading GPOS table 5503" when using - katakana + + Bug 528272 – "Error loading GPOS table 5503" when using katakana characters - - * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip - parsing + + * pango/opentype/harfbuzz-gpos.c (Load_Mark2Array): Skip parsing null anchor tables. src/harfbuzz-gpos.c | 7 +++++++ @@ -100094,9 +97598,9 @@ Author: Behdad Esfahbod Date: Mon Sep 29 22:28:47 2008 +0000 Fix left-to-right positioning. Reported by Peter Hunter. - + 2008-09-29 Behdad Esfahbod - + * pango/opentype/harfbuzz-gpos.c (Position_CursiveChain): Fix left-to-right positioning. Reported by Peter Hunter. @@ -100108,14 +97612,12 @@ Author: Behdad Esfahbod Date: Sun Jun 29 18:30:14 2008 +0000 Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font - + 2008-06-29 Behdad Esfahbod - - Bug 540592 – Crash in HB_GSUB_Apply_String with - Linux-Libertine font - - * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): - Fix reverse + + Bug 540592 – Crash in HB_GSUB_Apply_String with Linux-Libertine font + + * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Fix reverse loops for type 8 lookups. src/harfbuzz-gsub.c | 2 +- @@ -100127,8 +97629,7 @@ Date: Mon Feb 18 21:14:23 2008 -0500 [hb-ot-layout] Add proper namespace to accessors - src/hb-ot-layout.cc | 165 - ++++++++++++++++++++++++++++++++++++++-------------- + src/hb-ot-layout.cc | 165 ++++++++++++++++++++++++++++++++++++++-------------- src/hb-ot-layout.h | 115 +++++++++++++++++++++++------------- 2 files changed, 198 insertions(+), 82 deletions(-) @@ -100148,8 +97649,7 @@ Date: Mon Jan 28 07:40:10 2008 -0500 Finish script, language, and feature public API src/hb-ot-layout-open-private.h | 22 ++++++--- - src/hb-ot-layout.cc | 107 - +++++++++++++++++++++++++++++++--------- + src/hb-ot-layout.cc | 107 +++++++++++++++++++++++++++++++--------- src/hb-ot-layout.h | 34 ++++++++++++- 3 files changed, 132 insertions(+), 31 deletions(-) @@ -100160,8 +97660,7 @@ Date: Mon Jan 28 05:58:50 2008 -0500 Add script and language public getter API src/hb-ot-layout-open-private.h | 40 ++++++++----- - src/hb-ot-layout.cc | 127 - +++++++++++++++++++++++++++++++++++++++- + src/hb-ot-layout.cc | 127 +++++++++++++++++++++++++++++++++++++++- src/hb-ot-layout.h | 56 ++++++++++++++++++ src/main.cc | 2 +- 4 files changed, 207 insertions(+), 18 deletions(-) @@ -100172,8 +97671,7 @@ Date: Mon Jan 28 02:30:48 2008 -0500 Make main.cc compile again, which means finished getter API - src/hb-ot-layout-open-private.h | 117 - +++++++++++++++++++++++++++++----------- + src/hb-ot-layout-open-private.h | 117 +++++++++++++++++++++++++++++----------- src/main.cc | 99 +++++++++++++++++++++++----------- 2 files changed, 155 insertions(+), 61 deletions(-) @@ -100218,8 +97716,7 @@ Date: Thu Jan 24 19:38:56 2008 -0500 [GDEF] Finish internal API src/hb-ot-layout-private.h | 15 +++++++- - src/hb-ot-layout.cc | 95 - ++++++++++++++++++++++------------------------ + src/hb-ot-layout.cc | 95 ++++++++++++++++++++++------------------------ src/hb-ot-layout.h | 16 ++++---- 3 files changed, 66 insertions(+), 60 deletions(-) @@ -100233,8 +97730,7 @@ Date: Thu Jan 24 19:13:50 2008 -0500 src/hb-ot-layout-gdef-private.h | 28 +++++---- src/hb-ot-layout-open-private.h | 25 ++++---- src/hb-ot-layout-private.h | 23 ++------ - src/hb-ot-layout.cc | 123 - +++++++++++++++++++++++++++++++++++++--- + src/hb-ot-layout.cc | 123 +++++++++++++++++++++++++++++++++++++--- src/hb-ot-layout.h | 29 ++++++---- 6 files changed, 176 insertions(+), 63 deletions(-) @@ -100246,8 +97742,7 @@ Date: Thu Jan 24 06:03:45 2008 -0500 src/hb-ot-layout-gdef-private.h | 10 ++++- src/hb-ot-layout-private.h | 16 +++++++- - src/hb-ot-layout.cc | 84 - +++++++++++++++++++++++++++++++++++++---- + src/hb-ot-layout.cc | 84 +++++++++++++++++++++++++++++++++++++---- src/hb-ot-layout.h | 25 ++++++++---- 4 files changed, 117 insertions(+), 18 deletions(-) @@ -100272,8 +97767,7 @@ Date: Thu Jan 24 03:11:09 2008 -0500 src/{Makefile => Makefile.ng} | 0 src/hb-ot-layout-gdef-private.h | 17 ++++---- src/hb-ot-layout-gsub-private.h | 3 +- - src/hb-ot-layout-open-private.h | 92 - +++++++++++++++++++++++++++++------------ + src/hb-ot-layout-open-private.h | 92 +++++++++++++++++++++++++++++------------ src/hb-ot-layout-private.h | 51 +++++++++++++++++++++++ src/hb-ot-layout.cc | 67 ++++++++++++++++++++++++++++++ src/hb-ot-layout.h | 35 ++++++++++++++-- @@ -100297,8 +97791,7 @@ Date: Wed Jan 23 18:02:28 2008 -0500 src/hb-ot-layout-gdef-private.h | 37 +++++++++++++++++++++++++------ src/hb-ot-layout-gsub-private.h | 13 +++++++++++ - src/hb-ot-layout-open-private.h | 49 - ++++++++++++++++++++++++++++++++++------- + src/hb-ot-layout-open-private.h | 49 ++++++++++++++++++++++++++++++++++------- src/hb-private.h | 2 ++ 4 files changed, 86 insertions(+), 15 deletions(-) @@ -100320,8 +97813,7 @@ Date: Wed Jan 23 17:01:55 2008 -0500 Initial gsub stub src/hb-ot-layout-gdef-private.h | 4 + - src/hb-ot-layout-gsub-private.h | 453 - ++++++++++++++++++++++++++++++++++++++++ + src/hb-ot-layout-gsub-private.h | 453 ++++++++++++++++++++++++++++++++++++++++ src/hb-ot-layout-open-private.h | 3 + src/main.cc | 1 + 4 files changed, 461 insertions(+) @@ -100346,8 +97838,7 @@ Date: Wed Jan 23 15:50:38 2008 -0500 Minor cleanup, add LIKELY and UNLIKELY annotations - src/hb-ot-layout-gdef-private.h | 63 - +++++++++++++++++++++++------------------ + src/hb-ot-layout-gdef-private.h | 63 +++++++++++++++++++++++------------------ src/hb-ot-layout-open-private.h | 36 ++++++++--------------- src/hb-private.h | 15 ++++++++++ 3 files changed, 63 insertions(+), 51 deletions(-) @@ -100358,17 +97849,12 @@ Date: Wed Jan 23 05:00:30 2008 -0500 Clean up file names, add namespace - src/harfbuzz-common.h | 14 - -------------- - src/harfbuzz-gdef.h | 11 - ----------- - src/hb-common.h | 14 - ++++++++++++++ + src/harfbuzz-common.h | 14 -------------- + src/harfbuzz-gdef.h | 11 ----------- + src/hb-common.h | 14 ++++++++++++++ ...harfbuzz-gdef-private.h => hb-ot-layout-gdef-private.h} | 8 ++++---- - ...harfbuzz-open-private.h => hb-ot-layout-open-private.h} | 10 - +++++----- - src/{harfbuzz-open.h => hb-ot-layout.h} | 12 - ++++++------ + ...harfbuzz-open-private.h => hb-ot-layout-open-private.h} | 10 +++++----- + src/{harfbuzz-open.h => hb-ot-layout.h} | 12 ++++++------ src/{harfbuzz-private.h => hb-private.h} | 6 +++--- src/main.cc | 4 ++-- 8 files changed, 34 insertions(+), 45 deletions(-) @@ -100380,8 +97866,7 @@ Date: Wed Jan 23 04:36:40 2008 -0500 Make all code NULL-free and assert-free src/harfbuzz-gdef-private.h | 125 ++++++++++--------- - src/harfbuzz-open-private.h | 285 - +++++++++++++++++++++++--------------------- + src/harfbuzz-open-private.h | 285 +++++++++++++++++++++++--------------------- src/main.cc | 8 +- 3 files changed, 214 insertions(+), 204 deletions(-) @@ -100392,8 +97877,7 @@ Date: Wed Jan 23 02:01:37 2008 -0500 Define get_for_data() factories src/harfbuzz-gdef-private.h | 3 +++ - src/harfbuzz-open-private.h | 42 - +++++++++++++++++++++++++++++------------- + src/harfbuzz-open-private.h | 42 +++++++++++++++++++++++++++++------------- src/main.cc | 10 ++++------ 3 files changed, 36 insertions(+), 19 deletions(-) @@ -100403,8 +97887,7 @@ Date: Wed Jan 23 01:38:10 2008 -0500 Finish and test GDEF - src/harfbuzz-gdef-private.h | 72 - ++++++++++++++++++++++++++++++++------------- + src/harfbuzz-gdef-private.h | 72 ++++++++++++++++++++++++++++++++------------- src/harfbuzz-open-private.h | 23 ++++++++------- src/harfbuzz-open.h | 4 +++ src/main.cc | 10 +++++++ @@ -100418,8 +97901,7 @@ Date: Wed Jan 23 00:20:48 2008 -0500 src/Makefile | 10 ++++- src/harfbuzz-gdef-private.h | 65 +++++++++++++++++++++------- - src/harfbuzz-open-private.h | 102 - ++++++++++++++++++++++++++++++++++++++++---- + src/harfbuzz-open-private.h | 102 ++++++++++++++++++++++++++++++++++++++++---- src/harfbuzz-private.h | 6 +++ src/main.cc | 12 +++--- 5 files changed, 163 insertions(+), 32 deletions(-) @@ -100429,11 +97911,10 @@ Author: Behdad Esfahbod Date: Wed Jan 16 20:39:29 2008 +0000 Remove COPYING.GPL and COPYING.FTL that are no longer there. - + 2008-01-16 Behdad Esfahbod - - * pango/opentype/Makefile.am: Remove COPYING.GPL and - COPYING.FTL that + + * pango/opentype/Makefile.am: Remove COPYING.GPL and COPYING.FTL that are no longer there. src/Makefile.am | 2 -- @@ -100443,22 +97924,18 @@ commit a2a9a023f6472ba262f89e5327318996b8258d25 Author: Behdad Esfahbod Date: Tue Jan 15 22:46:32 2008 +0000 - HarfBuzz was relicensed to a more generous and simpler - license. Adapt. See - + HarfBuzz was relicensed to a more generous and simpler license. Adapt. See + 2008-01-15 Behdad Esfahbod - + * pango/opentype/*: - HarfBuzz was relicensed to a more generous and simpler - license. - Adapt. See pango/opentype/COPYING for the new license - which is + HarfBuzz was relicensed to a more generous and simpler license. + Adapt. See pango/opentype/COPYING for the new license which is LGPL-compatible. src/COPYING | 39 +++-- src/COPYING.FTL | 174 --------------------- - src/COPYING.GPL | 340 - ------------------------------------------ + src/COPYING.GPL | 340 ------------------------------------------ src/harfbuzz-buffer-private.h | 32 ++-- src/harfbuzz-buffer.c | 27 +++- src/harfbuzz-buffer.h | 32 ++-- @@ -100491,12 +97968,12 @@ Author: Behdad Esfahbod Date: Wed Dec 5 03:41:29 2007 +0000 Bug 501575 – Compile errors Patch from Jens Granseuer - + 2007-12-04 Behdad Esfahbod - + Bug 501575 – Compile errors Patch from Jens Granseuer - + * pango/opentype/harfbuzz-stream.c (_hb_font_goto_table): * pango/pango-utils.c (handle_alias_line): Fix C99ism. @@ -100518,14 +97995,14 @@ Author: Behdad Esfahbod Date: Fri Nov 30 04:29:58 2007 +0000 Bug 485536 – underline_position can be zero - + 2007-11-29 Behdad Esfahbod - + Bug 485536 – underline_position can be zero - + * pango/pango-utils.c (pango_cairo_quantize_line_geometry): Document that returned position may be zero. - + * pango/pangocairo-win32font.c (pango_cairo_win32_font_create_metrics_for_context): * pango/pangofc-font.c (get_face_metrics): @@ -100539,9 +98016,9 @@ Author: Behdad Esfahbod Date: Sat Nov 24 01:40:13 2007 +0000 Remove unused macro. - + 2007-11-23 Behdad Esfahbod - + * pango/opentype/harfbuzz-impl.c: Remove unused macro. src/harfbuzz-impl.c | 18 ------------------ @@ -100554,8 +98031,7 @@ Date: Sun Nov 18 22:34:08 2007 +0000 Minor src/harfbuzz-dump-main.c | 4 +-- - src/harfbuzz-stream.c | 89 - ++++++++++++++++++++++++------------------------ + src/harfbuzz-stream.c | 89 ++++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 47 deletions(-) commit 10d6a25a26bdbab4ece4edf0e34ffd3d22410ebe @@ -100564,8 +98040,7 @@ Date: Wed Nov 7 10:04:11 2007 +0000 Remove dead code. - src/harfbuzz-gdef.c | 88 - ----------------------------------------------------- + src/harfbuzz-gdef.c | 88 ----------------------------------------------------- src/harfbuzz-gpos.h | 4 +-- 2 files changed, 1 insertion(+), 91 deletions(-) @@ -100574,9 +98049,9 @@ Author: Behdad Esfahbod Date: Wed Nov 7 09:59:18 2007 +0000 And some more. - + 2007-11-07 Behdad Esfahbod - + * pango/opentype/*: And some more. src/harfbuzz-buffer.h | 8 ++--- @@ -100584,8 +98059,7 @@ Date: Wed Nov 7 09:59:18 2007 +0000 src/harfbuzz-gdef.c | 14 ++++---- src/harfbuzz-gdef.h | 4 +-- src/harfbuzz-global.h | 21 +++++------ - src/harfbuzz-gpos.c | 82 - +++++++++++++++++++++---------------------- + src/harfbuzz-gpos.c | 82 +++++++++++++++++++++---------------------- src/harfbuzz-gpos.h | 12 +++---- src/harfbuzz-gsub.c | 4 +-- src/harfbuzz-gsub.h | 4 +-- @@ -100598,9 +98072,9 @@ Author: Behdad Esfahbod Date: Wed Nov 7 08:06:01 2007 +0000 Some more cleanup and merging. - + 2007-11-07 Behdad Esfahbod - + * pango/opentype/*: Some more cleanup and merging. src/Makefile.am | 6 +- @@ -100614,13 +98088,11 @@ Date: Wed Nov 7 08:06:01 2007 +0000 src/harfbuzz-gpos.c | 32 +----- src/harfbuzz-gsub-private.h | 1 + src/harfbuzz-gsub.c | 33 +----- - src/harfbuzz-impl.c | 216 - ++------------------------------------ + src/harfbuzz-impl.c | 216 ++------------------------------------ src/harfbuzz-impl.h | 100 +----------------- src/harfbuzz-open-private.h | 4 +- src/harfbuzz-stream-private.h | 70 +++++++++++++ - src/harfbuzz-stream.c | 234 - ++++++++++++++++++++++++++++++++++++++++++ + src/harfbuzz-stream.c | 234 ++++++++++++++++++++++++++++++++++++++++++ src/harfbuzz.c | 1 + src/harfbuzz.h | 3 +- 18 files changed, 419 insertions(+), 372 deletions(-) @@ -100639,9 +98111,9 @@ Author: Behdad Esfahbod Date: Thu Oct 25 23:37:11 2007 +0000 Even more cleanup and more type renames. - + 2007-10-25 Behdad Esfahbod - + * pango/opentype/*: Even more cleanup and more type renames. src/harfbuzz-buffer.h | 3 +-- @@ -100656,19 +98128,17 @@ Author: Behdad Esfahbod Date: Thu Oct 25 23:22:17 2007 +0000 More cleanup, remove redundant error types. - + 2007-10-25 Behdad Esfahbod - - * pango/opentype/*: More cleanup, remove redundant error - types. + + * pango/opentype/*: More cleanup, remove redundant error types. src/harfbuzz-dump-main.c | 4 +- src/harfbuzz-dump.c | 14 +++--- src/harfbuzz-gdef.c | 25 +++++----- src/harfbuzz-gdef.h | 3 -- src/harfbuzz-global.h | 31 ++++++------ - src/harfbuzz-gpos.c | 124 - +++++++++++++++++++++++------------------------ + src/harfbuzz-gpos.c | 124 +++++++++++++++++++++++------------------------ src/harfbuzz-gpos.h | 3 -- src/harfbuzz-gsub.c | 86 ++++++++++++++++---------------- src/harfbuzz-gsub.h | 3 -- @@ -100682,18 +98152,15 @@ commit 4280ec4df45ae86c10c3cd24ddb9c05e47223d39 Author: Behdad Esfahbod Date: Thu Oct 25 00:23:46 2007 +0000 - Rename ftglue.c to harfbuzz-impl.c and more type renames and - moving code - + Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code + 2007-10-24 Behdad Esfahbod - - * pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c - and more + + * pango/opentype/*: Rename ftglue.c to harfbuzz-impl.c and more type renames and moving code around. src/Makefile.am | 3 +- - src/ftglue.h | 151 - -------------------------------------- + src/ftglue.h | 151 -------------------------------------- src/harfbuzz-dump-main.c | 48 ++---------- src/harfbuzz-dump.c | 30 ++++---- src/harfbuzz-gdef.c | 18 ++--- @@ -100714,11 +98181,10 @@ commit 5716ae278a82d318ddbfeba01d0785d4efbe1454 Author: Behdad Esfahbod Date: Wed Oct 24 22:44:47 2007 +0000 - New header file harfbuzz-global.h. Rename FT_* int types to HB_* - types. - + New header file harfbuzz-global.h. Rename FT_* int types to HB_* types. + 2007-10-24 Behdad Esfahbod - + * pango/opentype/*: New header file harfbuzz-global.h. Rename FT_* int types to HB_* types. @@ -100736,8 +98202,7 @@ Date: Wed Oct 24 22:44:47 2007 +0000 src/harfbuzz-gdef.h | 32 +-- src/harfbuzz-global.h | 34 +++ src/harfbuzz-gpos-private.h | 182 +++++++------- - src/harfbuzz-gpos.c | 540 - +++++++++++++++++++++--------------------- + src/harfbuzz-gpos.c | 540 +++++++++++++++++++++--------------------- src/harfbuzz-gpos.h | 52 ++-- src/harfbuzz-gsub-private.h | 142 +++++------ src/harfbuzz-gsub.c | 432 ++++++++++++++++----------------- @@ -100754,9 +98219,9 @@ Author: Behdad Esfahbod Date: Wed Oct 24 21:35:03 2007 +0000 Add commented-out dummy struct for Extension lookups. - + 2007-10-24 Behdad Esfahbod - + * pango/opentype/harfbuzz-gpos-private.h: * pango/opentype/harfbuzz-gsub-private.h: Add commented-out dummy struct for Extension lookups. @@ -100770,15 +98235,14 @@ Author: Behdad Esfahbod Date: Sun Oct 21 18:17:02 2007 +0000 Bug 488840 – harfbuzz: protect against ligid overflow - + 2007-10-21 Behdad Esfahbod - + Bug 488840 – harfbuzz: protect against ligid overflow - - * pango/opentype/harfbuzz-buffer.c - (_hb_buffer_allocate_ligid): + + * pango/opentype/harfbuzz-buffer.c (_hb_buffer_allocate_ligid): Never return zero, even in case of overflow. - + * pango/opentype/harfbuzz-impl.h: Define dummy HB_LIKELY() and HB_UNLIKELY(), to be filled later. @@ -100791,20 +98255,19 @@ Author: Behdad Esfahbod Date: Thu Oct 11 08:30:50 2007 +0000 Mark internal symbols as HB_INTERNAL and define that to static in - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/*: Mark internal symbols as HB_INTERNAL and define that to static in harfbuzz.c. - + * pango/opentype/harfbuzz-buffer-internal.h: New file. src/Makefile.am | 1 + src/ftglue.c | 18 +++---- src/ftglue.h | 20 ++++---- src/harfbuzz-buffer-private.h | 60 +++++++++++++++++++++++ - src/harfbuzz-buffer.c | 108 - +++++++++++++++++++++------------------- + src/harfbuzz-buffer.c | 108 +++++++++++++++++++++------------------- src/harfbuzz-buffer.h | 38 +-------------- src/harfbuzz-gdef-private.h | 17 ++++--- src/harfbuzz-gdef.c | 20 ++++---- @@ -100814,8 +98277,7 @@ Date: Thu Oct 11 08:30:50 2007 +0000 src/harfbuzz-gsub.c | 20 ++++---- src/harfbuzz-impl.h | 12 +++-- src/harfbuzz-open-private.h | 81 +++++++++++++++++------------- - src/harfbuzz-open.c | 111 - ++++++++++++++++++++++++------------------ + src/harfbuzz-open.c | 111 ++++++++++++++++++++++++------------------ src/harfbuzz.c | 1 + 16 files changed, 315 insertions(+), 235 deletions(-) @@ -100824,9 +98286,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 07:46:33 2007 +0000 Remove FTGLUE_API/APIDEF cruft. - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/ftglue.[ch]: Remove FTGLUE_API/APIDEF cruft. src/ftglue.c | 16 ++++++++-------- @@ -100837,13 +98299,11 @@ commit 61ddbafaaad31ccacde54cad7e60a84abffc0a9f Author: Behdad Esfahbod Date: Thu Oct 11 07:45:26 2007 +0000 - Build harfbuzz.c instead of individual source files, to let - compiler go - + Build harfbuzz.c instead of individual source files, to let compiler go + 2007-10-11 Behdad Esfahbod - - * pango/opentype/Makefile.am: Build harfbuzz.c instead - of individual + + * pango/opentype/Makefile.am: Build harfbuzz.c instead of individual source files, to let compiler go wild with optimizations! src/Makefile.am | 9 +++++---- @@ -100854,9 +98314,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 07:34:08 2007 +0000 Same here. - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/harfbuzz.c: Same here. src/harfbuzz.c | 1 - @@ -100866,13 +98326,11 @@ commit 6567e16e3b14c08659342bbcc9f2735e71f9114e Author: Behdad Esfahbod Date: Thu Oct 11 07:33:19 2007 +0000 - Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just - used by - + Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by + 2007-10-11 Behdad Esfahbod - - * pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch] - in + + * pango/opentype/Makefile.am: Don't include harfbuzz-dump.[ch] in libharfbuzz.a. Those are just used by the harfbuzz-dump tool. src/Makefile.am | 4 ++-- @@ -100883,9 +98341,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 07:24:47 2007 +0000 Some more cleanup. - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/harfbuzz-buffer.c: Some more cleanup. src/harfbuzz-buffer.c | 11 ++--------- @@ -100896,13 +98354,12 @@ Author: Behdad Esfahbod Date: Thu Oct 11 07:21:31 2007 +0000 Move some code around. - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/harfbuzz-buffer.c: Move some code around. - src/harfbuzz-buffer.c | 91 - +++++++++++++++++++++++++++------------------------ + src/harfbuzz-buffer.c | 91 +++++++++++++++++++++++++++------------------------ 1 file changed, 48 insertions(+), 43 deletions(-) commit 7a5405c8261573a0f29d28fb533e800d698f6129 @@ -100918,15 +98375,12 @@ commit 986f4fd96892ebda550793941bb1daed862c4a34 Author: Behdad Esfahbod Date: Thu Oct 11 07:12:49 2007 +0000 - Rename buffer->inplace to buffer->separate_out with the inverted - meaning, - + Rename buffer->inplace to buffer->separate_out with the inverted meaning, + 2007-10-11 Behdad Esfahbod - - * pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace - to - buffer->separate_out with the inverted meaning, such that - buffer + + * pango/opentype/harfbuzz-buffer.[ch]: Rename buffer->inplace to + buffer->separate_out with the inverted meaning, such that buffer is initialization is memset(0). src/harfbuzz-buffer.c | 34 +++++++++++++++++----------------- @@ -100938,9 +98392,9 @@ Author: Behdad Esfahbod Date: Thu Oct 11 07:05:09 2007 +0000 Allocate buffer->positions lazily. - + 2007-10-11 Behdad Esfahbod - + * pango/opentype/*: Allocate buffer->positions lazily. src/harfbuzz-buffer.c | 25 +++++++++++++++++++++++-- @@ -100954,15 +98408,14 @@ Author: Behdad Esfahbod Date: Thu Oct 11 06:52:07 2007 +0000 Bug 485621 – Get rid of freetype memory allocator in harfbuzz - + 2007-10-11 Behdad Esfahbod - - Bug 485621 – Get rid of freetype memory allocator in - harfbuzz - + + Bug 485621 – Get rid of freetype memory allocator in harfbuzz + * pango/opentype/*: Remove all occurences of FT_Memory. Use malloc/realloc/free directly. - + * pango/pango-ot*: Update to above. src/ftglue.c | 52 ++--- @@ -100972,8 +98425,7 @@ Date: Thu Oct 11 06:52:07 2007 +0000 src/harfbuzz-gdef.c | 106 ++++------ src/harfbuzz-gdef.h | 6 +- src/harfbuzz-gpos-private.h | 1 - - src/harfbuzz-gpos.c | 462 - ++++++++++++++++++-------------------------- + src/harfbuzz-gpos.c | 462 ++++++++++++++++++-------------------------- src/harfbuzz-gpos.h | 2 - src/harfbuzz-gsub-private.h | 1 - src/harfbuzz-gsub.c | 312 +++++++++++------------------- @@ -100987,22 +98439,22 @@ Author: Behdad Esfahbod Date: Thu Oct 11 00:07:58 2007 +0000 Bug 485559 – Boston Summit HarfBuzz optimizations - + 2007-10-10 Behdad Esfahbod - + Bug 485559 – Boston Summit HarfBuzz optimizations - + * pango/opentype/*: HarfBuzz hacking to: - + - Rename last remaining FT_Err stuff to HB_Err. - + - Fix a couple invalid table paths to be permissive so fonts work better. Particularly GDEF table for Nafees Nastaliq is loaded and works great now. - + - Optimize harfbuzz buffer to not copy/swap for simple one-to-one and "copy" GSUB operations. - + * pango/pango-ot*: Update to FT_Err to HB_Err renaming. src/ftglue.c | 51 ++- @@ -101018,8 +98470,7 @@ Date: Thu Oct 11 00:07:58 2007 +0000 src/harfbuzz-gpos.c | 810 ++++++++++++++++++-------------------- src/harfbuzz-gpos.h | 30 +- src/harfbuzz-gsub-private.h | 2 +- - src/harfbuzz-gsub.c | 919 - +++++++++++++++++++------------------------- + src/harfbuzz-gsub.c | 919 +++++++++++++++++++------------------------- src/harfbuzz-gsub.h | 24 +- src/harfbuzz-impl.h | 22 +- src/harfbuzz-open-private.h | 20 +- @@ -101031,17 +98482,14 @@ commit dd810b76bc554278d3a226cf89901d16992cf56d Author: Behdad Esfahbod Date: Wed Aug 29 08:46:50 2007 +0000 - Bug 302952 – The placement of a diacritic marks for an arabic - ligature - + Bug 302952 – The placement of a diacritic marks for an arabic ligature + 2007-08-29 Behdad Esfahbod - - Bug 302952 – The placement of a diacritic marks for an - arabic ligature + + Bug 302952 – The placement of a diacritic marks for an arabic ligature is not correct - - * pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid): - Don't + + * pango/opentype/harfbuzz-buffer.c (hb_buffer_allocate_ligid): Don't use zero as allocated ligature id. Zero means no ligature id. src/harfbuzz-buffer.c | 2 +- @@ -101052,11 +98500,11 @@ Author: Behdad Esfahbod Date: Tue Aug 21 08:03:26 2007 +0000 Bug 463430 – Gets stuck while "formatting message" - + 2007-08-21 Behdad Esfahbod - + Bug 463430 – Gets stuck while "formatting message" - + * pango/opentype/harfbuzz-gpos.c (Lookup_PairPos1), (Lookup_PairPos2), (Lookup_PairPos), (Do_ContextPos): * pango/opentype/harfbuzz-gsub.c (Do_ContextSubst): @@ -101071,15 +98519,12 @@ commit 13b86ee398905f96f57df001309312f6dfdfea9a Author: Behdad Esfahbod Date: Tue Aug 21 01:38:07 2007 +0000 - Don't ignore error return value of - hb_buffer_copy_output_glyph(). Patch - + Don't ignore error return value of hb_buffer_copy_output_glyph(). Patch + 2007-08-20 Behdad Esfahbod - - * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): - Don't - ignore error return value of hb_buffer_copy_output_glyph(). - Patch + + * pango/opentype/harfbuzz-gsub.c (GSUB_Do_String_Lookup): Don't + ignore error return value of hb_buffer_copy_output_glyph(). Patch sent to harfbuzz-list. src/harfbuzz-gsub.c | 2 +- @@ -101091,8 +98536,7 @@ Date: Fri Jul 6 11:29:21 2007 -0400 [gdef] Initial implementation - src/harfbuzz-gdef-private.h | 144 - +++++++++++++++++++++++++++++++++++++++++++- + src/harfbuzz-gdef-private.h | 144 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 2 deletions(-) commit 5b2e947fd2b7c5ea49b2bef1e0190d99a525058c @@ -101101,8 +98545,7 @@ Date: Fri Jul 6 02:03:26 2007 -0400 [open] small fixes, including not using unions for main structs - src/harfbuzz-open-private.h | 54 - ++++++++++++++++++++++++--------------------- + src/harfbuzz-open-private.h | 54 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 25 deletions(-) commit 151df44346990728b5dd249db5740a9543ae33b9 @@ -101119,11 +98562,10 @@ Author: Behdad Esfahbod Date: Tue May 1 02:32:12 2007 +0000 Link freetype to harfbuzz-dump, for those systems that don't track - + 2007-04-30 Behdad Esfahbod - - * pango/opentype/Makefile.am: Link freetype to harfbuzz-dump, - for + + * pango/opentype/Makefile.am: Link freetype to harfbuzz-dump, for those systems that don't track dependencies automatically. src/Makefile.am | 5 +++-- @@ -101134,9 +98576,9 @@ Author: Behdad Esfahbod Date: Tue Apr 3 22:45:29 2007 +0000 Copy fixes from harfbuzz stable branch. Includes a leak fix, a kerning - + 2007-04-03 Behdad Esfahbod - + * pango/opentype/harfbuzz-gdef.c (_HB_GDEF_Check_Property): * pango/opentype/harfbuzz-gpos.c (HB_Done_GPOS_Table), (Lookup_PairPos): @@ -101154,9 +98596,9 @@ Author: Hans Breuer Date: Sat Jan 13 21:31:41 2007 +0000 updated - + 2007-01-13 Hans Breuer - + * pango/makefile.msc pango/opentype/makefile.msc : updated src/makefile.msc | 16 ++++++---------- @@ -101211,11 +98653,9 @@ Date: Thu Dec 28 06:10:59 2006 -0500 src/.gitignore | 1 + src/Makefile | 2 +- src/harfbuzz-common.h | 14 +++ - src/{harfbuzz-ng.cc => harfbuzz-open-private.h} | 117 - ++---------------------- + src/{harfbuzz-ng.cc => harfbuzz-open-private.h} | 117 ++---------------------- src/harfbuzz-open.h | 13 +++ - src/main.cc | 98 - ++++++++++++++++++++ + src/main.cc | 98 ++++++++++++++++++++ 6 files changed, 133 insertions(+), 112 deletions(-) commit 3158d84b0dfe5032e7c56c03f2da97b8ab549d94 @@ -101269,8 +98709,7 @@ Date: Wed Dec 27 01:29:24 2006 -0500 GSUBGPOSHeader - src/harfbuzz-ng.cc | 103 - ++++++++++++++++++++++++++++++++++++++++++++++++++--- + src/harfbuzz-ng.cc | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 98 insertions(+), 5 deletions(-) commit eebabd8b2ec5296deba6b09d7755933da0a7d9dc @@ -101297,8 +98736,7 @@ Date: Tue Dec 26 20:00:33 2006 -0500 ClassDef - src/harfbuzz-ng.cc | 121 - ++++++++++++++++++++++++++++++++++++++++++----------- + src/harfbuzz-ng.cc | 121 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 97 insertions(+), 24 deletions(-) commit 53502c6723dbf9cd3b6ba91b733678b3c7871715 @@ -101334,8 +98772,7 @@ Date: Tue Dec 26 15:29:38 2006 -0500 Coverage. - src/harfbuzz-ng.cc | 91 - +++++++++++++++++++++++++++++++++++++++++++++++------- + src/harfbuzz-ng.cc | 91 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 12 deletions(-) commit 882e52f59196535495af8ca8069df32308ad52cf @@ -101354,8 +98791,7 @@ Date: Mon Dec 25 09:58:02 2006 -0500 LookupFlags - src/hb-types-private.cc | 52 - ++++++++++++++++++++++++++++++++++++++++++++----- + src/hb-types-private.cc | 52 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 5 deletions(-) commit 25ad92c8a68bf72464601a644ed57b9213126a78 @@ -101364,8 +98800,7 @@ Date: Mon Dec 25 09:35:06 2006 -0500 Implement Feature - src/hb-types-private.cc | 46 - ++++++++++++++++++++++++++++++++++++++++++---- + src/hb-types-private.cc | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) commit befc022affd2386b3f46cd7d11e4262f6c8bce9f @@ -101374,8 +98809,7 @@ Date: Mon Dec 25 09:14:52 2006 -0500 LangSys - src/hb-types-private.cc | 51 - ++++++++++++++++++++++++++++++++++++++++++------- + src/hb-types-private.cc | 51 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 7 deletions(-) commit c81efca149b08832d5d96a944fb5f303f3d0ca42 @@ -101393,8 +98827,7 @@ Date: Mon Dec 25 06:18:52 2006 -0500 Make types not instantiable - src/hb-types-private.cc | 104 - ++++++++++++++++++++++++++---------------------- + src/hb-types-private.cc | 104 ++++++++++++++++++++++++++---------------------- 1 file changed, 57 insertions(+), 47 deletions(-) commit b739c05ca4b7acfa45bd4b0812ecbb3747f726f0 @@ -101404,8 +98837,7 @@ Date: Mon Dec 25 05:39:20 2006 -0500 Add OpenTypeFontFile. src/Makefile | 2 +- - src/hb-types-private.cc | 113 - +++++++++++++++++++++++++++++++++++++++++++++--- + src/hb-types-private.cc | 113 +++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 107 insertions(+), 8 deletions(-) commit 8596944b7421f982960e825019fc0263442520cb @@ -101423,8 +98855,7 @@ Date: Fri Dec 22 02:21:55 2006 -0500 After DEFINE_SCRIPT_ARRAY - src/hb-types-private.cc | 215 - +++++++++++++++++++++++++++++++----------------- + src/hb-types-private.cc | 215 +++++++++++++++++++++++++++++++----------------- 1 file changed, 140 insertions(+), 75 deletions(-) commit 01e4fcb032be601f272e62228881e2aabfb9d925 @@ -101433,20 +98864,17 @@ Date: Thu Dec 21 22:31:31 2006 -0500 Remove the annoying HB_ prefix. - src/hb-types-private.cc | 107 - +++++++++++++++++++++++------------------------- + src/hb-types-private.cc | 107 +++++++++++++++++++++++------------------------- 1 file changed, 52 insertions(+), 55 deletions(-) commit 6b4ce01da121e12e1c78ad7eaedf469f35f3568d Author: Behdad Esfahbod Date: Thu Dec 21 22:31:10 2006 -0500 - Second version. Complete redesign, based on C++ classes to ensure - endian + Second version. Complete redesign, based on C++ classes to ensure endian correctness. - src/hb-types-private.cc | 300 - +++++++++++++++++++++++++++++++++--------------- + src/hb-types-private.cc | 300 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 205 insertions(+), 95 deletions(-) commit f78e70c301311ffcfb007c7fc4125d71cbcff1e2 @@ -101455,8 +98883,7 @@ Date: Thu Dec 21 22:30:38 2006 -0500 First version. - src/hb-types-private.cc | 116 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/hb-types-private.cc | 116 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) commit f726b20e56e8b1106dfde0bf8d575c73e83957c4 @@ -101464,13 +98891,12 @@ Author: Behdad Esfahbod Date: Tue Jul 25 01:02:27 2006 +0000 Bug 347073 – Allow empty GPOS table - + 2006-07-24 Behdad Esfahbod - + Bug 347073 – Allow empty GPOS table - - * pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList): - Don't + + * pango/opentype/harfbuzz-open.c (_HB_OPEN_Load_ScriptList): Don't err on empty GPOS/GSUB tables. src/harfbuzz-open.c | 5 +++++ @@ -101481,13 +98907,12 @@ Author: Behdad Esfahbod Date: Thu Jun 22 18:09:04 2006 +0000 Bug 345600 – cvs build error in pango/opentype/Makefile - + 2006-06-22 Behdad Esfahbod - + Bug 345600 – cvs build error in pango/opentype/Makefile - - * pango/opentype/Makefile.am: Rename variable SOURCES to - MAINSOURCES. + + * pango/opentype/Makefile.am: Rename variable SOURCES to MAINSOURCES. Some automake versions seem to use it or something. src/Makefile.am | 4 ++-- @@ -101497,18 +98922,15 @@ commit ffb2d5c1e7af33644d0a4058befa4b8358c9a7bf Author: Behdad Esfahbod Date: Wed May 31 07:42:55 2006 +0000 - Bug 341138 – Using TTC font, Gtk2 programs begin to eating big - memory - + Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory + 2006-05-31 Behdad Esfahbod - - Bug 341138 – Using TTC font, Gtk2 programs begin to eating - big memory + + Bug 341138 – Using TTC font, Gtk2 programs begin to eating big memory and have many cpu usage. Patch from Yong Li. - - * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): - TrueType table + + * pango/opentype/ftglue.c (_hb_ftglue_face_goto_table): TrueType table offsets are absolute, not relative. src/ftglue.c | 2 +- @@ -101518,18 +98940,15 @@ commit f8f7bd2451eeafb57f5c80c7b4e88a1e50b97c4f Author: Behdad Esfahbod Date: Wed May 31 07:23:02 2006 +0000 - Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't - correct when - + Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when + 2006-05-31 Behdad Esfahbod - - Bug 336153 – Mark to mark positioning (Lookup Type 6) - isn't correct + + Bug 336153 – Mark to mark positioning (Lookup Type 6) isn't correct when using MarkAttchmentType Patch from Tin Myo Htet. - - * pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos): - Ignore marks + + * pango/opentype/harfbuzz-gpos.c (Lookup_MarkMarkPos): Ignore marks of non-matchin attachment type. src/harfbuzz-gpos.c | 37 ++++++++++++++++++++++--------------- @@ -101540,11 +98959,10 @@ Author: Behdad Esfahbod Date: Wed Apr 12 18:47:50 2006 +0000 Fix loop variables. (coverity found bug.) - + 2006-04-12 Behdad Esfahbod - - * pango/opentype/harfbuzz-gpos.c: Fix loop - variables. (coverity + + * pango/opentype/harfbuzz-gpos.c: Fix loop variables. (coverity found bug.) src/harfbuzz-gpos.c | 6 +++--- @@ -101555,18 +98973,16 @@ Author: Behdad Esfahbod Date: Tue Apr 11 08:31:44 2006 +0000 Bug 337924 – cleanups for issues reported by various compilers Patch - + 2006-04-11 Behdad Esfahbod - - Bug 337924 – cleanups for issues reported by various - compilers + + Bug 337924 – cleanups for issues reported by various compilers Patch from Kjartan Maraas. - + * examples/viewer-x.c (update): * modules/arabic/arabic-fc.c (fallback_shape), (arabic_engine_shape): - * modules/basic/basic-fc.c (fallback_shape), - (basic_engine_shape): + * modules/basic/basic-fc.c (fallback_shape), (basic_engine_shape): * modules/basic/basic-x.c: * modules/hangul/hangul-fc.c: * modules/hebrew/hebrew-fc.c (hebrew_engine_shape): @@ -101587,12 +99003,10 @@ Date: Tue Apr 11 08:31:44 2006 +0000 * pango/pango-utils.c (read_alias_file): * pango/pangocairo-fcfont.c (G_DEFINE_TYPE_WITH_CODE): * pango/pangocairo-fcfontmap.c (G_DEFINE_TYPE_WITH_CODE): - * pango/pangocairo-font.c - (_pango_cairo_font_get_hex_box_info): + * pango/pangocairo-font.c (_pango_cairo_font_get_hex_box_info): * pango/pangox-fontmap.c (pango_x_make_matching_xlfd): * tests/dump-boundaries.c (fail): - Remove unused variables. Remove excess semicolon after - DEFINE_TYPE + Remove unused variables. Remove excess semicolon after DEFINE_TYPE macros. src/ftglue.c | 2 -- @@ -101603,31 +99017,26 @@ Author: Behdad Esfahbod Date: Mon Apr 10 10:33:17 2006 +0000 Fix minor bugs reported by the Coverity scan report. - + 2006-04-10 Behdad Esfahbod - + Fix minor bugs reported by the Coverity scan report. - - * pango/opentype/harfbuzz-gdef.c - (HB_GDEF_Build_ClassDefinition): + + * pango/opentype/harfbuzz-gdef.c (HB_GDEF_Build_ClassDefinition): * pango/opentype/harfbuzz-gpos.c (HB_GPOS_Query_Scripts), - (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do - not access + (HB_GPOS_Query_Languages), (HB_GPOS_Query_Features): Do not access structs before we check them for nullity. - + * pango/pango-layout.c (pango_layout_index_to_line), (pango_layout_index_to_line_and_extents), - (pango_layout_index_to_pos): Check for invalid iterators - outside the + (pango_layout_index_to_pos): Check for invalid iterators outside the loop, so we don't crash. - + * pango/pango-layout.c (pango_layout_line_x_to_index): Set - char_trailing instead of trailing in one of too many paths. - Should + char_trailing instead of trailing in one of too many paths. Should have been a typo. - - * pango/pangox.c (get_font_metrics_from_subfonts): Check - for nullity + + * pango/pangox.c (get_font_metrics_from_subfonts): Check for nullity somewhere. src/harfbuzz-gdef.c | 3 ++- @@ -101639,17 +99048,15 @@ Author: Behdad Esfahbod Date: Thu Apr 6 18:23:49 2006 +0000 Update from HarfBuzz. Lars Knoll fixed all the warnings. - + 2006-04-06 Behdad Esfahbod - - * pango/opentype: Update from HarfBuzz. Lars Knoll fixed - all the + + * pango/opentype: Update from HarfBuzz. Lars Knoll fixed all the warnings. src/harfbuzz-dump.c | 94 ++++++++++++++++++++++++++++--------------- src/harfbuzz-gpos.c | 80 ++++++++++++++++++++++-------------- - src/harfbuzz-gsub.c | 114 - +++++++++++++++++++++++++++++----------------------- + src/harfbuzz-gsub.c | 114 +++++++++++++++++++++++++++++----------------------- src/harfbuzz-impl.h | 4 ++ 4 files changed, 179 insertions(+), 113 deletions(-) @@ -101657,13 +99064,11 @@ commit ca57250bc9d9f92c88a2ea516e251b9cbfdebda0 Author: Behdad Esfahbod Date: Mon Apr 3 20:13:17 2006 +0000 - Make sure TTAG_GDEF and frineds are defined, needed for FreeType - <= 2.1.7 - + Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7 + 2006-04-03 Behdad Esfahbod - - * pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and - frineds are + + * pango/opentype/harfbuzz-impl.h: Make sure TTAG_GDEF and frineds are defined, needed for FreeType <= 2.1.7 (pointed by Tim Janik). src/harfbuzz-gdef.c | 3 --- @@ -101704,13 +99109,13 @@ Author: Behdad Esfahbod Date: Fri Mar 31 12:28:09 2006 +0000 Convert pango/opentype to the new project called HarfBuzz. - + 2006-03-31 Behdad Esfahbod - + Convert pango/opentype to the new project called HarfBuzz. - + * pango/opentype/*: Restructured. - + * pango/pango-ot-*: Updated to use HarfBuzz symbol names. src/COPYING | 15 + @@ -101723,8 +99128,7 @@ Date: Fri Mar 31 12:28:09 2006 +0000 src/ftglue.h | 68 +- src/ftxgdef.c | 1225 ------- src/ftxgdef.h | 224 -- - src/ftxgpos.c | 6199 - ------------------------------- + src/ftxgpos.c | 6199 ------------------------------- src/ftxgpos.h | 838 ----- src/ftxgsub.c | 4533 ----------------------- src/ftxgsub.h | 594 --- @@ -101740,8 +99144,7 @@ Date: Fri Mar 31 12:28:09 2006 +0000 src/harfbuzz-gdef.c | 1228 +++++++ src/harfbuzz-gdef.h | 127 + src/harfbuzz-gpos-private.h | 683 ++++ - src/harfbuzz-gpos.c | 6269 - ++++++++++++++++++++++++++++++++ + src/harfbuzz-gpos.c | 6269 ++++++++++++++++++++++++++++++++ src/harfbuzz-gpos.h | 168 + src/harfbuzz-gsub-private.h | 448 +++ src/harfbuzz-gsub.c | 4581 +++++++++++++++++++++++ @@ -101761,9 +99164,9 @@ Author: Behdad Esfahbod Date: Sat Mar 25 23:52:30 2006 +0000 Don't err on Table_Missing. - + 2006-03-25 Behdad Esfahbod - + * pango/opentype/ottest.c: Don't err on Table_Missing. src/ottest.c | 4 ++-- @@ -101774,13 +99177,13 @@ Author: Behdad Esfahbod Date: Mon Mar 13 05:06:05 2006 +0000 === Released 1.12.0 === - + 2006-03-13 Behdad Esfahbod - + * === Released 1.12.0 === - + * configure.in: Version 1.12.0 - + * NEWS, README: Updated. src/README | 4 ++-- @@ -101791,15 +99194,14 @@ Author: Behdad Esfahbod Date: Mon Jan 30 22:37:48 2006 +0000 Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug - + 2006-01-30 Behdad Esfahbod - + * pango/opentype/ftxgsub.c: Handle GSUB Lookup type 8, and ReverseChainContextualSubst table. (bug #149696, patch from Aamir Wali) - src/ftxgsub.c | 545 - ++++++++++++++++++++++++++++++++++++++++++++++----------- + src/ftxgsub.c | 545 ++++++++++++++++++++++++++++++++++++++++++++++----------- src/ftxgsub.h | 47 +++-- src/ftxopen.c | 7 + src/ftxopenf.h | 5 +- @@ -101810,19 +99212,18 @@ Author: Behdad Esfahbod Date: Sat Jan 28 20:29:18 2006 +0000 Removed. - + 2006-01-28 Behdad Esfahbod - + * pango/opentype/pango-ot-*: Removed. - + * pango/pango-ot-*: Added. - + * pango/Makefile.am, pango/opentype/Makefile.am: Adjusted. src/Makefile.am | 30 +-- src/pango-ot-buffer.c | 339 ------------------------ - src/pango-ot-info.c | 681 - ------------------------------------------------- + src/pango-ot-info.c | 681 ------------------------------------------------- src/pango-ot-private.h | 105 -------- src/pango-ot-ruleset.c | 225 ---------------- 5 files changed, 13 insertions(+), 1367 deletions(-) @@ -101831,16 +99232,13 @@ commit f45689bc655eb723f11a2eb65a41303221b80397 Author: Behdad Esfahbod Date: Wed Jan 25 19:33:58 2006 +0000 - If major.minor of required and available glib versions are the - same, add - + If major.minor of required and available glib versions are the same, add + 2006-01-25 Behdad Esfahbod - - * configure.in: If major.minor of required and available - glib versions - are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug - #328617) - + + * configure.in: If major.minor of required and available glib versions + are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug #328617) + * */Makefile.am: Remove hardcoded -DG_DISABLE_DEPRECATED. src/Makefile.am | 1 - @@ -101851,11 +99249,10 @@ Author: Behdad Esfahbod Date: Sat Jan 14 07:00:13 2006 +0000 Make sure #include is the first include in the file. (bug - + 2006-01-14 Behdad Esfahbod - - * */*.c, */*/*.c: Make sure #include is the - first include + + * */*.c, */*/*.c: Make sure #include is the first include in the file. (bug #158870, based on patch by Luis Menina) src/disasm.c | 2 ++ @@ -101876,9 +99273,9 @@ Author: Behdad Esfahbod Date: Thu Jan 5 16:14:49 2006 +0000 pango/Makefile.am, pango/fonts.c, pango/glyphstring.c, - + 2006-01-05 Behdad Esfahbod - + * pango/Makefile.am, * pango/fonts.c, * pango/glyphstring.c, @@ -101899,8 +99296,7 @@ Date: Thu Jan 5 16:14:49 2006 +0000 * pango/pangox.c, * pango/opentype/pango-ot-info.c, * pango/opentype/pango-ot-ruleset.c: Intern strings to avoid - unnecessary strdups in the type system. (bug #325832, - Matthias Clasen) + unnecessary strdups in the type system. (bug #325832, Matthias Clasen) src/pango-ot-info.c | 3 ++- src/pango-ot-ruleset.c | 3 ++- @@ -101910,13 +99306,11 @@ commit 71524f1bc891bb4450507f769e5cc8f6f6cffa0c Author: Behdad Esfahbod Date: Tue Dec 27 09:55:48 2005 +0000 - Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias - Clasen) - + Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen) + 2005-12-27 Behdad Esfahbod - - * pango/opentype/pango-ot-buffer.c: Use g_slice for - PangoOTBuffer + + * pango/opentype/pango-ot-buffer.c: Use g_slice for PangoOTBuffer allocation. (bug #325026, Matthias Clasen) src/pango-ot-buffer.c | 4 ++-- @@ -101936,9 +99330,9 @@ Author: Behdad Esfahbod Date: Wed Nov 23 19:48:10 2005 +0000 Fix typo in docs. - + 2005-11-23 Behdad Esfahbod - + * pango/opentyp/pango-ot-buffer.c: Fix typo in docs. src/pango-ot-buffer.c | 4 +++- @@ -101949,9 +99343,9 @@ Author: Behdad Esfahbod Date: Wed Nov 23 17:54:55 2005 +0000 Added "Since:" tags to all interfaces added after Pango 1.0. (#319116, - + 2005-11-23 Behdad Esfahbod - + * pango/fonts.c pango/pango-attributes.c pango/pango-context.c pango/pango-glyph-item.c pango/pango-layout.c pango/pango-script.c pango/pango-utils.c pango/pangofc-font.c @@ -101959,8 +99353,7 @@ Date: Wed Nov 23 17:54:55 2005 +0000 pango/opentype/pango-ot-ruleset.c: Added "Since:" tags to all interfaces added after Pango 1.0. (#319116, Brian Cameron) - src/pango-ot-buffer.c | 49 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/pango-ot-buffer.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/pango-ot-ruleset.c | 14 ++++++++++++++ 2 files changed, 63 insertions(+) @@ -101969,17 +99362,15 @@ Author: Behdad Esfahbod Date: Wed Nov 23 15:19:48 2005 +0000 Protect against possible division by zeros (#316468, Steve Grubb) - + 2005-11-23 Behdad Esfahbod - - Protect against possible division by zeros (#316468, - Steve Grubb) - + + Protect against possible division by zeros (#316468, Steve Grubb) + * pango/pango-context.c (update_metrics_from_items), - pango/pango-fontset.c (pango_fontset_real_get_metrics): - If count is + pango/pango-fontset.c (pango_fontset_real_get_metrics): If count is zero, do not alter approximate_{char,digit}_width. - + * pango/opentype/disasm.c: Err on invalid DeltaFormat. src/disasm.c | 28 ++++++++++++++++++---------- @@ -101989,26 +99380,20 @@ commit e6e15352d154e1350340f8045759e5f7b0d86dc7 Author: Behdad Esfahbod Date: Wed Nov 23 11:53:03 2005 +0000 - Reworked basic shaper with OpenType support. (#101079, based on - patch from - + Reworked basic shaper with OpenType support. (#101079, based on patch from + 2005-11-23 Behdad Esfahbod - - * modules/basic/basic-fc.c: Reworked basic shaper with - OpenType - support. (#101079, based on patch from Denis Jacquerye and - Noah Levitt) - - * modules/basic/basic-fc.c (basic_scripts): Added Unicode - 4.1 addition + + * modules/basic/basic-fc.c: Reworked basic shaper with OpenType + support. (#101079, based on patch from Denis Jacquerye and Noah Levitt) + + * modules/basic/basic-fc.c (basic_scripts): Added Unicode 4.1 addition script PANGO_SCRIPT_GLAGOLITIC that is a "simple" script. - - * modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c: - Replace + + * modules/arabic/arabic-fc.c, modules/syriac/syriac-fc.c: Replace g_utf8_to_ucs4_fast() with g_utf8_strlen()! - - * pango/opentype/pango-ot-ruleset.c - (pango_ot_ruleset_add_feature): + + * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_add_feature): Remove reference in docs to pango_ot_ruleset_shape() that was removed long ago. @@ -102020,20 +99405,17 @@ Author: Behdad Esfahbod Date: Thu Nov 17 06:28:11 2005 +0000 Part of #101079: - + 2005-11-17 Behdad Esfahbod - + Part of #101079: - - * pango/opentype/ftxopen.c (Load_Lookup): In extension - subtables, + + * pango/opentype/ftxopen.c (Load_Lookup): In extension subtables, offset is relative to the extension subtable, not the original table. (Greg Aumann) - - * pango/opentype/ftxgpos.c (Load_BaseArray): When reading - BaseAnchor, - skip offsets that are zero. Works around bug in Doulos - SIL Regular. + + * pango/opentype/ftxgpos.c (Load_BaseArray): When reading BaseAnchor, + skip offsets that are zero. Works around bug in Doulos SIL Regular. src/ftxgpos.c | 6 ++++++ src/ftxopen.c | 6 ++++-- @@ -102044,11 +99426,10 @@ Author: Behdad Esfahbod Date: Wed Nov 9 23:30:00 2005 +0000 Remove debug line that got in accidentally. - + 2005-11-09 Behdad Esfahbod - - * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c: - Remove debug + + * pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c: Remove debug line that got in accidentally. src/ftxgpos.c | 1 - @@ -102060,15 +99441,13 @@ Author: Behdad Esfahbod Date: Fri Nov 4 23:55:38 2005 +0000 Turn various gcc warnings off. Adding const, adding static, fully - + 2005-11-04 Behdad Esfahbod - + * configure.in, examples/argcontext.c examples/cairoview.c, - examples/renderdemo.c, examples/renderdemo.h - examples/xftview.c, + examples/renderdemo.c, examples/renderdemo.h examples/xftview.c, modules/basic/basic-x.c, modules/hangul/hangul-fc.c, - modules/hebrew/hebrew-shaper.c, - modules/hebrew/hebrew-shaper.h, + modules/hebrew/hebrew-shaper.c, modules/hebrew/hebrew-shaper.h, modules/indic/indic-fc.c, modules/indic/mprefixups.c, modules/syriac/syriac-fc.c, pango/break.c pango/fonts.c, pango/modules.c, pango/pango-coverage.c pango/pango-engine.c, @@ -102079,24 +99458,20 @@ Date: Fri Nov 4 23:55:38 2005 +0000 pango/pango-utils.c, pango/pangocairo-fc.h, pango/pangocairo-font.c, pango/pangocairo-fontmap.c, pango/pangocairo-private.h, pango/pangofc-decoder.c, - pango/pangofc-font.c, pango/pangofc-fontmap.c - pango/pangoft2.c, - pango/pangox-fontcache.c, pango/pangox-fontmap.c - pango/pangox.c, + pango/pangofc-font.c, pango/pangofc-fontmap.c pango/pangoft2.c, + pango/pangox-fontcache.c, pango/pangox-fontmap.c pango/pangox.c, pango/pangoxft-font.c, pango/querymodules.c, pango/opentype/ftglue.c, pango/opentype/ftxgpos.c, pango/opentype/ftxopen.c, pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-info.c, pango/opentype/pango-ot-ruleset.c, tests/dump-boundaries.c, tests/testboundaries.c, tests/testcolor.c tests/testiter.c, - tests/testscript.c: Turn various gcc warnings off. Adding - const, + tests/testscript.c: Turn various gcc warnings off. Adding const, adding static, fully initializing structs, match signedness in comparisons. (#317804) - + * tests/testscript.c, tools/gen-script-for-lang.c: - (scripts_for_file): Pass error->message instead of error - to fail(), + (scripts_for_file): Pass error->message instead of error to fail(), which was wrong. (compare_lang): Fix typo comparing a and a instead of a and b. @@ -102113,21 +99488,18 @@ Author: Behdad Esfahbod Date: Thu Nov 3 20:13:40 2005 +0000 Patches from #170414. Reviewed by Matthias Clasen. - + 2005-11-03 Behdad Esfahbod - + Patches from #170414. Reviewed by Matthias Clasen. - - * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use - call table + + * pango/opentype/ftxgpos.c, pango/opentype/ftxgsub.c: Use call table to dispatch different lookup types. - - * pango/opentype/pango-ot-buffer.c, - pango/opentype/pango-ot-ruleset.c: + + * pango/opentype/pango-ot-buffer.c, pango/opentype/pango-ot-ruleset.c: Small cleanup. - src/ftxgpos.c | 143 - ++++++++++++++++++++++++------------------------- + src/ftxgpos.c | 143 ++++++++++++++++++++++++------------------------- src/ftxgsub.c | 115 +++++++++++++++++++++------------------ src/pango-ot-buffer.c | 3 +- src/pango-ot-ruleset.c | 75 +++++++++----------------- @@ -102138,15 +99510,13 @@ Author: Behdad Esfahbod Date: Mon Aug 29 10:06:40 2005 +0000 Generate valid XML output. Dump LookupFlag too. - + 2005-08-29 Behdad Esfahbod - - * pango/opentype/ottest.c, pango/opentype/disasm.c: - Generate valid + + * pango/opentype/ottest.c, pango/opentype/disasm.c: Generate valid XML output. Dump LookupFlag too. - src/disasm.c | 58 - ++++++++++++++++++++++++++++++---------------------------- + src/disasm.c | 58 ++++++++++++++++++++++++++++++---------------------------- src/ottest.c | 23 ++++++++++++++--------- 2 files changed, 44 insertions(+), 37 deletions(-) @@ -102155,9 +99525,9 @@ Author: Behdad Esfahbod Date: Mon Aug 15 04:16:04 2005 +0000 Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT. - + 2005-08-15 Behdad Esfahbod - + * pango/opentype/ftglue.h: Replace perror with perror_. Remove FT_BEGIN_STMNT and FT_END_STMNT. (#313477) @@ -102168,15 +99538,12 @@ commit 3c60250875fa9d04ca96dea35eba23fc70690ff5 Author: Owen Taylor Date: Tue Jul 26 18:33:27 2005 +0000 - Skip lookups with lookup index out of range. (Patch from Behdad - Esfahbod, - + Skip lookups with lookup index out of range. (Patch from Behdad Esfahbod, + 2005-07-26 Owen Taylor - - * pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c: - Skip lookups - with lookup index out of range. (Patch from Behdad Esfahbod, - #171170) + + * pango/opentype/ftxgsub.c, pango/opentype/ftxgpos.c: Skip lookups + with lookup index out of range. (Patch from Behdad Esfahbod, #171170) src/ftxgpos.c | 30 ++++++++++++++++++++++++------ src/ftxgsub.c | 30 ++++++++++++++++++++++++------ @@ -102187,9 +99554,9 @@ Author: Owen Taylor Date: Fri Jul 22 18:03:58 2005 +0000 Remove an unecessary set of block2. - + 2005-07-22 Owen Taylor - + * pango/opentype/ftglue.c (ftglue_realloc): Remove an unecessary set of block2. @@ -102201,35 +99568,32 @@ Author: Owen Taylor Date: Fri Jul 22 17:56:37 2005 +0000 Patch from David Turner. Review and testing by Behdad Esfahbod - + 2005-07-22 Owen Taylor - + Patch from David Turner. Review and testing by Behdad Esfahbod - - * pango/opentype/ftglue.[ch] Makefile.am: Glue layer that - provides - implementation of the internal functions that the opentype - code + + * pango/opentype/ftglue.[ch] Makefile.am: Glue layer that provides + implementation of the internal functions that the opentype code expects in terms of publically exported FreeType API. - + * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c pango/opentype/ftxopen.c pango/opentype/otlbuffer.c pango/opentype/pango-ot-info.c pango/opentype/pango-ot-ruleset.c: Remove includes of internal headers. Small changes to work with ftglue.[ch] - + * pango/opentype/fterrcompat.h: Remove: no longer needed. - + * pango/opentype/ftxgpos.c: Use FT_IS_SFNT(face) rather than poking at FT_MODULE_CLASS (face->driver)->module_name. - + * pango/opentype/ftxopen.c (Free_FeatureList): Free fl->ApplyOrder. (Found by Behdad) src/Makefile.am | 3 +- src/fterrcompat.h | 95 -------------- - src/ftglue.c | 350 - +++++++++++++++++++++++++++++++++++++++++++++++++ + src/ftglue.c | 350 +++++++++++++++++++++++++++++++++++++++++++++++++ src/ftglue.h | 156 ++++++++++++++++++++++ src/ftxgdef.c | 9 +- src/ftxgpos.c | 9 +- @@ -102244,42 +99608,37 @@ commit 43dbec6f3a345ba0e4a43766610ed59622bbe4a0 Author: Owen Taylor Date: Thu Jul 21 18:15:45 2005 +0000 - Fix up places where there is missing or incomplete Copyright and - License - + Fix up places where there is missing or incomplete Copyright and License + 2005-07-21 Owen Taylor - + Fix up places where there is missing or incomplete Copyright and License information (Reported by William N. Ray) - + * pango/opentype/fterrcompat.h: Mark as FreeType/GPL licensed. - + * pango/opentype/FT-license.txt: Make this the dual-licensing description that covers the FreeType code (FreeType's LICENSE.TXT) rather than the FTL. - + * pango/opentype/FTL.TXT: Move the FTL (referenced from FT-license.txt) to here. - + * modules/basic/basic-common.h modules/hebrew/hebrew-shaper.h modules/thai/thai-charprop.c modules/thai/thai-shaper.h tools/gen-script-for-lang.c tests/testcolor.c: Add LGPL header and copyright information. - - * modules/indic/indic-ot.[ch] - modules/indic/indic-ot-class-tables.c + + * modules/indic/indic-ot.[ch] modules/indic/indic-ot-class-tables.c modules/thai/thai-ot.[ch]: Add LGPL header. - + * modules/thai/thai-shaper.c modules/thai/thai-charprop.h: Minor fixes to copyright information. + + * modules/arabic/arabic-ot.c: Add Freetype license boilerplate. - * modules/arabic/arabic-ot.c: Add Freetype license - boilerplate. - - src/FT-license.txt | 179 - +++++++---------------------------------------------- - src/FTL.TXT | 174 - +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/FT-license.txt | 179 +++++++---------------------------------------------- + src/FTL.TXT | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/fterrcompat.h | 10 ++- 3 files changed, 204 insertions(+), 159 deletions(-) @@ -102288,13 +99647,13 @@ Author: Owen Taylor Date: Tue Jun 14 19:54:19 2005 +0000 Chain up from finalize. (#307547, Paolo Borelli) - + 2005-06-14 Owen Taylor - + * pango/opentype/pango-ot-info.c (pango_ot_info_finalize) pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_finalize): Chain up from finalize. (#307547, Paolo Borelli) - + * pango/opentype/pango-ot-info.c (pango_ot_info_finalizer): make accidentally public function static. @@ -102307,14 +99666,13 @@ Author: Tor Lillqvist Date: Tue Apr 12 01:27:21 2005 +0000 Rename LDADDS to libpango_ot_la_LIBADD to actually make libpango-ot.la - + 2005-04-12 Tor Lillqvist - + * pango/opentype/Makefile.am: Rename LDADDS to - libpango_ot_la_LIBADD to actually make libpango-ot.la - link with + libpango_ot_la_LIBADD to actually make libpango-ot.la link with it. - + * pango/pangowin32.def: Rename get_scale_factor to get_metrics_factor here, too. (#300222, Ivan Wong) @@ -102325,23 +99683,21 @@ commit 0c349a032e5a52a9d0dcc8204f761b7cb28bfa6b Author: Owen Taylor Date: Thu Mar 3 19:38:02 2005 +0000 - For all binary searches, handle the case where the number of items - is 0. - + For all binary searches, handle the case where the number of items is 0. + 2005-03-03 Owen Taylor - + * pango/opentype/ftxopen.c (Coverage_Index1, Coverage_Index2, Get_Class2): For all binary searches, handle the case where the number of items is 0. (#162977, Nick Lamb) - + * pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition): Handle the case where glyph_count == 0 properly. Fix a problem with cleanups on memory allocation failure. (Get_New_Count, Add_Glyph_Property): Avoid reading off the end of the ClassRangeRecord array. - src/ftxgdef.c | 60 - +++++++++++++++++++++++++++++++++++------------------------ + src/ftxgdef.c | 60 +++++++++++++++++++++++++++++++++++------------------------ src/ftxopen.c | 15 +++++++++++++++ 2 files changed, 51 insertions(+), 24 deletions(-) @@ -102350,9 +99706,9 @@ Author: Owen Taylor Date: Mon Nov 22 23:37:19 2004 +0000 Set G_LOG_DOMAIN. - + Mon Nov 22 18:30:14 2004 Owen Taylor - + * pango/opentype/Makefile.am pango/Makefile.am modules/*/Makefile.am: Set G_LOG_DOMAIN. @@ -102364,17 +99720,17 @@ Author: Owen Taylor Date: Wed Sep 22 18:14:55 2004 +0000 Cleanups from 'sparse', #149922, Kjartan Maraas - + Wed Sep 22 14:07:47 2004 Owen Taylor - + Cleanups from 'sparse', #149922, Kjartan Maraas - + * pango/pango-utils.c (read_config): () => (void) in definition. - + * pango/pangofc-fontmap.c (pango_fc_font_map_list_families): Initialize *n_families, not n_families. - + * pango/pangofc-fontmap.c pango/pangoft2.c opentype/ftxgdef.c opentype/ftxgpos.c opentype/ftxgsub.c: : Fix various 0/NULL confusion. @@ -102389,17 +99745,17 @@ Author: Owen Taylor Date: Tue Sep 14 13:45:41 2004 +0000 === Released 1.6.0 === - + Mon Sep 13 17:38:58 2004 Owen Taylor - + * === Released 1.6.0 === - + * configure.in: Update versions for 1.6.0 - + * NEWS: Update. - + * README: Minor tweak. - + * pango/fonts.c pango/pango-context.c pango/pango-types.h pango/pango-utils.c pango/pangoft2.c pango/pango-layout.c pango/opentype/pango-ot-buffer.c: Add a bunch of missing @@ -102412,11 +99768,10 @@ commit d41089a5b691967fdd622f47c8397a80af104396 Author: Owen Taylor Date: Fri Jul 30 21:23:04 2004 +0000 - Finish extending properties flags from FT_UShort => - FT_UInt. (OTLBuffer - + Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer + Fri Jul 30 17:17:05 2004 Owen Taylor - + * pango/opentype/ftxgpos.[ch] pango/opentype/ftxgsub.[ch] pango/opentype/ftxopen.[ch]: Finish extending properties flags from FT_UShort => FT_UInt. (OTLBuffer was already @@ -102435,9 +99790,9 @@ Author: Owen Taylor Date: Tue Jul 27 17:20:01 2004 +0000 Save the order in which features were added and use that when applying - + Tue Jul 27 12:38:05 2004 Owen Taylor - + * pango/opentype/ftxopen.[ch] pango/opentype/ftxgsub.c pango/opentype/ftxpos.c: Save the order in which features were added and use that when applying features. @@ -102453,15 +99808,13 @@ commit ae2daa972d74c5ecfe1d2f0057ce12682ad30b00 Author: Behdad Esfahbod Date: Tue Jul 27 13:12:19 2004 +0000 - Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH - macros. - - + Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros. + + * pango/opentype/ftxgpos.c: Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros. - src/ftxgpos.c | 68 - +++++++++++++++++++++++++++++------------------------------ + src/ftxgpos.c | 68 +++++++++++++++++++++++++++++------------------------------ src/ftxgsub.c | 2 +- 2 files changed, 35 insertions(+), 35 deletions(-) @@ -102470,8 +99823,8 @@ Author: Behdad Esfahbod Date: Tue Jul 27 10:43:58 2004 +0000 Fix bug to copy glyph from in_string, not out_string. - - + + * pango/opentype/otlbuffer.c (otl_buffer_copy_output_glyph): Fix bug to copy glyph from in_string, not out_string. @@ -102482,11 +99835,10 @@ commit 2ea2a55bdf7ef1caebcd0c5922b0f542ed8bb5bf Author: Owen Taylor Date: Mon Jul 26 23:14:53 2004 +0000 - Fix allocation and indexing in NewGlyphClasses array. (#130661, - Masatake - + Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake + Mon Jul 26 19:11:46 2004 Owen Taylor - + * pango/opentype/ftxgdef.c: Fix allocation and indexing in NewGlyphClasses array. (#130661, Masatake YAMATO) @@ -102497,17 +99849,15 @@ commit 5d42695e5ed89f73fbc665792ebec82c29ae04ae Author: Owen Taylor Date: Mon Jul 26 19:25:45 2004 +0000 - Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH - macros. - + Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros. + Mon Jul 26 15:24:11 2004 Owen Taylor - + * pango/opentype/ftxgsub.c (ADD_Glyph): Remove the unused parameter from the IN_CURITEM() and IN_CURGLYPH macros. - src/ftxgsub.c | 56 - ++++++++++++++++++++++++++++---------------------------- + src/ftxgsub.c | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) commit a00c4ea5626526980139b122977e367b8434d24a @@ -102515,9 +99865,9 @@ Author: Owen Taylor Date: Mon Jul 26 19:23:06 2004 +0000 Add missing macro to make the last change actually compile. - + Mon Jul 26 15:21:23 2004 Owen Taylor - + * pango/opentype/ftxgsub.c: Add missing macro to make the last change actually compile. @@ -102529,9 +99879,9 @@ Author: Owen Taylor Date: Mon Jul 26 19:20:27 2004 +0000 Match backtrack context against the output glyphs not the input glyphs - + Mon Jul 26 15:16:07 2004 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst[123]): Match backtrack context against the output glyphs not the input glyphs (#145174, Aamir Wali) @@ -102544,23 +99894,22 @@ Author: Owen Taylor Date: Mon Jul 26 18:59:02 2004 +0000 Make Check_Property() take a OTL_GlyphItem, add a gproperties field to - + Mon Jul 26 14:49:22 2004 Owen Taylor - + * ftxgdef.[ch] otlbuffer.[ch]: Make Check_Property() take a OTL_GlyphItem, add a gproperties field to OTLGlyphItem, and use that to cache the properties for a glyph. - + * ftxgsub.c ftxgdef.c: Adapt to Check_Property() changes. - + * otlbuffer.[ch] ftxgsub.c: Add otl_buffer_copy_output_glyph() to use when we are copying an unmodified glyph from input to output that preserves the cached properties. src/ftxgdef.c | 16 ++++++++++------ src/ftxgpos.c | 52 +++++++++++++++++++++++++++------------------------- - src/ftxgsub.c | 54 - ++++++++++++++++++++++++++++-------------------------- + src/ftxgsub.c | 54 ++++++++++++++++++++++++++++-------------------------- src/ftxopenf.h | 2 +- src/otlbuffer.c | 21 +++++++++++++++++++-- src/otlbuffer.h | 6 ++++++ @@ -102571,9 +99920,9 @@ Author: Owen Taylor Date: Mon Jul 19 21:13:23 2004 +0000 Add support for ChainContextSubstFormat3. - + Mon Jul 19 17:09:11 2004 Owen Taylor - + * pango/opentype/disasm.c: Add support for ChainContextSubstFormat3. @@ -102584,18 +99933,16 @@ commit d4f773ef92fdbaa7e61e6577db5e9b2846a100a4 Author: Owen Taylor Date: Mon Jul 19 20:37:22 2004 +0000 - Fix pervasive buffer overruns when skipping glyphs when matching - contexts. - + Fix pervasive buffer overruns when skipping glyphs when matching contexts. + Mon Jul 19 16:29:45 2004 Owen Taylor - + * pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c: Fix pervasive buffer overruns when skipping glyphs when matching contexts. (#118592, Kailash C. Chowksey) src/ftxgpos.c | 259 ++++++++++++++++++---------------------- - src/ftxgsub.c | 376 - ++++++++++++++++++++++++++-------------------------------- + src/ftxgsub.c | 376 ++++++++++++++++++++++++++-------------------------------- 2 files changed, 284 insertions(+), 351 deletions(-) commit 99848cfafee8e598ef533f254cdb99fbae4c9364 @@ -102603,17 +99950,15 @@ Author: Owen Taylor Date: Wed Jun 23 20:33:35 2004 +0000 #143693, Sayamindu Dasgupta - + Wed Jun 23 16:13:53 2004 Owen Taylor - + #143693, Sayamindu Dasgupta - - * pango/opentype/pango-ot-buffer.c - (pango_ot_buffer_set_zero_width_marks) - pango/opentype/pango-ot-private.h: + + * pango/opentype/pango-ot-buffer.c (pango_ot_buffer_set_zero_width_marks) pango/opentype/pango-ot-private.h: Allow setting for whether marks should be given zero width, defaulting to FALSE. - + * modules/arabic/arabic-fc.c (arabic_engine_shape): Turn on zero-width-marks setting. @@ -102626,9 +99971,9 @@ Author: Owen Taylor Date: Mon Jun 21 18:04:02 2004 +0000 Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h - + Mon Jun 21 13:55:17 2004 Owen Taylor - + * pango/opentype/otlbuffer.c: Use the gcc-3.3 strict-aliasing compatible macros from fterrcompat.h (#140495, reported by Stanislav Brabec) @@ -102641,11 +99986,9 @@ Author: Theppitak Karoonboonyanan Date: Fri May 28 16:41:36 2004 +0000 Negate y offset according to different conventions between - - * pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate - y offset - according to different conventions between PangoGlyphString - and OTL + + * pango/opentype/pango-ot-buffer.c (apply_gpos_ltr): Negate y offset + according to different conventions between PangoGlyphString and OTL (#142544) src/pango-ot-buffer.c | 2 +- @@ -102656,9 +99999,9 @@ Author: Owen Taylor Date: Thu May 27 21:55:50 2004 +0000 Revert error return changes from last commit. - + Thu May 27 17:54:24 2004 Owen Taylor - + * pango/opentype/otlbuffer.c: Revert error return changes from last commit. @@ -102670,9 +100013,9 @@ Author: Owen Taylor Date: Thu May 27 21:03:42 2004 +0000 Free buffer->positions, clean up error returns that were returning - + Thu May 27 16:57:30 2004 Owen Taylor - + * pango/opentype/otlbuffer.c: Free buffer->positions, clean up error returns that were returning uninitialized values. (#139239, Behdad Esfahbod) @@ -102685,40 +100028,38 @@ Author: Owen Taylor Date: Tue Mar 16 19:23:43 2004 +0000 === Released 1.4.0 === - + Tue Mar 16 11:24:46 2004 Owen Taylor - + * === Released 1.4.0 === - + * configure.in: Version 1.4.0, interface ago 0. Require glib-2.4.0. - + * NEWS: Updates. - + * README: Some updates; include details about the FreeType license of the OpenType code. - src/FT-license.txt | 77 - +++++++++++++++++++++++++++++------------------------- + src/FT-license.txt | 77 +++++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 35 deletions(-) commit 8b3554b3afe7c125b1a53171b01ac87de9c486fe Author: Hans Breuer Date: Wed Mar 3 22:35:19 2004 +0000 - if PANGO_MODULE_PREFIX is defined include the basic backend shaper - (should - + if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should + 2004-03-03 Hans Breuer - + * pango/module-defs-win32.c.win32 : if PANGO_MODULE_PREFIX is defined include the basic backend shaper (should have been commited at 2003-12-12, too) - + * pango/makefile.msc : generate correct type for PangoFontMask (bug #135892, John Ehresman) * pango/opentype/makefile.msc : updated - + * pango/pango.def pango/pangoft2.def : more updatd externals src/makefile.msc | 6 ++++-- @@ -102728,43 +100069,39 @@ commit a7e096c5de3ec5319bf9333c9ace0732d97c52c3 Author: Owen Taylor Date: Sun Feb 29 15:44:50 2004 +0000 - Rework opentype interfaces and other changes to make GPOS work - for Arabic. - + Rework opentype interfaces and other changes to make GPOS work for Arabic. + Sun Feb 29 09:25:13 2004 Owen Taylor - + Rework opentype interfaces and other changes to make GPOS work for Arabic. (Most of #117282, #121060) - + * pango/opentype/otlbuffer.[ch]: OTL_Buffer that acts as a replacement for the separate GSUB and GPOS string structures and hides many of the internal details. - + * pango/opentype/ftxgsub.[ch] pango/opentype/ftxgpos.[ch]: Adapt to OTL_Buffer. - + * pango/opentype/ftxgpos.c: Redo handling of cursive chains so that it actually works. - + * pango/pango-ot.h pango/opentype/pango-ot-buffer.c: Pango wrapper around OTL_Buffer. - - * pango/pango-ot.h pango/pango-ot-ruleset.c - pango/pango-ot-buffer.c: - Split pango_ot_ruleset_shape() into - pango_ot_ruleset_substitute(), + + * pango/pango-ot.h pango/pango-ot-ruleset.c pango/pango-ot-buffer.c: + Split pango_ot_ruleset_shape() into pango_ot_ruleset_substitute(), pango_ot_ruleset_position(), make them act on PangoOTBuffer, add a separate pango_ot_buffer_output() which does the default positioning and writes to a PangoGlyphString. - + * modules/arabic/arabic-fc.c modules/indic/indic-fc.c modules/indic/mprefixups.[ch]: Adapt to new OpenType interfaces; add GPOS features for Arabic. - - * pango/opentype/pango-ot-info.c: Don't derive class - information + + * pango/opentype/pango-ot-info.c: Don't derive class information from Unicode properties for Arabic presentation forms, let the shaping process derive the properties. @@ -102772,8 +100109,7 @@ Date: Sun Feb 29 15:44:50 2004 +0000 src/ftxgdef.c | 4 +- src/ftxgpos.c | 573 ++++++++++++++++----------------------- src/ftxgpos.h | 23 +- - src/ftxgsub.c | 719 - +++++++++++-------------------------------------- + src/ftxgsub.c | 719 +++++++++++-------------------------------------- src/ftxgsub.h | 40 +-- src/ftxopen.h | 1 + src/otlbuffer.c | 213 +++++++++++++++ @@ -102789,11 +100125,10 @@ commit d670ddf99192dd4999775a9215a818ae63fa3416 Author: Owen Taylor Date: Sat Feb 21 14:53:12 2004 +0000 - Sign convention for y offsets is opposite between PangoGlyphString - and FT - + Sign convention for y offsets is opposite between PangoGlyphString and FT + Sat Feb 21 09:49:23 2004 Owen Taylor - + * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape): Sign convention for y offsets is opposite between PangoGlyphString and FT code. (#132591) @@ -102806,14 +100141,14 @@ Author: Owen Taylor Date: Fri Feb 13 16:11:40 2004 +0000 Memory leak fixes from Masatake YAMATO, #130652 - + Fri Feb 13 10:54:18 2004 Owen Taylor - + Memory leak fixes from Masatake YAMATO, #130652 - + * pango/opentype/ftxgdef.c (TT_Done_GDEF_Table): Free the gdef table as well as the contained data. - + * pango/opentype/ftxgdef.c (TT_GDEF_Build_ClassDefinition): Set gcd->loaded, so that the contents get freed later. @@ -102825,9 +100160,9 @@ Author: Owen Taylor Date: Mon Jan 26 19:23:35 2004 +0000 Suport CFF fonts as well. (#131202, Manjunath Sripadarao) - + Mon Jan 26 14:20:34 2004 Owen Taylor - + * pango/opentype/pango-ot-info.c (is_truetype): Suport CFF fonts as well. (#131202, Manjunath Sripadarao) @@ -102839,32 +100174,29 @@ Author: Hans Breuer Date: Sat Dec 13 14:31:50 2003 +0000 moved pango_fc_* to the latter where they live on *nix too. - + 2003-12-13 Hans Breuer - + * pango/pango.def pangoft2.def : moved pango_fc_* to the latter where they live on *nix too. - + * pango/makefile.msc : make it build again (including the Ft2 backend) - - * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX - is defined + + * pango/module-defs-fc.c.win32 : if PANGO_MODULE_PREFIX is defined include the basic backend shaper - + * pango/pangowin32.c (pango_win32_render_layout) : initialize iter before first usage to avoid immediate crashing - + * pango/opentype/makefile.msc pango/modules/makefile.msc : finally build with mscv, too. [completely untested cause I'm not able to type, write or read any of these languages] - - * modules/modules.def : follow module function - renaming/changes - - * modules/basic/basic-win32.c : register the right engine, - i.e. + + * modules/modules.def : follow module function renaming/changes + + * modules/basic/basic-win32.c : register the right engine, i.e. make it compile src/makefile.msc | 21 +++++++++++++++++++++ @@ -102875,11 +100207,10 @@ Author: Owen Taylor Date: Sat Nov 1 15:02:17 2003 +0000 Switch over to recommended Freetype system of include ft2build.h then - + Sat Nov 1 09:32:15 2003 Owen Taylor - - * pango/pango-ot.h pango/pangofc-font.h - modules/indic/indic-ot.h + + * pango/pango-ot.h pango/pangofc-font.h modules/indic/indic-ot.h pango/pangoft2.c pango/opentype/pango-ot-info.c pango/opentype/pango-ot-ruleset.c pango/opentype/ottest.c pango/opentype/ftxopen.[ch] pango/opentype/ftxgdef.c @@ -102905,9 +100236,9 @@ Author: Owen Taylor Date: Mon Sep 15 22:04:55 2003 +0000 Fix gcc-3.3 versions of macros to have the right return value. - + Mon Sep 15 17:16:59 2003 Owen Taylor - + * pango/opentype/fterrcompat.h: Fix gcc-3.3 versions of macros to have the right return value. @@ -102918,11 +100249,10 @@ commit c99259bf7e08ccdc4130d4983e8d186021ea8e1a Author: Owen Taylor Date: Mon Aug 25 14:30:12 2003 +0000 - pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems - where - + pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) Fix problems where + Mon Aug 25 10:17:21 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst3) * pango/opentype/ftxgpos.c (Lookup_ChainContextPos3): Fix problems where the coverage wasn't being checked @@ -102937,24 +100267,24 @@ Author: Owen Taylor Date: Fri Aug 22 22:52:08 2003 +0000 Add some macro definitions for gcc-3.3 that suppress the bogus - + Fri Aug 22 18:09:52 2003 Owen Taylor - + * pango/opentype/fterrcompat.h: Add some macro definitions for gcc-3.3 that suppress the bogus strict-aliasing warnings. - + * pango/pango-utils.c (read_config_file): Use g_hash_table_new_full() to simplify code and fix gcc-3.3 warnings. - + * pango/pangox-fontmap.c (pango_x_real_get_coverage_win) * pango/querymodules.c (query_module): Suppress gcc-3.3 warnings. - + * pango/modules.c (pango_find_map): Fix warning from missing declaration of pango_module_get_type(). - + * pango/pango-context.c/pango-engine.c: Fix name confusion for pango_get_fallback_shaper(). @@ -102965,11 +100295,10 @@ commit 46d379596d7292a3b2e51f35fc8044b366d413a3 Author: Owen Taylor Date: Tue Jul 29 14:21:54 2003 +0000 - Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore - marks of - + Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of + Tue Jul 29 09:58:13 2003 Owen Taylor - + * pango/opentype/ftxgdef.c (Check_Property): Rewrite handling of IGNORE_SPECIAL_MARKS to be properly "ignore marks of attachment type different than @@ -102982,11 +100311,10 @@ commit 8247acad79c1a4154e9337aed453eb3e4d23063d Author: Owen Taylor Date: Mon Jul 28 22:28:37 2003 +0000 - Revert back out the FreeType patch preventing ligatures of - not-originally - + Revert back out the FreeType patch preventing ligatures of not-originally + Sat Jul 26 09:41:22 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_LigatureSubst): Revert back out the FreeType patch preventing ligatures of not-originally adjacent glyphs; @@ -103001,13 +100329,13 @@ Author: Owen Taylor Date: Sun Jul 27 02:40:31 2003 +0000 Check for lookahead glyphs in the right place. (Patch from #116860) - + Sat Jul 26 22:30:59 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst{1,2,3}): Check for lookahead glyphs in the right place. (Patch from #116860) - + * pango/opentype/ftxgpos.c (Lookup_ChainContextPos{1,2,3}): Same fix here. @@ -103020,27 +100348,25 @@ Author: Owen Taylor Date: Sun Jul 27 02:19:52 2003 +0000 Fix return value to only contain TTO_Err_Not_Covered if *no* lookups - + Sat Jul 26 22:12:46 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Do_String_Lookup, TT_GSUB_Apply_String): Fix return value to only contain TTO_Err_Not_Covered if *no* lookups matched. Fix memory leaks on error in Apply_String(). - src/ftxgsub.c | 120 - ++++++++++++++++++++++++++++++++++++---------------------- + src/ftxgsub.c | 120 ++++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 75 insertions(+), 45 deletions(-) commit e10ea2afd9a5868d4ec1ff3a2b99bcd64ce45816 Author: Owen Taylor Date: Sun Jul 27 01:10:15 2003 +0000 - Fix confusion between boolean and FT_Error return. (GSUB equivalent - of fix - + Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix + Sat Jul 26 21:06:26 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Load_EmptyOrClassDefinition): Fix confusion between boolean and FT_Error return. (GSUB equivalent of fix for #108358) @@ -103053,13 +100379,13 @@ Author: Owen Taylor Date: Sat Jul 26 15:02:13 2003 +0000 Move allocation afer initial checks, fixing memory leak. - + Sat Jul 26 10:52:20 2003 Owen Taylor - + * pango/opentype/ftxgpos.c (Lookup_ContextPos2): * pango/opentype/ftxgsub.c (Lookup_ContextSubst2): Move allocation afer initial checks, fixing memory leak. - + * pango/opentype/ftxgsub.c (Lookup_ChainContextSubst2): Fix some more error return memory leaks that weren't fixed in the Qt changes. @@ -103072,11 +100398,10 @@ commit f40b7c15e0bc4b71e706602c4e062f72d8f0fcdd Author: Owen Taylor Date: Sat Jul 26 14:50:23 2003 +0000 - Fix various memory leaks from error returns that should have been - jumps to - + Fix various memory leaks from error returns that should have been jumps to + Sat Jul 26 10:43:20 2003 Owen Taylor - + * pango/opentype/ftxgsub.c pango/opentype/ftxgpos.c: Fix various memory leaks from error returns that should have been jumps to cleanup blocks. (From Qt, Lars Knoll) @@ -103090,9 +100415,9 @@ Author: Owen Taylor Date: Sat Jul 26 14:35:29 2003 +0000 Fix additional places where TTO_Err_Not_Covered wasn't considered a - + Sat Jul 26 10:30:24 2003 Owen Taylor - + * pango/opentype/ftxgpos.c: Fix additional places where TTO_Err_Not_Covered wasn't considered a successful return from Get_Class. (From Qt, Lars Knoll) @@ -103105,9 +100430,9 @@ Author: Owen Taylor Date: Sat Jul 26 13:50:23 2003 +0000 If applying a ligature lookup makes adjacent two glyphs that were not - + Sat Jul 26 09:41:22 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_LigatureSubst): If applying a ligature lookup makes adjacent two glyphs that were not originally adjacent, avoid making @@ -103122,9 +100447,9 @@ Author: Owen Taylor Date: Sat Jul 26 13:20:52 2003 +0000 Fix some FreeType1 variable declarations that snuck in from the last - + Sat Jul 26 09:16:57 2003 Owen Taylor - + * pango/opentype/ftxgpos.c pango/opentype/ftxopen.c: Fix some FreeType1 variable declarations that snuck in from the last commits (Christophe Fergeau, @@ -103138,11 +100463,10 @@ commit 06c12109de061c357f46dcec82c4bee7160afede Author: Owen Taylor Date: Sat Jul 26 03:45:44 2003 +0000 - OpenType-1.4 update: backtrack information is stored with the - item closest - + OpenType-1.4 update: backtrack information is stored with the item closest + Fri Jul 25 23:38:07 2003 Owen Taylor - + * pango/opentype/ftxgpos.c pango/opentype/ftxgsub.c: OpenType-1.4 update: backtrack information is stored with the item closest to the input first (From FreeType, @@ -103157,18 +100481,17 @@ Author: Owen Taylor Date: Sat Jul 26 03:14:23 2003 +0000 Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner - + Fri Jul 25 23:07:06 2003 Owen Taylor - + Update of GPOS and GSUB support to OpenType 1.3 (From FreeType, Werner Lemberg, 2001-08-08) - + * pango/opentype/ftxopen.h: Add RIGHT_TO_LEFT LookupFlag - + * pango/opentype/ftxgpos.c (GPOS_Instance): Add 'first' - member to mark the beginning of a chain of cursive - connections. - + member to mark the beginning of a chain of cursive connections. + * pango/opentype/ftxgpos.c (Do_String_Lookup): If the RIGHT_TO_FLAG flag is set, shift cursive chain up so last glyph is on the baseline. @@ -103182,9 +100505,9 @@ Author: Owen Taylor Date: Sat Jul 26 03:03:40 2003 +0000 Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup - + Fri Jul 25 22:59:13 2003 Owen Taylor - + * pango/opentype/ftx{gpos,gsub}.h pango/opentype/ftxgdef.c: Add GPOS_LOOKUP_EXTENSION, GSUB_LOOKUP_EXTENSION, which allow lookup information to be stored at 32-bit offets @@ -103201,9 +100524,9 @@ Author: Owen Taylor Date: Sat Jul 26 02:44:19 2003 +0000 Fix a couple of places where TTO_Err_Not_Covered wasn't considered a - + Fri Jul 25 22:25:48 2003 Owen Taylor - + * pango/opentype/ftxgsub.c (Lookup_ContextSubst2, Lookup_ChainContextSubst2): Fix a couple of places where TTO_Err_Not_Covered wasn't considered @@ -103219,21 +100542,20 @@ Author: Owen Taylor Date: Sat Jul 26 02:10:42 2003 +0000 Improvements to OpenType-dumping code, based on changes in Qt by Lars - + Fri Jul 25 20:12:00 2003 Owen Taylor - + Improvements to OpenType-dumping code, based on changes in Qt by Lars Knoll. - + * pango/opentype/ottest.c: Tweak the debugging output, suppress some warnings. - + * pango/opentype/disasm.c: Add support for GSUB Context/Chain GPOS MarkBase lookups, improve output in various ways. - src/disasm.c | 242 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- + src/disasm.c | 242 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/ottest.c | 12 +-- 2 files changed, 241 insertions(+), 13 deletions(-) @@ -103242,9 +100564,9 @@ Author: Owen Taylor Date: Thu Jul 24 21:05:29 2003 +0000 Fix uses of g_assert() around statements with side effects. (#115498, - + Thu Jul 24 17:04:21 2003 Owen Taylor - + * pango/opentype/pango-ot-ruleset.c (pango_ot_ruleset_shape): Fix uses of g_assert() around statements with side effects. (#115498, patch from David Cuthbert) @@ -103256,11 +100578,10 @@ commit f91deef2c9473da5c3cb5e120f2d4fbf0d638166 Author: Owen Taylor Date: Wed Apr 16 21:48:29 2003 +0000 - More careful handling of face->charmap; if is NULL, try to set - a unicode - + More careful handling of face->charmap; if is NULL, try to set a unicode + Wed Apr 16 03:46:42 2003 Owen Taylor - + * pango/opentype/pango-ot-info.c (synthesize_class_def): More careful handling of face->charmap; if is NULL, try to set a unicode charmap, if that doesn't succeed, @@ -103274,9 +100595,9 @@ Author: Owen Taylor Date: Wed Apr 16 03:58:17 2003 +0000 When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only - + Tue Apr 15 11:49:39 2003 Owen Taylor - + * pango/opentype/ftxg{sub/pos}.c: When loading in Load_Chain{Sub,Pos}ClassRule, the limit we have only applies to the input ClassDef table. @@ -103292,9 +100613,9 @@ Author: Owen Taylor Date: Tue Apr 15 23:01:19 2003 +0000 Fix mispelled constant from last commit. - + Tue Apr 15 06:57:02 2003 Owen Taylor - + * pango/opentype/ftxgpos.c: Fix mispelled constant from last commit. @@ -103305,14 +100626,13 @@ commit 73cd600798a9a7225b2ac8241ea371d48cf7baf3 Author: Owen Taylor Date: Tue Apr 15 22:15:41 2003 +0000 - Fix confusion between boolean and FT_Error return. (#108358, - Noah Levitt) - + Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt) + Tue Apr 15 06:03:39 2003 Owen Taylor - + * pango/opentype/ftxgpos.c: Fix confusion between boolean and FT_Error return. (#108358, Noah Levitt) - + * pango/opentype/ftxopen.c (Get_Class1): index is allowed to be NULL. (#108358, Noah Levitt) @@ -103325,9 +100645,9 @@ Author: Owen Taylor Date: Tue Apr 15 21:05:53 2003 +0000 Fix infinite loop in the case where the charmap contains a character > - + Tue Apr 15 05:00:39 2003 Owen Taylor - + * pango/opentype/pango-ot-info.c (synthesize_class_def): Fix infinite loop in the case where the charmap contains a character > 65535. (#106550, Morten Welinder.) @@ -103340,12 +100660,12 @@ Author: James Henstridge Date: Tue Mar 11 12:31:16 2003 +0000 make similar changes to the ones on glib head (call gtk-docize, etc). - + 2003-03-11 James Henstridge - + * autogen.sh: make similar changes to the ones on glib head (call gtk-docize, etc). - + * configure.in: move some calculations into M4 macros, rather than calculating them when configure runs. Use AC_HELP_STRING where appropriate. @@ -103354,27 +100674,27 @@ Date: Tue Mar 11 12:31:16 2003 +0000 AC_CONFIG_COMMANDS (once per created file). Get rid of the "chmod +x pango-config" bit, because there is no pango-config anymore. - + * Makefile.am: get rid of custom distcheck rule, and set DISTCHECK_CONFIGURE_FLAGS, which is equivalent. Use += to select which .pc files to install. - + * pango/Makefile.am: Add rules to rebuild module-defs* files, and remove them on clean. Reorder so that rules related to each individual library are next to each other. Use BUILT_SOURCES for built sources. - + * pango/opentype/Makefile.am: don't use STRIP_BEGIN/STRIP_END. - + * modules/*/Makefile.am: simplify module makefiles through use of +=, and regularise them a bit (fixed a few bugs in the process). - + * docs/Makefile.am: remove common rules, and instead include gtk-doc.make. - + * examples/Makefile.am: add pango.modules to CLEANFILES. - + * tests/Makefile.am: remove temporary files on clean. src/Makefile.am | 11 +++++------ @@ -103384,29 +100704,28 @@ commit 1aad15fd0c007c9075f2f7f4c4cacf576d726eea Author: Owen Taylor Date: Mon Feb 17 22:04:29 2003 +0000 - Add an --enable-debug configure argument defaulting to 'yes' - for unstable - + Add an --enable-debug configure argument defaulting to 'yes' for unstable + Mon Feb 17 13:06:39 2003 Owen Taylor - + * configure.in **/Makefile.am: Add an --enable-debug configure argument defaulting to 'yes' for unstable releases and 'minimum' for stable releases. For minimum, -DG_DISABLE_CAST_CHECKS. - + * pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c pango/pangoxft-fontmap.c: Add caching of fontsets (#104495, initial patch and review by Soeren Sandmann) - + * pango/pangofc-fontmap.cI pango/pangoft2-fontmap.c pango/pangoxft-fontmap.c pango/pangoft2-private.h pango/pangoxft-private.h: Remove cache of recently freed fonts; not necessary now that we cache fontsets. - + * pango/pangofc-fontmap.cI (pango_fc_pattern_set_free): Rename from pango_fc_font_set_free to reflect what it actually does. - + * pango/pangofc-fontmap.cI pango/pangoft-fontmap.c pango/pangoxft-fontmap.c: Combine clear-the-cache functions; we didn't need separate clear-the-font-cache @@ -103420,9 +100739,9 @@ Author: Owen Taylor Date: Wed Feb 12 22:12:55 2003 +0000 Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation - + Wed Feb 12 16:59:23 2003 Owen Taylor - + * configure.in pango/opentype/fterrcompat.h README: Up the FreeType version requirement to 2.0.9. (2.2.1 had a compilation failure with older versions, @@ -103437,12 +100756,12 @@ Author: Owen Taylor Date: Sat Jan 11 00:16:26 2003 +0000 Export TT_New_GDEF_Table to create an empty GDEF table. - + Fri Jan 10 18:56:36 2003 Owen Taylor - + * pango/opentype/ftxgdef.c: Export TT_New_GDEF_Table to create an empty GDEF table. - + * pango/opentype/pango-ot-info.c: If the font doesn't have a class definition table, synthesize one using the charmap and the unicode properties of characters @@ -103451,8 +100770,7 @@ Date: Sat Jan 11 00:16:26 2003 +0000 src/ftxgdef.c | 46 +++++++++++++++------- src/ftxgdef.h | 4 ++ - src/pango-ot-info.c | 108 - ++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/pango-ot-info.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+), 14 deletions(-) commit db6bb4b034d4d8d546fc9bdc4ad28b16bb7f1bb7 @@ -103460,10 +100778,10 @@ Author: Matthias Clasen Date: Thu Nov 28 23:53:18 2002 +0000 Add docs. - + * docs/tmpl/xft-fonts.sgml: * docs/tmpl/freetype-fonts.sgml: Add docs. - + * pango/pangoxft-fontmap.c (pango_xft_substitute_changed): * pango/pangoft2-fontmap.c (pango_ft2_font_map_set_default_substitute): @@ -103477,20 +100795,19 @@ Author: Sebastian Wilhelmi Date: Tue Nov 26 13:37:10 2002 +0000 Do not add GLIB_CFLAGS to CFLAGS. - - + + 2002-11-26 Sebastian Wilhelmi - + * configure.in: Do not add GLIB_CFLAGS to CFLAGS. - + * docs/Makefile.am, examples/Makefile.am, modules/arabic/Makefile.am, modules/basic/Makefile.am, modules/hangul/Makefile.am, modules/hebrew/Makefile.am, modules/indic/Makefile.am, modules/tamil/Makefile.am, modules/thai/Makefile.am, pango/Makefile.am, pango/mini-fribidi/Makefile.am, pango/opentype/Makefile.am: - Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS - for + Instead add $(GLIB_CFLAGS) directly to INCLUDES (GTKDOC_CFLAGS for docs/Makefile.am). Also some cosmetic line wrapping and reindentation. @@ -103502,12 +100819,11 @@ Author: Manish Singh Date: Mon Oct 14 22:50:48 2002 +0000 Get rid of unnecessary casts for g_object_{ref,unref} - + Mon Oct 14 15:39:41 2002 Manish Singh - + * pango/pango-context.c pango/pango-layout.c pango/pangoft2.c - pango/pangowin32-fontmap.c pango/pangowin32.c - pango/pangox-fontmap.c + pango/pangowin32-fontmap.c pango/pangowin32.c pango/pangox-fontmap.c pango/pangox.c pango/pangoxft-font.c pango/pangoxft-fontmap.c pango/testfonts.c pango/opentype/pango-ot-ruleset.c: Get rid of unnecessary casts for g_object_{ref,unref} @@ -103520,9 +100836,9 @@ Author: Owen Taylor Date: Sun Sep 29 19:06:58 2002 +0000 ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner - + Sun Sep 29 14:55:36 2002 Owen Taylor - + * pango/opentype/ftxgpos.c: ligatures can be also used in MarkBasePos lookups. (2001-03-17 Werner Lemberg) @@ -103534,15 +100850,14 @@ Author: Owen Taylor Date: Sun Sep 29 19:05:01 2002 +0000 Start of merges from freetype1 of OpenType fixes. - + Sun Sep 29 14:51:25 2002 Owen Taylor - + Start of merges from freetype1 of OpenType fixes. - + (2001-03-17 Werner Lemberg) - - * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c - pango/opentype/ftxg\sub.c: + + * pango/opentype/ftxgdef.c pango/opentype/ftxgpos.c pango/opentype/ftxg\sub.c: More fixes for special marks. src/ftxgdef.c | 13 ++++++++----- @@ -103554,17 +100869,14 @@ commit 5c53f14f371b349da65dfa3a848b17ab89ce3ba8 Author: Tor Lillqvist Date: Mon Sep 23 21:45:31 2002 +0000 - Remove. Not used. (A static library is built here. Exported entries - are in - + Remove. Not used. (A static library is built here. Exported entries are in + 2002-09-24 Tor Lillqvist - - * pango/opentype/pango-ot.def: Remove. Not used. (A static - library + + * pango/opentype/pango-ot.def: Remove. Not used. (A static library is built here. Exported entries are in ../pangoft2.def.) - - * pango/opentype/Makefile.am (EXTRA_DIST): Remove from - here, too. + + * pango/opentype/Makefile.am (EXTRA_DIST): Remove from here, too. src/Makefile.am | 3 +-- src/pango-ot.def | 50 -------------------------------------------------- @@ -103575,18 +100887,18 @@ Author: Tor Lillqvist Date: Mon Sep 23 21:19:30 2002 +0000 pango/makefile.mingw.in pango/mini-fribidi/makefile.mingw Remove. Not - + 2002-09-23 Tor Lillqvist - + * pango/makefile.mingw.in * pango/mini-fribidi/makefile.mingw * pango/opentype/makefile.mingw.in: Remove. Not maintained. - + * pango/Makefile.am (EXTRA_DIST) * pango/mini-fribidi/Makefile.am (EXTRA_DIST) * pango/opentype/Makefile.am (EXTRA_DIST): Remove makefile.mingw(.in) from here, too. - + * configure.in (AC_OUTPUT): Don't try to output above removed files. @@ -103617,15 +100929,14 @@ commit 441e7d0292bf1a06396daac80fcbad23976a824d Author: Owen Taylor Date: Wed Aug 7 17:01:52 2002 +0000 - Offset to MarkAttachClassDef is offset to table, not offset to - offset to - + Offset to MarkAttachClassDef is offset to table, not offset to offset to + Wed Aug 7 12:32:39 2002 Owen Taylor - + * pango/opentype/ftxgsub.c (TT_Load_GSUB_Table): Offset to MarkAttachClassDef is offset to table, not offset to offset to table. - + * pango/opentype/ftxopen.c (Get_Device): Handle NULL device tables which we represent with d->DeltaValue == NULL. @@ -103639,35 +100950,33 @@ Author: Owen Taylor Date: Tue Jun 4 00:20:51 2002 +0000 on Jun 3 18:56:09 2002 Owen Taylor - + Xft2 and fontconfig conversion, based largely on a patch from Keith Packard. - + * configure.in acconfig.h: Add checks for fontconfig, switch Xft checks to switch for Xft2 using pkg-config. - + * pangoxft.pc.in pangoxft.pc.in modules/{arabic,basic,hebrew,indic,tamil}/Makefile.am pango/Makefile.am: Reflect new Xft/fontconfig dependencies. - + * pango/pangoxft-private.h pango/pangoxft-fontmap.c modules/arabic/arabic-xft.c modules/indic/indic-xft.c: Switch over to using Xft2 and fontconfig. - - * pango/pangoft2.c pango/pangoft2-fontmap.c - pango/pangoft2-private.h + + * pango/pangoft2.c pango/pangoft2-fontmap.c pango/pangoft2-private.h pango/pango/Makefile.am: Remove usage of mini-xft in favor of fontconfig. - - * pango/pango-ot.h pango/opentype/pango-ot-info.c - pango/pangoxft.h + + * pango/pango-ot.h pango/opentype/pango-ot-info.c pango/pangoxft.h modules/arabic/arabic-{xft,ft2}.c modules/indic/indic-xft.c: Attach OpenType information directly to the FT_Face structure using FT_Generic. - + * modules/tamil/Makefile.am modules/tamil/tamil-xft.c configure.in: Remove this module, no longer needed. - + * pango/pangoxft-font.c (pango_xft_real_render): Coalesce calls to Xft rendering functions. @@ -103679,9 +100988,9 @@ Author: Owen Taylor Date: Fri May 10 18:44:47 2002 +0000 Fix acess outside of a loaded frame and some memory leaks on failure. - + Fri May 10 14:41:27 2002 Owen Taylor - + * pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Fix acess outside of a loaded frame and some memory leaks on failure. @@ -103694,17 +101003,14 @@ Author: Eric Mader Date: Tue May 7 20:39:14 2002 +0000 Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h, - + Mon May 06 15:07:39 2002 Eric Mader - * Add modules modules/indic/indic-xft.c, indic-ot.c, - indic-ot.h, indic-ot-class-tables.c - - * pango/opentype/ftxgdef.c: Compute full offset for mark - attachment class table - - * pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered - if nothing matches - + * Add modules modules/indic/indic-xft.c, indic-ot.c, indic-ot.h, indic-ot-class-tables.c + + * pango/opentype/ftxgdef.c: Compute full offset for mark attachment class table + + * pango/opentype/ftxgpos.c: Only return TTO_Err_Not_Covered if nothing matches + * pango/opentype/pango-ot-ruleset.c: enable GPOS processing src/ftxgdef.c | 10 ++++++++-- @@ -103717,9 +101023,9 @@ Author: Owen Taylor Date: Tue Apr 23 20:20:29 2002 +0000 Add compatibility defines for changes in FreeType 2.1.0. - + Tue Apr 23 16:15:07 2002 Owen Taylor - + * pango/opentype/fterrcompat.h: Add compatibility defines for changes in FreeType 2.1.0. @@ -103731,24 +101037,23 @@ Author: Owen Taylor Date: Fri Mar 15 06:46:05 2002 +0000 In Load_ChainContextSubst2, handle the case where an empty class - + Fri Mar 15 01:35:56 2002 Owen Taylor - + * pango/opentype/ftxgsub.c pango/opentype/ftxopen.c pango/opentype/ftxopenf.h: In Load_ChainContextSubst2, handle the case where an empty class definition is represented by an offset of 0. - + * pango/opentype/ftxgpos.c: Same for Load_ChainContextPos2. - + * pango/opentype/{ftxopen.c,ftxgpos.c,ftxgsub.c,ftgdef.c}: Fix pervasive bug where on cleanups on failure of loading an array element, all array elements were freed, not just the ones that had been succesfully loaded. src/ftxgdef.c | 24 +++--- - src/ftxgpos.c | 259 - ++++++++++++++++++++++++++++++++++++--------------------- + src/ftxgpos.c | 259 ++++++++++++++++++++++++++++++++++++--------------------- src/ftxgsub.c | 159 ++++++++++++++++++++--------------- src/ftxopen.c | 53 ++++++++---- src/ftxopenf.h | 2 + @@ -103759,16 +101064,15 @@ Author: Owen Taylor Date: Fri Mar 15 04:22:14 2002 +0000 Uncomment GPOS parts. - + Thu Mar 14 23:05:18 2002 Owen Taylor - + * pango/opentype/ftxopen.c: Uncomment GPOS parts. - + * pango/opentype/disasm.c: Start adding some GPOS dumping. - src/disasm.c | 146 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + src/disasm.c | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/ftxopen.c | 20 ++++---- 2 files changed, 154 insertions(+), 12 deletions(-) @@ -103777,8 +101081,8 @@ Author: Sebastian Wilhelmi Date: Thu Dec 13 17:44:46 2001 +0000 Resuming aborted commit - - + + Resuming aborted commit src/Makefile.am | 1 + @@ -103789,19 +101093,16 @@ Author: Matthias Clasen Date: Tue Oct 30 22:09:20 2001 +0000 Remove declarations of unimplemented functions - - * docs/pango-sections.txt, pango/pango-ot.h: Remove - declarations - of unimplemented functions pango_ot_ruleset_set_glyph_loader - and + + * docs/pango-sections.txt, pango/pango-ot.h: Remove declarations + of unimplemented functions pango_ot_ruleset_set_glyph_loader and pango_ot_ruleset_set_alternate_func and the related typedefs PangoOTGlyphLoader and PangoOTAlternateFunc. - + * pango/opentype/pango-ot-info.c, pango/opentype/pango-ot-ruleset.c: Documentation updates. - src/pango-ot-info.c | 76 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/pango-ot-info.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/pango-ot-ruleset.c | 27 ++++++++++++++++++ 2 files changed, 103 insertions(+) @@ -103809,18 +101110,15 @@ commit 87a475c09f6b9b391bca37de47a303a62a397b83 Author: Havoc Pennington Date: Wed Sep 19 21:20:36 2001 +0000 - header to abstract the difference between FreeType 2.0.3 and 2.0.4 - error - + header to abstract the difference between FreeType 2.0.3 and 2.0.4 error + 2001-09-19 Havoc Pennington - - * pango/opentype/fterrcompat.h: header to abstract the - difference + + * pango/opentype/fterrcompat.h: header to abstract the difference between FreeType 2.0.3 and 2.0.4 error codes, based on the configure check. - - * configure.in: check for the tterrors.h header in FreeType - 2.0.3, + + * configure.in: check for the tterrors.h header in FreeType 2.0.3, and define HAVE_FREETYPE_2_0_3 if we have it src/Makefile.am | 1 + @@ -103837,72 +101135,62 @@ Author: Owen Taylor Date: Tue Sep 18 20:05:20 2001 +0000 Up to 0.19. - + Tue Sep 18 15:47:08 2001 Owen Taylor - + * configure.in (PANGO_MINOR_VERSION): Up to 0.19. - + * pango/pango-font.h pango/pango-fontmap.[ch] pango/fonts.c - pango/pangoxft-fontmap.c pango/pangoft-fontmap.c - pango/pango-context.[ch] - pango/pangox-fontmap.c: Add new PangoFontFace and - PangoFontFamily - object types, and change the font listing API to list - faces and + pango/pangoxft-fontmap.c pango/pangoft-fontmap.c pango/pango-context.[ch] + pango/pangox-fontmap.c: Add new PangoFontFace and PangoFontFamily + object types, and change the font listing API to list faces and families, instead of face names and font descriptions. - + * pango/pango-font.h pango/fonts.c: Make PangoFontDescription an opaque heap-allocated structure, add accessors and convenience functions. - - * pango/pango-font.h pango/pango-private.h: Make - PangoFontMetrics + + * pango/pango-font.h pango/pango-private.h: Make PangoFontMetrics heap allocated, protect the structure definition with #ifdef PANGO_ENABLE_BACKEND, and add getters for the fields. - + * pango/pango-attributes.[ch] ( pango_attr_iterator_get_font): instead of providing a base font description and one to fill in, provide a single font description to modify based on the attributes. - + * pango/pango-attributes.[ch]: Fix PangoAttrFontDesc to have a PangoFontDescription by reference, not by value. - + * pango/pango-utils.[ch]: make pango_parse_style() and friends take pointers to individual enumerations instead of to a PangoFontDescription structure. - - * pango/*.c: Fix for the PangoFontDescription and - PangoFontMetrics + + * pango/*.c: Fix for the PangoFontDescription and PangoFontMetrics changes. - + * pango/pango-{break,engine,indic,ot,xft}.h pango/Makefile.am pango/opentype/Makefile.am: Protect portions with PANGO_ENABLE_ENGINE to shrink the public API. - + * modules/*/Makefile.am: -DPANGO_ENABLE_ENGINE. - - * pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: - Move - pango_x_font_get_unknown_glyph() into public header since - it is + + * pango/{pangox.h,pangox-private.h} modules/basic/basic-x.c: Move + pango_x_font_get_unknown_glyph() into public header since it is used from modules. - - * pango/pango-{context,font,fontmap,modules.utils}.h - pango/Makefile.am: - Protect portions with PANGO_ENABLE_BACKEND to shrink the - public API. - + + * pango/pango-{context,font,fontmap,modules.utils}.h pango/Makefile.am: + Protect portions with PANGO_ENABLE_BACKEND to shrink the public API. + * pango/*.h: Use G_BEGIN/END_DECLS - - * examples/viewer-qt.[cc,h]: Fix for changes to font - listing API, + + * examples/viewer-qt.[cc,h]: Fix for changes to font listing API, PangoFontDescription. - + * pango/pango-indic.h modules/indic/*: Since we install this header fix it up to Pango conventions, namespece ZERO_WIDTH_JOINER, ZERO_WIDTH_NON_JOINER. - + * docs/pango-sections.txt: Updated. src/Makefile.am | 1 + @@ -103913,55 +101201,46 @@ Author: Darin Adler Date: Thu Jul 12 16:34:40 2001 +0000 Remove stray semicolon. - - * modules/arabic/arabic-x.c: (arabic_engine_shape): Remove - stray + + * modules/arabic/arabic-x.c: (arabic_engine_shape): Remove stray semicolon. - + * modules/arabic/arconv.h: - * modules/arabic/arconv.c: (shape), (doublelig), - (arabic_reshape): - Use long* instead of int* for parameter to match what's - passed in. - + * modules/arabic/arconv.c: (shape), (doublelig), (arabic_reshape): + Use long* instead of int* for parameter to match what's passed in. + * modules/indic/bengali-x.c: Add missing include. - (pango_indic_make_ligs): Use local variable that was added - but not + (pango_indic_make_ligs): Use local variable that was added but not ever used. (pango_indic_engine_shape): Remove unused locals. - - * modules/indic/devanagari-x.c: Add missing - include. + + * modules/indic/devanagari-x.c: Add missing include. (pango_indic_engine_shape): Remove unused local. - + * modules/indic/gujarati-x.c: Add missing include. (pango_indic_engine_shape): Remove unused local - + * modules/tamil/tamil-x.c: (tamil_engine_shape): Initialize a variable to quiet the compiler's unused warning. - + * pango/.cvsignore: Ignore more generated files. - - * pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set - up the - ap variable. The old code would just use the uninitialized - value. - - * pango/opentype/ftxopen.c: (Load_Coverage): Remove unused - local. - + + * pango/opentype/ftxgpos.c: (Get_Anchor): Add code to set up the + ap variable. The old code would just use the uninitialized value. + + * pango/opentype/ftxopen.c: (Load_Coverage): Remove unused local. + * pango/opentype/pango-ot-ruleset.c: (pango_ot_ruleset_shape): Remove unused local. - + * pango/pango-attributes.c: (pango_attr_list_get_type), (pango_color_get_type): Add needed function type casts (just warnings under gcc, but could be errors in other compilers). - + * pango/pangoxft-font.c: (pango_xft_font_get_metrics), (pango_xft_font_get_coverage), (pango_xft_get_shaper_map), (pango_xft_font_find_shaper): Switch from lang char* to - PangoLanguage*. The code was still compiling, but would - not have + PangoLanguage*. The code was still compiling, but would not have worked. src/ftxgpos.c | 2 ++ @@ -103974,23 +101253,23 @@ Author: Owen Taylor Date: Fri May 18 16:04:40 2001 +0000 Use ISO C99 varargs when available. - + Fri May 18 11:30:57 2001 Owen Taylor - + * pango/opentype/disasm.c: Use ISO C99 varargs when available. - + Thu May 17 11:16:23 2001 Owen Taylor - + * pango/mapping.c: Fixup docs, remove some FIXMEs that are no longer applicable. - + * pango/pango-layout.c: Move by graphemes, not characters. - + * pango/pango-layout.c (pango_layout_line_x_to_index): Position at the closest grapheme boundary, not at character boundaries. - + * pango/pango-layout.c (pango_layout_line_index_to_x): Return positions of grapheme boundaries, not character boundaries. @@ -104004,9 +101283,9 @@ Author: Owen Taylor Date: Tue Apr 24 15:47:22 2001 +0000 Remove excess call to DONE_Stream left over from conversion from FT1. - + Tue Apr 24 11:45:55 2001 Owen Taylor - + * pango/opentype/ftxgdef.c (TT_Load_GDEF_Table): Remove excess call to DONE_Stream left over from conversion from FT1. (reported by Michael Jansson) @@ -104019,15 +101298,15 @@ Author: Owen Taylor Date: Tue Apr 3 19:07:36 2001 +0000 Release 0.14 - + Tue Apr 3 15:05:19 2001 Owen Taylor - + * Release 0.14 - + * NEWS: updated. - + * pango/pango/opentype/Makefile.am: make dist fixes. - + * configure.in (PANGO_MINOR_VERSION): Up to 0.14 src/Makefile.am | 10 ++++++++-- @@ -104038,67 +101317,58 @@ Author: Tor Lillqvist Date: Thu Dec 21 19:55:23 2000 +0000 Only a script engine here. - + 2000-12-21 Tor Lillqvist - - * modules/basic/basic-win32.c (script_engine_load): Only - a script + + * modules/basic/basic-win32.c (script_engine_load): Only a script engine here. - - * pango/makefile.mingw.in: Add the built - pango-enum-types.[ch]. - + + * pango/makefile.mingw.in: Add the built pango-enum-types.[ch]. + * pango/pango.def * pango/pangoft2.def: Update. - + * pango/opentype/pango-ot.def * pango/opentype/makefile.mingw.in: New files. - + * pango/opentype/Makefile.am (EXTRA_DIST): Add them. - + * configure.in (included_modules): Generate pango/opentype/makefile.mingw. src/Makefile.am | 4 +++- src/makefile.mingw.in | 43 +++++++++++++++++++++++++++++++++++++++++++ - src/pango-ot.def | 50 - ++++++++++++++++++++++++++++++++++++++++++++++++++ + src/pango-ot.def | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 96 insertions(+), 1 deletion(-) commit 80a15829135065e16ce5b129c715d10d14b829ba Author: Owen Taylor Date: Wed Dec 20 04:41:36 2000 +0000 - Since Xft may only be available statically without shlib deps, - check for - + Since Xft may only be available statically without shlib deps, check for + Tue Dec 19 22:47:16 2000 Owen Taylor - + * configure.in pango-config.in pangoxft.pc.in modules/basic/Makefile.am: Since Xft may only be available - statically without shlib deps, check for FreeType libs - explicitly - and include them when linking, otherwise things won't - work. Also, + statically without shlib deps, check for FreeType libs explicitly + and include them when linking, otherwise things won't work. Also, define FREETYPE_CFLAGS from freetype-config --cflags. - + * modules/basic/basic-xft.c pango/pangoxft-font{,map}.c: Fool Xft into not converting glyph indices by loading the face unencoded then calling FT_Set_Charmap ourselves. - - * pango/Makefile.am pango/pango-ot.h pango/opentype/* - :Add start - of opentype handling - most of the actually meat of the - code here - is the OpenType layout code from FreeType 1 ported to - freetype2 + + * pango/Makefile.am pango/pango-ot.h pango/opentype/* :Add start + of opentype handling - most of the actually meat of the code here + is the OpenType layout code from FreeType 1 ported to freetype2 and adapted slighlty for our purposes. Also, includes a incomplete OpenType-table-dumping code useful for figuring out what is going on. - + * pango/pangoxft.h pango/pangoxft-font.h: Add calls for getting FT_Face and PangoOTInfo from PangoXftFont. - + * modules/arabic/{Makefile.am,arabic-ot.[ch],arabic-xft.c}: Initial support for rendering Arabic with OpenType fonts. @@ -104110,8 +101380,7 @@ Date: Wed Dec 20 04:41:36 2000 +0000 src/disasm.h | 26 + src/ftxgdef.c | 1155 +++++++++ src/ftxgdef.h | 220 ++ - src/ftxgpos.c | 6222 - ++++++++++++++++++++++++++++++++++++++++++++++++ + src/ftxgpos.c | 6222 ++++++++++++++++++++++++++++++++++++++++++++++++ src/ftxgpos.h | 858 +++++++ src/ftxgsub.c | 4531 +++++++++++++++++++++++++++++++++++ src/ftxgsub.h | 612 +++++ diff --git a/Makefile.am b/Makefile.am index eb46cea..f9f6e36 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,7 +36,7 @@ ChangeLog: $(srcdir)/ChangeLog $(srcdir)/ChangeLog: $(AM_V_GEN) if test -d "$(top_srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git \ - $(GIT) log $(CHANGELOG_RANGE) --stat) | fmt --split-only > $@.tmp \ + $(GIT) log $(CHANGELOG_RANGE) --stat) > $@.tmp \ && mv -f $@.tmp "$(srcdir)/ChangeLog" \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ diff --git a/Makefile.in b/Makefile.in index 6faf227..9f62cb8 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir dist dist-all distcheck + cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, @@ -166,8 +166,7 @@ CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \ COPYING ChangeLog INSTALL NEWS README THANKS TODO ar-lib \ - compile config.guess config.sub depcomp install-sh ltmain.sh \ - missing + compile config.guess config.sub install-sh ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -388,7 +387,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -470,8 +468,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -613,7 +611,10 @@ distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ @@ -940,7 +941,7 @@ ChangeLog: $(srcdir)/ChangeLog $(srcdir)/ChangeLog: $(AM_V_GEN) if test -d "$(top_srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git \ - $(GIT) log $(CHANGELOG_RANGE) --stat) | fmt --split-only > $@.tmp \ + $(GIT) log $(CHANGELOG_RANGE) --stat) > $@.tmp \ && mv -f $@.tmp "$(srcdir)/ChangeLog" \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ diff --git a/NEWS b/NEWS index ef87dad..f3e424f 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +Overview of changes leading to 2.4.0 +Monday, March 25, 2019 +==================================== +- Unicode 12. +- Misc fixes. +- Subsetter improvements. +- New API: +HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE +hb_directwrite_face_create() + + Overview of changes leading to 2.3.1 Wednesday, January 30, 2019 ==================================== diff --git a/aclocal.m4 b/aclocal.m4 index ecde363..8fef336 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.15.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.1 -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -117,9 +117,9 @@ AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) ]) -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 11 (pkg-config-0.29.1) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -160,7 +160,7 @@ dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29]) +[m4_define([PKG_MACROS_VERSION], [0.29.1]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -393,7 +393,75 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + +# Copyright (C) 2002-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -405,10 +473,10 @@ AS_VAR_IF([$1], [""], [$5], [$4])dnl # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.15' +[am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.15.1], [], +m4_if([$1], [1.16.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -424,12 +492,12 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.15.1])dnl +[AM_AUTOMAKE_VERSION([1.16.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) -# Copyright (C) 2011-2017 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -491,7 +559,7 @@ AC_SUBST([AR])dnl # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -543,7 +611,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -574,7 +642,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -765,13 +833,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. - # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], @@ -779,49 +846,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS @@ -830,18 +889,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each '.P' file that we will -# need in order to bootstrap the dependency handling code. +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -928,8 +986,8 @@ AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. @@ -996,7 +1054,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -1038,7 +1096,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1059,7 +1117,7 @@ if test x"${install_sh+set}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1080,7 +1138,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1088,49 +1146,42 @@ AC_SUBST([am__leading_dot])]) # AM_MAKE_INCLUDE() # ----------------- -# Check to see how make treats includes. +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1169,7 +1220,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1198,7 +1249,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1245,7 +1296,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1264,7 +1315,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1345,7 +1396,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1405,7 +1456,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1433,7 +1484,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1452,7 +1503,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2004-2018 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/ar-lib b/ar-lib index 05094d3..0baa4f6 100755 --- a/ar-lib +++ b/ar-lib @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2017 Free Software Foundation, Inc. +# Copyright (C) 2010-2018 Free Software Foundation, Inc. # Written by Peter Rosin . # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ scriptversion=2012-03-01.08; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a diff --git a/compile b/compile index a85b723..99e5052 100755 --- a/compile +++ b/compile @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2012-10-14.11; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ EOF echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/config.guess b/config.guess index 31e01ef..256083a 100755 --- a/config.guess +++ b/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-11-07' +timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -107,9 +107,9 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; + ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; @@ -132,14 +132,14 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "${UNAME_SYSTEM}" in +case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu - eval $set_cc_for_build - cat <<-EOF > $dummy.c + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +149,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +176,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,52 +226,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; *:MidnightBSD:*:*) - echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Redox:*:*) - echo ${UNAME_MACHINE}-unknown-redox + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -316,7 +326,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -325,10 +335,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -340,7 +350,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -367,19 +377,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -392,13 +402,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -407,25 +417,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -436,44 +446,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -494,11 +504,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -524,17 +534,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -551,7 +561,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -563,14 +573,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include main() @@ -581,7 +591,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -595,7 +605,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -604,9 +614,9 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix @@ -615,7 +625,7 @@ EOF echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -630,28 +640,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include @@ -684,13 +694,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -709,15 +719,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #include int main () @@ -742,7 +752,7 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; @@ -763,9 +773,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -790,109 +800,109 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -906,63 +916,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -976,70 +986,70 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1053,34 +1063,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1090,12 +1100,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1105,9 +1115,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1127,9 +1137,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1149,9 +1159,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1160,28 +1170,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1192,7 +1202,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1212,23 +1222,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1247,39 +1257,39 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ @@ -1307,7 +1317,7 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1315,22 +1325,25 @@ EOF UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk${UNAME_RELEASE} + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1339,7 +1352,7 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 @@ -1350,7 +1363,7 @@ EOF else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1371,14 +1384,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1387,16 +1400,16 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs @@ -1405,7 +1418,7 @@ esac echo "$0: unable to guess system type" >&2 -case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 </dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/config.sub b/config.sub index 00f68b8..9ccf09a 100755 --- a/config.sub +++ b/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2018 Free Software Foundation, Inc. -timestamp='2017-11-23' +timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -94,7 +94,7 @@ while test $# -gt 0 ; do *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -112,7 +112,7 @@ esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ @@ -120,16 +120,16 @@ case $maybe_os in kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac @@ -178,44 +178,44 @@ case $os in ;; -sco6) os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 @@ -227,7 +227,7 @@ case $os in os=-lynxos ;; -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos @@ -296,7 +296,7 @@ case $basic_machine in | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ + | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ @@ -333,7 +333,7 @@ case $basic_machine in basic_machine=$basic_machine-unknown os=-none ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown @@ -362,7 +362,7 @@ case $basic_machine in ;; # Object if more than one company name word. *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. @@ -457,7 +457,7 @@ case $basic_machine in # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) - basic_machine=i386-unknown + basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) @@ -491,7 +491,7 @@ case $basic_machine in basic_machine=x86_64-pc ;; amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl @@ -536,7 +536,7 @@ case $basic_machine in os=-linux ;; blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) @@ -544,13 +544,13 @@ case $basic_machine in os=-cnk ;; c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray @@ -648,7 +648,7 @@ case $basic_machine in os=$os"spe" ;; e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) @@ -740,9 +740,6 @@ case $basic_machine in hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; - hppa-next) - os=-nextstep3 - ;; hppaosf) basic_machine=hppa1.1-hp os=-osf @@ -755,26 +752,26 @@ case $basic_machine in basic_machine=i370-ibm ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; - i386-vsta | vsta) + vsta) basic_machine=i386-unknown os=-vsta ;; @@ -793,19 +790,16 @@ case $basic_machine in os=-sysv ;; leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; - m88k-omron*) - basic_machine=m88k-omron - ;; magnum | m3230) basic_machine=mips-mips os=-sysv @@ -837,10 +831,10 @@ case $basic_machine in os=-mint ;; mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k @@ -859,7 +853,7 @@ case $basic_machine in os=-msdos ;; ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc @@ -946,6 +940,9 @@ case $basic_machine in nsr-tandem) basic_machine=nsr-tandem ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; nsx-tandem) basic_machine=nsx-tandem ;; @@ -981,7 +978,7 @@ case $basic_machine in os=-linux ;; parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) @@ -997,7 +994,7 @@ case $basic_machine in basic_machine=i386-pc ;; pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc @@ -1012,16 +1009,16 @@ case $basic_machine in basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould @@ -1031,23 +1028,23 @@ case $basic_machine in ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm @@ -1101,17 +1098,10 @@ case $basic_machine in sequent) basic_machine=i386-sequent ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; sh5el) basic_machine=sh5le-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) + simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; @@ -1130,7 +1120,7 @@ case $basic_machine in os=-sysv4 ;; strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun @@ -1244,9 +1234,6 @@ case $basic_machine in basic_machine=a29k-wrs os=-vxworks ;; - wasm32) - basic_machine=wasm32-unknown - ;; w65*) basic_machine=w65-wdc os=-none @@ -1266,20 +1253,12 @@ case $basic_machine in basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; none) basic_machine=none-none os=-none @@ -1308,10 +1287,6 @@ case $basic_machine in vax) basic_machine=vax-dec ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; pdp11) basic_machine=pdp11-dec ;; @@ -1321,9 +1296,6 @@ case $basic_machine in sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; cydra) basic_machine=cydra-cydrome ;; @@ -1343,7 +1315,7 @@ case $basic_machine in # Make sure to match an already-canonicalized machine name. ;; *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac @@ -1351,10 +1323,10 @@ esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; @@ -1377,15 +1349,16 @@ case $os in -solaris) os=-solaris2 ;; - -svr4*) - os=-sysv4 - ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. @@ -1398,25 +1371,26 @@ case $os in | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1433,12 +1407,12 @@ case $os in -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc @@ -1447,10 +1421,10 @@ case $os in os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition @@ -1461,12 +1435,6 @@ case $os in -wince*) os=-wince ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; -utek*) os=-bsd ;; @@ -1513,7 +1481,7 @@ case $os in -oss*) os=-sysv3 ;; - -svr4) + -svr4*) os=-sysv4 ;; -svr3) @@ -1528,18 +1496,9 @@ case $os in -ose*) os=-ose ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; - -aros*) - os=-aros - ;; -zvmoe) os=-zvmoe ;; @@ -1568,7 +1527,7 @@ case $os in *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1664,9 +1623,6 @@ case $basic_machine in *-be) os=-beos ;; - *-haiku) - os=-haiku - ;; *-ibm) os=-aix ;; @@ -1721,9 +1677,6 @@ case $basic_machine in i370-*) os=-mvs ;; - *-next) - os=-nextstep3 - ;; *-gould) os=-sysv ;; @@ -1833,15 +1786,15 @@ case $basic_machine in vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$basic_machine$os" exit # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/configure b/configure index 54a04a1..783a66d 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for HarfBuzz 2.3.1. +# Generated by GNU Autoconf 2.69 for HarfBuzz 2.4.0. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='HarfBuzz' PACKAGE_TARNAME='harfbuzz' -PACKAGE_VERSION='2.3.1' -PACKAGE_STRING='HarfBuzz 2.3.1' +PACKAGE_VERSION='2.4.0' +PACKAGE_STRING='HarfBuzz 2.4.0' PACKAGE_BUGREPORT='https://github.com/harfbuzz/harfbuzz/issues/new' PACKAGE_URL='http://harfbuzz.org/' @@ -785,7 +785,6 @@ am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE -am__quote am__include DEPDIR OBJEXT @@ -856,7 +855,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -875,7 +873,8 @@ PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR -SHELL' +SHELL +am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking @@ -983,7 +982,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' @@ -1236,15 +1234,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1382,7 +1371,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1495,7 +1484,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures HarfBuzz 2.3.1 to adapt to many kinds of systems. +\`configure' configures HarfBuzz 2.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1535,7 +1524,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] @@ -1566,7 +1554,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of HarfBuzz 2.3.1:";; + short | recursive ) echo "Configuration of HarfBuzz 2.4.0:";; esac cat <<\_ACEOF @@ -1749,7 +1737,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -HarfBuzz configure 2.3.1 +HarfBuzz configure 2.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2613,7 +2601,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by HarfBuzz $as_me 2.3.1, which was +It was created by HarfBuzz $as_me 2.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2967,7 +2955,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" -am__api_version='1.15' +am__api_version='1.16' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do @@ -3482,7 +3470,7 @@ fi # Define the identity of the package. PACKAGE='harfbuzz' - VERSION='2.3.1' + VERSION='2.4.0' # Some tools Automake needs. @@ -3503,8 +3491,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: -# -# +# +# mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The @@ -3671,7 +3659,7 @@ END Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . +that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM @@ -4166,45 +4154,45 @@ DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" - -am_make=${MAKE-make} -cat > confinc << 'END' +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' am__doit: - @echo this is the am__doit target + @echo this is the am__doit target >confinc.out .PHONY: am__doit END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from 'make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : ;; - esac -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +$as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : @@ -5382,8 +5370,8 @@ esac -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.6.42-b88ce' +macro_revision='2.4.6.42' @@ -6683,7 +6671,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -7045,13 +7033,29 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cru} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -7500,7 +7504,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ @@ -8769,8 +8773,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cru libconftest.a conftest.o" >&5 - $AR cru libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -9432,8 +9436,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -10360,23 +10364,20 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs=no - ;; esac ld_shlibs=yes @@ -10535,6 +10536,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -10631,7 +10633,7 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -10752,7 +10754,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -11019,12 +11021,12 @@ fi cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -11065,7 +11067,7 @@ fi fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -11301,7 +11303,6 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi - link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -11323,7 +11324,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -11390,6 +11391,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >&6; } emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -12097,8 +12099,8 @@ cygwin* | mingw* | pw32* | cegcc*) dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -12154,7 +12156,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -12438,18 +12440,6 @@ fi dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -13345,30 +13335,41 @@ striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if test -z "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - fi - ;; - *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -15459,8 +15460,8 @@ fi cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' @@ -15590,6 +15591,7 @@ fi emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes + file_list_spec_CXX='@' ;; dgux*) @@ -16667,7 +16669,7 @@ lt_prog_compiler_static_CXX= ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -17025,7 +17027,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -17033,7 +17035,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -17042,9 +17044,6 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - link_all_deplibs_CXX=no - ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -17398,8 +17397,8 @@ cygwin* | mingw* | pw32* | cegcc*) dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -17455,7 +17454,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -17738,18 +17737,6 @@ fi dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -18103,7 +18090,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18149,7 +18136,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18173,7 +18160,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18218,7 +18205,7 @@ else We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18242,7 +18229,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31)) +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; @@ -18411,9 +18398,9 @@ GIT=${GIT-"${am_missing_run}git"} HB_VERSION_MAJOR=2 -HB_VERSION_MINOR=3 -HB_VERSION_MICRO=1 -HB_VERSION=2.3.1 +HB_VERSION_MINOR=4 +HB_VERSION_MICRO=0 +HB_VERSION=2.4.0 @@ -18424,7 +18411,7 @@ HB_VERSION=2.3.1 -HB_LIBTOOL_VERSION_INFO=20301:0:20301 +HB_LIBTOOL_VERSION_INFO=20400:0:20400 @@ -21750,7 +21737,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by HarfBuzz $as_me 2.3.1, which was +This file was extended by HarfBuzz $as_me 2.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21817,7 +21804,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -HarfBuzz config.status 2.3.1 +HarfBuzz config.status 2.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -21936,7 +21923,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout @@ -21988,6 +21975,7 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -22170,7 +22158,6 @@ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -22946,29 +22933,35 @@ $as_echo "$as_me: executing $ac_file commands" >&6;} # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac shift - for mf + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf do # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named 'Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line + am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -22986,53 +22979,48 @@ $as_echo X"$mf" | q } s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running 'make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "$am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } - /^X\(\/\/\)$/{ + /^X\/\(\/\/\)$/{ s//\1/ q } - /^X\(\/\).*/{ + /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` - as_dir=$dirpart/$fdir; as_fn_mkdir_p - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? done + if test $am_rc -ne 0; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. Try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk } ;; "libtool":C) @@ -23050,6 +23038,7 @@ $as_echo X"$file" | cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -23193,8 +23182,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec @@ -23783,6 +23775,11 @@ $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi +echo +echo "C++ compiler version:" +$CXX --version +echo + { $as_echo "$as_me:${as_lineno-$LINENO}: Build configuration: diff --git a/configure.ac b/configure.ac index b7827a6..b51ac4a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([HarfBuzz], - [2.3.1], + [2.4.0], [https://github.com/harfbuzz/harfbuzz/issues/new], [harfbuzz], [http://harfbuzz.org/]) @@ -515,6 +515,11 @@ docs/version.xml AC_OUTPUT +echo +echo "C++ compiler version:" +$CXX --version +echo + AC_MSG_NOTICE([ Build configuration: diff --git a/depcomp b/depcomp index b39f98f..65cbf70 100755 --- a/depcomp +++ b/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2016-01-11.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ scriptversion=2016-01-11.22; # UTC # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -783,7 +783,7 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff --git a/docs/Makefile.in b/docs/Makefile.in index 3e2825e..3fa4a70 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -17,6 +17,24 @@ # Process this file with automake to produce Makefile.in # -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . #################################### # Everything below here is generic # @@ -313,7 +331,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -468,34 +485,34 @@ CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) gtkdoc-check.test @GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp #### setup #### -GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_$(V)) -GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP = $(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_ = $(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0 = @echo " DOC Preparing build"; #### scan #### -GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_$(V)) -GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN = $(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_ = $(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0 = @echo " DOC Scanning header files"; -GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_$(V)) -GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT = $(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_ = $(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0 = @echo " DOC Introspecting gobjects"; #### xml #### -GTK_DOC_V_XML = $(GTK_DOC_V_XML_$(V)) -GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML = $(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_ = $(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0 = @echo " DOC Building XML"; #### html #### -GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_$(V)) -GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML = $(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_ = $(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0 = @echo " DOC Building HTML"; -GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_$(V)) -GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF = $(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_ = $(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0 = @echo " DOC Fixing cross-references"; #### pdf #### -GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_$(V)) -GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF = $(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_ = $(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0 = @echo " DOC Building PDF"; # Files not to distribute @@ -529,8 +546,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_srcdir)/gtk-doc.make $(am__empty): @@ -557,7 +574,10 @@ ctags CTAGS: cscope cscopelist: -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -728,38 +748,38 @@ $(REPORT_FILES): sgml-build.stamp setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - destdir=`dirname $(abs_builddir)/$$file`; \ - test -d "$$destdir" || mkdir -p "$$destdir"; \ - test -f $(abs_srcdir)/$$file && \ - cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ - done; \ - fi; \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ fi $(AM_V_at)touch setup-build.stamp scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$$?" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ fi $(AM_V_at)touch scan-build.stamp @@ -769,7 +789,7 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE) sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp @@ -777,6 +797,9 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HF sgml.stamp: sgml-build.stamp @true +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ @@ -804,12 +827,8 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_con cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ test -f $$file && cp $$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) diff --git a/docs/harfbuzz-docs.xml b/docs/harfbuzz-docs.xml index 2735338..0c462f3 100644 --- a/docs/harfbuzz-docs.xml +++ b/docs/harfbuzz-docs.xml @@ -136,6 +136,7 @@ API Index Index of deprecated API + Index of new symbols in 2.2.0 Index of new symbols in 2.1.0 Index of new symbols in 2.0.0 Index of new symbols in 1.9.0 diff --git a/docs/harfbuzz-sections.txt b/docs/harfbuzz-sections.txt index fd7682e..27dc1e2 100644 --- a/docs/harfbuzz-sections.txt +++ b/docs/harfbuzz-sections.txt @@ -124,11 +124,17 @@ hb_script_get_horizontal_direction hb_language_from_string hb_language_to_string hb_language_get_default +hb_feature_from_string +hb_feature_to_string +hb_variation_from_string +hb_variation_to_string hb_bool_t hb_codepoint_t hb_destroy_func_t hb_direction_t hb_language_t +hb_feature_t +hb_variation_t hb_mask_t hb_position_t hb_tag_t @@ -147,6 +153,8 @@ HB_DIRECTION_IS_HORIZONTAL HB_DIRECTION_IS_VALID HB_DIRECTION_IS_VERTICAL HB_LANGUAGE_INVALID +HB_FEATURE_GLOBAL_END +HB_FEATURE_GLOBAL_START HB_BEGIN_DECLS HB_END_DECLS @@ -321,9 +329,6 @@ hb_font_set_ppem hb_font_set_ptem hb_font_set_scale hb_font_set_user_data -hb_variation_t -hb_variation_from_string -hb_variation_to_string hb_font_set_variations hb_font_set_var_coords_design hb_font_set_var_coords_normalized @@ -649,11 +654,6 @@ hb_set_union
hb-shape -HB_FEATURE_GLOBAL_END -HB_FEATURE_GLOBAL_START -hb_feature_t -hb_feature_from_string -hb_feature_to_string hb_shape hb_shape_full hb_shape_list_shapers diff --git a/docs/harfbuzz.types b/docs/harfbuzz.types deleted file mode 100644 index bd87111..0000000 --- a/docs/harfbuzz.types +++ /dev/null @@ -1,36 +0,0 @@ -hb_gobject_aat_layout_feature_selector_get_type -hb_gobject_aat_layout_feature_type_get_type -hb_gobject_blob_get_type -hb_gobject_buffer_cluster_level_get_type -hb_gobject_buffer_content_type_get_type -hb_gobject_buffer_diff_flags_get_type -hb_gobject_buffer_flags_get_type -hb_gobject_buffer_get_type -hb_gobject_buffer_serialize_flags_get_type -hb_gobject_buffer_serialize_format_get_type -hb_gobject_direction_get_type -hb_gobject_face_get_type -hb_gobject_feature_get_type -hb_gobject_font_funcs_get_type -hb_gobject_font_get_type -hb_gobject_glyph_flags_get_type -hb_gobject_glyph_info_get_type -hb_gobject_glyph_position_get_type -hb_gobject_map_get_type -hb_gobject_memory_mode_get_type -hb_gobject_ot_color_palette_flags_get_type -hb_gobject_ot_layout_glyph_class_get_type -hb_gobject_ot_math_constant_get_type -hb_gobject_ot_math_glyph_part_flags_get_type -hb_gobject_ot_math_glyph_part_get_type -hb_gobject_ot_math_glyph_variant_get_type -hb_gobject_ot_math_kern_get_type -hb_gobject_ot_var_axis_flags_get_type -hb_gobject_script_get_type -hb_gobject_segment_properties_get_type -hb_gobject_set_get_type -hb_gobject_shape_plan_get_type -hb_gobject_unicode_combining_class_get_type -hb_gobject_unicode_funcs_get_type -hb_gobject_unicode_general_category_get_type -hb_gobject_user_data_key_get_type diff --git a/docs/html/a-clustering-example-for-levels-0-and-1.html b/docs/html/a-clustering-example-for-levels-0-and-1.html index 714859a..6fc8e16 100644 --- a/docs/html/a-clustering-example-for-levels-0-and-1.html +++ b/docs/html/a-clustering-example-for-levels-0-and-1.html @@ -3,12 +3,12 @@ A clustering example for levels 0 and 1: HarfBuzz Manual - + - + @@ -115,6 +115,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/aat-shaping.html b/docs/html/aat-shaping.html index e1fff44..8a50f3f 100644 --- a/docs/html/aat-shaping.html +++ b/docs/html/aat-shaping.html @@ -3,12 +3,12 @@ AAT shaping: HarfBuzz Manual - + - + @@ -40,6 +40,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/adding-text-to-the-buffer.html b/docs/html/adding-text-to-the-buffer.html index b1157fb..07e7dda 100644 --- a/docs/html/adding-text-to-the-buffer.html +++ b/docs/html/adding-text-to-the-buffer.html @@ -3,12 +3,12 @@ Adding text to the buffer: HarfBuzz Manual - + - + @@ -30,6 +30,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/annotation-glossary.html b/docs/html/annotation-glossary.html index acf5467..f44d567 100644 --- a/docs/html/annotation-glossary.html +++ b/docs/html/annotation-glossary.html @@ -3,11 +3,11 @@ Annotation Glossary: HarfBuzz Manual - + - + @@ -76,6 +76,6 @@

Don't free data after the code is done.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/api-index-0-9-10.html b/docs/html/api-index-0-9-10.html deleted file mode 100644 index b670ca5..0000000 --- a/docs/html/api-index-0-9-10.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.10: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.10

-

O

-
-hb_ot_layout_get_size_params, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-11.html b/docs/html/api-index-0-9-11.html deleted file mode 100644 index 4f604c0..0000000 --- a/docs/html/api-index-0-9-11.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.11: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.11

-

B

-
-hb_buffer_clear_contents, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-2.html b/docs/html/api-index-0-9-2.html deleted file mode 100644 index 921e090..0000000 --- a/docs/html/api-index-0-9-2.html +++ /dev/null @@ -1,757 +0,0 @@ - - - - -Index of new symbols in 0.9.2: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.2

-

B

-
-hb_blob_create, function in hb-blob -
-
-
-hb_blob_create_sub_blob, function in hb-blob -
-
-
-hb_blob_destroy, function in hb-blob -
-
-
-hb_blob_get_data, function in hb-blob -
-
-
-hb_blob_get_data_writable, function in hb-blob -
-
-
-hb_blob_get_empty, function in hb-blob -
-
-
-hb_blob_get_length, function in hb-blob -
-
-
-hb_blob_get_user_data, function in hb-blob -
-
-
-hb_blob_is_immutable, function in hb-blob -
-
-
-hb_blob_make_immutable, function in hb-blob -
-
-
-hb_blob_reference, function in hb-blob -
-
-
-hb_blob_set_user_data, function in hb-blob -
-
-
-hb_buffer_add_utf16, function in hb-buffer -
-
-
-hb_buffer_add_utf32, function in hb-buffer -
-
-
-hb_buffer_add_utf8, function in hb-buffer -
-
-
-hb_buffer_allocation_successful, function in hb-buffer -
-
-
-hb_buffer_create, function in hb-buffer -
-
-
-hb_buffer_destroy, function in hb-buffer -
-
-
-hb_buffer_get_direction, function in hb-buffer -
-
-
-hb_buffer_get_empty, function in hb-buffer -
-
-
-hb_buffer_get_glyph_infos, function in hb-buffer -
-
-
-hb_buffer_get_glyph_positions, function in hb-buffer -
-
-
-hb_buffer_get_language, function in hb-buffer -
-
-
-hb_buffer_get_length, function in hb-buffer -
-
-
-hb_buffer_get_script, function in hb-buffer -
-
-
-hb_buffer_get_unicode_funcs, function in hb-buffer -
-
-
-hb_buffer_get_user_data, function in hb-buffer -
-
-
-hb_buffer_normalize_glyphs, function in hb-buffer -
-
-
-hb_buffer_pre_allocate, function in hb-buffer -
-
-
-hb_buffer_reference, function in hb-buffer -
-
-
-hb_buffer_reset, function in hb-buffer -
-
-
-hb_buffer_reverse, function in hb-buffer -
-
-
-hb_buffer_reverse_clusters, function in hb-buffer -
-
-
-hb_buffer_serialize_format_t, enum in hb-buffer -
-
-
-hb_buffer_set_direction, function in hb-buffer -
-
-
-hb_buffer_set_language, function in hb-buffer -
-
-
-hb_buffer_set_length, function in hb-buffer -
-
-
-hb_buffer_set_script, function in hb-buffer -
-
-
-hb_buffer_set_unicode_funcs, function in hb-buffer -
-
-
-hb_buffer_set_user_data, function in hb-buffer -
-
-

D

-
-hb_direction_from_string, function in hb-common -
-
-
-hb_direction_to_string, function in hb-common -
-
-

F

-
-hb_face_create, function in hb-face -
-
-
-hb_face_create_for_tables, function in hb-face -
-
-
-hb_face_destroy, function in hb-face -
-
-
-hb_face_get_empty, function in hb-face -
-
-
-hb_face_get_index, function in hb-face -
-
-
-hb_face_get_upem, function in hb-face -
-
-
-hb_face_get_user_data, function in hb-face -
-
-
-hb_face_is_immutable, function in hb-face -
-
-
-hb_face_make_immutable, function in hb-face -
-
-
-hb_face_reference, function in hb-face -
-
-
-hb_face_reference_blob, function in hb-face -
-
-
-hb_face_reference_table, function in hb-face -
-
-
-hb_face_set_index, function in hb-face -
-
-
-hb_face_set_upem, function in hb-face -
-
-
-hb_face_set_user_data, function in hb-face -
-
-
-hb_font_add_glyph_origin_for_direction, function in hb-font -
-
-
-hb_font_create, function in hb-font -
-
-
-hb_font_create_sub_font, function in hb-font -
-
-
-hb_font_destroy, function in hb-font -
-
-
-hb_font_funcs_create, function in hb-font -
-
-
-hb_font_funcs_destroy, function in hb-font -
-
-
-hb_font_funcs_get_empty, function in hb-font -
-
-
-hb_font_funcs_get_user_data, function in hb-font -
-
-
-hb_font_funcs_is_immutable, function in hb-font -
-
-
-hb_font_funcs_make_immutable, function in hb-font -
-
-
-hb_font_funcs_reference, function in hb-font -
-
-
-hb_font_funcs_set_glyph_contour_point_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_extents_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_from_name_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_h_advance_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_h_kerning_func, function in hb-deprecated -
-
-
-hb_font_funcs_set_glyph_h_origin_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_name_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_advance_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_kerning_func, function in hb-deprecated -
-
-
-hb_font_funcs_set_glyph_v_origin_func, function in hb-font -
-
-
-hb_font_funcs_set_user_data, function in hb-font -
-
-
-hb_font_get_empty, function in hb-font -
-
-
-hb_font_get_face, function in hb-font -
-
-
-hb_font_get_glyph, function in hb-font -
-
-
-hb_font_get_glyph_advance_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_contour_point, function in hb-font -
-
-
-hb_font_get_glyph_contour_point_for_origin, function in hb-font -
-
-
-hb_font_get_glyph_extents, function in hb-font -
-
-
-hb_font_get_glyph_extents_for_origin, function in hb-font -
-
-
-hb_font_get_glyph_from_name, function in hb-font -
-
-
-hb_font_get_glyph_h_advance, function in hb-font -
-
-
-hb_font_get_glyph_h_kerning, function in hb-deprecated -
-
-
-hb_font_get_glyph_h_origin, function in hb-font -
-
-
-hb_font_get_glyph_kerning_for_direction, function in hb-deprecated -
-
-
-hb_font_get_glyph_name, function in hb-font -
-
-
-hb_font_get_glyph_origin_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_v_advance, function in hb-font -
-
-
-hb_font_get_glyph_v_kerning, function in hb-deprecated -
-
-
-hb_font_get_glyph_v_origin, function in hb-font -
-
-
-hb_font_get_parent, function in hb-font -
-
-
-hb_font_get_ppem, function in hb-font -
-
-
-hb_font_get_ptem, function in hb-font -
-
-
-hb_font_get_scale, function in hb-font -
-
-
-hb_font_get_user_data, function in hb-font -
-
-
-hb_font_glyph_from_string, function in hb-font -
-
-
-hb_font_glyph_to_string, function in hb-font -
-
-
-hb_font_is_immutable, function in hb-font -
-
-
-hb_font_make_immutable, function in hb-font -
-
-
-hb_font_reference, function in hb-font -
-
-
-hb_font_set_funcs, function in hb-font -
-
-
-hb_font_set_funcs_data, function in hb-font -
-
-
-hb_font_set_ppem, function in hb-font -
-
-
-hb_font_set_scale, function in hb-font -
-
-
-hb_font_set_user_data, function in hb-font -
-
-
-hb_font_subtract_glyph_origin_for_direction, function in hb-font -
-
-
-hb_ft_face_create, function in hb-ft -
-
-
-hb_ft_face_create_cached, function in hb-ft -
-
-
-hb_ft_font_create, function in hb-ft -
-
-

G

-
-hb_gobject_blob_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_get_type, function in hb-gobject -
-
-
-hb_gobject_face_get_type, function in hb-gobject -
-
-
-hb_gobject_font_funcs_get_type, function in hb-gobject -
-
-
-hb_gobject_font_get_type, function in hb-gobject -
-
-
-hb_gobject_unicode_funcs_get_type, function in hb-gobject -
-
-

L

-
-hb_language_from_string, function in hb-common -
-
-
-hb_language_get_default, function in hb-common -
-
-
-hb_language_to_string, function in hb-common -
-
-

O

-
-hb_ot_shape_glyphs_closure, function in hb-ot-shape -
-
-
-hb_ot_tag_to_language, function in hb-ot-layout -
-
-

S

-
-hb_script_from_iso15924_tag, function in hb-common -
-
-
-hb_script_from_string, function in hb-common -
-
-
-hb_script_get_horizontal_direction, function in hb-common -
-
-
-hb_script_to_iso15924_tag, function in hb-common -
-
-
-hb_set_add, function in hb-set -
-
-
-hb_set_allocation_successful, function in hb-set -
-
-
-hb_set_clear, function in hb-set -
-
-
-hb_set_create, function in hb-set -
-
-
-hb_set_del, function in hb-set -
-
-
-hb_set_destroy, function in hb-set -
-
-
-hb_set_get_empty, function in hb-set -
-
-
-hb_set_get_user_data, function in hb-set -
-
-
-hb_set_has, function in hb-set -
-
-
-hb_set_intersect, function in hb-set -
-
-
-hb_set_next, function in hb-set -
-
-
-hb_set_reference, function in hb-set -
-
-
-hb_set_set, function in hb-set -
-
-
-hb_set_set_user_data, function in hb-set -
-
-
-hb_set_subtract, function in hb-set -
-
-
-hb_set_symmetric_difference, function in hb-set -
-
-
-hb_set_union, function in hb-set -
-
-
-hb_shape, function in hb-shape -
-
-
-hb_shape_full, function in hb-shape -
-
-
-hb_shape_list_shapers, function in hb-shape -
-
-

T

-
-hb_tag_from_string, function in hb-common -
-
-

U

-
-hb_unicode_combining_class, function in hb-unicode -
-
-
-hb_unicode_compose, function in hb-unicode -
-
-
-hb_unicode_decompose, function in hb-unicode -
-
-
-hb_unicode_funcs_create, function in hb-unicode -
-
-
-hb_unicode_funcs_destroy, function in hb-unicode -
-
-
-hb_unicode_funcs_get_empty, function in hb-unicode -
-
-
-hb_unicode_funcs_get_parent, function in hb-unicode -
-
-
-hb_unicode_funcs_get_user_data, function in hb-unicode -
-
-
-hb_unicode_funcs_is_immutable, function in hb-unicode -
-
-
-hb_unicode_funcs_make_immutable, function in hb-unicode -
-
-
-hb_unicode_funcs_reference, function in hb-unicode -
-
-
-hb_unicode_funcs_set_combining_class_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_compose_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_decompose_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_general_category_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_mirroring_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_script_func, function in hb-unicode -
-
-
-hb_unicode_funcs_set_user_data, function in hb-unicode -
-
-
-hb_unicode_general_category, function in hb-unicode -
-
-
-hb_unicode_mirroring, function in hb-unicode -
-
-
-hb_unicode_script, function in hb-unicode -
-
-

V

-
-hb_version, function in hb-version -
-
-
-hb_version_string, function in hb-version -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-20.html b/docs/html/api-index-0-9-20.html deleted file mode 100644 index 290acb6..0000000 --- a/docs/html/api-index-0-9-20.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 0.9.20: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.20

-

B

-
-hb_buffer_flags_t, enum in hb-buffer -
-
-
-hb_buffer_serialize_flags_t, enum in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-22.html b/docs/html/api-index-0-9-22.html deleted file mode 100644 index 7e56b79..0000000 --- a/docs/html/api-index-0-9-22.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.22: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.22

-

O

-
-hb_ot_layout_table_get_lookup_count, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-28.html b/docs/html/api-index-0-9-28.html deleted file mode 100644 index 1fa3ea2..0000000 --- a/docs/html/api-index-0-9-28.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.28: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.28

-

O

-
-hb_ot_font_set_funcs, function in hb-ot-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-30.html b/docs/html/api-index-0-9-30.html deleted file mode 100644 index 863701e..0000000 --- a/docs/html/api-index-0-9-30.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Index of new symbols in 0.9.30: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.30

-

O

-
-hb_ot_layout_language_get_required_feature, function in hb-ot-layout -
-
-

V

-
-hb_version_atleast, function in hb-version -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-31.html b/docs/html/api-index-0-9-31.html deleted file mode 100644 index 7326017..0000000 --- a/docs/html/api-index-0-9-31.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - -Index of new symbols in 0.9.31: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.31

-

B

-
-hb_buffer_add_codepoints, function in hb-buffer -
-
-
-hb_buffer_get_replacement_codepoint, function in hb-buffer -
-
-
-HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT, macro in hb-buffer -
-
-
-hb_buffer_set_replacement_codepoint, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-38.html b/docs/html/api-index-0-9-38.html deleted file mode 100644 index 196a9cc..0000000 --- a/docs/html/api-index-0-9-38.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -Index of new symbols in 0.9.38: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.38

-

F

-
-hb_ft_face_create_referenced, function in hb-ft -
-
-
-hb_ft_font_create_referenced, function in hb-ft -
-
-

G

-
-hb_glib_blob_create, function in hb-glib -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-39.html b/docs/html/api-index-0-9-39.html deleted file mode 100644 index 91f6acc..0000000 --- a/docs/html/api-index-0-9-39.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.39: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.39

-

B

-
-hb_buffer_add_latin1, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-41.html b/docs/html/api-index-0-9-41.html deleted file mode 100644 index b5913e9..0000000 --- a/docs/html/api-index-0-9-41.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.41: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.41

-

B

-
-hb_buffer_reverse_range, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-42.html b/docs/html/api-index-0-9-42.html deleted file mode 100644 index b048b2d..0000000 --- a/docs/html/api-index-0-9-42.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -Index of new symbols in 0.9.42: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.42

-

B

-
-hb_buffer_cluster_level_t, enum in hb-buffer -
-
-
-hb_buffer_get_cluster_level, function in hb-buffer -
-
-
-hb_buffer_set_cluster_level, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-5.html b/docs/html/api-index-0-9-5.html deleted file mode 100644 index 9054ab0..0000000 --- a/docs/html/api-index-0-9-5.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - -Index of new symbols in 0.9.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.5

-

B

-
-hb_buffer_get_content_type, function in hb-buffer -
-
-
-hb_buffer_set_content_type, function in hb-buffer -
-
-

F

-
-hb_feature_from_string, function in hb-shape -
-
-
-hb_feature_to_string, function in hb-shape -
-
-

T

-
-hb_tag_to_string, function in hb-common -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-7.html b/docs/html/api-index-0-9-7.html deleted file mode 100644 index 8ffe5dd..0000000 --- a/docs/html/api-index-0-9-7.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - -Index of new symbols in 0.9.7: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.7

-

B

-
-hb_buffer_add, function in hb-buffer -
-
-
-hb_buffer_deserialize_glyphs, function in hb-buffer -
-
-
-hb_buffer_get_flags, function in hb-buffer -
-
-
-hb_buffer_get_segment_properties, function in hb-buffer -
-
-
-hb_buffer_guess_segment_properties, function in hb-buffer -
-
-
-hb_buffer_serialize_format_from_string, function in hb-buffer -
-
-
-hb_buffer_serialize_format_to_string, function in hb-buffer -
-
-
-hb_buffer_serialize_glyphs, function in hb-buffer -
-
-
-hb_buffer_serialize_list_formats, function in hb-buffer -
-
-
-hb_buffer_set_flags, function in hb-buffer -
-
-
-hb_buffer_set_segment_properties, function in hb-buffer -
-
-

F

-
-hb_face_get_glyph_count, function in hb-face -
-
-
-hb_face_set_glyph_count, function in hb-face -
-
-

O

-
-hb_ot_layout_feature_get_lookups, function in hb-ot-layout -
-
-
-hb_ot_layout_get_glyphs_in_class, function in hb-ot-layout -
-
-
-hb_ot_layout_get_glyph_class, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_collect_glyphs, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_substitute_closure, function in hb-ot-layout -
-
-
-hb_ot_layout_lookup_would_substitute, function in hb-ot-layout -
-
-
-hb_ot_shape_plan_collect_lookups, function in hb-ot-layout -
-
-

S

-
-hb_segment_properties_equal, function in hb-buffer -
-
-
-hb_segment_properties_hash, function in hb-buffer -
-
-
-hb_set_add_range, function in hb-set -
-
-
-hb_set_del_range, function in hb-set -
-
-
-hb_set_get_max, function in hb-set -
-
-
-hb_set_get_min, function in hb-set -
-
-
-hb_set_get_population, function in hb-set -
-
-
-hb_set_is_empty, function in hb-set -
-
-
-hb_set_is_equal, function in hb-set -
-
-
-hb_set_next_range, function in hb-set -
-
-
-hb_shape_plan_create, function in hb-shape-plan -
-
-
-hb_shape_plan_create_cached, function in hb-shape-plan -
-
-
-hb_shape_plan_destroy, function in hb-shape-plan -
-
-
-hb_shape_plan_execute, function in hb-shape-plan -
-
-
-hb_shape_plan_get_empty, function in hb-shape-plan -
-
-
-hb_shape_plan_get_shaper, function in hb-shape-plan -
-
-
-hb_shape_plan_get_user_data, function in hb-shape-plan -
-
-
-hb_shape_plan_reference, function in hb-shape-plan -
-
-
-hb_shape_plan_set_user_data, function in hb-shape-plan -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-0-9-8.html b/docs/html/api-index-0-9-8.html deleted file mode 100644 index c42dee8..0000000 --- a/docs/html/api-index-0-9-8.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 0.9.8: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 0.9.8

-

O

-
-hb_ot_layout_collect_lookups, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-0-5.html b/docs/html/api-index-1-0-5.html deleted file mode 100644 index 47bc601..0000000 --- a/docs/html/api-index-1-0-5.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - -Index of new symbols in 1.0.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.0.5

-

F

-
-hb_font_set_parent, function in hb-font -
-
-
-hb_ft_font_get_load_flags, function in hb-ft -
-
-
-hb_ft_font_set_load_flags, function in hb-ft -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-1-2.html b/docs/html/api-index-1-1-2.html deleted file mode 100644 index 5a774cc..0000000 --- a/docs/html/api-index-1-1-2.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 1.1.2: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.1.2

-

F

-
-hb_font_funcs_set_font_h_extents_func, function in hb-font -
-
-
-hb_font_funcs_set_font_v_extents_func, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-1-3.html b/docs/html/api-index-1-1-3.html deleted file mode 100644 index cc9d926..0000000 --- a/docs/html/api-index-1-1-3.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Index of new symbols in 1.1.3: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.1.3

-

B

-
-hb_buffer_set_message_func, function in hb-buffer -
-
-

F

-
-hb_font_get_extents_for_direction, function in hb-font -
-
-
-hb_font_get_h_extents, function in hb-font -
-
-
-hb_font_get_v_extents, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-2-3.html b/docs/html/api-index-1-2-3.html deleted file mode 100644 index 36bf20c..0000000 --- a/docs/html/api-index-1-2-3.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - -Index of new symbols in 1.2.3: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.2.3

-

F

-
-hb_font_funcs_set_nominal_glyph_func, function in hb-font -
-
-
-hb_font_funcs_set_variation_glyph_func, function in hb-font -
-
-
-hb_font_get_nominal_glyph, function in hb-font -
-
-
-hb_font_get_variation_glyph, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-3-3.html b/docs/html/api-index-1-3-3.html deleted file mode 100644 index f5687f5..0000000 --- a/docs/html/api-index-1-3-3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - -Index of new symbols in 1.3.3: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/api-index-1-4-0.html b/docs/html/api-index-1-4-0.html deleted file mode 100644 index c6bfe97..0000000 --- a/docs/html/api-index-1-4-0.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - -Index of new symbols in 1.4.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.4.0

-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-4-2.html b/docs/html/api-index-1-4-2.html deleted file mode 100644 index e7fd690..0000000 --- a/docs/html/api-index-1-4-2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -Index of new symbols in 1.4.2: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.4.2

-

F

-
-hb_font_get_var_coords_normalized, function in hb-font -
-
-
-hb_font_set_variations, function in hb-font -
-
-
-hb_font_set_var_coords_design, function in hb-font -
-
-
-hb_font_set_var_coords_normalized, function in hb-font -
-
-

O

-
-hb_ot_var_get_axis_count, function in hb-ot-var -
-
-
-hb_ot_var_has_data, function in hb-ot-var -
-
-
-hb_ot_var_normalize_coords, function in hb-ot-var -
-
-
-hb_ot_var_normalize_variations, function in hb-ot-var -
-
-
-HB_OT_VAR_NO_AXIS_INDEX, macro in hb-deprecated -
-
-

V

-
-hb_variation_from_string, function in hb-font -
-
-
-hb_variation_t, struct in hb-font -
-
-
-hb_variation_to_string, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-4-3.html b/docs/html/api-index-1-4-3.html deleted file mode 100644 index 9b333ed..0000000 --- a/docs/html/api-index-1-4-3.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 1.4.3: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.4.3

-

F

-
-hb_font_set_face, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-5-0.html b/docs/html/api-index-1-5-0.html deleted file mode 100644 index 0321f7a..0000000 --- a/docs/html/api-index-1-5-0.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - -Index of new symbols in 1.5.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.5.0

-

B

-
-hb_buffer_append, function in hb-buffer -
-
-
-hb_buffer_diff, function in hb-buffer -
-
-

G

-
-hb_glyph_flags_t, enum in hb-buffer -
-
-
-hb_glyph_info_get_glyph_flags, function in hb-buffer -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-6-0.html b/docs/html/api-index-1-6-0.html deleted file mode 100644 index cf383a5..0000000 --- a/docs/html/api-index-1-6-0.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - -Index of new symbols in 1.6.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.6.0

-

F

-
-hb_face_get_table_tags, function in hb-face -
-
-
-hb_font_set_ptem, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-7-5.html b/docs/html/api-index-1-7-5.html deleted file mode 100644 index 3863eea..0000000 --- a/docs/html/api-index-1-7-5.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - -Index of new symbols in 1.7.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.7.5

- -
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-7-7.html b/docs/html/api-index-1-7-7.html deleted file mode 100644 index 277561c..0000000 --- a/docs/html/api-index-1-7-7.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - -Index of new symbols in 1.7.7: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.7.7

-

B

-
-hb_blob_create_from_file, function in hb-blob -
-
-

F

-
-hb_face_count, function in hb-face -
-
-

M

-
-hb_map_allocation_successful, function in hb-map -
-
-
-hb_map_clear, function in hb-map -
-
-
-hb_map_create, function in hb-map -
-
-
-hb_map_del, function in hb-map -
-
-
-hb_map_destroy, function in hb-map -
-
-
-hb_map_get, function in hb-map -
-
-
-hb_map_get_empty, function in hb-map -
-
-
-hb_map_get_population, function in hb-map -
-
-
-hb_map_get_user_data, function in hb-map -
-
-
-hb_map_has, function in hb-map -
-
-
-hb_map_is_empty, function in hb-map -
-
-
-hb_map_reference, function in hb-map -
-
-
-hb_map_set, function in hb-map -
-
-
-hb_map_set_user_data, function in hb-map -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-8-0.html b/docs/html/api-index-1-8-0.html deleted file mode 100644 index 65476d8..0000000 --- a/docs/html/api-index-1-8-0.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -Index of new symbols in 1.8.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.8.0

-

B

-
-hb_blob_copy_writable_or_fail, function in hb-blob -
-
-

S

-
-hb_set_previous, function in hb-set -
-
-
-hb_set_previous_range, function in hb-set -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-8-1.html b/docs/html/api-index-1-8-1.html deleted file mode 100644 index 2db6d73..0000000 --- a/docs/html/api-index-1-8-1.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - -Index of new symbols in 1.8.1: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.8.1

-

O

-
-hb_ot_layout_lookups_substitute_closure, function in hb-ot-layout -
-
-

S

-
-hb_set_is_subset, function in hb-set -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-8-5.html b/docs/html/api-index-1-8-5.html deleted file mode 100644 index 4c31dfc..0000000 --- a/docs/html/api-index-1-8-5.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - -Index of new symbols in 1.8.5: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.8.5

-

O

-
-hb_ot_layout_collect_features, function in hb-ot-layout -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-8-6.html b/docs/html/api-index-1-8-6.html deleted file mode 100644 index b930c3f..0000000 --- a/docs/html/api-index-1-8-6.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - -Index of new symbols in 1.8.6: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.8.6

-

F

-
-hb_font_funcs_set_glyph_h_advances_func, function in hb-font -
-
-
-hb_font_funcs_set_glyph_v_advances_func, function in hb-font -
-
-
-hb_font_get_glyph_advances_for_direction, function in hb-font -
-
-
-hb_font_get_glyph_h_advances, function in hb-font -
-
-
-hb_font_get_glyph_v_advances, function in hb-font -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-1-9-0.html b/docs/html/api-index-1-9-0.html deleted file mode 100644 index c04ee2e..0000000 --- a/docs/html/api-index-1-9-0.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -Index of new symbols in 1.9.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 1.9.0

-

F

-
-hb_face_builder_add_table, function in hb-face -
-
-
-hb_face_builder_create, function in hb-face -
-
-
-hb_face_collect_unicodes, function in hb-face -
-
-
-hb_face_collect_variation_selectors, function in hb-face -
-
-
-hb_face_collect_variation_unicodes, function in hb-face -
-
-

U

-
-HB_UNICODE_MAX, macro in hb-unicode -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-2-0-0.html b/docs/html/api-index-2-0-0.html deleted file mode 100644 index bf4c644..0000000 --- a/docs/html/api-index-2-0-0.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -Index of new symbols in 2.0.0: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/api-index-2-1-0.html b/docs/html/api-index-2-1-0.html deleted file mode 100644 index f1e19aa..0000000 --- a/docs/html/api-index-2-1-0.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Index of new symbols in 2.1.0: HarfBuzz Manual - - - - - - - - - - - - - - - - -
-

-Index of new symbols in 2.1.0

-

C

-
-hb_color_get_alpha, macro in hb-ot-color -
-
-
-hb_color_get_blue, macro in hb-ot-color -
-
-
-hb_color_get_green, macro in hb-ot-color -
-
-
-hb_color_get_red, macro in hb-ot-color -
-
-
-hb_color_t, typedef in hb-ot-color -
-
-

O

-
-hb_ot_color_glyph_get_layers, function in hb-ot-color -
-
-
-hb_ot_color_glyph_reference_png, function in hb-ot-color -
-
-
-hb_ot_color_glyph_reference_svg, function in hb-ot-color -
-
-
-hb_ot_color_has_layers, function in hb-ot-color -
-
-
-hb_ot_color_has_palettes, function in hb-ot-color -
-
-
-hb_ot_color_has_png, function in hb-ot-color -
-
-
-hb_ot_color_has_svg, function in hb-ot-color -
-
-
-hb_ot_color_palette_color_get_name_id, function in hb-ot-color -
-
-
-hb_ot_color_palette_flags_t, enum in hb-ot-color -
-
-
-hb_ot_color_palette_get_colors, function in hb-ot-color -
-
-
-hb_ot_color_palette_get_count, function in hb-ot-color -
-
-
-hb_ot_color_palette_get_flags, function in hb-ot-color -
-
-
-hb_ot_color_palette_get_name_id, function in hb-ot-color -
-
-
-hb_ot_name_get_utf16, function in hb-ot-name -
-
-
-hb_ot_name_get_utf32, function in hb-ot-name -
-
-
-hb_ot_name_get_utf8, function in hb-ot-name -
-
-
-hb_ot_name_list_names, function in hb-ot-name -
-
-
- - - \ No newline at end of file diff --git a/docs/html/api-index-full.html b/docs/html/api-index-full.html index 5e0cb84..9e3926d 100644 --- a/docs/html/api-index-full.html +++ b/docs/html/api-index-full.html @@ -3,12 +3,12 @@ API Index: HarfBuzz Manual - + - + @@ -147,7 +147,7 @@
-hb_blob_t, typedef in hb-blob +hb_blob_t, typedef in hb-blob
@@ -407,7 +407,7 @@
-hb_buffer_t, typedef in hb-buffer +hb_buffer_t, typedef in hb-buffer

C

@@ -606,27 +606,27 @@
-hb_face_t, typedef in hb-face +hb_face_t, typedef in hb-face
-hb_feature_from_string, function in hb-shape +hb_feature_from_string, function in hb-common
-HB_FEATURE_GLOBAL_END, macro in hb-shape +HB_FEATURE_GLOBAL_END, macro in hb-common
-HB_FEATURE_GLOBAL_START, macro in hb-shape +HB_FEATURE_GLOBAL_START, macro in hb-common
-hb_feature_t, struct in hb-shape +hb_feature_t, struct in hb-common
-hb_feature_to_string, function in hb-shape +hb_feature_to_string, function in hb-common
@@ -746,7 +746,7 @@
-hb_font_funcs_t, typedef in hb-font +hb_font_funcs_t, typedef in hb-font
@@ -1034,7 +1034,7 @@
-hb_font_t, typedef in hb-font +hb_font_t, typedef in hb-font
@@ -1103,271 +1103,7 @@
-hb_glyph_position_t, struct in hb-buffer -
-
-
-hb_gobject_blob_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_cluster_level_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_content_type_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_diff_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_serialize_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_buffer_serialize_format_get_type, function in hb-gobject -
-
-
-hb_gobject_direction_get_type, function in hb-gobject -
-
-
-hb_gobject_face_get_type, function in hb-gobject -
-
-
-hb_gobject_feature_get_type, function in hb-gobject -
-
-
-hb_gobject_font_funcs_get_type, function in hb-gobject -
-
-
-hb_gobject_font_get_type, function in hb-gobject -
-
-
-hb_gobject_glyph_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_glyph_info_get_type, function in hb-gobject -
-
-
-hb_gobject_glyph_position_get_type, function in hb-gobject -
-
-
-hb_gobject_map_get_type, function in hb-gobject -
-
-
-hb_gobject_memory_mode_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_color_palette_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_layout_glyph_class_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_math_constant_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_math_glyph_part_flags_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_math_glyph_part_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_math_glyph_variant_get_type, function in hb-gobject -
-
-
-hb_gobject_ot_math_kern_get_type, function in hb-gobject -
-
-
-hb_gobject_script_get_type, function in hb-gobject -
-
-
-hb_gobject_segment_properties_get_type, function in hb-gobject -
-
-
-hb_gobject_set_get_type, function in hb-gobject -
-
-
-hb_gobject_shape_plan_get_type, function in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BLOB, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_DIRECTION, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FACE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FEATURE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FONT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_FONT_FUNCS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_GLYPH_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_GLYPH_INFO, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_GLYPH_POSITION, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_MAP, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_MEMORY_MODE, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_MATH_CONSTANT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_OT_MATH_KERN, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SCRIPT, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SEGMENT_PROPERTIES, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SET, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_SHAPE_PLAN, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_FUNCS, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY, macro in hb-gobject -
-
-
-HB_GOBJECT_TYPE_USER_DATA_KEY, macro in hb-gobject -
-
-
-hb_gobject_unicode_combining_class_get_type, function in hb-gobject -
-
-
-hb_gobject_unicode_funcs_get_type, function in hb-gobject -
-
-
-hb_gobject_unicode_general_category_get_type, function in hb-gobject -
-
-
-hb_gobject_user_data_key_get_type, function in hb-gobject +hb_glyph_position_t, struct in hb-buffer
@@ -1470,7 +1206,7 @@
-hb_map_t, typedef in hb-map +hb_map_t, typedef in hb-map
@@ -1727,11 +1463,11 @@
-hb_ot_math_glyph_part_t, struct in hb-ot-math +hb_ot_math_glyph_part_t, struct in hb-ot-math
-hb_ot_math_glyph_variant_t, struct in hb-ot-math +hb_ot_math_glyph_variant_t, struct in hb-ot-math
@@ -1950,7 +1686,7 @@
-hb_segment_properties_t, struct in hb-buffer +hb_segment_properties_t, struct in hb-buffer
@@ -2062,7 +1798,7 @@
-hb_set_t, typedef in hb-set +hb_set_t, typedef in hb-set
@@ -2130,7 +1866,7 @@
-hb_shape_plan_t, typedef in hb-shape-plan +hb_shape_plan_t, typedef in hb-shape-plan

T

@@ -2256,7 +1992,7 @@
-hb_unicode_funcs_t, typedef in hb-unicode +hb_unicode_funcs_t, typedef in hb-unicode
@@ -2308,20 +2044,20 @@
-hb_user_data_key_t, struct in hb-common +hb_user_data_key_t, struct in hb-common

V

-hb_variation_from_string, function in hb-font +hb_variation_from_string, function in hb-common
-hb_variation_t, struct in hb-font +hb_variation_t, struct in hb-common
-hb_variation_to_string, function in hb-font +hb_variation_to_string, function in hb-common
@@ -2362,6 +2098,6 @@
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/buffers-language-script-and-direction.html b/docs/html/buffers-language-script-and-direction.html index d88dc05..57f2f59 100644 --- a/docs/html/buffers-language-script-and-direction.html +++ b/docs/html/buffers-language-script-and-direction.html @@ -3,12 +3,12 @@ Buffers, language, script and direction: HarfBuzz Manual - + - + @@ -83,6 +83,6 @@ void somefunc(hb_buffer_t *buffer) { +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/building.html b/docs/html/building.html index 6454786..7b158ae 100644 --- a/docs/html/building.html +++ b/docs/html/building.html @@ -3,12 +3,12 @@ Building HarfBuzz: HarfBuzz Manual - + - + @@ -408,11 +408,22 @@

+ +

--enable-gtk-doc

+ +

+ Use GTK-Doc. (Default = no) +

+

+ This option enables the building of the documentation. +

+ + +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch01s03.html b/docs/html/ch01s03.html index afce4d1..96bf10a 100644 --- a/docs/html/ch01s03.html +++ b/docs/html/ch01s03.html @@ -3,12 +3,12 @@ What does HarfBuzz do?: HarfBuzz Manual - + - + @@ -103,6 +103,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch03s02.html b/docs/html/ch03s02.html index e3f5af9..0cbc6a6 100644 --- a/docs/html/ch03s02.html +++ b/docs/html/ch03s02.html @@ -3,12 +3,12 @@ Terminology: HarfBuzz Manual - + - + @@ -145,6 +145,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch03s03.html b/docs/html/ch03s03.html index 1905b84..08bb473 100644 --- a/docs/html/ch03s03.html +++ b/docs/html/ch03s03.html @@ -3,12 +3,12 @@ A simple shaping example: HarfBuzz Manual - + - + @@ -35,7 +35,7 @@ hb_buffer_add_utf8(buf, text, -1, 0, -1);
  1. - Guess the script, language and direction of the buffer. + Set the script, language and direction of the buffer.

       hb_buffer_set_direction(buf, HB_DIRECTION_LTR);
@@ -69,14 +69,14 @@
 	

       for (i = 0; i < glyph_count; ++i) {
-      glyphid = glyph_info[i].codepoint;
-      x_offset = glyph_pos[i].x_offset / 64.0;
-      y_offset = glyph_pos[i].y_offset / 64.0;
-      x_advance = glyph_pos[i].x_advance / 64.0;
-      y_advance = glyph_pos[i].y_advance / 64.0;
-      draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
-      cursor_x += x_advance;
-      cursor_y += y_advance;
+          glyphid = glyph_info[i].codepoint;
+          x_offset = glyph_pos[i].x_offset / 64.0;
+          y_offset = glyph_pos[i].y_offset / 64.0;
+          x_advance = glyph_pos[i].x_advance / 64.0;
+          y_advance = glyph_pos[i].y_advance / 64.0;
+          draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset);
+          cursor_x += x_advance;
+          cursor_y += y_advance;
       }
     
  1. @@ -94,6 +94,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch09.html b/docs/html/ch09.html index 1c709c4..c6cac7b 100644 --- a/docs/html/ch09.html +++ b/docs/html/ch09.html @@ -3,12 +3,12 @@ Core API: HarfBuzz Manual - + - + @@ -62,6 +62,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch10.html b/docs/html/ch10.html index a80ab8c..7c615c1 100644 --- a/docs/html/ch10.html +++ b/docs/html/ch10.html @@ -3,12 +3,12 @@ OpenType API: HarfBuzz Manual - + - + @@ -47,6 +47,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch11.html b/docs/html/ch11.html index 3c9039c..4081a6d 100644 --- a/docs/html/ch11.html +++ b/docs/html/ch11.html @@ -3,12 +3,12 @@ Apple Advanced Typography API: HarfBuzz Manual - + - + @@ -27,6 +27,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/ch12.html b/docs/html/ch12.html index 0c63823..b504c84 100644 --- a/docs/html/ch12.html +++ b/docs/html/ch12.html @@ -3,12 +3,12 @@ Integration API: HarfBuzz Manual - + - + @@ -47,6 +47,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/clusters.html b/docs/html/clusters.html index 9162099..2d6c36d 100644 --- a/docs/html/clusters.html +++ b/docs/html/clusters.html @@ -3,12 +3,12 @@ Clusters: HarfBuzz Manual - + - + @@ -120,6 +120,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/complex-scripts.html b/docs/html/complex-scripts.html index 4ee994b..8584a15 100644 --- a/docs/html/complex-scripts.html +++ b/docs/html/complex-scripts.html @@ -3,12 +3,12 @@ Complex scripts: HarfBuzz Manual - + - + @@ -52,6 +52,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/customizing-unicode-functions.html b/docs/html/customizing-unicode-functions.html index 090b871..5528b53 100644 --- a/docs/html/customizing-unicode-functions.html +++ b/docs/html/customizing-unicode-functions.html @@ -3,12 +3,12 @@ Customizing Unicode functions: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/deprecated-api-index.html b/docs/html/deprecated-api-index.html deleted file mode 100644 index 5162862..0000000 --- a/docs/html/deprecated-api-index.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Index of deprecated API: HarfBuzz Manual - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/html/fonts-and-faces.html b/docs/html/fonts-and-faces.html index 87dd7a6..b5b825f 100644 --- a/docs/html/fonts-and-faces.html +++ b/docs/html/fonts-and-faces.html @@ -3,12 +3,12 @@ Fonts and faces: HarfBuzz Manual - + - + @@ -35,6 +35,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/getting-started.html b/docs/html/getting-started.html index 3372136..8249803 100644 --- a/docs/html/getting-started.html +++ b/docs/html/getting-started.html @@ -3,12 +3,12 @@ Getting started with HarfBuzz: HarfBuzz Manual - + - + @@ -91,6 +91,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/graphite-shaping.html b/docs/html/graphite-shaping.html index 5285e3f..ebff1b1 100644 --- a/docs/html/graphite-shaping.html +++ b/docs/html/graphite-shaping.html @@ -3,12 +3,12 @@ Graphite shaping: HarfBuzz Manual - + - + @@ -40,6 +40,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-aat-layout.html b/docs/html/harfbuzz-hb-aat-layout.html index 01fbdfa..55c8b1c 100644 --- a/docs/html/harfbuzz-hb-aat-layout.html +++ b/docs/html/harfbuzz-hb-aat-layout.html @@ -3,20 +3,19 @@ hb-aat-layout: HarfBuzz Manual - + - + @@ -113,13 +112,6 @@
-

Object Hierarchy

-
    GEnum
-    ├── hb_aat_layout_feature_selector_t
-    ╰── hb_aat_layout_feature_type_t
-
-
-

Includes

#include <hb-aat.h>
 
@@ -134,7 +126,7 @@

hb_aat_layout_feature_type_get_name_id ()

hb_ot_name_id_t
 hb_aat_layout_feature_type_get_name_id
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_aat_layout_feature_type_t feature_type);

Parameters

@@ -162,14 +154,14 @@ hb_aat_layout_feature_type_get_name_id

Returns

Name ID index

-

Since: 2.2.0

+

Since: 2.2.0


hb_aat_layout_feature_type_get_selector_infos ()

unsigned int
 hb_aat_layout_feature_type_get_selector_infos
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_aat_layout_feature_type_t feature_type,
                                 unsigned int start_offset,
                                 unsigned int *selector_count,
@@ -180,7 +172,7 @@ hb_aat_layout_feature_type_get_selector_infos
 

hb_aat_layout_get_feature_types ()

unsigned int
-hb_aat_layout_get_feature_types (hb_face_t *face,
+hb_aat_layout_get_feature_types (hb_face_t *face,
                                  unsigned int start_offset,
                                  unsigned int *feature_count,
                                  hb_aat_layout_feature_type_t *features);
@@ -205,12 +197,12 @@ hb_aat_layout_get_feature_types (

feature_count

-

buffer size as input, filled size as output.

+

buffer size as input, filled size as output.

[inout][allow-none]

features

-

features buffer.

+

features buffer.

[out caller-allocates][array length=feature_count] @@ -220,25 +212,25 @@ hb_aat_layout_get_feature_types (

Returns

Number of all available feature types.

-

Since: 2.2.0

+

Since: 2.2.0


hb_aat_layout_has_positioning ()

hb_bool_t
-hb_aat_layout_has_positioning (hb_face_t *face);
+hb_aat_layout_has_positioning (hb_face_t *face);

hb_aat_layout_has_substitution ()

hb_bool_t
-hb_aat_layout_has_substitution (hb_face_t *face);
+hb_aat_layout_has_substitution (hb_face_t *face);

hb_aat_layout_has_tracking ()

hb_bool_t
-hb_aat_layout_has_tracking (hb_face_t *face);
+hb_aat_layout_has_tracking (hb_face_t *face);
@@ -468,7 +460,7 @@ hb_aat_layout_has_tracking (Since: 2.2.0

+

Since: 2.2.0


@@ -1745,11 +1737,11 @@ hb_aat_layout_has_tracking (Since: 2.2.0

+

Since: 2.2.0

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-blob.html b/docs/html/harfbuzz-hb-blob.html index 9fa3967..f6ff6e7 100644 --- a/docs/html/harfbuzz-hb-blob.html +++ b/docs/html/harfbuzz-hb-blob.html @@ -3,20 +3,19 @@ hb-blob: HarfBuzz Manual - + - + @@ -42,7 +41,7 @@ -
+

Types and Values

@@ -163,7 +162,7 @@ - + @@ -173,14 +172,6 @@
typedefhb_blob_thb_blob_t
enum
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_blob_t
-    GEnum
-    ╰── hb_memory_mode_t
-
-
-

Includes

#include <hb.h>
 
@@ -196,7 +187,7 @@ pass around other binary data.

Functions

hb_blob_create ()

-
hb_blob_t *
+
hb_blob_t *
 hb_blob_create (const char *data,
                 unsigned int length,
                 hb_memory_mode_t mode,
@@ -260,7 +251,7 @@ zero.  Destroy with 
 

hb_blob_create_from_file ()

-
hb_blob_t *
+
hb_blob_t *
 hb_blob_create_from_file (const char *file_name);

Parameters

@@ -286,8 +277,8 @@ hb_blob_create_from_file (const c

hb_blob_create_sub_blob ()

-
hb_blob_t *
-hb_blob_create_sub_blob (hb_blob_t *parent,
+
hb_blob_t *
+hb_blob_create_sub_blob (hb_blob_t *parent,
                          unsigned int offset,
                          unsigned int length);

Returns a blob that represents a range of bytes in parent @@ -340,8 +331,8 @@ with

hb_blob_copy_writable_or_fail ()

-
hb_blob_t *
-hb_blob_copy_writable_or_fail (hb_blob_t *blob);
+
hb_blob_t *
+hb_blob_copy_writable_or_fail (hb_blob_t *blob);

Makes a writable copy of blob .

@@ -369,7 +360,7 @@ hb_blob_copy_writable_or_fail (

hb_blob_destroy ()

void
-hb_blob_destroy (hb_blob_t *blob);
+hb_blob_destroy (hb_blob_t *blob);

Decreases the reference count on blob , and if it reaches zero, destroys blob @@ -398,7 +389,7 @@ was created for if it has not been called already.

hb_blob_get_data ()

const char *
-hb_blob_get_data (hb_blob_t *blob,
+hb_blob_get_data (hb_blob_t *blob,
                   unsigned int *length);

Parameters

@@ -433,7 +424,7 @@ hb_blob_get_data (

hb_blob_get_data_writable ()

char *
-hb_blob_get_data_writable (hb_blob_t *blob,
+hb_blob_get_data_writable (hb_blob_t *blob,
                            unsigned int *length);

Tries to make blob data writable (possibly copying it) and return pointer to data.

@@ -455,7 +446,7 @@ fails.

length

-

output length of the writable data.

+

output length of the writable data.

[out] @@ -463,8 +454,8 @@ fails.

Returns

-

Writable blob data, -or NULL if failed.

+

Writable blob data, +or NULL if failed.

[transfer none][array length=length]

Since: 0.9.2

@@ -472,13 +463,13 @@ or NULL if failed.


hb_blob_get_empty ()

-
hb_blob_t *
+
hb_blob_t *
 hb_blob_get_empty (void);

Returns the singleton empty blob.

See TODO:link object types for more information.

Returns

-

the empty blob.

+

the empty blob.

[transfer full]

Since: 0.9.2

@@ -487,7 +478,7 @@ hb_blob_get_empty (void

hb_blob_get_length ()

unsigned int
-hb_blob_get_length (hb_blob_t *blob);
+hb_blob_get_length (hb_blob_t *blob);

Parameters

@@ -513,8 +504,8 @@ hb_blob_get_length (

hb_blob_get_user_data ()

void *
-hb_blob_get_user_data (hb_blob_t *blob,
-                       hb_user_data_key_t *key);
+hb_blob_get_user_data (hb_blob_t *blob, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -549,7 +540,7 @@ hb_blob_get_user_data (

hb_blob_is_immutable ()

hb_bool_t
-hb_blob_is_immutable (hb_blob_t *blob);
+hb_blob_is_immutable (hb_blob_t *blob);

Parameters

@@ -575,7 +566,7 @@ hb_blob_is_immutable (

hb_blob_make_immutable ()

void
-hb_blob_make_immutable (hb_blob_t *blob);
+hb_blob_make_immutable (hb_blob_t *blob);

Parameters

@@ -596,8 +587,8 @@ hb_blob_make_immutable (

hb_blob_reference ()

-
hb_blob_t *
-hb_blob_reference (hb_blob_t *blob);
+
hb_blob_t *
+hb_blob_reference (hb_blob_t *blob);

Increases the reference count on blob .

See TODO:link object types for more information.

@@ -628,8 +619,8 @@ hb_blob_reference (

hb_blob_set_user_data ()

hb_bool_t
-hb_blob_set_user_data (hb_blob_t *blob,
-                       hb_user_data_key_t *key,
+hb_blob_set_user_data (hb_blob_t *blob,
+                       hb_user_data_key_t *key,
                        void *data,
                        hb_destroy_func_t destroy,
                        hb_bool_t replace);
@@ -721,6 +712,6 @@ is not needed anymore.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-buffer.html b/docs/html/harfbuzz-hb-buffer.html index b9f3695..1aeee6f 100644 --- a/docs/html/harfbuzz-hb-buffer.html +++ b/docs/html/harfbuzz-hb-buffer.html @@ -3,20 +3,19 @@ hb-buffer: HarfBuzz Manual - + - +
@@ -42,7 +41,7 @@
-
+

Types and Values

@@ -512,7 +511,7 @@ - + @@ -520,7 +519,7 @@ - + @@ -536,7 +535,7 @@ - + @@ -554,23 +553,6 @@
typedefhb_buffer_thb_buffer_t
enum
 hb_glyph_position_thb_glyph_position_t
enum
 hb_segment_properties_thb_segment_properties_t
enum
-

Object Hierarchy

-
    GBoxed
-    ├── hb_buffer_t
-    ├── hb_glyph_position_t
-    ╰── hb_segment_properties_t
-    GEnum
-    ├── hb_buffer_cluster_level_t
-    ├── hb_buffer_content_type_t
-    ╰── hb_buffer_serialize_format_t
-    GFlags
-    ├── hb_buffer_diff_flags_t
-    ├── hb_buffer_flags_t
-    ├── hb_buffer_serialize_flags_t
-    ╰── hb_glyph_flags_t
-
-
-

Includes

#include <hb.h>
 
@@ -584,16 +566,16 @@ passed to

Functions

hb_buffer_create ()

-
hb_buffer_t *
+
hb_buffer_t *
 hb_buffer_create (void);
-

Creates a new hb_buffer_t with all properties to defaults.

+

Creates a new hb_buffer_t with all properties to defaults.

[Xconstructor]

Returns

-

A newly allocated hb_buffer_t with a reference count of 1. The initial +

A newly allocated hb_buffer_t with a reference count of 1. The initial reference count should be released with hb_buffer_destroy() when you are done -using the hb_buffer_t. This function never returns NULL. If memory cannot -be allocated, a special hb_buffer_t object will be returned on which +using the hb_buffer_t. This function never returns NULL. If memory cannot +be allocated, a special hb_buffer_t object will be returned on which hb_buffer_allocation_successful() returns false.

[transfer full]

@@ -602,8 +584,8 @@ be allocated, a special

hb_buffer_reference ()

-
hb_buffer_t *
-hb_buffer_reference (hb_buffer_t *buffer);
+
hb_buffer_t *
+hb_buffer_reference (hb_buffer_t *buffer);

Increases the reference count on buffer by one. This prevents buffer from @@ -619,14 +601,14 @@ being destroyed until a matching call to

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

Returns

-

The referenced hb_buffer_t.

+

The referenced hb_buffer_t.

[transfer full]

Since: 0.9.2

@@ -634,7 +616,7 @@ being destroyed until a matching call to

hb_buffer_get_empty ()

-
hb_buffer_t *
+
hb_buffer_t *
 hb_buffer_get_empty (void);

Returns

@@ -647,7 +629,7 @@ hb_buffer_get_empty (void<

hb_buffer_destroy ()

void
-hb_buffer_destroy (hb_buffer_t *buffer);
+hb_buffer_destroy (hb_buffer_t *buffer);

Deallocate the buffer . Decreases the reference count on buffer @@ -665,7 +647,7 @@ Decreases the reference count on buffer

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -676,7 +658,7 @@ Decreases the reference count on buffer

hb_buffer_reset ()

void
-hb_buffer_reset (hb_buffer_t *buffer);
+hb_buffer_reset (hb_buffer_t *buffer);

Resets the buffer to its initial status, as if it was just newly created with hb_buffer_create().

@@ -689,7 +671,7 @@ with

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -700,7 +682,7 @@ with

hb_buffer_clear_contents ()

void
-hb_buffer_clear_contents (hb_buffer_t *buffer);
+hb_buffer_clear_contents (hb_buffer_t *buffer);

Similar to hb_buffer_reset(), but does not clear the Unicode functions and the replacement code point.

@@ -713,7 +695,7 @@ the replacement code point.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -724,7 +706,7 @@ the replacement code point.

hb_buffer_pre_allocate ()

hb_bool_t
-hb_buffer_pre_allocate (hb_buffer_t *buffer,
+hb_buffer_pre_allocate (hb_buffer_t *buffer,
                         unsigned int size);

Pre allocates memory for buffer to fit at least size @@ -740,7 +722,7 @@ hb_buffer_pre_allocate (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -762,7 +744,7 @@ memory allocation succeeded, false otherwise.

hb_buffer_allocation_successful ()

hb_bool_t
-hb_buffer_allocation_successful (hb_buffer_t *buffer);
+hb_buffer_allocation_successful (hb_buffer_t *buffer);

Check if allocating memory for the buffer succeeded.

Parameters

@@ -774,7 +756,7 @@ hb_buffer_allocation_successful (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -790,7 +772,7 @@ memory allocation succeeded, false otherwise.

hb_buffer_add ()

void
-hb_buffer_add (hb_buffer_t *buffer,
+hb_buffer_add (hb_buffer_t *buffer,
                hb_codepoint_t codepoint,
                unsigned int cluster);

Appends a character with the Unicode value of codepoint @@ -815,7 +797,7 @@ caller to ensure it is a valid Unicode code point.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -838,7 +820,7 @@ caller to ensure it is a valid Unicode code point.

hb_buffer_add_codepoints ()

void
-hb_buffer_add_codepoints (hb_buffer_t *buffer,
+hb_buffer_add_codepoints (hb_buffer_t *buffer,
                           const hb_codepoint_t *text,
                           int text_length,
                           unsigned int item_offset,
@@ -873,18 +855,18 @@ to ensure it contains a valid Unicode code points.

buffer

-

a hb_buffer_t to append characters to.

+

a hb_buffer_t to append characters to.

 

text

-

an array of Unicode code points to append.

+

an array of Unicode code points to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

+, or -1 if it is NULL terminated.

  @@ -898,7 +880,7 @@ to ensure it contains a valid Unicode code points.

the number of code points to add to the buffer , or -1 for the end of text -(assuming it is NULL terminated).

+(assuming it is NULL terminated).

  @@ -910,7 +892,7 @@ end of text

hb_buffer_add_utf32 ()

void
-hb_buffer_add_utf32 (hb_buffer_t *buffer,
+hb_buffer_add_utf32 (hb_buffer_t *buffer,
                      const uint32_t *text,
                      int text_length,
                      unsigned int item_offset,
@@ -930,18 +912,18 @@ see 

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

text

-

an array of UTF-32 characters to append.

+

an array of UTF-32 characters to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

+, or -1 if it is NULL terminated.

  @@ -955,7 +937,7 @@ see

the number of characters to add to the buffer , or -1 for the end of text -(assuming it is NULL terminated).

+(assuming it is
NULL terminated).

  @@ -967,7 +949,7 @@ end of text

hb_buffer_add_utf16 ()

void
-hb_buffer_add_utf16 (hb_buffer_t *buffer,
+hb_buffer_add_utf16 (hb_buffer_t *buffer,
                      const uint16_t *text,
                      int text_length,
                      unsigned int item_offset,
@@ -987,18 +969,18 @@ see 

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

text

-

an array of UTF-16 characters to append.

+

an array of UTF-16 characters to append.

[array length=text_length]

text_length

the length of the text -, or -1 if it is NULL terminated.

+, or -1 if it is NULL terminated.

  @@ -1012,7 +994,7 @@ see

the number of characters to add to the buffer , or -1 for the end of text -(assuming it is NULL terminated).

+(assuming it is
NULL terminated).

  @@ -1024,7 +1006,7 @@ end of text

hb_buffer_add_utf8 ()

void
-hb_buffer_add_utf8 (hb_buffer_t *buffer,
+hb_buffer_add_utf8 (hb_buffer_t *buffer,
                     const char *text,
                     int text_length,
                     unsigned int item_offset,
@@ -1044,19 +1026,19 @@ see 

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

text

-

an array of UTF-8 +

an array of UTF-8 characters to append.

[array length=text_length][element-type uint8_t]

text_length

the length of the text -, or -1 if it is NULL terminated.

+, or -1 if it is NULL terminated.

  @@ -1070,7 +1052,7 @@ characters to append.

the number of characters to add to the buffer , or -1 for the end of text -(assuming it is NULL terminated).

+(assuming it is NULL terminated).

  @@ -1082,7 +1064,7 @@ end of text

hb_buffer_add_latin1 ()

void
-hb_buffer_add_latin1 (hb_buffer_t *buffer,
+hb_buffer_add_latin1 (hb_buffer_t *buffer,
                       const uint8_t *text,
                       int text_length,
                       unsigned int item_offset,
@@ -1101,19 +1083,19 @@ Unicode code points that can fit in 8-bit strings.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

text

-

an array of UTF-8 +

an array of UTF-8 characters to append.

[array length=text_length][element-type uint8_t]

text_length

the length of the text -, or -1 if it is NULL terminated.

+, or -1 if it is NULL terminated.

  @@ -1127,7 +1109,7 @@ characters to append.

the number of characters to add to the buffer , or -1 for the end of text -(assuming it is NULL terminated).

+(assuming it is NULL terminated).

  @@ -1139,8 +1121,8 @@ end of text

hb_buffer_append ()

void
-hb_buffer_append (hb_buffer_t *buffer,
-                  hb_buffer_t *source,
+hb_buffer_append (hb_buffer_t *buffer,
+                  hb_buffer_t *source,
                   unsigned int start,
                   unsigned int end);

Append (part of) contents of another buffer to this buffer.

@@ -1155,12 +1137,12 @@ hb_buffer_append (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

source

-

source hb_buffer_t.

+

source hb_buffer_t.

  @@ -1182,7 +1164,7 @@ hb_buffer_append (

hb_buffer_set_content_type ()

void
-hb_buffer_set_content_type (hb_buffer_t *buffer,
+hb_buffer_set_content_type (hb_buffer_t *buffer,
                             hb_buffer_content_type_t content_type);

Sets the type of buffer contents, buffers are either empty, contain @@ -1198,7 +1180,7 @@ characters (before shaping) or glyphs (the result of shaping).

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1215,7 +1197,7 @@ characters (before shaping) or glyphs (the result of shaping).

hb_buffer_get_content_type ()

hb_buffer_content_type_t
-hb_buffer_get_content_type (hb_buffer_t *buffer);
+hb_buffer_get_content_type (hb_buffer_t *buffer);

see hb_buffer_set_content_type().

Parameters

@@ -1227,7 +1209,7 @@ hb_buffer_get_content_type (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1243,7 +1225,7 @@ contents.

hb_buffer_set_direction ()

void
-hb_buffer_set_direction (hb_buffer_t *buffer,
+hb_buffer_set_direction (hb_buffer_t *buffer,
                          hb_direction_t direction);

Set the text flow direction of the buffer. No shaping can happen without setting buffer @@ -1264,7 +1246,7 @@ direction.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1282,7 +1264,7 @@ direction.

hb_buffer_get_direction ()

hb_direction_t
-hb_buffer_get_direction (hb_buffer_t *buffer);
+hb_buffer_get_direction (hb_buffer_t *buffer);

See hb_buffer_set_direction()

Parameters

@@ -1294,7 +1276,7 @@ hb_buffer_get_direction (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1310,7 +1292,7 @@ hb_buffer_get_direction (

hb_buffer_set_script ()

void
-hb_buffer_set_script (hb_buffer_t *buffer,
+hb_buffer_set_script (hb_buffer_t *buffer,
                       hb_script_t script);

Sets the script of buffer to script @@ -1332,7 +1314,7 @@ corresponding script from an ISO 15924 script tag.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1349,7 +1331,7 @@ corresponding script from an ISO 15924 script tag.

hb_buffer_get_script ()

hb_script_t
-hb_buffer_get_script (hb_buffer_t *buffer);
+hb_buffer_get_script (hb_buffer_t *buffer);

See hb_buffer_set_script().

Parameters

@@ -1361,7 +1343,7 @@ hb_buffer_get_script (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1377,7 +1359,7 @@ hb_buffer_get_script (

hb_buffer_set_language ()

void
-hb_buffer_set_language (hb_buffer_t *buffer,
+hb_buffer_set_language (hb_buffer_t *buffer,
                         hb_language_t language);

Sets the language of buffer to language @@ -1399,7 +1381,7 @@ different concepts and should not be confused with each other.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1416,7 +1398,7 @@ different concepts and should not be confused with each other.

hb_buffer_get_language ()

hb_language_t
-hb_buffer_get_language (hb_buffer_t *buffer);
+hb_buffer_get_language (hb_buffer_t *buffer);

See hb_buffer_set_language().

Parameters

@@ -1428,7 +1410,7 @@ hb_buffer_get_language (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1444,7 +1426,7 @@ hb_buffer_get_language (

hb_buffer_set_flags ()

void
-hb_buffer_set_flags (hb_buffer_t *buffer,
+hb_buffer_set_flags (hb_buffer_t *buffer,
                      hb_buffer_flags_t flags);

Sets buffer flags to flags @@ -1460,7 +1442,7 @@ hb_buffer_set_flags (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1477,7 +1459,7 @@ hb_buffer_set_flags (

hb_buffer_get_flags ()

hb_buffer_flags_t
-hb_buffer_get_flags (hb_buffer_t *buffer);
+hb_buffer_get_flags (hb_buffer_t *buffer);

See hb_buffer_set_flags().

Parameters

@@ -1489,7 +1471,7 @@ hb_buffer_get_flags (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1505,7 +1487,7 @@ flags.

hb_buffer_set_cluster_level ()

void
-hb_buffer_set_cluster_level (hb_buffer_t *buffer,
+hb_buffer_set_cluster_level (hb_buffer_t *buffer,
                              hb_buffer_cluster_level_t cluster_level);

Parameters

@@ -1517,7 +1499,7 @@ hb_buffer_set_cluster_level (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1528,7 +1510,7 @@ hb_buffer_set_cluster_level (

hb_buffer_get_cluster_level ()

hb_buffer_cluster_level_t
-hb_buffer_get_cluster_level (hb_buffer_t *buffer);
+hb_buffer_get_cluster_level (hb_buffer_t *buffer);

Parameters

@@ -1539,7 +1521,7 @@ hb_buffer_get_cluster_level (

buffer

-
+

an hb_buffer_t.

an hb_buffer_t.

 
@@ -1550,7 +1532,7 @@ hb_buffer_get_cluster_level (

hb_buffer_set_length ()

hb_bool_t
-hb_buffer_set_length (hb_buffer_t *buffer,
+hb_buffer_set_length (hb_buffer_t *buffer,
                       unsigned int length);

Similar to hb_buffer_pre_allocate(), but clears any new items added at the end.

@@ -1565,7 +1547,7 @@ end.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1588,7 +1570,7 @@ memory allocation succeeded, false otherwise.

hb_buffer_get_length ()

unsigned int
-hb_buffer_get_length (hb_buffer_t *buffer);
+hb_buffer_get_length (hb_buffer_t *buffer);

Returns the number of items in the buffer.

Parameters

@@ -1600,7 +1582,7 @@ hb_buffer_get_length (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1617,8 +1599,8 @@ The value valid as long as buffer has not been modified.

hb_buffer_set_segment_properties ()

void
-hb_buffer_set_segment_properties (hb_buffer_t *buffer,
-                                  const hb_segment_properties_t *props);
+hb_buffer_set_segment_properties (hb_buffer_t *buffer, + const hb_segment_properties_t *props);

Sets the segment properties of the buffer, a shortcut for calling hb_buffer_set_direction(), hb_buffer_set_script() and hb_buffer_set_language() individually.

@@ -1633,12 +1615,12 @@ hb_buffer_set_segment_properties (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

props

-

an hb_segment_properties_t to use.

+

an hb_segment_properties_t to use.

  @@ -1650,10 +1632,10 @@ hb_buffer_set_segment_properties (

hb_buffer_get_segment_properties ()

void
-hb_buffer_get_segment_properties (hb_buffer_t *buffer,
-                                  hb_segment_properties_t *props);
+hb_buffer_get_segment_properties (hb_buffer_t *buffer, + hb_segment_properties_t *props);

Sets props - to the hb_segment_properties_t of buffer + to the hb_segment_properties_t of buffer .

Parameters

@@ -1666,12 +1648,12 @@ hb_buffer_get_segment_properties (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

props

-

the output hb_segment_properties_t.

+

the output hb_segment_properties_t.

[out] @@ -1683,14 +1665,14 @@ hb_buffer_get_segment_properties (

hb_buffer_guess_segment_properties ()

void
-hb_buffer_guess_segment_properties (hb_buffer_t *buffer);
+hb_buffer_guess_segment_properties (hb_buffer_t *buffer);

Sets unset buffer segment properties based on buffer Unicode contents. If buffer is not empty, it must have content type HB_BUFFER_CONTENT_TYPE_UNICODE.

If buffer script is not set (ie. is HB_SCRIPT_INVALID), it will be set to the Unicode script of the first character in -the buffer that has a script other than HB_SCRIPT_COMMON, -HB_SCRIPT_INHERITED, and HB_SCRIPT_UNKNOWN.

+the buffer that has a script other than HB_SCRIPT_COMMON, +HB_SCRIPT_INHERITED, and HB_SCRIPT_UNKNOWN.

Next, if buffer direction is not set (ie. is HB_DIRECTION_INVALID), it will be set to the natural horizontal direction of the buffer script as returned by hb_script_get_horizontal_direction(). @@ -1712,7 +1694,7 @@ it is called. See documentation for that function for details.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1723,8 +1705,8 @@ it is called. See documentation for that function for details.

hb_buffer_set_unicode_funcs ()

void
-hb_buffer_set_unicode_funcs (hb_buffer_t *buffer,
-                             hb_unicode_funcs_t *unicode_funcs);
+hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, + hb_unicode_funcs_t *unicode_funcs);

Parameters

@@ -1735,7 +1717,7 @@ hb_buffer_set_unicode_funcs (

buffer

-
+

an hb_buffer_t.

an hb_buffer_t.

 
@@ -1745,8 +1727,8 @@ hb_buffer_set_unicode_funcs (

hb_buffer_get_unicode_funcs ()

-
hb_unicode_funcs_t *
-hb_buffer_get_unicode_funcs (hb_buffer_t *buffer);
+
hb_unicode_funcs_t *
+hb_buffer_get_unicode_funcs (hb_buffer_t *buffer);

Parameters

@@ -1757,7 +1739,7 @@ hb_buffer_get_unicode_funcs (

buffer

-
+

an hb_buffer_t.

an hb_buffer_t.

 
@@ -1768,8 +1750,8 @@ hb_buffer_get_unicode_funcs (

hb_buffer_set_user_data ()

hb_bool_t
-hb_buffer_set_user_data (hb_buffer_t *buffer,
-                         hb_user_data_key_t *key,
+hb_buffer_set_user_data (hb_buffer_t *buffer,
+                         hb_user_data_key_t *key,
                          void *data,
                          hb_destroy_func_t destroy,
                          hb_bool_t replace);
@@ -1784,7 +1766,7 @@ hb_buffer_set_user_data (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1795,8 +1777,8 @@ hb_buffer_set_user_data (

hb_buffer_get_user_data ()

void *
-hb_buffer_get_user_data (hb_buffer_t *buffer,
-                         hb_user_data_key_t *key);
+hb_buffer_get_user_data (hb_buffer_t *buffer, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -1808,7 +1790,7 @@ hb_buffer_get_user_data (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1819,7 +1801,7 @@ hb_buffer_get_user_data (

hb_buffer_get_glyph_infos ()

hb_glyph_info_t *
-hb_buffer_get_glyph_infos (hb_buffer_t *buffer,
+hb_buffer_get_glyph_infos (hb_buffer_t *buffer,
                            unsigned int *length);

Returns buffer glyph information array. Returned pointer @@ -1836,12 +1818,12 @@ is valid as long as buffer

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

length

-

output array length.

+

output array length.

[out] @@ -1859,8 +1841,8 @@ The value valid as long as buffer has not been modified.


hb_buffer_get_glyph_positions ()

-
hb_glyph_position_t *
-hb_buffer_get_glyph_positions (hb_buffer_t *buffer,
+
hb_glyph_position_t *
+hb_buffer_get_glyph_positions (hb_buffer_t *buffer,
                                unsigned int *length);

Returns buffer glyph position array. Returned pointer @@ -1877,12 +1859,12 @@ is valid as long as buffer

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 

length

-

output length.

+

output length.

[out] @@ -1901,7 +1883,7 @@ The value valid as long as buffer has not been modified.

hb_buffer_get_invisible_glyph ()

hb_codepoint_t
-hb_buffer_get_invisible_glyph (hb_buffer_t *buffer);
+hb_buffer_get_invisible_glyph (hb_buffer_t *buffer);

See hb_buffer_set_invisible_glyph().

Parameters

@@ -1913,7 +1895,7 @@ hb_buffer_get_invisible_glyph (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -1929,7 +1911,7 @@ invisible

hb_buffer_set_invisible_glyph ()

void
-hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
+hb_buffer_set_invisible_glyph (hb_buffer_t *buffer,
                                hb_codepoint_t invisible);

Sets the hb_codepoint_t that replaces invisible characters in the shaping result. If set to zero (default), the glyph for the @@ -1946,7 +1928,7 @@ verbatim.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1963,7 +1945,7 @@ verbatim.

hb_buffer_set_replacement_codepoint ()

void
-hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
+hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer,
                                      hb_codepoint_t replacement);

Sets the hb_codepoint_t that replaces invalid entries for a given encoding when adding text to buffer @@ -1980,7 +1962,7 @@ when adding text to buffer

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -1997,7 +1979,7 @@ when adding text to buffer

hb_buffer_get_replacement_codepoint ()

hb_codepoint_t
-hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer);
+hb_buffer_get_replacement_codepoint (hb_buffer_t *buffer);

See hb_buffer_set_replacement_codepoint().

Parameters

@@ -2009,7 +1991,7 @@ hb_buffer_get_replacement_codepoint (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -2025,7 +2007,7 @@ replacement

hb_buffer_normalize_glyphs ()

void
-hb_buffer_normalize_glyphs (hb_buffer_t *buffer);
+hb_buffer_normalize_glyphs (hb_buffer_t *buffer);

Reorders a glyph buffer to have canonical in-cluster glyph order / position. The resulting clusters should behave identical to pre-reordering clusters.

This has nothing to do with Unicode normalization.
@@ -2039,7 +2021,7 @@ The resulting clusters should behave identical to pre-reordering clusters.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -2050,7 +2032,7 @@ The resulting clusters should behave identical to pre-reordering clusters.

hb_buffer_reverse ()

void
-hb_buffer_reverse (hb_buffer_t *buffer);
+hb_buffer_reverse (hb_buffer_t *buffer);

Reverses buffer contents.

Parameters

@@ -2062,7 +2044,7 @@ hb_buffer_reverse (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -2073,7 +2055,7 @@ hb_buffer_reverse (

hb_buffer_reverse_range ()

void
-hb_buffer_reverse_range (hb_buffer_t *buffer,
+hb_buffer_reverse_range (hb_buffer_t *buffer,
                          unsigned int start,
                          unsigned int end);

Reverses buffer contents between start to end.

@@ -2088,7 +2070,7 @@ hb_buffer_reverse_range (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -2110,7 +2092,7 @@ hb_buffer_reverse_range (

hb_buffer_reverse_clusters ()

void
-hb_buffer_reverse_clusters (hb_buffer_t *buffer);
+hb_buffer_reverse_clusters (hb_buffer_t *buffer);

Reverses buffer clusters. That is, the buffer contents are reversed, then each cluster (consecutive items having the same cluster number) are reversed again.

@@ -2124,7 +2106,7 @@ same cluster number) are reversed again.

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

 
@@ -2135,13 +2117,13 @@ same cluster number) are reversed again.

hb_buffer_serialize_glyphs ()

unsigned int
-hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
+hb_buffer_serialize_glyphs (hb_buffer_t *buffer,
                             unsigned int start,
                             unsigned int end,
                             char *buf,
                             unsigned int buf_size,
                             unsigned int *buf_consumed,
-                            hb_font_t *font,
+                            hb_font_t *font,
                             hb_buffer_serialize_format_t format,
                             hb_buffer_serialize_flags_t flags);

Serializes buffer @@ -2149,7 +2131,7 @@ hb_buffer_serialize_glyphs ( -

text

+

text

A human-readable, plain text format. The serialized glyphs will look something like:

@@ -2164,21 +2146,21 @@ The serialized glyphs will look something like:

-

json

+

json

TODO.

@@ -2192,7 +2174,7 @@ The serialized glyphs will look something like:

buffer

-

an hb_buffer_t buffer.

+

an hb_buffer_t buffer.

  @@ -2209,7 +2191,7 @@ to serialize.

buf

-

output string to +

output string to write serialized buffer into.

[out][array length=buf_size][element-type uint8_t] @@ -2221,14 +2203,14 @@ write serialized buffer into.

buf_consumed

-

if not NULL, will be set to the number of byes written into buf +

if not NULL, will be set to the number of byes written into buf .

[out][allow-none]

font

-

the hb_font_t used to shape this buffer, needed to -read glyph names and extents. If NULL, and empty font will be used.

+

the hb_font_t used to shape this buffer, needed to +read glyph names and extents. If NULL, and empty font will be used.

[allow-none] @@ -2255,11 +2237,11 @@ to serialize.

hb_buffer_deserialize_glyphs ()

hb_bool_t
-hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
+hb_buffer_deserialize_glyphs (hb_buffer_t *buffer,
                               const char *buf,
                               int buf_len,
                               const char **end_ptr,
-                              hb_font_t *font,
+                              hb_font_t *font,
                               hb_buffer_serialize_format_t format);

Parameters

@@ -2272,7 +2254,7 @@ hb_buffer_deserialize_glyphs (

buffer

-

an hb_buffer_t buffer.

+

an hb_buffer_t buffer.

  @@ -2312,13 +2294,13 @@ hb_buffer_serialize_format_from_string

str

-

a string to parse.

+

a string to parse.

[array length=len][element-type uint8_t]

len

length of str -, or -1 if string is NULL terminated

+, or -1 if string is NULL terminated

  @@ -2336,7 +2318,7 @@ hb_buffer_serialize_format_from_string
const char *
 hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format);

Converts format - to the string corresponding it, or NULL if it is not a valid + to the string corresponding it, or NULL if it is not a valid hb_buffer_serialize_format_t.

Parameters

@@ -2355,7 +2337,7 @@ hb_buffer_serialize_format_to_string (

Returns

-

A NULL terminated string corresponding to format +

A NULL terminated string corresponding to format . Should not be freed.

[transfer none]

@@ -2378,9 +2360,9 @@ hb_buffer_serialize_list_formats (

hb_segment_properties_equal ()

hb_bool_t
-hb_segment_properties_equal (const hb_segment_properties_t *a,
-                             const hb_segment_properties_t *b);
-

Checks the equality of two hb_segment_properties_t's.

+hb_segment_properties_equal (const hb_segment_properties_t *a, + const hb_segment_properties_t *b); +

Checks the equality of two hb_segment_properties_t's.

Parameters

@@ -2392,12 +2374,12 @@ hb_segment_properties_equal (const - + - + @@ -2415,7 +2397,7 @@ equal those of b

hb_segment_properties_hash ()

unsigned int
-hb_segment_properties_hash (const hb_segment_properties_t *p);
+hb_segment_properties_hash (const hb_segment_properties_t *p);

Creates a hash representing p .

@@ -2428,7 +2410,7 @@ hb_segment_properties_hash (const
- +

a

first hb_segment_properties_t to compare.

first hb_segment_properties_t to compare.

 

b

second hb_segment_properties_t to compare.

second hb_segment_properties_t to compare.

 

p

hb_segment_properties_t to hash.

hb_segment_properties_t to hash.

 
@@ -2444,8 +2426,8 @@ hb_segment_properties_hash (const

hb_buffer_diff ()

hb_buffer_diff_flags_t
-hb_buffer_diff (hb_buffer_t *buffer,
-                hb_buffer_t *reference,
+hb_buffer_diff (hb_buffer_t *buffer,
+                hb_buffer_t *reference,
                 hb_codepoint_t dottedcircle_glyph,
                 unsigned int position_fuzz);

If dottedcircle_glyph is (hb_codepoint_t) -1 then HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT @@ -2489,7 +2471,7 @@ callers if just comparing two buffers is needed.

hb_buffer_set_message_func ()

void
-hb_buffer_set_message_func (hb_buffer_t *buffer,
+hb_buffer_set_message_func (hb_buffer_t *buffer,
                             hb_buffer_message_func_t func,
                             void *user_data,
                             hb_destroy_func_t destroy);
@@ -2504,7 +2486,7 @@ hb_buffer_set_message_func (

buffer

-

an hb_buffer_t.

+

an hb_buffer_t.

  @@ -2549,8 +2531,8 @@ hb_glyph_info_get_glyph_flags (const

hb_buffer_message_func_t ()

hb_bool_t
-(*hb_buffer_message_func_t) (hb_buffer_t *buffer,
-                             hb_font_t *font,
+(*hb_buffer_message_func_t) (hb_buffer_t *buffer,
+                             hb_font_t *font,
                              const char *message,
                              void *user_data);
@@ -2625,7 +2607,7 @@ and output glyphs and their information after shaping.


-

hb_glyph_position_t

+

hb_glyph_position_t

typedef struct {
   hb_position_t  x_advance;
   hb_position_t  y_advance;
@@ -2633,9 +2615,9 @@ and output glyphs and their information after shaping.

hb_position_t y_offset; } hb_glyph_position_t;
-

The hb_glyph_position_t is the structure that holds the positions of the +

The hb_glyph_position_t is the structure that holds the positions of the glyph in both horizontal and vertical directions. All positions in -hb_glyph_position_t are relative to the current point.

+hb_glyph_position_t are relative to the current point.

Members

@@ -2646,25 +2628,25 @@ glyph in both horizontal and vertical directions. All positions in - + - + - + - + @@ -2775,6 +2757,15 @@ should not affect how much the line advances.

+ + + + +

hb_position_t x_advance;

hb_position_t x_advance;

how much the line advances after drawing this glyph when setting text in horizontal direction.

 

hb_position_t y_advance;

hb_position_t y_advance;

how much the line advances after drawing this glyph when setting text in vertical direction.

 

hb_position_t x_offset;

hb_position_t x_offset;

how much the glyph moves on the X-axis before drawing it, this should not affect how much the line advances.

 

hb_position_t y_offset;

hb_position_t y_offset;

how much the glyph moves on the Y-axis before drawing it, this should not affect how much the line advances.

   

HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE

+

flag indicating that a dotted circle should + not be inserted in the rendering of incorrect + character sequences (such at <0905 093E>). Since: 2.4

+
 
@@ -2830,14 +2821,14 @@ should not affect how much the line advances.


-

hb_segment_properties_t

+

hb_segment_properties_t

typedef struct {
   hb_direction_t  direction;
   hb_script_t     script;
   hb_language_t   language;
 } hb_segment_properties_t;
 
-

The structure that holds various text properties of an hb_buffer_t. Can be +

The structure that holds various text properties of an hb_buffer_t. Can be set and retrieved using hb_buffer_set_segment_properties() and hb_buffer_get_segment_properties(), respectively.

@@ -2850,17 +2841,17 @@ set and retrieved using

hb_direction_t direction;

+

hb_direction_t direction;

the hb_direction_t of the buffer, see hb_buffer_set_direction().

  -

hb_script_t script;

+

hb_script_t script;

the hb_script_t of the buffer, see hb_buffer_set_script().

  -

hb_language_t language;

+

hb_language_t language;

the hb_language_t of the buffer, see hb_buffer_set_language().

  @@ -3040,6 +3031,6 @@ set and retrieved using -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-common.html b/docs/html/harfbuzz-hb-common.html index 7401836..7074d2c 100644 --- a/docs/html/harfbuzz-hb-common.html +++ b/docs/html/harfbuzz-hb-common.html @@ -3,20 +3,19 @@ hb-common: HarfBuzz Manual - + - + @@ -128,6 +127,38 @@ + + + + + + + + + + + + + + + +
-
+

Types and Values

@@ -210,6 +241,14 @@ + + + + + + + + @@ -227,7 +266,7 @@ - + @@ -249,19 +288,18 @@ + + + + + + + +
hb_language_t
 hb_feature_t
 hb_variation_t
typedef hb_mask_t
 hb_user_data_key_thb_user_data_key_t
 #define HB_LANGUAGE_INVALID
#defineHB_FEATURE_GLOBAL_END
#defineHB_FEATURE_GLOBAL_START
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_user_data_key_t
-    GEnum
-    ├── hb_direction_t
-    ╰── hb_script_t
-
-
-

Includes

#include <hb.h>
 
@@ -400,14 +438,14 @@ corresponding

str

-

a string representing an +

a string representing an ISO 15924 tag.

[array length=len][element-type uint8_t]

len

length of the str -, or -1 if it is NULL-terminated.

+, or -1 if it is
NULL-terminated.

  @@ -473,14 +511,14 @@ hb_language_from_string (const ch

str

-

a string representing +

a string representing a BCP 47 language tag.

[array length=len][element-type uint8_t]

len

length of the str -, or -1 if it is NULL-terminated.

+, or -1 if it is NULL-terminated.

  @@ -516,7 +554,7 @@ hb_language_to_string (

Returns

-

A NULL-terminated string representing the language +

A NULL-terminated string representing the language . Must not be freed by the caller.

[transfer none]

@@ -544,6 +582,245 @@ HarfBuzz itself.


+

hb_feature_from_string ()

+
hb_bool_t
+hb_feature_from_string (const char *str,
+                        int len,
+                        hb_feature_t *feature);
+

Parses a string into a hb_feature_t.

+

The format for specifying feature strings follows. All valid CSS +font-feature-settings values other than 'normal' and the global values are +also accepted, though not documented below. CSS string escapes are not +supported.

+

The range indices refer to the positions between Unicode characters. The +position before the first character is always 0.

+

The format is Python-esque. Here is how it all works:

+
+++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SyntaxValueStartEnd 
Setting value:    
kern10∞Turn feature on
+kern10∞Turn feature on
-kern00∞Turn feature off
kern=000∞Turn feature off
kern=110∞Turn feature on
aalt=220∞Choose 2nd alternate
Setting index:    
kern[]10∞Turn feature on
kern[:]10∞Turn feature on
kern[5:]15∞Turn feature on, partial
kern[:5]105Turn feature on, partial
kern[3:5]135Turn feature on, range
kern[3]133+1Turn feature on, single char
Mixing it all:    
aalt[3:5]=2235Turn 2nd alternate on for range
+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str +, or -1 if string is NULL terminated

 

feature

the hb_feature_t to initialize with the parsed values.

[out]
+
+
+

Returns

+

true if str +is successfully parsed, false otherwise.

+
+

Since: 0.9.5

+
+
+
+

hb_feature_to_string ()

+
void
+hb_feature_to_string (hb_feature_t *feature,
+                      char *buf,
+                      unsigned int size);
+

Converts a hb_feature_t into a NULL-terminated string in the format +understood by hb_feature_from_string(). The client in responsible for +allocating big enough size for buf +, 128 bytes is more than enough.

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + +

feature

an hb_feature_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf +

 
+
+

Since: 0.9.5

+
+
+
+

hb_variation_from_string ()

+
hb_bool_t
+hb_variation_from_string (const char *str,
+                          int len,
+                          hb_variation_t *variation);
+

Since: 1.4.2

+
+
+
+

hb_variation_to_string ()

+
void
+hb_variation_to_string (hb_variation_t *variation,
+                        char *buf,
+                        unsigned int size);
+

Since: 1.4.2

+
+
+

hb_destroy_func_t ()

void
 (*hb_destroy_func_t) (void *user_data);
@@ -669,6 +946,27 @@ HarfBuzz itself.


+

hb_feature_t

+
typedef struct {
+  hb_tag_t      tag;
+  uint32_t      value;
+  unsigned int  start;
+  unsigned int  end;
+} hb_feature_t;
+
+
+
+
+

hb_variation_t

+
typedef struct {
+  hb_tag_t tag;
+  float    value;
+} hb_variation_t;
+
+

Since: 1.4.2

+
+
+

hb_mask_t

typedef uint32_t hb_mask_t;
 
@@ -698,762 +996,42 @@ HarfBuzz itself.

-

HB_SCRIPT_COMMON

-  -  - - -

HB_SCRIPT_INHERITED

-  -  - - -

HB_SCRIPT_UNKNOWN

-  -  - - -

HB_SCRIPT_ARABIC

-  -  - - -

HB_SCRIPT_ARMENIAN

-  -  - - -

HB_SCRIPT_BENGALI

-  -  - - -

HB_SCRIPT_CYRILLIC

-  -  - - -

HB_SCRIPT_DEVANAGARI

-  -  - - -

HB_SCRIPT_GEORGIAN

-  -  - - -

HB_SCRIPT_GREEK

-  -  - - -

HB_SCRIPT_GUJARATI

-  -  - - -

HB_SCRIPT_GURMUKHI

-  -  - - -

HB_SCRIPT_HANGUL

-  -  - - -

HB_SCRIPT_HAN

-  -  - - -

HB_SCRIPT_HEBREW

-  -  - - -

HB_SCRIPT_HIRAGANA

-  -  - - -

HB_SCRIPT_KANNADA

-  -  - - -

HB_SCRIPT_KATAKANA

-  -  - - -

HB_SCRIPT_LAO

-  -  - - -

HB_SCRIPT_LATIN

-  -  - - -

HB_SCRIPT_MALAYALAM

-  -  - - -

HB_SCRIPT_ORIYA

-  -  - - -

HB_SCRIPT_TAMIL

-  -  - - -

HB_SCRIPT_TELUGU

-  -  - - -

HB_SCRIPT_THAI

-  -  - - -

HB_SCRIPT_TIBETAN

+

HB_SCRIPT_BASSA_VAH

    -

HB_SCRIPT_BOPOMOFO

+

HB_SCRIPT_ADLAM

    -

HB_SCRIPT_BRAILLE

+

HB_SCRIPT_MASARAM_GONDI

    -

HB_SCRIPT_CANADIAN_SYLLABICS

+

HB_SCRIPT_DOGRA

    -

HB_SCRIPT_CHEROKEE

+

HB_SCRIPT_ELYMAIC

    -

HB_SCRIPT_ETHIOPIC

+

HB_SCRIPT_INVALID

    -

HB_SCRIPT_KHMER

+

_HB_SCRIPT_MAX_VALUE

    -

HB_SCRIPT_MONGOLIAN

-  -  - - -

HB_SCRIPT_MYANMAR

-  -  - - -

HB_SCRIPT_OGHAM

-  -  - - -

HB_SCRIPT_RUNIC

-  -  - - -

HB_SCRIPT_SINHALA

-  -  - - -

HB_SCRIPT_SYRIAC

-  -  - - -

HB_SCRIPT_THAANA

-  -  - - -

HB_SCRIPT_YI

-  -  - - -

HB_SCRIPT_DESERET

-  -  - - -

HB_SCRIPT_GOTHIC

-  -  - - -

HB_SCRIPT_OLD_ITALIC

-  -  - - -

HB_SCRIPT_BUHID

-  -  - - -

HB_SCRIPT_HANUNOO

-  -  - - -

HB_SCRIPT_TAGALOG

-  -  - - -

HB_SCRIPT_TAGBANWA

-  -  - - -

HB_SCRIPT_CYPRIOT

-  -  - - -

HB_SCRIPT_LIMBU

-  -  - - -

HB_SCRIPT_LINEAR_B

-  -  - - -

HB_SCRIPT_OSMANYA

-  -  - - -

HB_SCRIPT_SHAVIAN

-  -  - - -

HB_SCRIPT_TAI_LE

-  -  - - -

HB_SCRIPT_UGARITIC

-  -  - - -

HB_SCRIPT_BUGINESE

-  -  - - -

HB_SCRIPT_COPTIC

-  -  - - -

HB_SCRIPT_GLAGOLITIC

-  -  - - -

HB_SCRIPT_KHAROSHTHI

-  -  - - -

HB_SCRIPT_NEW_TAI_LUE

-  -  - - -

HB_SCRIPT_OLD_PERSIAN

-  -  - - -

HB_SCRIPT_SYLOTI_NAGRI

-  -  - - -

HB_SCRIPT_TIFINAGH

-  -  - - -

HB_SCRIPT_BALINESE

-  -  - - -

HB_SCRIPT_CUNEIFORM

-  -  - - -

HB_SCRIPT_NKO

-  -  - - -

HB_SCRIPT_PHAGS_PA

-  -  - - -

HB_SCRIPT_PHOENICIAN

-  -  - - -

HB_SCRIPT_CARIAN

-  -  - - -

HB_SCRIPT_CHAM

-  -  - - -

HB_SCRIPT_KAYAH_LI

-  -  - - -

HB_SCRIPT_LEPCHA

-  -  - - -

HB_SCRIPT_LYCIAN

-  -  - - -

HB_SCRIPT_LYDIAN

-  -  - - -

HB_SCRIPT_OL_CHIKI

-  -  - - -

HB_SCRIPT_REJANG

-  -  - - -

HB_SCRIPT_SAURASHTRA

-  -  - - -

HB_SCRIPT_SUNDANESE

-  -  - - -

HB_SCRIPT_VAI

-  -  - - -

HB_SCRIPT_AVESTAN

-  -  - - -

HB_SCRIPT_BAMUM

-  -  - - -

HB_SCRIPT_EGYPTIAN_HIEROGLYPHS

-  -  - - -

HB_SCRIPT_IMPERIAL_ARAMAIC

-  -  - - -

HB_SCRIPT_INSCRIPTIONAL_PAHLAVI

-  -  - - -

HB_SCRIPT_INSCRIPTIONAL_PARTHIAN

-  -  - - -

HB_SCRIPT_JAVANESE

-  -  - - -

HB_SCRIPT_KAITHI

-  -  - - -

HB_SCRIPT_LISU

-  -  - - -

HB_SCRIPT_MEETEI_MAYEK

-  -  - - -

HB_SCRIPT_OLD_SOUTH_ARABIAN

-  -  - - -

HB_SCRIPT_OLD_TURKIC

-  -  - - -

HB_SCRIPT_SAMARITAN

-  -  - - -

HB_SCRIPT_TAI_THAM

-  -  - - -

HB_SCRIPT_TAI_VIET

-  -  - - -

HB_SCRIPT_BATAK

-  -  - - -

HB_SCRIPT_BRAHMI

-  -  - - -

HB_SCRIPT_MANDAIC

-  -  - - -

HB_SCRIPT_CHAKMA

-  -  - - -

HB_SCRIPT_MEROITIC_CURSIVE

-  -  - - -

HB_SCRIPT_MEROITIC_HIEROGLYPHS

-  -  - - -

HB_SCRIPT_MIAO

-  -  - - -

HB_SCRIPT_SHARADA

-  -  - - -

HB_SCRIPT_SORA_SOMPENG

-  -  - - -

HB_SCRIPT_TAKRI

-  -  - - -

HB_SCRIPT_BASSA_VAH

-  -  - - -

HB_SCRIPT_CAUCASIAN_ALBANIAN

-  -  - - -

HB_SCRIPT_DUPLOYAN

-  -  - - -

HB_SCRIPT_ELBASAN

-  -  - - -

HB_SCRIPT_GRANTHA

-  -  - - -

HB_SCRIPT_KHOJKI

-  -  - - -

HB_SCRIPT_KHUDAWADI

-  -  - - -

HB_SCRIPT_LINEAR_A

-  -  - - -

HB_SCRIPT_MAHAJANI

-  -  - - -

HB_SCRIPT_MANICHAEAN

-  -  - - -

HB_SCRIPT_MENDE_KIKAKUI

-  -  - - -

HB_SCRIPT_MODI

-  -  - - -

HB_SCRIPT_MRO

-  -  - - -

HB_SCRIPT_NABATAEAN

-  -  - - -

HB_SCRIPT_OLD_NORTH_ARABIAN

-  -  - - -

HB_SCRIPT_OLD_PERMIC

-  -  - - -

HB_SCRIPT_PAHAWH_HMONG

-  -  - - -

HB_SCRIPT_PALMYRENE

-  -  - - -

HB_SCRIPT_PAU_CIN_HAU

-  -  - - -

HB_SCRIPT_PSALTER_PAHLAVI

-  -  - - -

HB_SCRIPT_SIDDHAM

-  -  - - -

HB_SCRIPT_TIRHUTA

-  -  - - -

HB_SCRIPT_WARANG_CITI

-  -  - - -

HB_SCRIPT_AHOM

-  -  - - -

HB_SCRIPT_ANATOLIAN_HIEROGLYPHS

-  -  - - -

HB_SCRIPT_HATRAN

-  -  - - -

HB_SCRIPT_MULTANI

-  -  - - -

HB_SCRIPT_OLD_HUNGARIAN

-  -  - - -

HB_SCRIPT_SIGNWRITING

-  -  - - -

HB_SCRIPT_ADLAM

-  -  - - -

HB_SCRIPT_BHAIKSUKI

-  -  - - -

HB_SCRIPT_MARCHEN

-  -  - - -

HB_SCRIPT_OSAGE

-  -  - - -

HB_SCRIPT_TANGUT

-  -  - - -

HB_SCRIPT_NEWA

-  -  - - -

HB_SCRIPT_MASARAM_GONDI

-  -  - - -

HB_SCRIPT_NUSHU

-  -  - - -

HB_SCRIPT_SOYOMBO

-  -  - - -

HB_SCRIPT_ZANABAZAR_SQUARE

-  -  - - -

HB_SCRIPT_DOGRA

-  -  - - -

HB_SCRIPT_GUNJALA_GONDI

-  -  - - -

HB_SCRIPT_HANIFI_ROHINGYA

-  -  - - -

HB_SCRIPT_MAKASAR

-  -  - - -

HB_SCRIPT_MEDEFAIDRIN

-  -  - - -

HB_SCRIPT_OLD_SOGDIAN

-  -  - - -

HB_SCRIPT_SOGDIAN

-  -  - - -

HB_SCRIPT_INVALID

-  -  - - -

_HB_SCRIPT_MAX_VALUE

-  -  - - -

_HB_SCRIPT_MAX_VALUE_SIGNED

+

_HB_SCRIPT_MAX_VALUE_SIGNED

    @@ -1463,7 +1041,7 @@ HarfBuzz itself.


-

hb_user_data_key_t

+

hb_user_data_key_t

typedef struct {
 } hb_user_data_key_t;
 
@@ -1496,9 +1074,23 @@ HarfBuzz itself.

#define HB_LANGUAGE_INVALID ((hb_language_t) 0)
 
+
+
+

HB_FEATURE_GLOBAL_END

+
#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
+
+

Since: 2.0.0

+
+
+
+

HB_FEATURE_GLOBAL_START

+
#define HB_FEATURE_GLOBAL_START 0
+
+

Since: 2.0.0

+
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-coretext.html b/docs/html/harfbuzz-hb-coretext.html index fddeb85..143871a 100644 --- a/docs/html/harfbuzz-hb-coretext.html +++ b/docs/html/harfbuzz-hb-coretext.html @@ -3,12 +3,12 @@ hb-coretext: HarfBuzz Manual - + - + @@ -41,7 +41,7 @@ -hb_face_t * +hb_face_t * hb_coretext_face_create () @@ -49,7 +49,7 @@ -hb_font_t * +hb_font_t * hb_coretext_font_create () @@ -110,26 +110,26 @@

Functions

hb_coretext_face_create ()

-
hb_face_t *
+
hb_face_t *
 hb_coretext_face_create (CGFontRef cg_font);

hb_coretext_font_create ()

-
hb_font_t *
+
hb_font_t *
 hb_coretext_font_create (CTFontRef ct_font);

hb_coretext_face_get_cg_font ()

CGFontRef
-hb_coretext_face_get_cg_font (hb_face_t *face);
+hb_coretext_face_get_cg_font (hb_face_t *face);

hb_coretext_font_get_ct_font ()

CTFontRef
-hb_coretext_font_get_ct_font (hb_font_t *font);
+hb_coretext_font_get_ct_font (hb_font_t *font);
@@ -154,6 +154,6 @@ hb_coretext_font_get_ct_font ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-deprecated.html b/docs/html/harfbuzz-hb-deprecated.html index 96ed0a1..428c2a7 100644 --- a/docs/html/harfbuzz-hb-deprecated.html +++ b/docs/html/harfbuzz-hb-deprecated.html @@ -3,12 +3,12 @@ hb-deprecated: HarfBuzz Manual - + - + @@ -160,7 +160,7 @@ were deemed unnecessary.

hb_font_get_glyph_func_t ()

hb_bool_t
-(*hb_font_get_glyph_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_func_t) (hb_font_t *font,
                              void *font_data,
                              hb_codepoint_t unicode,
                              hb_codepoint_t variation_selector,
@@ -172,7 +172,7 @@ were deemed unnecessary.

hb_ot_layout_table_find_script ()

hb_bool_t
-hb_ot_layout_table_find_script (hb_face_t *face,
+hb_ot_layout_table_find_script (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 hb_tag_t script_tag,
                                 unsigned int *script_index);
@@ -182,7 +182,7 @@ hb_ot_layout_table_find_script (

hb_font_funcs_set_glyph_h_kerning_func ()

void
 hb_font_funcs_set_glyph_h_kerning_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_h_kerning_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -216,7 +216,7 @@ hb_font_funcs_set_glyph_h_kerning_func

hb_font_funcs_set_glyph_v_kerning_func ()

void
 hb_font_funcs_set_glyph_v_kerning_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_v_kerning_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -249,7 +249,7 @@ hb_font_funcs_set_glyph_v_kerning_func

hb_font_get_glyph_h_kerning ()

hb_position_t
-hb_font_get_glyph_h_kerning (hb_font_t *font,
+hb_font_get_glyph_h_kerning (hb_font_t *font,
                              hb_codepoint_t left_glyph,
                              hb_codepoint_t right_glyph);

hb_font_get_glyph_h_kerning has been deprecated since version 2.0.0 and should not be used in newly-written code.

@@ -275,7 +275,7 @@ hb_font_get_glyph_h_kerning (

hb_font_get_glyph_kerning_for_direction ()

void
 hb_font_get_glyph_kerning_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t first_glyph,
                                 hb_codepoint_t second_glyph,
                                 hb_direction_t direction,
@@ -315,7 +315,7 @@ hb_font_get_glyph_kerning_for_direction
 

hb_font_get_glyph_kerning_func_t ()

hb_position_t
-(*hb_font_get_glyph_kerning_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_kerning_func_t) (hb_font_t *font,
                                      void *font_data,
                                      hb_codepoint_t first_glyph,
                                      hb_codepoint_t second_glyph,
@@ -326,7 +326,7 @@ hb_font_get_glyph_kerning_for_direction
 

hb_font_get_glyph_v_kerning ()

hb_position_t
-hb_font_get_glyph_v_kerning (hb_font_t *font,
+hb_font_get_glyph_v_kerning (hb_font_t *font,
                              hb_codepoint_t top_glyph,
                              hb_codepoint_t bottom_glyph);

hb_font_get_glyph_v_kerning has been deprecated since version 2.0.0 and should not be used in newly-written code.

@@ -403,6 +403,6 @@ hb_font_get_glyph_v_kerning ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-face.html b/docs/html/harfbuzz-hb-face.html index 25c817e..e32b160 100644 --- a/docs/html/harfbuzz-hb-face.html +++ b/docs/html/harfbuzz-hb-face.html @@ -3,20 +3,19 @@ hb-face: HarfBuzz Manual - + - + @@ -49,7 +48,7 @@
-
+

Types and Values

@@ -239,17 +238,11 @@ - +
typedefhb_face_thb_face_t
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_face_t
-
-
-

Includes

#include <hb.h>
 
@@ -266,7 +259,7 @@ Font faces are used to create fonts.

hb_face_count ()

unsigned int
-hb_face_count (hb_blob_t *blob);
+hb_face_count (hb_blob_t *blob);

Get number of faces in a blob.

Parameters

@@ -293,8 +286,8 @@ hb_face_count (

hb_face_create ()

-
hb_face_t *
-hb_face_create (hb_blob_t *blob,
+
hb_face_t *
+hb_face_create (hb_blob_t *blob,
                 unsigned int index);

[Xconstructor]

@@ -307,7 +300,7 @@ hb_face_create (

hb_face_create_for_tables ()

-
hb_face_t *
+
hb_face_t *
 hb_face_create_for_tables (hb_reference_table_func_t reference_table_func,
                            void *user_data,
                            hb_destroy_func_t destroy);
@@ -336,7 +329,7 @@ hb_face_create_for_tables (

hb_face_destroy ()

void
-hb_face_destroy (hb_face_t *face);
+hb_face_destroy (hb_face_t *face);

[skip]

Parameters

@@ -358,7 +351,7 @@ hb_face_destroy (

hb_face_get_empty ()

-
hb_face_t *
+
hb_face_t *
 hb_face_get_empty (void);

Returns

@@ -370,7 +363,7 @@ hb_face_get_empty (void

hb_face_get_table_tags ()

unsigned int
-hb_face_get_table_tags (const hb_face_t *face,
+hb_face_get_table_tags (const hb_face_t *face,
                         unsigned int start_offset,
                         unsigned int *table_count,
                         hb_tag_t *table_tags);
@@ -418,7 +411,7 @@ array, output number of items written.

hb_face_get_glyph_count ()

unsigned int
-hb_face_get_glyph_count (const hb_face_t *face);
+hb_face_get_glyph_count (const hb_face_t *face);

Parameters

@@ -440,7 +433,7 @@ hb_face_get_glyph_count (const

hb_face_get_index ()

unsigned int
-hb_face_get_index (const hb_face_t *face);
+hb_face_get_index (const hb_face_t *face);

Parameters

@@ -462,7 +455,7 @@ hb_face_get_index (const

hb_face_get_upem ()

unsigned int
-hb_face_get_upem (const hb_face_t *face);
+hb_face_get_upem (const hb_face_t *face);

Parameters

@@ -484,8 +477,8 @@ hb_face_get_upem (const

hb_face_get_user_data ()

void *
-hb_face_get_user_data (const hb_face_t *face,
-                       hb_user_data_key_t *key);
+hb_face_get_user_data (const hb_face_t *face, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -513,7 +506,7 @@ hb_face_get_user_data (const

hb_face_is_immutable ()

hb_bool_t
-hb_face_is_immutable (const hb_face_t *face);
+hb_face_is_immutable (const hb_face_t *face);

Parameters

@@ -535,7 +528,7 @@ hb_face_is_immutable (const

hb_face_make_immutable ()

void
-hb_face_make_immutable (hb_face_t *face);
+hb_face_make_immutable (hb_face_t *face);

Parameters

@@ -556,8 +549,8 @@ hb_face_make_immutable (

hb_face_reference ()

-
hb_face_t *
-hb_face_reference (hb_face_t *face);
+
hb_face_t *
+hb_face_reference (hb_face_t *face);

[skip]

Parameters

@@ -579,8 +572,8 @@ hb_face_reference (

hb_face_reference_blob ()

-
hb_blob_t *
-hb_face_reference_blob (hb_face_t *face);
+
hb_blob_t *
+hb_face_reference_blob (hb_face_t *face);

Parameters

@@ -606,8 +599,8 @@ hb_face_reference_blob (

hb_face_reference_table ()

-
hb_blob_t *
-hb_face_reference_table (const hb_face_t *face,
+
hb_blob_t *
+hb_face_reference_table (const hb_face_t *face,
                          hb_tag_t tag);

Parameters

@@ -635,7 +628,7 @@ hb_face_reference_table (const

hb_face_set_glyph_count ()

void
-hb_face_set_glyph_count (hb_face_t *face,
+hb_face_set_glyph_count (hb_face_t *face,
                          unsigned int glyph_count);

Parameters

@@ -658,7 +651,7 @@ hb_face_set_glyph_count (

hb_face_set_index ()

void
-hb_face_set_index (hb_face_t *face,
+hb_face_set_index (hb_face_t *face,
                    unsigned int index);

Parameters

@@ -681,7 +674,7 @@ hb_face_set_index (

hb_face_set_upem ()

void
-hb_face_set_upem (hb_face_t *face,
+hb_face_set_upem (hb_face_t *face,
                   unsigned int upem);

Parameters

@@ -704,8 +697,8 @@ hb_face_set_upem (

hb_face_set_user_data ()

hb_bool_t
-hb_face_set_user_data (hb_face_t *face,
-                       hb_user_data_key_t *key,
+hb_face_set_user_data (hb_face_t *face,
+                       hb_user_data_key_t *key,
                        void *data,
                        hb_destroy_func_t destroy,
                        hb_bool_t replace);
@@ -731,8 +724,8 @@ hb_face_set_user_data (

hb_face_collect_unicodes ()

void
-hb_face_collect_unicodes (hb_face_t *face,
-                          hb_set_t *out);
+hb_face_collect_unicodes (hb_face_t *face, + hb_set_t *out);

Parameters

@@ -762,8 +755,8 @@ to.

hb_face_collect_variation_selectors ()

void
-hb_face_collect_variation_selectors (hb_face_t *face,
-                                     hb_set_t *out);
+hb_face_collect_variation_selectors (hb_face_t *face, + hb_set_t *out);

Parameters

@@ -793,9 +786,9 @@ to.

hb_face_collect_variation_unicodes ()

void
-hb_face_collect_variation_unicodes (hb_face_t *face,
+hb_face_collect_variation_unicodes (hb_face_t *face,
                                     hb_codepoint_t variation_selector,
-                                    hb_set_t *out);
+ hb_set_t *out);

Parameters

@@ -825,14 +818,14 @@ to.


hb_face_builder_create ()

-
hb_face_t *
+
hb_face_t *
 hb_face_builder_create (void);
-

Creates a hb_face_t that can be used with hb_face_builder_add_table(). +

Creates a hb_face_t that can be used with hb_face_builder_add_table(). After tables are added to the face, it can be compiled to a binary font file by calling hb_face_reference_blob().

Returns

-

New face.

+

New face.

[transfer full]

Since: 1.9.0

@@ -841,9 +834,9 @@ font file by calling

hb_face_builder_add_table ()

hb_bool_t
-hb_face_builder_add_table (hb_face_t *face,
+hb_face_builder_add_table (hb_face_t *face,
                            hb_tag_t tag,
-                           hb_blob_t *blob);
+ hb_blob_t *blob);

Add table for tag with data provided by blob to the face. face @@ -862,6 +855,6 @@ be created using -


Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-font.html b/docs/html/harfbuzz-hb-font.html index 10c7d9e..5c9785f 100644 --- a/docs/html/harfbuzz-hb-font.html +++ b/docs/html/harfbuzz-hb-font.html @@ -3,20 +3,19 @@ hb-font: HarfBuzz Manual - + - +
@@ -50,7 +49,7 @@ - - - - - - - -
-
+

Types and Values

@@ -740,7 +723,7 @@ - + @@ -767,12 +750,8 @@ - - - - - + @@ -786,13 +765,6 @@
typedefhb_font_funcs_thb_font_funcs_t
typedefhb_font_get_glyph_v_origin_func_t
 hb_variation_t
typedefhb_font_thb_font_t
typedef
-

Object Hierarchy

-
    GBoxed
-    ├── hb_font_funcs_t
-    ╰── hb_font_t
-
-
-

Includes

#include <hb.h>
 
@@ -810,7 +782,7 @@ Fonts are created from font faces, and are used as input to

hb_font_add_glyph_origin_for_direction ()

void
 hb_font_add_glyph_origin_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 hb_direction_t direction,
                                 hb_position_t *x,
@@ -847,8 +819,8 @@ hb_font_add_glyph_origin_for_direction
 

hb_font_create ()

-
hb_font_t *
-hb_font_create (hb_face_t *face);
+
hb_font_t *
+hb_font_create (hb_face_t *face);

[Xconstructor]

Parameters

@@ -875,8 +847,8 @@ hb_font_create (

hb_font_create_sub_font ()

-
hb_font_t *
-hb_font_create_sub_font (hb_font_t *parent);
+
hb_font_t *
+hb_font_create_sub_font (hb_font_t *parent);

Parameters

@@ -903,7 +875,7 @@ hb_font_create_sub_font (

hb_font_destroy ()

void
-hb_font_destroy (hb_font_t *font);
+hb_font_destroy (hb_font_t *font);

[skip]

Parameters

@@ -925,7 +897,7 @@ hb_font_destroy (

hb_font_funcs_create ()

-
hb_font_funcs_t *
+
hb_font_funcs_t *
 hb_font_funcs_create (void);

[Xconstructor]

@@ -939,7 +911,7 @@ hb_font_funcs_create (void

hb_font_funcs_destroy ()

void
-hb_font_funcs_destroy (hb_font_funcs_t *ffuncs);
+hb_font_funcs_destroy (hb_font_funcs_t *ffuncs);

[skip]

Parameters

@@ -961,7 +933,7 @@ hb_font_funcs_destroy (

hb_font_funcs_get_empty ()

-
hb_font_funcs_t *
+
hb_font_funcs_t *
 hb_font_funcs_get_empty (void);

Returns

@@ -974,8 +946,8 @@ hb_font_funcs_get_empty (void

hb_font_funcs_get_user_data ()

void *
-hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs,
-                             hb_user_data_key_t *key);
+hb_font_funcs_get_user_data (hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -1003,7 +975,7 @@ hb_font_funcs_get_user_data (

hb_font_funcs_is_immutable ()

hb_bool_t
-hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);
+hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs);

Parameters

@@ -1025,7 +997,7 @@ hb_font_funcs_is_immutable (

hb_font_funcs_make_immutable ()

void
-hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);
+hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs);

Parameters

@@ -1046,8 +1018,8 @@ hb_font_funcs_make_immutable (

hb_font_funcs_reference ()

-
hb_font_funcs_t *
-hb_font_funcs_reference (hb_font_funcs_t *ffuncs);
+
hb_font_funcs_t *
+hb_font_funcs_reference (hb_font_funcs_t *ffuncs);

[skip]

Parameters

@@ -1071,7 +1043,7 @@ hb_font_funcs_reference (

hb_font_funcs_set_glyph_contour_point_func ()

void
 hb_font_funcs_set_glyph_contour_point_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_contour_point_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1103,7 +1075,7 @@ hb_font_funcs_set_glyph_contour_point_func

hb_font_funcs_set_glyph_extents_func ()

void
-hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_glyph_extents_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);
@@ -1136,7 +1108,7 @@ hb_font_funcs_set_glyph_extents_func (

hb_font_funcs_set_glyph_from_name_func ()

void
 hb_font_funcs_set_glyph_from_name_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_from_name_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1169,7 +1141,7 @@ hb_font_funcs_set_glyph_from_name_func

hb_font_funcs_set_glyph_h_advance_func ()

void
 hb_font_funcs_set_glyph_h_advance_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_h_advance_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1202,7 +1174,7 @@ hb_font_funcs_set_glyph_h_advance_func

hb_font_funcs_set_glyph_h_advances_func ()

void
 hb_font_funcs_set_glyph_h_advances_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_h_advances_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1234,7 +1206,7 @@ hb_font_funcs_set_glyph_h_advances_func

hb_font_funcs_set_glyph_h_origin_func ()

void
-hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs,
                                        hb_font_get_glyph_h_origin_func_t func,
                                        void *user_data,
                                        hb_destroy_func_t destroy);
@@ -1266,7 +1238,7 @@ hb_font_funcs_set_glyph_h_origin_func (

hb_font_funcs_set_glyph_name_func ()

void
-hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs,
                                    hb_font_get_glyph_name_func_t func,
                                    void *user_data,
                                    hb_destroy_func_t destroy);
@@ -1299,7 +1271,7 @@ hb_font_funcs_set_glyph_name_func (

hb_font_funcs_set_glyph_v_advance_func ()

void
 hb_font_funcs_set_glyph_v_advance_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_v_advance_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1332,7 +1304,7 @@ hb_font_funcs_set_glyph_v_advance_func

hb_font_funcs_set_glyph_v_advances_func ()

void
 hb_font_funcs_set_glyph_v_advances_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_glyph_v_advances_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1364,7 +1336,7 @@ hb_font_funcs_set_glyph_v_advances_func

hb_font_funcs_set_glyph_v_origin_func ()

void
-hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs,
                                        hb_font_get_glyph_v_origin_func_t func,
                                        void *user_data,
                                        hb_destroy_func_t destroy);
@@ -1396,7 +1368,7 @@ hb_font_funcs_set_glyph_v_origin_func (

hb_font_funcs_set_nominal_glyph_func ()

void
-hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs,
                                       hb_font_get_nominal_glyph_func_t func,
                                       void *user_data,
                                       hb_destroy_func_t destroy);
@@ -1428,7 +1400,7 @@ hb_font_funcs_set_nominal_glyph_func (

hb_font_funcs_set_nominal_glyphs_func ()

void
-hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs,
                                        hb_font_get_nominal_glyphs_func_t func,
                                        void *user_data,
                                        hb_destroy_func_t destroy);
@@ -1460,8 +1432,8 @@ hb_font_funcs_set_nominal_glyphs_func (

hb_font_funcs_set_user_data ()

hb_bool_t
-hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs,
-                             hb_user_data_key_t *key,
+hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs,
+                             hb_user_data_key_t *key,
                              void *data,
                              hb_destroy_func_t destroy,
                              hb_bool_t replace);
@@ -1488,7 +1460,7 @@ hb_font_funcs_set_user_data (

hb_font_funcs_set_variation_glyph_func ()

void
 hb_font_funcs_set_variation_glyph_func
-                               (hb_font_funcs_t *ffuncs,
+                               (hb_font_funcs_t *ffuncs,
                                 hb_font_get_variation_glyph_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -1519,7 +1491,7 @@ hb_font_funcs_set_variation_glyph_func

hb_font_get_empty ()

-
hb_font_t *
+
hb_font_t *
 hb_font_get_empty (void);

Returns

@@ -1530,8 +1502,8 @@ hb_font_get_empty (void

hb_font_get_face ()

-
hb_face_t *
-hb_font_get_face (hb_font_t *font);
+
hb_face_t *
+hb_font_get_face (hb_font_t *font);

Parameters

@@ -1558,7 +1530,7 @@ hb_font_get_face (

hb_font_get_glyph ()

hb_bool_t
-hb_font_get_glyph (hb_font_t *font,
+hb_font_get_glyph (hb_font_t *font,
                    hb_codepoint_t unicode,
                    hb_codepoint_t variation_selector,
                    hb_codepoint_t *glyph);
@@ -1591,7 +1563,7 @@ hb_font_get_glyph (

hb_font_get_glyph_advance_for_direction ()

void
 hb_font_get_glyph_advance_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 hb_direction_t direction,
                                 hb_position_t *x,
@@ -1629,7 +1601,7 @@ hb_font_get_glyph_advance_for_direction
 

hb_font_get_glyph_advance_func_t ()

hb_position_t
-(*hb_font_get_glyph_advance_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_advance_func_t) (hb_font_t *font,
                                      void *font_data,
                                      hb_codepoint_t glyph,
                                      void *user_data);
@@ -1639,7 +1611,7 @@ hb_font_get_glyph_advance_for_direction

hb_font_get_glyph_advances_for_direction ()

void
 hb_font_get_glyph_advances_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_direction_t direction,
                                 unsigned int count,
                                 const hb_codepoint_t *first_glyph,
@@ -1667,7 +1639,7 @@ hb_font_get_glyph_advances_for_direction
 

hb_font_get_glyph_advances_func_t ()

void
-(*hb_font_get_glyph_advances_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_advances_func_t) (hb_font_t *font,
                                       void *font_data,
                                       unsigned int count,
                                       const hb_codepoint_t *first_glyph,
@@ -1680,7 +1652,7 @@ hb_font_get_glyph_advances_for_direction
 

hb_font_get_glyph_contour_point ()

hb_bool_t
-hb_font_get_glyph_contour_point (hb_font_t *font,
+hb_font_get_glyph_contour_point (hb_font_t *font,
                                  hb_codepoint_t glyph,
                                  unsigned int point_index,
                                  hb_position_t *x,
@@ -1719,7 +1691,7 @@ hb_font_get_glyph_contour_point (

hb_font_get_glyph_contour_point_for_origin ()

hb_bool_t
 hb_font_get_glyph_contour_point_for_origin
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 unsigned int point_index,
                                 hb_direction_t direction,
@@ -1759,7 +1731,7 @@ hb_font_get_glyph_contour_point_for_origin
 

hb_font_get_glyph_contour_point_func_t ()

hb_bool_t
 (*hb_font_get_glyph_contour_point_func_t)
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 void *font_data,
                                 hb_codepoint_t glyph,
                                 unsigned int point_index,
@@ -1771,7 +1743,7 @@ hb_font_get_glyph_contour_point_for_origin
 

hb_font_get_glyph_extents ()

hb_bool_t
-hb_font_get_glyph_extents (hb_font_t *font,
+hb_font_get_glyph_extents (hb_font_t *font,
                            hb_codepoint_t glyph,
                            hb_glyph_extents_t *extents);
@@ -1802,7 +1774,7 @@ hb_font_get_glyph_extents (

hb_font_get_glyph_extents_for_origin ()

hb_bool_t
-hb_font_get_glyph_extents_for_origin (hb_font_t *font,
+hb_font_get_glyph_extents_for_origin (hb_font_t *font,
                                       hb_codepoint_t glyph,
                                       hb_direction_t direction,
                                       hb_glyph_extents_t *extents);
@@ -1834,7 +1806,7 @@ hb_font_get_glyph_extents_for_origin (

hb_font_get_glyph_extents_func_t ()

hb_bool_t
-(*hb_font_get_glyph_extents_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_extents_func_t) (hb_font_t *font,
                                      void *font_data,
                                      hb_codepoint_t glyph,
                                      hb_glyph_extents_t *extents,
@@ -1844,7 +1816,7 @@ hb_font_get_glyph_extents_for_origin (
 

hb_font_get_glyph_from_name ()

hb_bool_t
-hb_font_get_glyph_from_name (hb_font_t *font,
+hb_font_get_glyph_from_name (hb_font_t *font,
                              const char *name,
                              int len,
                              hb_codepoint_t *glyph);
@@ -1881,7 +1853,7 @@ hb_font_get_glyph_from_name (

hb_font_get_glyph_from_name_func_t ()

hb_bool_t
-(*hb_font_get_glyph_from_name_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_from_name_func_t) (hb_font_t *font,
                                        void *font_data,
                                        const char *name,
                                        int len);
@@ -1890,7 +1862,7 @@ hb_font_get_glyph_from_name (

hb_font_get_glyph_h_advance ()

hb_position_t
-hb_font_get_glyph_h_advance (hb_font_t *font,
+hb_font_get_glyph_h_advance (hb_font_t *font,
                              hb_codepoint_t glyph);

Parameters

@@ -1913,7 +1885,7 @@ hb_font_get_glyph_h_advance (

hb_font_get_glyph_h_advances ()

void
-hb_font_get_glyph_h_advances (hb_font_t *font,
+hb_font_get_glyph_h_advances (hb_font_t *font,
                               unsigned int count,
                               const hb_codepoint_t *first_glyph,
                               unsigned  glyph_stride,
@@ -1940,7 +1912,7 @@ hb_font_get_glyph_h_advances (
 

hb_font_get_glyph_h_origin ()

hb_bool_t
-hb_font_get_glyph_h_origin (hb_font_t *font,
+hb_font_get_glyph_h_origin (hb_font_t *font,
                             hb_codepoint_t glyph,
                             hb_position_t *x,
                             hb_position_t *y);
@@ -1977,7 +1949,7 @@ hb_font_get_glyph_h_origin (

hb_font_get_glyph_name ()

hb_bool_t
-hb_font_get_glyph_name (hb_font_t *font,
+hb_font_get_glyph_name (hb_font_t *font,
                         hb_codepoint_t glyph,
                         char *name,
                         unsigned int size);
@@ -2009,7 +1981,7 @@ hb_font_get_glyph_name (

hb_font_get_glyph_name_func_t ()

hb_bool_t
-(*hb_font_get_glyph_name_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_name_func_t) (hb_font_t *font,
                                   void *font_data,
                                   hb_codepoint_t glyph,
                                   char *name,
@@ -2021,7 +1993,7 @@ hb_font_get_glyph_name (

hb_font_get_glyph_origin_for_direction ()

void
 hb_font_get_glyph_origin_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 hb_direction_t direction,
                                 hb_position_t *x,
@@ -2059,7 +2031,7 @@ hb_font_get_glyph_origin_for_direction
 

hb_font_get_glyph_origin_func_t ()

hb_bool_t
-(*hb_font_get_glyph_origin_func_t) (hb_font_t *font,
+(*hb_font_get_glyph_origin_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_codepoint_t glyph,
                                     hb_position_t *x,
@@ -2070,7 +2042,7 @@ hb_font_get_glyph_origin_for_direction
 

hb_font_get_glyph_v_advance ()

hb_position_t
-hb_font_get_glyph_v_advance (hb_font_t *font,
+hb_font_get_glyph_v_advance (hb_font_t *font,
                              hb_codepoint_t glyph);

Parameters

@@ -2093,7 +2065,7 @@ hb_font_get_glyph_v_advance (

hb_font_get_glyph_v_advances ()

void
-hb_font_get_glyph_v_advances (hb_font_t *font,
+hb_font_get_glyph_v_advances (hb_font_t *font,
                               unsigned int count,
                               const hb_codepoint_t *first_glyph,
                               unsigned  glyph_stride,
@@ -2120,7 +2092,7 @@ hb_font_get_glyph_v_advances (
 

hb_font_get_glyph_v_origin ()

hb_bool_t
-hb_font_get_glyph_v_origin (hb_font_t *font,
+hb_font_get_glyph_v_origin (hb_font_t *font,
                             hb_codepoint_t glyph,
                             hb_position_t *x,
                             hb_position_t *y);
@@ -2157,7 +2129,7 @@ hb_font_get_glyph_v_origin (

hb_font_get_nominal_glyph ()

hb_bool_t
-hb_font_get_nominal_glyph (hb_font_t *font,
+hb_font_get_nominal_glyph (hb_font_t *font,
                            hb_codepoint_t unicode,
                            hb_codepoint_t *glyph);
@@ -2188,7 +2160,7 @@ hb_font_get_nominal_glyph (

hb_font_get_nominal_glyph_func_t ()

hb_bool_t
-(*hb_font_get_nominal_glyph_func_t) (hb_font_t *font,
+(*hb_font_get_nominal_glyph_func_t) (hb_font_t *font,
                                      void *font_data,
                                      hb_codepoint_t unicode,
                                      hb_codepoint_t *glyph,
@@ -2197,8 +2169,8 @@ hb_font_get_nominal_glyph (
 

hb_font_get_parent ()

-
hb_font_t *
-hb_font_get_parent (hb_font_t *font);
+
hb_font_t *
+hb_font_get_parent (hb_font_t *font);

Parameters

@@ -2225,7 +2197,7 @@ hb_font_get_parent (

hb_font_get_ppem ()

void
-hb_font_get_ppem (hb_font_t *font,
+hb_font_get_ppem (hb_font_t *font,
                   unsigned int *x_ppem,
                   unsigned int *y_ppem);
@@ -2261,7 +2233,7 @@ hb_font_get_ppem (

hb_font_get_ptem ()

float
-hb_font_get_ptem (hb_font_t *font);
+hb_font_get_ptem (hb_font_t *font);

Gets the "point size" of the font. A value of 0 means unset.

Parameters

@@ -2288,7 +2260,7 @@ hb_font_get_ptem (

hb_font_get_scale ()

void
-hb_font_get_scale (hb_font_t *font,
+hb_font_get_scale (hb_font_t *font,
                    int *x_scale,
                    int *y_scale);
@@ -2324,8 +2296,8 @@ hb_font_get_scale (

hb_font_get_user_data ()

void *
-hb_font_get_user_data (hb_font_t *font,
-                       hb_user_data_key_t *key);
+hb_font_get_user_data (hb_font_t *font, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -2353,7 +2325,7 @@ hb_font_get_user_data (

hb_font_get_variation_glyph ()

hb_bool_t
-hb_font_get_variation_glyph (hb_font_t *font,
+hb_font_get_variation_glyph (hb_font_t *font,
                              hb_codepoint_t unicode,
                              hb_codepoint_t variation_selector,
                              hb_codepoint_t *glyph);
@@ -2385,7 +2357,7 @@ hb_font_get_variation_glyph (

hb_font_get_variation_glyph_func_t ()

hb_bool_t
-(*hb_font_get_variation_glyph_func_t) (hb_font_t *font,
+(*hb_font_get_variation_glyph_func_t) (hb_font_t *font,
                                        void *font_data,
                                        hb_codepoint_t unicode,
                                        hb_codepoint_t variation_selector,
@@ -2396,7 +2368,7 @@ hb_font_get_variation_glyph (
 

hb_font_get_var_coords_normalized ()

const int *
-hb_font_get_var_coords_normalized (hb_font_t *font,
+hb_font_get_var_coords_normalized (hb_font_t *font,
                                    unsigned int *length);

Return value is valid as long as variation coordinates of the font are not modified.

@@ -2406,7 +2378,7 @@ are not modified.

hb_font_glyph_from_string ()

hb_bool_t
-hb_font_glyph_from_string (hb_font_t *font,
+hb_font_glyph_from_string (hb_font_t *font,
                            const char *s,
                            int len,
                            hb_codepoint_t *glyph);
@@ -2443,7 +2415,7 @@ hb_font_glyph_from_string (

hb_font_glyph_to_string ()

void
-hb_font_glyph_to_string (hb_font_t *font,
+hb_font_glyph_to_string (hb_font_t *font,
                          hb_codepoint_t glyph,
                          char *s,
                          unsigned int size);
@@ -2475,7 +2447,7 @@ hb_font_glyph_to_string (

hb_font_is_immutable ()

hb_bool_t
-hb_font_is_immutable (hb_font_t *font);
+hb_font_is_immutable (hb_font_t *font);

Parameters

@@ -2497,7 +2469,7 @@ hb_font_is_immutable (

hb_font_make_immutable ()

void
-hb_font_make_immutable (hb_font_t *font);
+hb_font_make_immutable (hb_font_t *font);

Parameters

@@ -2518,8 +2490,8 @@ hb_font_make_immutable (

hb_font_reference ()

-
hb_font_t *
-hb_font_reference (hb_font_t *font);
+
hb_font_t *
+hb_font_reference (hb_font_t *font);

[skip]

Parameters

@@ -2547,8 +2519,8 @@ hb_font_reference (

hb_font_set_face ()

void
-hb_font_set_face (hb_font_t *font,
-                  hb_face_t *face);
+hb_font_set_face (hb_font_t *font, + hb_face_t *face);

Sets font-face of font .

@@ -2579,8 +2551,8 @@ hb_font_set_face (

hb_font_set_funcs ()

void
-hb_font_set_funcs (hb_font_t *font,
-                   hb_font_funcs_t *klass,
+hb_font_set_funcs (hb_font_t *font,
+                   hb_font_funcs_t *klass,
                    void *font_data,
                    hb_destroy_func_t destroy);
@@ -2611,7 +2583,7 @@ hb_font_set_funcs (

hb_font_set_funcs_data ()

void
-hb_font_set_funcs_data (hb_font_t *font,
+hb_font_set_funcs_data (hb_font_t *font,
                         void *font_data,
                         hb_destroy_func_t destroy);
@@ -2642,8 +2614,8 @@ hb_font_set_funcs_data (

hb_font_set_parent ()

void
-hb_font_set_parent (hb_font_t *font,
-                    hb_font_t *parent);
+hb_font_set_parent (hb_font_t *font, + hb_font_t *parent);

Sets parent font of font .

@@ -2674,7 +2646,7 @@ hb_font_set_parent (

hb_font_set_ppem ()

void
-hb_font_set_ppem (hb_font_t *font,
+hb_font_set_ppem (hb_font_t *font,
                   unsigned int x_ppem,
                   unsigned int y_ppem);
@@ -2698,7 +2670,7 @@ hb_font_set_ppem (

hb_font_set_ptem ()

void
-hb_font_set_ptem (hb_font_t *font,
+hb_font_set_ptem (hb_font_t *font,
                   float ptem);

Sets "point size" of the font. Set to 0 to unset.

There are 72 points in an inch.

@@ -2730,7 +2702,7 @@ hb_font_set_ptem (

hb_font_set_scale ()

void
-hb_font_set_scale (hb_font_t *font,
+hb_font_set_scale (hb_font_t *font,
                    int x_scale,
                    int y_scale);
@@ -2754,8 +2726,8 @@ hb_font_set_scale (

hb_font_set_user_data ()

hb_bool_t
-hb_font_set_user_data (hb_font_t *font,
-                       hb_user_data_key_t *key,
+hb_font_set_user_data (hb_font_t *font,
+                       hb_user_data_key_t *key,
                        void *data,
                        hb_destroy_func_t destroy,
                        hb_bool_t replace);
@@ -2779,28 +2751,10 @@ hb_font_set_user_data ( -

hb_variation_from_string ()

-
hb_bool_t
-hb_variation_from_string (const char *str,
-                          int len,
-                          hb_variation_t *variation);
-

Since: 1.4.2

-
-
-
-

hb_variation_to_string ()

-
void
-hb_variation_to_string (hb_variation_t *variation,
-                        char *buf,
-                        unsigned int size);
-

Since: 1.4.2

-
-
-

hb_font_set_variations ()

void
-hb_font_set_variations (hb_font_t *font,
-                        const hb_variation_t *variations,
+hb_font_set_variations (hb_font_t *font,
+                        const hb_variation_t *variations,
                         unsigned int variations_length);

Since: 1.4.2

@@ -2808,7 +2762,7 @@ hb_font_set_variations (

hb_font_set_var_coords_design ()

void
-hb_font_set_var_coords_design (hb_font_t *font,
+hb_font_set_var_coords_design (hb_font_t *font,
                                const float *coords,
                                unsigned int coords_length);

Since: 1.4.2

@@ -2817,7 +2771,7 @@ hb_font_set_var_coords_design (

hb_font_set_var_coords_normalized ()

void
-hb_font_set_var_coords_normalized (hb_font_t *font,
+hb_font_set_var_coords_normalized (hb_font_t *font,
                                    const int *coords,
                                    unsigned int coords_length);

Since: 1.4.2

@@ -2827,7 +2781,7 @@ hb_font_set_var_coords_normalized (

hb_font_subtract_glyph_origin_for_direction ()

void
 hb_font_subtract_glyph_origin_for_direction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph,
                                 hb_direction_t direction,
                                 hb_position_t *x,
@@ -2864,8 +2818,8 @@ hb_font_subtract_glyph_origin_for_direction
 

hb_reference_table_func_t ()

-
hb_blob_t *
-(*hb_reference_table_func_t) (hb_face_t *face,
+
hb_blob_t *
+(*hb_reference_table_func_t) (hb_face_t *face,
                               hb_tag_t tag,
                               void *user_data);
@@ -2873,7 +2827,7 @@ hb_font_subtract_glyph_origin_for_direction

hb_font_funcs_set_font_h_extents_func ()

void
-hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs,
                                        hb_font_get_font_h_extents_func_t func,
                                        void *user_data,
                                        hb_destroy_func_t destroy);
@@ -2905,7 +2859,7 @@ hb_font_funcs_set_font_h_extents_func (

hb_font_funcs_set_font_v_extents_func ()

void
-hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs,
+hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs,
                                        hb_font_get_font_v_extents_func_t func,
                                        void *user_data,
                                        hb_destroy_func_t destroy);
@@ -2937,7 +2891,7 @@ hb_font_funcs_set_font_v_extents_func (

hb_font_get_extents_for_direction ()

void
-hb_font_get_extents_for_direction (hb_font_t *font,
+hb_font_get_extents_for_direction (hb_font_t *font,
                                    hb_direction_t direction,
                                    hb_font_extents_t *extents);
@@ -2968,7 +2922,7 @@ hb_font_get_extents_for_direction (

hb_font_get_font_extents_func_t ()

hb_bool_t
-(*hb_font_get_font_extents_func_t) (hb_font_t *font,
+(*hb_font_get_font_extents_func_t) (hb_font_t *font,
                                     void *font_data,
                                     hb_font_extents_t *extents,
                                     void *user_data);
@@ -2977,7 +2931,7 @@ hb_font_get_extents_for_direction (

hb_font_get_h_extents ()

hb_bool_t
-hb_font_get_h_extents (hb_font_t *font,
+hb_font_get_h_extents (hb_font_t *font,
                        hb_font_extents_t *extents);

Parameters

@@ -3007,7 +2961,7 @@ hb_font_get_h_extents (

hb_font_get_v_extents ()

hb_bool_t
-hb_font_get_v_extents (hb_font_t *font,
+hb_font_get_v_extents (hb_font_t *font,
                        hb_font_extents_t *extents);

Parameters

@@ -3079,16 +3033,6 @@ hb_font_get_v_extents ( -

hb_variation_t

-
typedef struct {
-  hb_tag_t tag;
-  float    value;
-} hb_variation_t;
-
-

Since: 1.4.2

-
-
-

hb_font_t

typedef struct hb_font_t hb_font_t;
 
@@ -3108,6 +3052,6 @@ hb_font_get_v_extents ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ft.html b/docs/html/harfbuzz-hb-ft.html index 79f3331..dbc1f41 100644 --- a/docs/html/harfbuzz-hb-ft.html +++ b/docs/html/harfbuzz-hb-ft.html @@ -3,12 +3,12 @@ hb-ft: HarfBuzz Manual - + - + @@ -41,7 +41,7 @@
-hb_face_t * +hb_face_t * hb_ft_face_create () @@ -49,7 +49,7 @@
-hb_face_t * +hb_face_t * hb_ft_face_create_cached () @@ -57,7 +57,7 @@
-hb_face_t * +hb_face_t * hb_ft_face_create_referenced () @@ -65,7 +65,7 @@
-hb_font_t * +hb_font_t * hb_ft_font_create () @@ -73,7 +73,7 @@
-hb_font_t * +hb_font_t * hb_ft_font_create_referenced () @@ -136,7 +136,7 @@ font data.

Functions

hb_ft_face_create ()

-
hb_face_t *
+
hb_face_t *
 hb_ft_face_create (FT_Face ft_face,
                    hb_destroy_func_t destroy);
@@ -164,7 +164,7 @@ hb_ft_face_create (FT_Face

hb_ft_face_create_cached ()

-
hb_face_t *
+
hb_face_t *
 hb_ft_face_create_cached (FT_Face ft_face);

Returns

@@ -176,7 +176,7 @@ hb_ft_face_create_cached (FT_Face

hb_ft_face_create_referenced ()

-
hb_face_t *
+
hb_face_t *
 hb_ft_face_create_referenced (FT_Face ft_face);

Returns

@@ -188,7 +188,7 @@ hb_ft_face_create_referenced (FT_

hb_ft_font_create ()

-
hb_font_t *
+
hb_font_t *
 hb_ft_font_create (FT_Face ft_face,
                    hb_destroy_func_t destroy);
@@ -216,7 +216,7 @@ hb_ft_font_create (FT_Face

hb_ft_font_create_referenced ()

-
hb_font_t *
+
hb_font_t *
 hb_ft_font_create_referenced (FT_Face ft_face);

Returns

@@ -229,19 +229,19 @@ hb_ft_font_create_referenced (FT_

hb_ft_font_changed ()

void
-hb_ft_font_changed (hb_font_t *font);
+hb_ft_font_changed (hb_font_t *font);

hb_ft_font_get_face ()

FT_Face
-hb_ft_font_get_face (hb_font_t *font);
+hb_ft_font_get_face (hb_font_t *font);

hb_ft_font_set_load_flags ()

void
-hb_ft_font_set_load_flags (hb_font_t *font,
+hb_ft_font_set_load_flags (hb_font_t *font,
                            int load_flags);

Since: 1.0.5

@@ -249,14 +249,14 @@ hb_ft_font_set_load_flags (

hb_ft_font_get_load_flags ()

int
-hb_ft_font_get_load_flags (hb_font_t *font);
+hb_ft_font_get_load_flags (hb_font_t *font);

Since: 1.0.5


hb_ft_font_set_funcs ()

void
-hb_ft_font_set_funcs (hb_font_t *font);
+hb_ft_font_set_funcs (hb_font_t *font);
@@ -264,6 +264,6 @@ hb_ft_font_set_funcs ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-glib.html b/docs/html/harfbuzz-hb-glib.html index b4f56a4..2cfc4f2 100644 --- a/docs/html/harfbuzz-hb-glib.html +++ b/docs/html/harfbuzz-hb-glib.html @@ -3,12 +3,12 @@ hb-glib: HarfBuzz Manual - + - + @@ -41,7 +41,7 @@
-hb_unicode_funcs_t * +hb_unicode_funcs_t * hb_glib_get_unicode_funcs () @@ -49,7 +49,7 @@
-GUnicodeScript +GUnicodeScript hb_glib_script_from_script () @@ -65,7 +65,7 @@
-hb_blob_t * +hb_blob_t * hb_glib_blob_create () @@ -87,26 +87,26 @@

Functions

hb_glib_get_unicode_funcs ()

-
hb_unicode_funcs_t *
+
hb_unicode_funcs_t *
 hb_glib_get_unicode_funcs (void);

hb_glib_script_from_script ()

-
GUnicodeScript
+
GUnicodeScript
 hb_glib_script_from_script (hb_script_t script);

hb_glib_script_to_script ()

hb_script_t
-hb_glib_script_to_script (GUnicodeScript script);
+hb_glib_script_to_script (GUnicodeScript script);

hb_glib_blob_create ()

-
hb_blob_t *
-hb_glib_blob_create (GBytes *gbytes);
+
hb_blob_t *
+hb_glib_blob_create (GBytes *gbytes);

Since: 0.9.38

@@ -115,6 +115,6 @@ hb_glib_blob_create (GBytes +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-gobject.html b/docs/html/harfbuzz-hb-gobject.html index 9e1a2a1..60558e8 100644 --- a/docs/html/harfbuzz-hb-gobject.html +++ b/docs/html/harfbuzz-hb-gobject.html @@ -3,12 +3,12 @@ hb-gobject: HarfBuzz Manual - + - + @@ -32,424 +32,6 @@
-

Functions

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-GType - -hb_gobject_blob_get_type () -
-GType - -hb_gobject_buffer_content_type_get_type () -
-GType - -hb_gobject_buffer_diff_flags_get_type () -
-GType - -hb_gobject_buffer_flags_get_type () -
-GType - -hb_gobject_buffer_get_type () -
-GType - -hb_gobject_buffer_serialize_flags_get_type () -
-GType - -hb_gobject_buffer_serialize_format_get_type () -
-GType - -hb_gobject_direction_get_type () -
-GType - -hb_gobject_face_get_type () -
-GType - -hb_gobject_font_funcs_get_type () -
-GType - -hb_gobject_font_get_type () -
-GType - -hb_gobject_glyph_flags_get_type () -
-GType - -hb_gobject_map_get_type () -
-GType - -hb_gobject_memory_mode_get_type () -
-GType - -hb_gobject_ot_color_palette_flags_get_type () -
-GType - -hb_gobject_ot_layout_glyph_class_get_type () -
-GType - -hb_gobject_ot_math_constant_get_type () -
-GType - -hb_gobject_ot_math_glyph_part_get_type () -
-GType - -hb_gobject_ot_math_glyph_part_flags_get_type () -
-GType - -hb_gobject_ot_math_glyph_variant_get_type () -
-GType - -hb_gobject_ot_math_kern_get_type () -
-GType - -hb_gobject_script_get_type () -
-GType - -hb_gobject_shape_plan_get_type () -
-GType - -hb_gobject_unicode_combining_class_get_type () -
-GType - -hb_gobject_unicode_funcs_get_type () -
-GType - -hb_gobject_unicode_general_category_get_type () -
-GType - -hb_gobject_buffer_cluster_level_get_type () -
-GType - -hb_gobject_feature_get_type () -
-GType - -hb_gobject_glyph_info_get_type () -
-GType - -hb_gobject_glyph_position_get_type () -
-GType - -hb_gobject_segment_properties_get_type () -
-GType - -hb_gobject_set_get_type () -
-GType - -hb_gobject_user_data_key_get_type () -
-
-
-

Types and Values

- -
-

Includes

#include <hb-gobject.h>
 
@@ -461,424 +43,13 @@ type data.

Functions

-
-

hb_gobject_blob_get_type ()

-
GType
-hb_gobject_blob_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_buffer_content_type_get_type ()

-
GType
-hb_gobject_buffer_content_type_get_type
-                               ();
-
-
-
-

hb_gobject_buffer_diff_flags_get_type ()

-
GType
-hb_gobject_buffer_diff_flags_get_type ();
-
-
-
-

hb_gobject_buffer_flags_get_type ()

-
GType
-hb_gobject_buffer_flags_get_type ();
-
-
-
-

hb_gobject_buffer_get_type ()

-
GType
-hb_gobject_buffer_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_buffer_serialize_flags_get_type ()

-
GType
-hb_gobject_buffer_serialize_flags_get_type
-                               ();
-
-
-
-

hb_gobject_buffer_serialize_format_get_type ()

-
GType
-hb_gobject_buffer_serialize_format_get_type
-                               ();
-
-
-
-

hb_gobject_direction_get_type ()

-
GType
-hb_gobject_direction_get_type ();
-
-
-
-

hb_gobject_face_get_type ()

-
GType
-hb_gobject_face_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_font_funcs_get_type ()

-
GType
-hb_gobject_font_funcs_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_font_get_type ()

-
GType
-hb_gobject_font_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_glyph_flags_get_type ()

-
GType
-hb_gobject_glyph_flags_get_type ();
-
-
-
-

hb_gobject_map_get_type ()

-
GType
-hb_gobject_map_get_type (void);
-
-
-
-

hb_gobject_memory_mode_get_type ()

-
GType
-hb_gobject_memory_mode_get_type ();
-
-
-
-

hb_gobject_ot_color_palette_flags_get_type ()

-
GType
-hb_gobject_ot_color_palette_flags_get_type
-                               ();
-
-
-
-

hb_gobject_ot_layout_glyph_class_get_type ()

-
GType
-hb_gobject_ot_layout_glyph_class_get_type
-                               ();
-
-
-
-

hb_gobject_ot_math_constant_get_type ()

-
GType
-hb_gobject_ot_math_constant_get_type ();
-
-
-
-

hb_gobject_ot_math_glyph_part_get_type ()

-
GType
-hb_gobject_ot_math_glyph_part_get_type
-                               (void);
-
-
-
-

hb_gobject_ot_math_glyph_part_flags_get_type ()

-
GType
-hb_gobject_ot_math_glyph_part_flags_get_type
-                               ();
-
-
-
-

hb_gobject_ot_math_glyph_variant_get_type ()

-
GType
-hb_gobject_ot_math_glyph_variant_get_type
-                               (void);
-
-
-
-

hb_gobject_ot_math_kern_get_type ()

-
GType
-hb_gobject_ot_math_kern_get_type ();
-
-
-
-

hb_gobject_script_get_type ()

-
GType
-hb_gobject_script_get_type ();
-
-
-
-

hb_gobject_shape_plan_get_type ()

-
GType
-hb_gobject_shape_plan_get_type (void);
-
-
-
-

hb_gobject_unicode_combining_class_get_type ()

-
GType
-hb_gobject_unicode_combining_class_get_type
-                               ();
-
-
-
-

hb_gobject_unicode_funcs_get_type ()

-
GType
-hb_gobject_unicode_funcs_get_type (void);
-

Since: 0.9.2

-
-
-
-

hb_gobject_unicode_general_category_get_type ()

-
GType
-hb_gobject_unicode_general_category_get_type
-                               ();
-
-
-
-

hb_gobject_buffer_cluster_level_get_type ()

-
GType
-hb_gobject_buffer_cluster_level_get_type
-                               ();
-
-
-
-

hb_gobject_feature_get_type ()

-
GType
-hb_gobject_feature_get_type (void);
-
-
-
-

hb_gobject_glyph_info_get_type ()

-
GType
-hb_gobject_glyph_info_get_type (void);
-
-
-
-

hb_gobject_glyph_position_get_type ()

-
GType
-hb_gobject_glyph_position_get_type (void);
-
-
-
-

hb_gobject_segment_properties_get_type ()

-
GType
-hb_gobject_segment_properties_get_type
-                               (void);
-
-
-
-

hb_gobject_set_get_type ()

-
GType
-hb_gobject_set_get_type (void);
-
-
-
-

hb_gobject_user_data_key_get_type ()

-
GType
-hb_gobject_user_data_key_get_type (void);
-
+

Types and Values

-
-

HB_GOBJECT_TYPE_BLOB

-
#define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER

-
#define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE

-
#define HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE (hb_gobject_buffer_content_type_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS

-
#define HB_GOBJECT_TYPE_BUFFER_DIFF_FLAGS (hb_gobject_buffer_diff_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_FLAGS

-
#define HB_GOBJECT_TYPE_BUFFER_FLAGS (hb_gobject_buffer_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS

-
#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS (hb_gobject_buffer_serialize_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT

-
#define HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT (hb_gobject_buffer_serialize_format_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_DIRECTION

-
#define HB_GOBJECT_TYPE_DIRECTION (hb_gobject_direction_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FACE

-
#define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FONT

-
#define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FONT_FUNCS

-
#define HB_GOBJECT_TYPE_FONT_FUNCS (hb_gobject_font_funcs_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_GLYPH_FLAGS

-
#define HB_GOBJECT_TYPE_GLYPH_FLAGS (hb_gobject_glyph_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_MAP

-
#define HB_GOBJECT_TYPE_MAP (hb_gobject_map_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_MEMORY_MODE

-
#define HB_GOBJECT_TYPE_MEMORY_MODE (hb_gobject_memory_mode_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS

-
#define HB_GOBJECT_TYPE_OT_COLOR_PALETTE_FLAGS (hb_gobject_ot_color_palette_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS

-
#define HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS (hb_gobject_ot_layout_glyph_class_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_MATH_CONSTANT

-
#define HB_GOBJECT_TYPE_OT_MATH_CONSTANT (hb_gobject_ot_math_constant_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART

-
#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART (hb_gobject_ot_math_glyph_part_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS

-
#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_PART_FLAGS (hb_gobject_ot_math_glyph_part_flags_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT

-
#define HB_GOBJECT_TYPE_OT_MATH_GLYPH_VARIANT (hb_gobject_ot_math_glyph_variant_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_OT_MATH_KERN

-
#define HB_GOBJECT_TYPE_OT_MATH_KERN (hb_gobject_ot_math_kern_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SCRIPT

-
#define HB_GOBJECT_TYPE_SCRIPT (hb_gobject_script_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SHAPE_PLAN

-
#define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS

-
#define HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS (hb_gobject_unicode_combining_class_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_FUNCS

-
#define HB_GOBJECT_TYPE_UNICODE_FUNCS (hb_gobject_unicode_funcs_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY

-
#define HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY (hb_gobject_unicode_general_category_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL

-
#define HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL (hb_gobject_buffer_cluster_level_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_FEATURE

-
#define HB_GOBJECT_TYPE_FEATURE (hb_gobject_feature_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_GLYPH_INFO

-
#define HB_GOBJECT_TYPE_GLYPH_INFO (hb_gobject_glyph_info_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_GLYPH_POSITION

-
#define HB_GOBJECT_TYPE_GLYPH_POSITION (hb_gobject_glyph_position_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SEGMENT_PROPERTIES

-
#define HB_GOBJECT_TYPE_SEGMENT_PROPERTIES (hb_gobject_segment_properties_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_SET

-
#define HB_GOBJECT_TYPE_SET (hb_gobject_set_get_type ())
-
-
-
-
-

HB_GOBJECT_TYPE_USER_DATA_KEY

-
#define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ())
-
-
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-graphite2.html b/docs/html/harfbuzz-hb-graphite2.html index 2fdd621..b6d779b 100644 --- a/docs/html/harfbuzz-hb-graphite2.html +++ b/docs/html/harfbuzz-hb-graphite2.html @@ -3,12 +3,12 @@ hb-graphite2: HarfBuzz Manual - + - + @@ -75,7 +75,7 @@

hb_graphite2_face_get_gr_face ()

gr_face *
-hb_graphite2_face_get_gr_face (hb_face_t *face);
+hb_graphite2_face_get_gr_face (hb_face_t *face);
@@ -88,6 +88,6 @@ hb_graphite2_face_get_gr_face (
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-icu.html b/docs/html/harfbuzz-hb-icu.html index 68fa6aa..d1a31de 100644 --- a/docs/html/harfbuzz-hb-icu.html +++ b/docs/html/harfbuzz-hb-icu.html @@ -3,12 +3,12 @@ hb-icu: HarfBuzz Manual - + - + @@ -41,7 +41,7 @@ -hb_unicode_funcs_t * +hb_unicode_funcs_t * hb_icu_get_unicode_funcs () @@ -79,7 +79,7 @@

Functions

hb_icu_get_unicode_funcs ()

-
hb_unicode_funcs_t *
+
hb_unicode_funcs_t *
 hb_icu_get_unicode_funcs (void);

@@ -100,6 +100,6 @@ hb_icu_script_to_script (UScriptC
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-map.html b/docs/html/harfbuzz-hb-map.html index d5f0e4b..1e62513 100644 --- a/docs/html/harfbuzz-hb-map.html +++ b/docs/html/harfbuzz-hb-map.html @@ -3,20 +3,19 @@ hb-map: HarfBuzz Manual - + - + @@ -58,7 +57,7 @@
-
+

Types and Values

@@ -168,18 +167,12 @@ - +
typedefhb_map_thb_map_t
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_map_t
-
-
-

Includes

#include <hb.h>
 
@@ -195,7 +188,7 @@ use if desired.

hb_map_allocation_successful ()

hb_bool_t
-hb_map_allocation_successful (const hb_map_t *map);
+hb_map_allocation_successful (const hb_map_t *map);

Parameters

@@ -217,7 +210,7 @@ hb_map_allocation_successful (const

hb_map_clear ()

void
-hb_map_clear (hb_map_t *map);
+hb_map_clear (hb_map_t *map);

Parameters

@@ -238,7 +231,7 @@ hb_map_clear (

hb_map_create ()

-
hb_map_t *
+
hb_map_t *
 hb_map_create (void);

[Xconstructor]

@@ -252,7 +245,7 @@ hb_map_create (void

hb_map_del ()

void
-hb_map_del (hb_map_t *map,
+hb_map_del (hb_map_t *map,
             hb_codepoint_t key);

Parameters

@@ -275,7 +268,7 @@ hb_map_del (

hb_map_destroy ()

void
-hb_map_destroy (hb_map_t *map);
+hb_map_destroy (hb_map_t *map);

[skip]

Parameters

@@ -298,7 +291,7 @@ hb_map_destroy (

hb_map_get ()

hb_codepoint_t
-hb_map_get (const hb_map_t *map,
+hb_map_get (const hb_map_t *map,
             hb_codepoint_t key);

Parameters

@@ -320,7 +313,7 @@ hb_map_get (const

hb_map_get_empty ()

-
hb_map_t *
+
hb_map_t *
 hb_map_get_empty (void);

Returns

@@ -333,7 +326,7 @@ hb_map_get_empty (void

hb_map_get_population ()

unsigned int
-hb_map_get_population (const hb_map_t *map);
+hb_map_get_population (const hb_map_t *map);

Parameters

@@ -355,8 +348,8 @@ hb_map_get_population (const

hb_map_get_user_data ()

void *
-hb_map_get_user_data (hb_map_t *map,
-                      hb_user_data_key_t *key);
+hb_map_get_user_data (hb_map_t *map, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -384,7 +377,7 @@ hb_map_get_user_data (

hb_map_has ()

hb_bool_t
-hb_map_has (const hb_map_t *map,
+hb_map_has (const hb_map_t *map,
             hb_codepoint_t key);

Parameters

@@ -407,7 +400,7 @@ hb_map_has (const

hb_map_is_empty ()

hb_bool_t
-hb_map_is_empty (const hb_map_t *map);
+hb_map_is_empty (const hb_map_t *map);

Parameters

@@ -428,8 +421,8 @@ hb_map_is_empty (const

hb_map_reference ()

-
hb_map_t *
-hb_map_reference (hb_map_t *map);
+
hb_map_t *
+hb_map_reference (hb_map_t *map);

[skip]

Parameters

@@ -457,7 +450,7 @@ hb_map_reference (

hb_map_set ()

void
-hb_map_set (hb_map_t *map,
+hb_map_set (hb_map_t *map,
             hb_codepoint_t key,
             hb_codepoint_t value);
@@ -481,8 +474,8 @@ hb_map_set (

hb_map_set_user_data ()

hb_bool_t
-hb_map_set_user_data (hb_map_t *map,
-                      hb_user_data_key_t *key,
+hb_map_set_user_data (hb_map_t *map,
+                      hb_user_data_key_t *key,
                       void *data,
                       hb_destroy_func_t destroy,
                       hb_bool_t replace);
@@ -521,6 +514,6 @@ hb_map_set_user_data ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-color.html b/docs/html/harfbuzz-hb-ot-color.html index c7bc734..0d230e0 100644 --- a/docs/html/harfbuzz-hb-ot-color.html +++ b/docs/html/harfbuzz-hb-ot-color.html @@ -3,20 +3,19 @@ hb-ot-color: HarfBuzz Manual - + - +
@@ -79,7 +78,7 @@
-

Object Hierarchy

-
    GFlags
-    ╰── hb_ot_color_palette_flags_t
-
-
-

Includes

#include <hb-ot.h>
 
@@ -239,7 +232,7 @@

hb_ot_color_glyph_get_layers ()

unsigned int
-hb_ot_color_glyph_get_layers (hb_face_t *face,
+hb_ot_color_glyph_get_layers (hb_face_t *face,
                               hb_codepoint_t glyph,
                               unsigned int start_offset,
                               unsigned int *count,
@@ -270,13 +263,13 @@ hb_ot_color_glyph_get_layers (

count

-

gets number of layers available to be written on buffer +

gets number of layers available to be written on buffer and returns number of written layers.

[inout][optional]

layers

-

layers buffer to buffer.

+

layers buffer to buffer.

[array length=count][out][optional] @@ -291,8 +284,8 @@ and returns number of written layers.


hb_ot_color_glyph_reference_png ()

-
hb_blob_t *
-hb_ot_color_glyph_reference_png (hb_font_t *font,
+
hb_blob_t *
+hb_ot_color_glyph_reference_png (hb_font_t *font,
                                  hb_codepoint_t glyph);

Get PNG image for a glyph.

@@ -321,7 +314,7 @@ return the biggest one

Returns

-

respective PNG blob of the glyph, if available.

+

respective PNG blob of the glyph, if available.

[transfer full]

Since: 2.1.0

@@ -329,8 +322,8 @@ return the biggest one


hb_ot_color_glyph_reference_svg ()

-
hb_blob_t *
-hb_ot_color_glyph_reference_svg (hb_face_t *face,
+
hb_blob_t *
+hb_ot_color_glyph_reference_svg (hb_face_t *face,
                                  hb_codepoint_t glyph);

Get SVG document for a glyph. The blob may be either plain text or gzip-encoded.

@@ -357,7 +350,7 @@ hb_ot_color_glyph_reference_svg (

Returns

-

respective svg blob of the glyph, if available.

+

respective svg blob of the glyph, if available.

[transfer full]

Since: 2.1.0

@@ -366,7 +359,7 @@ hb_ot_color_glyph_reference_svg (

hb_ot_color_has_layers ()

hb_bool_t
-hb_ot_color_has_layers (hb_face_t *face);
+hb_ot_color_has_layers (hb_face_t *face);

Parameters

@@ -392,7 +385,7 @@ hb_ot_color_has_layers (

hb_ot_color_has_palettes ()

hb_bool_t
-hb_ot_color_has_palettes (hb_face_t *face);
+hb_ot_color_has_palettes (hb_face_t *face);

Parameters

@@ -418,7 +411,7 @@ hb_ot_color_has_palettes (

hb_ot_color_has_png ()

hb_bool_t
-hb_ot_color_has_png (hb_face_t *face);
+hb_ot_color_has_png (hb_face_t *face);

Check whether face has PNG glyph images (either CBDT or sbix tables).

Returns true if available, false otherwise.

@@ -443,7 +436,7 @@ hb_ot_color_has_png (

hb_ot_color_has_svg ()

hb_bool_t
-hb_ot_color_has_svg (hb_face_t *face);
+hb_ot_color_has_svg (hb_face_t *face);

Check whether face has SVG glyph images.

Returns true if available, false otherwise.

@@ -468,7 +461,7 @@ hb_ot_color_has_svg (

hb_ot_color_palette_color_get_name_id ()

hb_ot_name_id_t
-hb_ot_color_palette_color_get_name_id (hb_face_t *face,
+hb_ot_color_palette_color_get_name_id (hb_face_t *face,
                                        unsigned int color_index);

Parameters

@@ -502,7 +495,7 @@ hb_ot_color_palette_color_get_name_id (

hb_ot_color_palette_get_colors ()

unsigned int
-hb_ot_color_palette_get_colors (hb_face_t *face,
+hb_ot_color_palette_get_colors (hb_face_t *face,
                                 unsigned int palette_index,
                                 unsigned int start_offset,
                                 unsigned int *color_count,
@@ -535,7 +528,7 @@ are being requested.

- @@ -543,7 +536,7 @@ on output, how many colors were actually stored.

- - - - - @@ -513,13 +506,13 @@ hb_ot_tags_to_script_and_language ( - - @@ -534,31 +527,31 @@ and

hb_ot_layout_collect_lookups ()

void
-hb_ot_layout_collect_lookups (hb_face_t *face,
+hb_ot_layout_collect_lookups (hb_face_t *face,
                               hb_tag_t table_tag,
                               const hb_tag_t *scripts,
                               const hb_tag_t *languages,
                               const hb_tag_t *features,
-                              hb_set_t *lookup_indexes);
+ hb_set_t *lookup_indexes);

Since: 0.9.8


hb_ot_layout_collect_features ()

void
-hb_ot_layout_collect_features (hb_face_t *face,
+hb_ot_layout_collect_features (hb_face_t *face,
                                hb_tag_t table_tag,
                                const hb_tag_t *scripts,
                                const hb_tag_t *languages,
                                const hb_tag_t *features,
-                               hb_set_t *feature_indexes);
+ hb_set_t *feature_indexes);

Since: 1.8.5


hb_ot_layout_feature_get_characters ()

unsigned int
-hb_ot_layout_feature_get_characters (hb_face_t *face,
+hb_ot_layout_feature_get_characters (hb_face_t *face,
                                      hb_tag_t table_tag,
                                      unsigned int feature_index,
                                      unsigned int start_offset,
@@ -577,7 +570,7 @@ Variant" ("cvXX") features.

- + @@ -601,13 +594,13 @@ one shot copying).

- - @@ -624,7 +617,7 @@ of the characters for which this feature provides glyph variants.

hb_ot_layout_feature_get_lookups ()

unsigned int
-hb_ot_layout_feature_get_lookups (hb_face_t *face,
+hb_ot_layout_feature_get_lookups (hb_face_t *face,
                                   hb_tag_t table_tag,
                                   unsigned int feature_index,
                                   unsigned int start_offset,
@@ -636,7 +629,7 @@ hb_ot_layout_feature_get_lookups (
 

hb_ot_layout_feature_get_name_ids ()

hb_bool_t
-hb_ot_layout_feature_get_name_ids (hb_face_t *face,
+hb_ot_layout_feature_get_name_ids (hb_face_t *face,
                                    hb_tag_t table_tag,
                                    unsigned int feature_index,
                                    hb_ot_name_id_t *label_id,
@@ -657,7 +650,7 @@ hb_ot_layout_feature_get_name_ids (
 
- + @@ -672,31 +665,31 @@ hb_ot_layout_feature_get_name_ids ( - - - - + - @@ -715,7 +708,7 @@ parameters. (Must be zero if numParameters is zero.).

hb_ot_layout_feature_with_variations_get_lookups ()

unsigned int
 hb_ot_layout_feature_with_variations_get_lookups
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 unsigned int feature_index,
                                 unsigned int variations_index,
@@ -727,7 +720,7 @@ hb_ot_layout_feature_with_variations_get_lookups
 

hb_ot_layout_get_attach_points ()

unsigned int
-hb_ot_layout_get_attach_points (hb_face_t *face,
+hb_ot_layout_get_attach_points (hb_face_t *face,
                                 hb_codepoint_t glyph,
                                 unsigned int start_offset,
                                 unsigned int *point_count,
@@ -737,7 +730,7 @@ hb_ot_layout_get_attach_points (
 

hb_ot_layout_get_glyph_class ()

hb_ot_layout_glyph_class_t
-hb_ot_layout_get_glyph_class (hb_face_t *face,
+hb_ot_layout_get_glyph_class (hb_face_t *face,
                               hb_codepoint_t glyph);

Since: 0.9.7

@@ -745,16 +738,16 @@ hb_ot_layout_get_glyph_class (

hb_ot_layout_get_glyphs_in_class ()

void
-hb_ot_layout_get_glyphs_in_class (hb_face_t *face,
+hb_ot_layout_get_glyphs_in_class (hb_face_t *face,
                                   hb_ot_layout_glyph_class_t klass,
-                                  hb_set_t *glyphs);
+ hb_set_t *glyphs);

Since: 0.9.7


hb_ot_layout_get_ligature_carets ()

unsigned int
-hb_ot_layout_get_ligature_carets (hb_font_t *font,
+hb_ot_layout_get_ligature_carets (hb_font_t *font,
                                   hb_direction_t direction,
                                   hb_codepoint_t glyph,
                                   unsigned int start_offset,
@@ -765,7 +758,7 @@ hb_ot_layout_get_ligature_carets (
 

hb_ot_layout_get_size_params ()

hb_bool_t
-hb_ot_layout_get_size_params (hb_face_t *face,
+hb_ot_layout_get_size_params (hb_face_t *face,
                               unsigned int *design_size,
                               unsigned int *subfamily_id,
                               hb_ot_name_id_t *subfamily_name_id,
@@ -777,7 +770,7 @@ hb_ot_layout_get_size_params (
 

hb_ot_layout_glyph_sequence_func_t ()

hb_bool_t
-(*hb_ot_layout_glyph_sequence_func_t) (hb_font_t *font,
+(*hb_ot_layout_glyph_sequence_func_t) (hb_font_t *font,
                                        hb_tag_t table_tag,
                                        unsigned int lookup_index,
                                        const hb_ot_layout_glyph_sequence_t *sequence,
@@ -787,25 +780,25 @@ hb_ot_layout_get_size_params (
 

hb_ot_layout_has_glyph_classes ()

hb_bool_t
-hb_ot_layout_has_glyph_classes (hb_face_t *face);
+hb_ot_layout_has_glyph_classes (hb_face_t *face);

hb_ot_layout_has_positioning ()

hb_bool_t
-hb_ot_layout_has_positioning (hb_face_t *face);
+hb_ot_layout_has_positioning (hb_face_t *face);

hb_ot_layout_has_substitution ()

hb_bool_t
-hb_ot_layout_has_substitution (hb_face_t *face);
+hb_ot_layout_has_substitution (hb_face_t *face);

hb_ot_layout_language_find_feature ()

hb_bool_t
-hb_ot_layout_language_find_feature (hb_face_t *face,
+hb_ot_layout_language_find_feature (hb_face_t *face,
                                     hb_tag_t table_tag,
                                     unsigned int script_index,
                                     unsigned int language_index,
@@ -817,7 +810,7 @@ hb_ot_layout_language_find_feature (

hb_ot_layout_language_get_feature_indexes ()

unsigned int
 hb_ot_layout_language_get_feature_indexes
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 unsigned int script_index,
                                 unsigned int language_index,
@@ -830,7 +823,7 @@ hb_ot_layout_language_get_feature_indexes
 

hb_ot_layout_language_get_feature_tags ()

unsigned int
 hb_ot_layout_language_get_feature_tags
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 unsigned int script_index,
                                 unsigned int language_index,
@@ -843,7 +836,7 @@ hb_ot_layout_language_get_feature_tags
 

hb_ot_layout_language_get_required_feature ()

hb_bool_t
 hb_ot_layout_language_get_required_feature
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 unsigned int script_index,
                                 unsigned int language_index,
@@ -855,13 +848,13 @@ hb_ot_layout_language_get_required_feature
 

hb_ot_layout_lookup_collect_glyphs ()

void
-hb_ot_layout_lookup_collect_glyphs (hb_face_t *face,
+hb_ot_layout_lookup_collect_glyphs (hb_face_t *face,
                                     hb_tag_t table_tag,
                                     unsigned int lookup_index,
-                                    hb_set_t *glyphs_before,
-                                    hb_set_t *glyphs_input,
-                                    hb_set_t *glyphs_after,
-                                    hb_set_t *glyphs_output);
+ hb_set_t *glyphs_before, + hb_set_t *glyphs_input, + hb_set_t *glyphs_after, + hb_set_t *glyphs_output);

Since: 0.9.7


@@ -869,9 +862,9 @@ hb_ot_layout_lookup_collect_glyphs (

hb_ot_layout_lookup_substitute_closure ()

void
 hb_ot_layout_lookup_substitute_closure
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 unsigned int lookup_index,
-                                hb_set_t *glyphs);
+ hb_set_t *glyphs);

Since: 0.9.7


@@ -879,9 +872,9 @@ hb_ot_layout_lookup_substitute_closure

hb_ot_layout_lookups_substitute_closure ()

void
 hb_ot_layout_lookups_substitute_closure
-                               (hb_face_t *face,
-                                const hb_set_t *lookups,
-                                hb_set_t *glyphs);
+ (hb_face_t *face, + const hb_set_t *lookups, + hb_set_t *glyphs);

Compute the transitive closure of glyphs needed for all of the provided lookups.

Since: 1.8.1

@@ -890,7 +883,7 @@ provided lookups.

hb_ot_layout_lookup_would_substitute ()

hb_bool_t
-hb_ot_layout_lookup_would_substitute (hb_face_t *face,
+hb_ot_layout_lookup_would_substitute (hb_face_t *face,
                                       unsigned int lookup_index,
                                       const hb_codepoint_t *glyphs,
                                       unsigned int glyphs_length,
@@ -901,7 +894,7 @@ hb_ot_layout_lookup_would_substitute (
 

hb_ot_layout_script_get_language_tags ()

unsigned int
-hb_ot_layout_script_get_language_tags (hb_face_t *face,
+hb_ot_layout_script_get_language_tags (hb_face_t *face,
                                        hb_tag_t table_tag,
                                        unsigned int script_index,
                                        unsigned int start_offset,
@@ -912,7 +905,7 @@ hb_ot_layout_script_get_language_tags (
 

hb_ot_layout_script_select_language ()

hb_bool_t
-hb_ot_layout_script_select_language (hb_face_t *face,
+hb_ot_layout_script_select_language (hb_face_t *face,
                                      hb_tag_t table_tag,
                                      unsigned int script_index,
                                      unsigned int language_count,
@@ -925,7 +918,7 @@ hb_ot_layout_script_select_language (

hb_ot_layout_table_find_feature_variations ()

hb_bool_t
 hb_ot_layout_table_find_feature_variations
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 const int *coords,
                                 unsigned int num_coords,
@@ -935,7 +928,7 @@ hb_ot_layout_table_find_feature_variations
 

hb_ot_layout_table_get_feature_tags ()

unsigned int
-hb_ot_layout_table_get_feature_tags (hb_face_t *face,
+hb_ot_layout_table_get_feature_tags (hb_face_t *face,
                                      hb_tag_t table_tag,
                                      unsigned int start_offset,
                                      unsigned int *feature_count,
@@ -945,7 +938,7 @@ hb_ot_layout_table_get_feature_tags (
 

hb_ot_layout_table_get_script_tags ()

unsigned int
-hb_ot_layout_table_get_script_tags (hb_face_t *face,
+hb_ot_layout_table_get_script_tags (hb_face_t *face,
                                     hb_tag_t table_tag,
                                     unsigned int start_offset,
                                     unsigned int *script_count,
@@ -955,7 +948,7 @@ hb_ot_layout_table_get_script_tags (
 

hb_ot_layout_table_get_lookup_count ()

unsigned int
-hb_ot_layout_table_get_lookup_count (hb_face_t *face,
+hb_ot_layout_table_get_lookup_count (hb_face_t *face,
                                      hb_tag_t table_tag);

Since: 0.9.22

@@ -963,7 +956,7 @@ hb_ot_layout_table_get_lookup_count (

hb_ot_layout_table_select_script ()

hb_bool_t
-hb_ot_layout_table_select_script (hb_face_t *face,
+hb_ot_layout_table_select_script (hb_face_t *face,
                                   hb_tag_t table_tag,
                                   unsigned int script_count,
                                   const hb_tag_t *script_tags,
@@ -975,9 +968,9 @@ hb_ot_layout_table_select_script (
 

hb_ot_shape_plan_collect_lookups ()

void
-hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan,
+hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan,
                                   hb_tag_t table_tag,
-                                  hb_set_t *lookup_indexes);
+ hb_set_t *lookup_indexes);

Since: 0.9.7


@@ -985,7 +978,7 @@ hb_ot_shape_plan_collect_lookups (

hb_ot_layout_language_get_required_feature_index ()

hb_bool_t
 hb_ot_layout_language_get_required_feature_index
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 hb_tag_t table_tag,
                                 unsigned int script_index,
                                 unsigned int language_index,
@@ -1117,6 +1110,6 @@ hb_ot_layout_language_get_required_feature_index
 
 
 
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-math.html b/docs/html/harfbuzz-hb-ot-math.html index b803cef..679acde 100644 --- a/docs/html/harfbuzz-hb-ot-math.html +++ b/docs/html/harfbuzz-hb-ot-math.html @@ -3,20 +3,19 @@ hb-ot-math: HarfBuzz Manual - + - +

color_count

on input, how many colors +

on input, how many colors can be maximally stored into the colors array; on output, how many colors were actually stored.

colors

an array of hb_color_t records. After calling +

an array of hb_color_t records. After calling this function, colors will be filled with the palette colors. If colors @@ -567,7 +560,7 @@ for allocating a buffer of suitable size before calling

hb_ot_color_palette_get_count ()

unsigned int
-hb_ot_color_palette_get_count (hb_face_t *face);
+hb_ot_color_palette_get_count (hb_face_t *face);

Parameters

@@ -596,7 +589,7 @@ no colors.

hb_ot_color_palette_get_flags ()

hb_ot_color_palette_flags_t
-hb_ot_color_palette_get_flags (hb_face_t *face,
+hb_ot_color_palette_get_flags (hb_face_t *face,
                                unsigned int palette_index);

Parameters

@@ -630,7 +623,7 @@ hb_ot_color_palette_get_flags (

hb_ot_color_palette_get_name_id ()

hb_ot_name_id_t
-hb_ot_color_palette_get_name_id (hb_face_t *face,
+hb_ot_color_palette_get_name_id (hb_face_t *face,
                                  unsigned int palette_index);

Retrieves the name id of a color palette. For example, a color font can have themed palettes like "Spring", "Summer", "Fall", and "Winter".

@@ -718,6 +711,6 @@ If the requested palette has no name the result is HB_OT_NAME
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-font.html b/docs/html/harfbuzz-hb-ot-font.html index 02c7686..6c955ca 100644 --- a/docs/html/harfbuzz-hb-ot-font.html +++ b/docs/html/harfbuzz-hb-ot-font.html @@ -3,12 +3,12 @@ hb-ot-font: HarfBuzz Manual - + - + @@ -55,7 +55,7 @@

Description

-

Functions for using OpenType fonts with hb_shape(). Not that fonts returned +

Functions for using OpenType fonts with hb_shape(). Note that fonts returned by hb_font_create() default to using these functions, so most clients would never need to call these functions directly.

@@ -64,7 +64,7 @@ never need to call these functions directly.

hb_ot_font_set_funcs ()

void
-hb_ot_font_set_funcs (hb_font_t *font);
+hb_ot_font_set_funcs (hb_font_t *font);

Since: 0.9.28

@@ -73,6 +73,6 @@ hb_ot_font_set_funcs ( -
Generated by GTK-Doc V1.25 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-layout.html b/docs/html/harfbuzz-hb-ot-layout.html index ce6c420..76be161 100644 --- a/docs/html/harfbuzz-hb-ot-layout.html +++ b/docs/html/harfbuzz-hb-ot-layout.html @@ -3,20 +3,19 @@ hb-ot-layout: HarfBuzz Manual - + - +
@@ -388,12 +387,6 @@
-

Object Hierarchy

-
    GEnum
-    ╰── hb_ot_layout_glyph_class_t
-
-
-

Includes

#include <hb-ot.h>
 
@@ -453,26 +446,26 @@ hb_ot_tags_from_script_and_language (

script_count

maximum number of script tags to retrieve (IN) +

maximum number of script tags to retrieve (IN) and actual number of script tags retrieved (OUT).

[allow-none]

script_tags

array of size at least script_count +

array of size at least script_count to store the script tag results.

[out][allow-none]

language_count

maximum number of language tags to retrieve +

maximum number of language tags to retrieve (IN) and actual number of language tags retrieved (OUT).

[allow-none]

language_tags

array of size at least language_count +

array of size at least language_count to store the language tag results.

[out][allow-none]

script

the hb_script_t corresponding to script_tag +

the hb_script_t corresponding to script_tag (OUT).

[allow-none]

language

the hb_language_t corresponding to script_tag +

the hb_language_t corresponding to script_tag and language_tag (OUT).

face

hb_face_t to work upon

hb_face_t to work upon

 

char_count

The count of characters for which this feature +

The count of characters for which this feature provides glyph variants. (May be zero.).

[inout][allow-none]

characters

A buffer pointer. The Unicode codepoints +

A buffer pointer. The Unicode codepoints of the characters for which this feature provides glyph variants.

[out caller-allocates][array length=char_count]

face

hb_face_t to work upon

hb_face_t to work upon

 

label_id

The ‘name’ table name ID that specifies a string +

The ‘name’ table name ID that specifies a string for a user-interface label for this feature. (May be NULL.).

[out][allow-none]

tooltip_id

The ‘name’ table name ID that specifies a string +

The ‘name’ table name ID that specifies a string that an application can use for tooltip text for this feature. (May be NULL.).

[out][allow-none]

sample_id

The ‘name’ table name ID that specifies sample text +

The ‘name’ table name ID that specifies sample text that illustrates the effect of this feature. (May be NULL.).

[out][allow-none]

num_named_parameters

Number of named parameters. (May be zero.).

Number of named parameters. (May be zero.).

[out][allow-none]

first_param_id

The first ‘name’ table name ID used to specify +

The first ‘name’ table name ID used to specify strings for user-interface labels for the feature parameters. (Must be zero if numParameters is zero.).

[out][allow-none]
@@ -113,7 +112,7 @@
-
+

Types and Values

-

Object Hierarchy

-
    GBoxed
-    ├── hb_ot_math_glyph_part_t
-    ╰── hb_ot_math_glyph_variant_t
-    GEnum
-    ├── hb_ot_math_constant_t
-    ╰── hb_ot_math_kern_t
-    GFlags
-    ╰── hb_ot_math_glyph_part_flags_t
-
-
-

Includes

#include <hb-ot.h>
 
@@ -178,7 +165,7 @@

hb_ot_math_has_data ()

hb_bool_t
-hb_ot_math_has_data (hb_face_t *face);
+hb_ot_math_has_data (hb_face_t *face);

This function allows to verify the presence of an OpenType MATH table on the face.

@@ -191,7 +178,7 @@ face.

face

-

hb_face_t to test

+

hb_face_t to test

 
@@ -206,7 +193,7 @@ face.

hb_ot_math_get_constant ()

hb_position_t
-hb_ot_math_get_constant (hb_font_t *font,
+hb_ot_math_get_constant (hb_font_t *font,
                          hb_ot_math_constant_t constant);

This function returns the requested math constants as a hb_position_t. If the request constant is HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN, @@ -224,7 +211,7 @@ actually an integer between 0 and 100 representing that percentage.

font

-

hb_font_t from which to retrieve the value

+

hb_font_t from which to retrieve the value

  @@ -246,7 +233,7 @@ actually an integer between 0 and 100 representing that percentage.

hb_ot_math_get_glyph_italics_correction ()

hb_position_t
 hb_ot_math_get_glyph_italics_correction
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph);

Parameters

@@ -259,7 +246,7 @@ hb_ot_math_get_glyph_italics_correction

font

-

hb_font_t from which to retrieve the value

+

hb_font_t from which to retrieve the value

  @@ -281,7 +268,7 @@ hb_ot_math_get_glyph_italics_correction

hb_ot_math_get_glyph_top_accent_attachment ()

hb_position_t
 hb_ot_math_get_glyph_top_accent_attachment
-                               (hb_font_t *font,
+                               (hb_font_t *font,
                                 hb_codepoint_t glyph);

Parameters

@@ -294,7 +281,7 @@ hb_ot_math_get_glyph_top_accent_attachment

font

-

hb_font_t from which to retrieve the value

+

hb_font_t from which to retrieve the value

  @@ -315,7 +302,7 @@ hb_ot_math_get_glyph_top_accent_attachment

hb_ot_math_get_glyph_kerning ()

hb_position_t
-hb_ot_math_get_glyph_kerning (hb_font_t *font,
+hb_ot_math_get_glyph_kerning (hb_font_t *font,
                               hb_codepoint_t glyph,
                               hb_ot_math_kern_t kern,
                               hb_position_t correction_height);
@@ -335,7 +322,7 @@ kerns is returned and otherwise the last kern value is returned.

font

-

hb_font_t from which to retrieve the value

+

hb_font_t from which to retrieve the value

  @@ -366,7 +353,7 @@ kerns is returned and otherwise the last kern value is returned.

hb_ot_math_is_glyph_extended_shape ()

hb_bool_t
-hb_ot_math_is_glyph_extended_shape (hb_face_t *face,
+hb_ot_math_is_glyph_extended_shape (hb_face_t *face,
                                     hb_codepoint_t glyph);

Parameters

@@ -379,7 +366,7 @@ hb_ot_math_is_glyph_extended_shape (

face

-

a hb_face_t to test

+

a hb_face_t to test

  @@ -400,12 +387,12 @@ hb_ot_math_is_glyph_extended_shape (

hb_ot_math_get_glyph_variants ()

unsigned int
-hb_ot_math_get_glyph_variants (hb_font_t *font,
+hb_ot_math_get_glyph_variants (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                unsigned int start_offset,
                                unsigned int *variants_count,
-                               hb_ot_math_glyph_variant_t *variants);
+ hb_ot_math_glyph_variant_t *variants);

This function tries to retrieve the MathGlyphConstruction for the specified font, glyph and direction. Note that only the value of HB_DIRECTION_IS_HORIZONTAL is considered. It provides the corresponding list @@ -421,7 +408,7 @@ of size variants as an array of hb_ot_math_glyph_variant_t structs.

font

-

hb_font_t from which to retrieve the values

+

hb_font_t from which to retrieve the values

  @@ -464,7 +451,7 @@ to store the result

hb_ot_math_get_min_connector_overlap ()

hb_position_t
-hb_ot_math_get_min_connector_overlap (hb_font_t *font,
+hb_ot_math_get_min_connector_overlap (hb_font_t *font,
                                       hb_direction_t direction);

This function tries to retrieve the MathVariants table for the specified font and returns the minimum overlap of connecting glyphs to draw a glyph @@ -481,7 +468,7 @@ assembly in the specified direction. Note that only the value of

font

-

hb_font_t from which to retrieve the value

+

hb_font_t from which to retrieve the value

  @@ -502,17 +489,17 @@ assembly in the specified direction. Note that only the value of

hb_ot_math_get_glyph_assembly ()

unsigned int
-hb_ot_math_get_glyph_assembly (hb_font_t *font,
+hb_ot_math_get_glyph_assembly (hb_font_t *font,
                                hb_codepoint_t glyph,
                                hb_direction_t direction,
                                unsigned int start_offset,
                                unsigned int *parts_count,
-                               hb_ot_math_glyph_part_t *parts,
+                               hb_ot_math_glyph_part_t *parts,
                                hb_position_t *italics_correction);

This function tries to retrieve the GlyphAssembly for the specified font, glyph and direction. Note that only the value of HB_DIRECTION_IS_HORIZONTAL is considered. It provides the information necessary to draw the glyph -assembly as an array of hb_ot_math_glyph_part_t.

+assembly as an array of hb_ot_math_glyph_part_t.

Parameters

@@ -524,7 +511,7 @@ assembly as an array of

font

-
+ @@ -918,7 +905,7 @@ to store the result


-

hb_ot_math_glyph_variant_t

+

hb_ot_math_glyph_variant_t

typedef struct {
   hb_codepoint_t glyph;
   hb_position_t advance;
@@ -948,7 +935,7 @@ to store the result


-

hb_ot_math_glyph_part_t

+

hb_ot_math_glyph_part_t

typedef struct {
   hb_codepoint_t glyph;
   hb_position_t start_connector_length;
@@ -962,6 +949,6 @@ to store the result

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-name.html b/docs/html/harfbuzz-hb-ot-name.html index 68e3a97..1087a86 100644 --- a/docs/html/harfbuzz-hb-ot-name.html +++ b/docs/html/harfbuzz-hb-ot-name.html @@ -3,12 +3,12 @@ hb-ot-name: HarfBuzz Manual - + - + @@ -97,7 +97,7 @@

hb_ot_name_list_names ()

const hb_ot_name_entry_t *
-hb_ot_name_list_names (hb_face_t *face,
+hb_ot_name_list_names (hb_face_t *face,
                        unsigned int *num_entries);

Enumerates all available name IDs and language combinations. Returned array is owned by the face @@ -120,7 +120,7 @@ used as long as face

- + @@ -128,7 +128,7 @@ used as long as face

Returns

-

Array of available name entries.

+

Array of available name entries.

[out][transfer none][array length=num_entries]

Since: 2.1.0

@@ -137,7 +137,7 @@ used as long as face

hb_ot_name_get_utf16 ()

unsigned int
-hb_ot_name_get_utf16 (hb_face_t *face,
+hb_ot_name_get_utf16 (hb_face_t *face,
                       hb_ot_name_id_t name_id,
                       hb_language_t language,
                       unsigned int *text_size,
@@ -172,14 +172,14 @@ Returns string in UTF-16 encoding.

- - + @@ -195,7 +195,7 @@ text written to buffer.

hb_ot_name_get_utf32 ()

unsigned int
-hb_ot_name_get_utf32 (hb_face_t *face,
+hb_ot_name_get_utf32 (hb_face_t *face,
                       hb_ot_name_id_t name_id,
                       hb_language_t language,
                       unsigned int *text_size,
@@ -230,14 +230,14 @@ Returns string in UTF-32 encoding.

- - + @@ -253,7 +253,7 @@ text written to buffer.

hb_ot_name_get_utf8 ()

unsigned int
-hb_ot_name_get_utf8 (hb_face_t *face,
+hb_ot_name_get_utf8 (hb_face_t *face,
                      hb_ot_name_id_t name_id,
                      hb_language_t language,
                      unsigned int *text_size,
@@ -288,14 +288,14 @@ Returns string in UTF-8 encoding.

- - + @@ -322,6 +322,6 @@ API. These can be used to fetch name strings from a font face.

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-shape.html b/docs/html/harfbuzz-hb-ot-shape.html index 30ed441..5814dfe 100644 --- a/docs/html/harfbuzz-hb-ot-shape.html +++ b/docs/html/harfbuzz-hb-ot-shape.html @@ -3,12 +3,12 @@ hb-ot-shape: HarfBuzz Manual - + - + @@ -62,11 +62,11 @@

hb_ot_shape_glyphs_closure ()

void
-hb_ot_shape_glyphs_closure (hb_font_t *font,
-                            hb_buffer_t *buffer,
-                            const hb_feature_t *features,
+hb_ot_shape_glyphs_closure (hb_font_t *font,
+                            hb_buffer_t *buffer,
+                            const hb_feature_t *features,
                             unsigned int num_features,
-                            hb_set_t *glyphs);
+ hb_set_t *glyphs);

Since: 0.9.2

@@ -75,6 +75,6 @@ hb_ot_shape_glyphs_closure ( -
Generated by GTK-Doc V1.25 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-ot-var.html b/docs/html/harfbuzz-hb-ot-var.html index b8e3fd3..f65fd8d 100644 --- a/docs/html/harfbuzz-hb-ot-var.html +++ b/docs/html/harfbuzz-hb-ot-var.html @@ -3,20 +3,19 @@ hb-ot-var: HarfBuzz Manual - + - +

hb_font_t from which to retrieve the values

hb_font_t from which to retrieve the values

 

num_entries

number of returned entries.

number of returned entries.

[out][allow-none]

text_size

input size of text +

input size of text buffer, and output size of text written to buffer.

[inout][allow-none]

text

buffer to write fetched name into.

buffer to write fetched name into.

[out caller-allocates][array length=text_size]

text_size

input size of text +

input size of text buffer, and output size of text written to buffer.

[inout][allow-none]

text

buffer to write fetched name into.

buffer to write fetched name into.

[out caller-allocates][array length=text_size]

text_size

input size of text +

input size of text buffer, and output size of text written to buffer.

[inout][allow-none]

text

buffer to write fetched name into.

buffer to write fetched name into.

[out caller-allocates][array length=text_size]
@@ -155,12 +154,6 @@
-

Object Hierarchy

-
    GFlags
-    ╰── hb_ot_var_axis_flags_t
-
-
-

Includes

#include <hb-ot.h>
 
@@ -174,7 +167,7 @@

hb_ot_var_has_data ()

hb_bool_t
-hb_ot_var_has_data (hb_face_t *face);
+hb_ot_var_has_data (hb_face_t *face);

This function allows to verify the presence of OpenType variation data on the face.

Parameters

@@ -186,7 +179,7 @@ hb_ot_var_has_data (

face

-

hb_face_t to test

+

hb_face_t to test

 
@@ -201,40 +194,40 @@ hb_ot_var_has_data (

hb_ot_var_find_axis_info ()

hb_bool_t
-hb_ot_var_find_axis_info (hb_face_t *face,
+hb_ot_var_find_axis_info (hb_face_t *face,
                           hb_tag_t axis_tag,
                           hb_ot_var_axis_info_t *axis_info);
-

Since: 2.2.0

+

Since: 2.2.0


hb_ot_var_get_axis_count ()

unsigned int
-hb_ot_var_get_axis_count (hb_face_t *face);
+hb_ot_var_get_axis_count (hb_face_t *face);

Since: 1.4.2


hb_ot_var_get_axis_infos ()

unsigned int
-hb_ot_var_get_axis_infos (hb_face_t *face,
+hb_ot_var_get_axis_infos (hb_face_t *face,
                           unsigned int start_offset,
                           unsigned int *axes_count,
                           hb_ot_var_axis_info_t *axes_array);
-

Since: 2.2.0

+

Since: 2.2.0


hb_ot_var_get_named_instance_count ()

unsigned int
-hb_ot_var_get_named_instance_count (hb_face_t *face);
+hb_ot_var_get_named_instance_count (hb_face_t *face);

hb_ot_var_named_instance_get_subfamily_name_id ()

hb_ot_name_id_t
 hb_ot_var_named_instance_get_subfamily_name_id
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 unsigned int instance_index);

@@ -242,7 +235,7 @@ hb_ot_var_named_instance_get_subfamily_name_id

hb_ot_var_named_instance_get_postscript_name_id ()

hb_ot_name_id_t
 hb_ot_var_named_instance_get_postscript_name_id
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 unsigned int instance_index);

@@ -250,7 +243,7 @@ hb_ot_var_named_instance_get_postscript_name_id

hb_ot_var_named_instance_get_design_coords ()

unsigned int
 hb_ot_var_named_instance_get_design_coords
-                               (hb_face_t *face,
+                               (hb_face_t *face,
                                 unsigned int instance_index,
                                 unsigned int *coords_length,
                                 float *coords);
@@ -259,8 +252,8 @@ hb_ot_var_named_instance_get_design_coords

hb_ot_var_normalize_variations ()

void
-hb_ot_var_normalize_variations (hb_face_t *face,
-                                const hb_variation_t *variations,
+hb_ot_var_normalize_variations (hb_face_t *face,
+                                const hb_variation_t *variations,
                                 unsigned int variations_length,
                                 int *coords,
                                 unsigned int coords_length);
@@ -270,7 +263,7 @@ hb_ot_var_normalize_variations (

hb_ot_var_normalize_coords ()

void
-hb_ot_var_normalize_coords (hb_face_t *face,
+hb_ot_var_normalize_coords (hb_face_t *face,
                             unsigned int coords_length,
                             const float *design_coords,
                             int *normalized_coords);
@@ -335,11 +328,11 @@ hb_ot_var_normalize_coords (Since: 2.2.0

+

Since: 2.2.0

+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-set.html b/docs/html/harfbuzz-hb-set.html index b07920d..7607ab2 100644 --- a/docs/html/harfbuzz-hb-set.html +++ b/docs/html/harfbuzz-hb-set.html @@ -3,20 +3,19 @@ hb-set: HarfBuzz Manual - + - + @@ -74,7 +73,7 @@
-
+

Types and Values

@@ -280,18 +279,12 @@ - +
typedefhb_set_thb_set_t
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_set_t
-
-
-

Includes

#include <hb.h>
 
@@ -307,7 +300,7 @@ or other integer values.

hb_set_add ()

void
-hb_set_add (hb_set_t *set,
+hb_set_add (hb_set_t *set,
             hb_codepoint_t codepoint);

Parameters

@@ -330,7 +323,7 @@ hb_set_add (

hb_set_add_range ()

void
-hb_set_add_range (hb_set_t *set,
+hb_set_add_range (hb_set_t *set,
                   hb_codepoint_t first,
                   hb_codepoint_t last);
@@ -354,7 +347,7 @@ hb_set_add_range (

hb_set_allocation_successful ()

hb_bool_t
-hb_set_allocation_successful (const hb_set_t *set);
+hb_set_allocation_successful (const hb_set_t *set);

Parameters

@@ -376,7 +369,7 @@ hb_set_allocation_successful (const

hb_set_clear ()

void
-hb_set_clear (hb_set_t *set);
+hb_set_clear (hb_set_t *set);

Parameters

@@ -397,7 +390,7 @@ hb_set_clear (

hb_set_create ()

-
hb_set_t *
+
hb_set_t *
 hb_set_create (void);

[Xconstructor]

@@ -411,7 +404,7 @@ hb_set_create (void

hb_set_del ()

void
-hb_set_del (hb_set_t *set,
+hb_set_del (hb_set_t *set,
             hb_codepoint_t codepoint);

Parameters

@@ -434,7 +427,7 @@ hb_set_del (

hb_set_del_range ()

void
-hb_set_del_range (hb_set_t *set,
+hb_set_del_range (hb_set_t *set,
                   hb_codepoint_t first,
                   hb_codepoint_t last);
@@ -458,7 +451,7 @@ hb_set_del_range (

hb_set_destroy ()

void
-hb_set_destroy (hb_set_t *set);
+hb_set_destroy (hb_set_t *set);

[skip]

Parameters

@@ -480,7 +473,7 @@ hb_set_destroy (

hb_set_get_empty ()

-
hb_set_t *
+
hb_set_t *
 hb_set_get_empty (void);

Returns

@@ -493,7 +486,7 @@ hb_set_get_empty (void

hb_set_get_max ()

hb_codepoint_t
-hb_set_get_max (const hb_set_t *set);
+hb_set_get_max (const hb_set_t *set);

Finds the maximum number in the set.

Parameters

@@ -520,7 +513,7 @@ hb_set_get_max (const

hb_set_get_min ()

hb_codepoint_t
-hb_set_get_min (const hb_set_t *set);
+hb_set_get_min (const hb_set_t *set);

Finds the minimum number in the set.

Parameters

@@ -547,7 +540,7 @@ hb_set_get_min (const

hb_set_get_population ()

unsigned int
-hb_set_get_population (const hb_set_t *set);
+hb_set_get_population (const hb_set_t *set);

Returns the number of numbers in the set.

Parameters

@@ -574,8 +567,8 @@ hb_set_get_population (const

hb_set_get_user_data ()

void *
-hb_set_get_user_data (hb_set_t *set,
-                      hb_user_data_key_t *key);
+hb_set_get_user_data (hb_set_t *set, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -603,7 +596,7 @@ hb_set_get_user_data (

hb_set_has ()

hb_bool_t
-hb_set_has (const hb_set_t *set,
+hb_set_has (const hb_set_t *set,
             hb_codepoint_t codepoint);

Parameters

@@ -626,8 +619,8 @@ hb_set_has (const

hb_set_intersect ()

void
-hb_set_intersect (hb_set_t *set,
-                  const hb_set_t *other);
+hb_set_intersect (hb_set_t *set, + const hb_set_t *other);

Parameters

@@ -649,7 +642,7 @@ hb_set_intersect (

hb_set_is_empty ()

hb_bool_t
-hb_set_is_empty (const hb_set_t *set);
+hb_set_is_empty (const hb_set_t *set);

Parameters

@@ -671,8 +664,8 @@ hb_set_is_empty (const

hb_set_is_equal ()

hb_bool_t
-hb_set_is_equal (const hb_set_t *set,
-                 const hb_set_t *other);
+hb_set_is_equal (const hb_set_t *set, + const hb_set_t *other);

Parameters

@@ -697,7 +690,7 @@ hb_set_is_equal (const

Returns

-

TRUE if the two sets are equal, FALSE otherwise.

+

TRUE if the two sets are equal, FALSE otherwise.

Since: 0.9.7

@@ -705,8 +698,8 @@ hb_set_is_equal (const

hb_set_is_subset ()

hb_bool_t
-hb_set_is_subset (const hb_set_t *set,
-                  const hb_set_t *larger_set);
+hb_set_is_subset (const hb_set_t *set, + const hb_set_t *larger_set);

Parameters

@@ -731,9 +724,9 @@ hb_set_is_subset (const

Returns

-

TRUE if the set +

TRUE if the set is a subset of (or equal to) larger_set -, FALSE otherwise.

+, FALSE otherwise.

Since: 1.8.1

@@ -741,7 +734,7 @@ is a subset of (or equal to) larger_set

hb_set_next ()

hb_bool_t
-hb_set_next (const hb_set_t *set,
+hb_set_next (const hb_set_t *set,
              hb_codepoint_t *codepoint);

Gets the next number in set that is greater than current value of codepoint @@ -780,7 +773,7 @@ hb_set_next (const

hb_set_next_range ()

hb_bool_t
-hb_set_next_range (const hb_set_t *set,
+hb_set_next_range (const hb_set_t *set,
                    hb_codepoint_t *first,
                    hb_codepoint_t *last);

Gets the next consecutive range of numbers in set @@ -805,12 +798,12 @@ are greater than current value of last

- + - + @@ -826,7 +819,7 @@ are greater than current value of last

hb_set_previous ()

hb_bool_t
-hb_set_previous (const hb_set_t *set,
+hb_set_previous (const hb_set_t *set,
                  hb_codepoint_t *codepoint);

Gets the previous number in set that is slower than current value of codepoint @@ -865,7 +858,7 @@ hb_set_previous (const

hb_set_previous_range ()

hb_bool_t
-hb_set_previous_range (const hb_set_t *set,
+hb_set_previous_range (const hb_set_t *set,
                        hb_codepoint_t *first,
                        hb_codepoint_t *last);

Gets the previous consecutive range of numbers in set @@ -890,12 +883,12 @@ are greater than current value of last

- + - + @@ -910,8 +903,8 @@ are greater than current value of last

hb_set_reference ()

-
hb_set_t *
-hb_set_reference (hb_set_t *set);
+
hb_set_t *
+hb_set_reference (hb_set_t *set);

[skip]

Parameters

@@ -939,8 +932,8 @@ hb_set_reference (

hb_set_set ()

void
-hb_set_set (hb_set_t *set,
-            const hb_set_t *other);
+hb_set_set (hb_set_t *set, + const hb_set_t *other);

Parameters

first

output first codepoint in the range.

output first codepoint in the range.

[out]

last

input current last and output last codepoint in the range.

input current last and output last codepoint in the range.

[inout]

first

input current first and output first codepoint in the range.

input current first and output first codepoint in the range.

[inout]

last

output last codepoint in the range.

output last codepoint in the range.

[out]
@@ -962,8 +955,8 @@ hb_set_set (

hb_set_set_user_data ()

hb_bool_t
-hb_set_set_user_data (hb_set_t *set,
-                      hb_user_data_key_t *key,
+hb_set_set_user_data (hb_set_t *set,
+                      hb_user_data_key_t *key,
                       void *data,
                       hb_destroy_func_t destroy,
                       hb_bool_t replace);
@@ -989,8 +982,8 @@ hb_set_set_user_data (

hb_set_subtract ()

void
-hb_set_subtract (hb_set_t *set,
-                 const hb_set_t *other);
+hb_set_subtract (hb_set_t *set, + const hb_set_t *other);

Parameters

@@ -1012,8 +1005,8 @@ hb_set_subtract (

hb_set_symmetric_difference ()

void
-hb_set_symmetric_difference (hb_set_t *set,
-                             const hb_set_t *other);
+hb_set_symmetric_difference (hb_set_t *set, + const hb_set_t *other);

Parameters

@@ -1035,8 +1028,8 @@ hb_set_symmetric_difference (

hb_set_union ()

void
-hb_set_union (hb_set_t *set,
-              const hb_set_t *other);
+hb_set_union (hb_set_t *set, + const hb_set_t *other);

Parameters

@@ -1071,6 +1064,6 @@ hb_set_union ( -
Generated by GTK-Doc V1.25 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-shape-plan.html b/docs/html/harfbuzz-hb-shape-plan.html index 3986cab..e9c3501 100644 --- a/docs/html/harfbuzz-hb-shape-plan.html +++ b/docs/html/harfbuzz-hb-shape-plan.html @@ -3,20 +3,19 @@ hb-shape-plan: HarfBuzz Manual - + - +
@@ -42,7 +41,7 @@
-
+

Types and Values

@@ -139,17 +138,11 @@ - +
typedefhb_shape_plan_thb_shape_plan_t
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_shape_plan_t
-
-
-

Includes

#include <hb.h>
 
@@ -165,10 +158,10 @@ Most client would not need to deal with shape plans directly.

Functions

hb_shape_plan_create ()

-
hb_shape_plan_t *
-hb_shape_plan_create (hb_face_t *face,
-                      const hb_segment_properties_t *props,
-                      const hb_feature_t *user_features,
+
hb_shape_plan_t *
+hb_shape_plan_create (hb_face_t *face,
+                      const hb_segment_properties_t *props,
+                      const hb_feature_t *user_features,
                       unsigned int num_user_features,
                       const char * const *shaper_list);

[Xconstructor]

@@ -204,10 +197,10 @@ hb_shape_plan_create (

hb_shape_plan_create_cached ()

-
hb_shape_plan_t *
-hb_shape_plan_create_cached (hb_face_t *face,
-                             const hb_segment_properties_t *props,
-                             const hb_feature_t *user_features,
+
hb_shape_plan_t *
+hb_shape_plan_create_cached (hb_face_t *face,
+                             const hb_segment_properties_t *props,
+                             const hb_feature_t *user_features,
                              unsigned int num_user_features,
                              const char * const *shaper_list);
@@ -242,10 +235,10 @@ hb_shape_plan_create_cached (

hb_shape_plan_create2 ()

-
hb_shape_plan_t *
-hb_shape_plan_create2 (hb_face_t *face,
-                       const hb_segment_properties_t *props,
-                       const hb_feature_t *user_features,
+
hb_shape_plan_t *
+hb_shape_plan_create2 (hb_face_t *face,
+                       const hb_segment_properties_t *props,
+                       const hb_feature_t *user_features,
                        unsigned int num_user_features,
                        const int *coords,
                        unsigned int num_coords,
@@ -254,10 +247,10 @@ hb_shape_plan_create2 (
 

hb_shape_plan_create_cached2 ()

-
hb_shape_plan_t *
-hb_shape_plan_create_cached2 (hb_face_t *face,
-                              const hb_segment_properties_t *props,
-                              const hb_feature_t *user_features,
+
hb_shape_plan_t *
+hb_shape_plan_create_cached2 (hb_face_t *face,
+                              const hb_segment_properties_t *props,
+                              const hb_feature_t *user_features,
                               unsigned int num_user_features,
                               const int *coords,
                               unsigned int num_coords,
@@ -267,7 +260,7 @@ hb_shape_plan_create_cached2 (
 

hb_shape_plan_destroy ()

void
-hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);
+hb_shape_plan_destroy (hb_shape_plan_t *shape_plan);

[skip]

Parameters

@@ -290,10 +283,10 @@ hb_shape_plan_destroy (

hb_shape_plan_execute ()

hb_bool_t
-hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
-                       hb_font_t *font,
-                       hb_buffer_t *buffer,
-                       const hb_feature_t *features,
+hb_shape_plan_execute (hb_shape_plan_t *shape_plan,
+                       hb_font_t *font,
+                       hb_buffer_t *buffer,
+                       const hb_feature_t *features,
                        unsigned int num_features);

Parameters

@@ -332,7 +325,7 @@ hb_shape_plan_execute (

hb_shape_plan_get_empty ()

-
hb_shape_plan_t *
+
hb_shape_plan_t *
 hb_shape_plan_get_empty (void);

Returns

@@ -345,7 +338,7 @@ hb_shape_plan_get_empty (void

hb_shape_plan_get_shaper ()

const char *
-hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);
+hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan);

Parameters

@@ -372,8 +365,8 @@ hb_shape_plan_get_shaper (

hb_shape_plan_get_user_data ()

void *
-hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan,
-                             hb_user_data_key_t *key);
+hb_shape_plan_get_user_data (hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -400,8 +393,8 @@ hb_shape_plan_get_user_data (

hb_shape_plan_reference ()

-
hb_shape_plan_t *
-hb_shape_plan_reference (hb_shape_plan_t *shape_plan);
+
hb_shape_plan_t *
+hb_shape_plan_reference (hb_shape_plan_t *shape_plan);

[skip]

Parameters

@@ -429,8 +422,8 @@ hb_shape_plan_reference (

hb_shape_plan_set_user_data ()

hb_bool_t
-hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
-                             hb_user_data_key_t *key,
+hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan,
+                             hb_user_data_key_t *key,
                              void *data,
                              hb_destroy_func_t destroy,
                              hb_bool_t replace);
@@ -463,6 +456,6 @@ hb_shape_plan_set_user_data ( -
Generated by GTK-Doc V1.25
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-shape.html b/docs/html/harfbuzz-hb-shape.html index b26887c..0785017 100644 --- a/docs/html/harfbuzz-hb-shape.html +++ b/docs/html/harfbuzz-hb-shape.html @@ -3,20 +3,19 @@ hb-shape: HarfBuzz Manual - + - +
@@ -42,22 +41,6 @@ - - - - - - - -
-
-

Types and Values

-
---- - - - - - - - - - - - - - - -
#defineHB_FEATURE_GLOBAL_END
#defineHB_FEATURE_GLOBAL_START
 hb_feature_t
-
-
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_feature_t
-
-

Includes

#include <hb.h>
@@ -126,102 +80,17 @@ contains the output glyphs and their positions.

Functions

-

hb_feature_from_string ()

-
hb_bool_t
-hb_feature_from_string (const char *str,
-                        int len,
-                        hb_feature_t *feature);
-

Parses a string into a hb_feature_t.

-

TODO: document the syntax here.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

str

a string to parse.

[array length=len][element-type uint8_t]

len

length of str -, or -1 if string is NULL terminated

 

feature

the hb_feature_t to initialize with the parsed values.

[out]
-
-
-

Returns

-

true if str -is successfully parsed, false otherwise.

-
-

Since: 0.9.5

-
-
-
-

hb_feature_to_string ()

-
void
-hb_feature_to_string (hb_feature_t *feature,
-                      char *buf,
-                      unsigned int size);
-

Converts a hb_feature_t into a NULL-terminated string in the format -understood by hb_feature_from_string(). The client in responsible for -allocating big enough size for buf -, 128 bytes is more than enough.

-
-

Parameters

-
----- - - - - - - - - - - - - - - - - - -

feature

an hb_feature_t to convert

 

buf

output string.

[array length=size][out]

size

the allocated size of buf -

 
-
-

Since: 0.9.5

-
-
-

hb_shape ()

void
-hb_shape (hb_font_t *font,
-          hb_buffer_t *buffer,
-          const hb_feature_t *features,
+hb_shape (hb_font_t *font,
+          hb_buffer_t *buffer,
+          const hb_feature_t *features,
           unsigned int num_features);

Shapes buffer using font turning its Unicode characters content to positioned glyphs. If features - is not NULL, it will be used to control the + is not NULL, it will be used to control the features applied during shaping.

Parameters

@@ -234,18 +103,18 @@ features applied during shaping.

font

-

an hb_font_t to use for shaping

+

an hb_font_t to use for shaping

 

buffer

-

an hb_buffer_t to shape

+

an hb_buffer_t to shape

 

features

-

an array of user -specified hb_feature_t or NULL.

+

an array of user +specified hb_feature_t or NULL.

[array length=num_features][allow-none] @@ -263,13 +132,13 @@ array

hb_shape_full ()

hb_bool_t
-hb_shape_full (hb_font_t *font,
-               hb_buffer_t *buffer,
-               const hb_feature_t *features,
+hb_shape_full (hb_font_t *font,
+               hb_buffer_t *buffer,
+               const hb_feature_t *features,
                unsigned int num_features,
                const char * const *shaper_list);

See hb_shape() for details. If shaper_list - is not NULL, the specified + is not NULL, the specified shapers will be used in the given order, otherwise the default shapers list will be used.

@@ -283,18 +152,18 @@ will be used.

font

-

an hb_font_t to use for shaping

+

an hb_font_t to use for shaping

 

buffer

-

an hb_buffer_t to shape

+

an hb_buffer_t to shape

 

features

-

an array of user -specified hb_feature_t or NULL.

+

an array of user +specified hb_feature_t or NULL.

[array length=num_features][allow-none] @@ -305,8 +174,8 @@ array

shaper_list

-

a NULL-terminated -array of shapers to use or NULL.

+

a NULL-terminated +array of shapers to use or NULL.

[array zero-terminated=1][allow-none] @@ -326,7 +195,7 @@ hb_shape_list_shapers (voidRetrieves the list of shapers supported by HarfBuzz.

Returns

-

an array of +

an array of constant strings.

[transfer none][array zero-terminated=1]

@@ -335,33 +204,9 @@ constant strings.

Types and Values

-
-

HB_FEATURE_GLOBAL_END

-
#define HB_FEATURE_GLOBAL_END ((unsigned int) -1)
-
-

Since: 2.0.0

-
-
-
-

HB_FEATURE_GLOBAL_START

-
#define HB_FEATURE_GLOBAL_START 0
-
-

Since: 2.0.0

-
-
-
-

hb_feature_t

-
typedef struct {
-  hb_tag_t      tag;
-  uint32_t      value;
-  unsigned int  start;
-  unsigned int  end;
-} hb_feature_t;
-
-
+
Generated by GTK-Doc V1.29
\ No newline at end of file diff --git a/docs/html/harfbuzz-hb-unicode.html b/docs/html/harfbuzz-hb-unicode.html index 97f93ab..51a72c6 100644 --- a/docs/html/harfbuzz-hb-unicode.html +++ b/docs/html/harfbuzz-hb-unicode.html @@ -3,20 +3,19 @@ hb-unicode: HarfBuzz Manual - + - + @@ -90,7 +89,7 @@
-
+

Types and Values

@@ -285,7 +284,7 @@ - + @@ -295,15 +294,6 @@
typedefhb_unicode_funcs_thb_unicode_funcs_t
enum
-

Object Hierarchy

-
    GBoxed
-    ╰── hb_unicode_funcs_t
-    GEnum
-    ├── hb_unicode_combining_class_t
-    ╰── hb_unicode_general_category_t
-
-
-

Includes

#include <hb.h>
 
@@ -321,7 +311,7 @@ properties, such as General Category, Script, Combining Class, etc.

hb_unicode_combining_class ()

hb_unicode_combining_class_t
-hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs,
+hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs,
                             hb_codepoint_t unicode);

Since: 0.9.2

@@ -329,7 +319,7 @@ hb_unicode_combining_class (

hb_unicode_combining_class_func_t ()

hb_unicode_combining_class_t
-(*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs,
                                       hb_codepoint_t unicode,
                                       void *user_data);
@@ -337,7 +327,7 @@ hb_unicode_combining_class (

hb_unicode_compose ()

hb_bool_t
-hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
+hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
                     hb_codepoint_t a,
                     hb_codepoint_t b,
                     hb_codepoint_t *ab);
@@ -369,7 +359,7 @@ hb_unicode_compose (

hb_unicode_compose_func_t ()

hb_bool_t
-(*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs,
                               hb_codepoint_t a,
                               hb_codepoint_t b,
                               hb_codepoint_t *ab,
@@ -379,7 +369,7 @@ hb_unicode_compose (
 

hb_unicode_decompose ()

hb_bool_t
-hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
+hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
                       hb_codepoint_t ab,
                       hb_codepoint_t *a,
                       hb_codepoint_t *b);
@@ -416,7 +406,7 @@ hb_unicode_decompose (

hb_unicode_decompose_func_t ()

hb_bool_t
-(*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs,
                                 hb_codepoint_t ab,
                                 hb_codepoint_t *a,
                                 hb_codepoint_t *b,
@@ -425,8 +415,8 @@ hb_unicode_decompose (
 

hb_unicode_funcs_create ()

-
hb_unicode_funcs_t *
-hb_unicode_funcs_create (hb_unicode_funcs_t *parent);
+
hb_unicode_funcs_t *
+hb_unicode_funcs_create (hb_unicode_funcs_t *parent);

[Xconstructor]

Parameters

@@ -454,7 +444,7 @@ hb_unicode_funcs_create (

hb_unicode_funcs_destroy ()

void
-hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs);
+hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs);

[skip]

Parameters

@@ -476,13 +466,13 @@ hb_unicode_funcs_destroy (

hb_unicode_funcs_get_default ()

-
hb_unicode_funcs_t *
+
hb_unicode_funcs_t *
 hb_unicode_funcs_get_default (void);

hb_unicode_funcs_get_empty ()

-
hb_unicode_funcs_t *
+
hb_unicode_funcs_t *
 hb_unicode_funcs_get_empty (void);

Returns

@@ -494,8 +484,8 @@ hb_unicode_funcs_get_empty (void<

hb_unicode_funcs_get_parent ()

-
hb_unicode_funcs_t *
-hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs);
+
hb_unicode_funcs_t *
+hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs);

Parameters

@@ -517,8 +507,8 @@ hb_unicode_funcs_get_parent (

hb_unicode_funcs_get_user_data ()

void *
-hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs,
-                                hb_user_data_key_t *key);
+hb_unicode_funcs_get_user_data (hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key);

[skip]

Parameters

@@ -546,7 +536,7 @@ hb_unicode_funcs_get_user_data (

hb_unicode_funcs_is_immutable ()

hb_bool_t
-hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs);
+hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs);

Parameters

@@ -568,7 +558,7 @@ hb_unicode_funcs_is_immutable (

hb_unicode_funcs_make_immutable ()

void
-hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs);
+hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs);

Parameters

@@ -589,8 +579,8 @@ hb_unicode_funcs_make_immutable (

hb_unicode_funcs_reference ()

-
hb_unicode_funcs_t *
-hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs);
+
hb_unicode_funcs_t *
+hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs);

[skip]

Parameters

@@ -619,7 +609,7 @@ hb_unicode_funcs_reference (

hb_unicode_funcs_set_combining_class_func ()

void
 hb_unicode_funcs_set_combining_class_func
-                               (hb_unicode_funcs_t *ufuncs,
+                               (hb_unicode_funcs_t *ufuncs,
                                 hb_unicode_combining_class_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -651,7 +641,7 @@ hb_unicode_funcs_set_combining_class_func

hb_unicode_funcs_set_compose_func ()

void
-hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs,
+hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs,
                                    hb_unicode_compose_func_t func,
                                    void *user_data,
                                    hb_destroy_func_t destroy);
@@ -683,7 +673,7 @@ hb_unicode_funcs_set_compose_func (

hb_unicode_funcs_set_decompose_func ()

void
-hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs,
+hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs,
                                      hb_unicode_decompose_func_t func,
                                      void *user_data,
                                      hb_destroy_func_t destroy);
@@ -716,7 +706,7 @@ hb_unicode_funcs_set_decompose_func (

hb_unicode_funcs_set_general_category_func ()

void
 hb_unicode_funcs_set_general_category_func
-                               (hb_unicode_funcs_t *ufuncs,
+                               (hb_unicode_funcs_t *ufuncs,
                                 hb_unicode_general_category_func_t func,
                                 void *user_data,
                                 hb_destroy_func_t destroy);
@@ -748,7 +738,7 @@ hb_unicode_funcs_set_general_category_func

hb_unicode_funcs_set_mirroring_func ()

void
-hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs,
+hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs,
                                      hb_unicode_mirroring_func_t func,
                                      void *user_data,
                                      hb_destroy_func_t destroy);
@@ -780,7 +770,7 @@ hb_unicode_funcs_set_mirroring_func (

hb_unicode_funcs_set_script_func ()

void
-hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs,
+hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs,
                                   hb_unicode_script_func_t func,
                                   void *user_data,
                                   hb_destroy_func_t destroy);
@@ -812,8 +802,8 @@ hb_unicode_funcs_set_script_func (

hb_unicode_funcs_set_user_data ()

hb_bool_t
-hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs,
-                                hb_user_data_key_t *key,
+hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs,
+                                hb_user_data_key_t *key,
                                 void *data,
                                 hb_destroy_func_t destroy,
                                 hb_bool_t replace);
@@ -839,7 +829,7 @@ hb_unicode_funcs_set_user_data (

hb_unicode_general_category ()

hb_unicode_general_category_t
-hb_unicode_general_category (hb_unicode_funcs_t *ufuncs,
+hb_unicode_general_category (hb_unicode_funcs_t *ufuncs,
                              hb_codepoint_t unicode);

Since: 0.9.2

@@ -847,7 +837,7 @@ hb_unicode_general_category (

hb_unicode_general_category_func_t ()

hb_unicode_general_category_t
-(*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs,
                                        hb_codepoint_t unicode,
                                        void *user_data);
@@ -855,7 +845,7 @@ hb_unicode_general_category (

hb_unicode_mirroring ()

hb_codepoint_t
-hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs,
+hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs,
                       hb_codepoint_t unicode);

Since: 0.9.2

@@ -863,7 +853,7 @@ hb_unicode_mirroring (

hb_unicode_mirroring_func_t ()

hb_codepoint_t
-(*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs,
                                 hb_codepoint_t unicode,
                                 void *user_data);
@@ -871,7 +861,7 @@ hb_unicode_mirroring (

hb_unicode_script ()

hb_script_t
-hb_unicode_script (hb_unicode_funcs_t *ufuncs,
+hb_unicode_script (hb_unicode_funcs_t *ufuncs,
                    hb_codepoint_t unicode);

Since: 0.9.2

@@ -879,7 +869,7 @@ hb_unicode_script (

hb_unicode_script_func_t ()

hb_script_t
-(*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
+(*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs,
                              hb_codepoint_t unicode,
                              void *user_data);
@@ -1368,6 +1358,6 @@ hb_unicode_script ( -
Generated by GTK-Doc V1.25 +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-uniscribe.html b/docs/html/harfbuzz-hb-uniscribe.html index 425ef7e..2b60884 100644 --- a/docs/html/harfbuzz-hb-uniscribe.html +++ b/docs/html/harfbuzz-hb-uniscribe.html @@ -3,12 +3,12 @@ hb-uniscribe: HarfBuzz Manual - + - + @@ -72,13 +72,13 @@

hb_uniscribe_font_get_hfont ()

HFONT
-hb_uniscribe_font_get_hfont (hb_font_t *font);
+hb_uniscribe_font_get_hfont (hb_font_t *font);

hb_uniscribe_font_get_logfontw ()

LOGFONTW *
-hb_uniscribe_font_get_logfontw (hb_font_t *font);
+hb_uniscribe_font_get_logfontw (hb_font_t *font);
@@ -86,6 +86,6 @@ hb_uniscribe_font_get_logfontw (
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz-hb-version.html b/docs/html/harfbuzz-hb-version.html index 00569c9..54c66aa 100644 --- a/docs/html/harfbuzz-hb-version.html +++ b/docs/html/harfbuzz-hb-version.html @@ -3,12 +3,12 @@ hb-version: HarfBuzz Manual - + - + @@ -134,17 +134,17 @@ hb_version (unsigned int *
- + - + - + @@ -184,24 +184,24 @@ hb_version_string (void

HB_VERSION_MICRO

-
#define HB_VERSION_MICRO 1
+
#define HB_VERSION_MICRO 0
 

HB_VERSION_MINOR

-
#define HB_VERSION_MINOR 3
+
#define HB_VERSION_MINOR 4
 

HB_VERSION_STRING

-
#define HB_VERSION_STRING "2.3.1"
+
#define HB_VERSION_STRING "2.4.0"
 
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/harfbuzz.devhelp2 b/docs/html/harfbuzz.devhelp2 index ccfc846..3b9d482 100644 --- a/docs/html/harfbuzz.devhelp2 +++ b/docs/html/harfbuzz.devhelp2 @@ -101,6 +101,7 @@ + @@ -216,11 +217,11 @@ - + - + @@ -235,6 +236,10 @@ + + + + @@ -248,16 +253,20 @@ + + - + + + @@ -371,8 +380,6 @@ - - @@ -391,7 +398,6 @@ - @@ -453,14 +459,9 @@ - - - - - @@ -584,9 +585,9 @@ - + - + @@ -639,72 +640,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -726,6 +661,7 @@ + @@ -754,155 +690,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -1357,12 +1149,12 @@ - - - - - - - + + + + + + + diff --git a/docs/html/home.png b/docs/html/home.png index c989d4665d94e83be84de0c5266b6bbb0584bdb9..9346b336a784463192c7daab5133a3673dd69845 100644 GIT binary patch delta 20 bcmZo*YG9fW$aR-pKuBI_A&;8a#OS2}IT8h- delta 20 ccmZo*YG9fW$n}tkpG`^2`}L)-6Qh>`07DuF!T HarfBuzz Manual: HarfBuzz Manual - + - + @@ -204,46 +204,11 @@
API Index
-
Index of deprecated API
-
Index of new symbols in 2.1.0
-
Index of new symbols in 2.0.0
-
Index of new symbols in 1.9.0
-
Index of new symbols in 1.8.6
-
Index of new symbols in 1.8.5
-
Index of new symbols in 1.8.1
-
Index of new symbols in 1.8.0
-
Index of new symbols in 1.7.7
-
Index of new symbols in 1.7.5
-
Index of new symbols in 1.6.0
-
Index of new symbols in 1.5.0
-
Index of new symbols in 1.4.3
-
Index of new symbols in 1.4.2
-
Index of new symbols in 1.4.0
-
Index of new symbols in 1.3.3
-
Index of new symbols in 1.2.3
-
Index of new symbols in 1.1.3
-
Index of new symbols in 1.1.2
-
Index of new symbols in 1.0.5
-
Index of new symbols in 0.9.42
-
Index of new symbols in 0.9.41
-
Index of new symbols in 0.9.39
-
Index of new symbols in 0.9.38
-
Index of new symbols in 0.9.31
-
Index of new symbols in 0.9.30
-
Index of new symbols in 0.9.28
-
Index of new symbols in 0.9.22
-
Index of new symbols in 0.9.20
-
Index of new symbols in 0.9.11
-
Index of new symbols in 0.9.10
-
Index of new symbols in 0.9.8
-
Index of new symbols in 0.9.7
-
Index of new symbols in 0.9.5
-
Index of new symbols in 0.9.2
Annotation Glossary
+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/install-harfbuzz.html b/docs/html/install-harfbuzz.html index 940cf1a..61dea5e 100644 --- a/docs/html/install-harfbuzz.html +++ b/docs/html/install-harfbuzz.html @@ -3,12 +3,12 @@ Installing HarfBuzz: HarfBuzz Manual - + - + @@ -65,6 +65,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/left-insensitive.png b/docs/html/left-insensitive.png index b1148fb805fee12a48ba5d5d98e241ef884e8c85..3269393a7f72af744a772c437bd7b3976c23709d 100644 GIT binary patch delta 21 ccmeBX?q;44$aR-pK$uDJ*y_UejnM{-07!ra$N&HU delta 21 ccmeBX?q;44$n}tkpG`^2`}L)-8>0;v0ZdT`h5!Hn diff --git a/docs/html/left.png b/docs/html/left.png index c164913742594b63d75d480135f87ed3a20a99ce..2abde032b0c98b756b12d380da4318205cd78470 100644 GIT binary patch delta 20 bcmZo;YGaxZ$aR-pKuBIEA=i5E#OT!kK2Qd! delta 20 ccmZo;YGaxZ$n}tkpG`^2`}L)-6QfrH07L`_)Bpeg diff --git a/docs/html/level-2.html b/docs/html/level-2.html index 3e67349..a30f6f6 100644 --- a/docs/html/level-2.html +++ b/docs/html/level-2.html @@ -3,12 +3,12 @@ Level 2: HarfBuzz Manual - + - + @@ -171,7 +171,7 @@

There may be other problems encountered with ligatures under level 2, such as if the direction of the text is forced to - opposite of its natural direction (for example, Arabic text + the opposite of its natural direction (for example, Arabic text that is forced into left-to-right directionality). But, generally speaking, these other scenarios are minor corner cases that are too obscure for most client programs to need to @@ -180,6 +180,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/opentype-shaping-models.html b/docs/html/opentype-shaping-models.html index 46b9e2b..01375b1 100644 --- a/docs/html/opentype-shaping-models.html +++ b/docs/html/opentype-shaping-models.html @@ -3,12 +3,12 @@ OpenType shaping models: HarfBuzz Manual - + - + @@ -95,6 +95,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/plans-and-caching.html b/docs/html/plans-and-caching.html index 5d81872..7407f1e 100644 --- a/docs/html/plans-and-caching.html +++ b/docs/html/plans-and-caching.html @@ -3,12 +3,12 @@ Plans and caching: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/pt01.html b/docs/html/pt01.html index 2aee80e..90e6f93 100644 --- a/docs/html/pt01.html +++ b/docs/html/pt01.html @@ -3,12 +3,12 @@ Part I. User's manual: HarfBuzz Manual - + - + @@ -108,6 +108,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/pt02.html b/docs/html/pt02.html index 2dd2ac9..33add13 100644 --- a/docs/html/pt02.html +++ b/docs/html/pt02.html @@ -3,12 +3,12 @@ Part II. Reference manual: HarfBuzz Manual - + - + @@ -24,7 +24,7 @@

Part II. Reference manual

- This document is for HarfBuzz 2.3.1 + This document is for HarfBuzz 2.4.0 .

@@ -124,41 +124,6 @@
API Index
-
Index of deprecated API
-
Index of new symbols in 2.1.0
-
Index of new symbols in 2.0.0
-
Index of new symbols in 1.9.0
-
Index of new symbols in 1.8.6
-
Index of new symbols in 1.8.5
-
Index of new symbols in 1.8.1
-
Index of new symbols in 1.8.0
-
Index of new symbols in 1.7.7
-
Index of new symbols in 1.7.5
-
Index of new symbols in 1.6.0
-
Index of new symbols in 1.5.0
-
Index of new symbols in 1.4.3
-
Index of new symbols in 1.4.2
-
Index of new symbols in 1.4.0
-
Index of new symbols in 1.3.3
-
Index of new symbols in 1.2.3
-
Index of new symbols in 1.1.3
-
Index of new symbols in 1.1.2
-
Index of new symbols in 1.0.5
-
Index of new symbols in 0.9.42
-
Index of new symbols in 0.9.41
-
Index of new symbols in 0.9.39
-
Index of new symbols in 0.9.38
-
Index of new symbols in 0.9.31
-
Index of new symbols in 0.9.30
-
Index of new symbols in 0.9.28
-
Index of new symbols in 0.9.22
-
Index of new symbols in 0.9.20
-
Index of new symbols in 0.9.11
-
Index of new symbols in 0.9.10
-
Index of new symbols in 0.9.8
-
Index of new symbols in 0.9.7
-
Index of new symbols in 0.9.5
-
Index of new symbols in 0.9.2
Annotation Glossary
@@ -191,6 +156,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/reordering-in-levels-0-and-1.html b/docs/html/reordering-in-levels-0-and-1.html index 2a390b7..4546454 100644 --- a/docs/html/reordering-in-levels-0-and-1.html +++ b/docs/html/reordering-in-levels-0-and-1.html @@ -3,12 +3,12 @@ Reordering in levels 0 and 1: HarfBuzz Manual - + - + @@ -59,6 +59,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/right-insensitive.png b/docs/html/right-insensitive.png index c1efa27853f853ed2b9aae854f339a700e1bf9c4..4c95785b907b978f36674cd98bf5302669c15c1b 100644 GIT binary patch delta 21 dcmey$^p$BsAlF@X0bwSdrE6v5HbzS^0svIf2IBw# delta 21 dcmey$^p$BsAlE}Cel{g7@7I^UZj6><1OQx*2toh= diff --git a/docs/html/right.png b/docs/html/right.png index 83361a6558122754eb0893aff898b2d94e97feab..76260ec8865f4e13cd269ec62eccd78a33adba3c 100644 GIT binary patch delta 20 bcmZo=YGs-b$aR-pKuBIu?v6Xd#OPH3JLLu! delta 20 ccmZo=YGs-b$n}tkpG`^2`}L)-6QfrF07Kme(EtDd diff --git a/docs/html/setting-buffer-properties.html b/docs/html/setting-buffer-properties.html index 266dfd7..e35cf7a 100644 --- a/docs/html/setting-buffer-properties.html +++ b/docs/html/setting-buffer-properties.html @@ -3,12 +3,12 @@ Setting buffer properties: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/shaping-and-shape-plans.html b/docs/html/shaping-and-shape-plans.html index 4aacb0f..2831034 100644 --- a/docs/html/shaping-and-shape-plans.html +++ b/docs/html/shaping-and-shape-plans.html @@ -3,12 +3,12 @@ Shaping and shape plans: HarfBuzz Manual - + - + @@ -34,6 +34,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/shaping-concepts.html b/docs/html/shaping-concepts.html index bfa6a41..90014e1 100644 --- a/docs/html/shaping-concepts.html +++ b/docs/html/shaping-concepts.html @@ -3,12 +3,12 @@ Shaping concepts: HarfBuzz Manual - + - + @@ -64,6 +64,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/shaping-operations.html b/docs/html/shaping-operations.html index 9e6ff5e..a18b3cd 100644 --- a/docs/html/shaping-operations.html +++ b/docs/html/shaping-operations.html @@ -3,12 +3,12 @@ Shaping operations: HarfBuzz Manual - + - + @@ -93,6 +93,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/style.css b/docs/html/style.css index 3675420..4be4ede 100644 --- a/docs/html/style.css +++ b/docs/html/style.css @@ -30,6 +30,10 @@ body vertical-align: top; } +span.nowrap { + white-space: nowrap; +} + div.gallery-float { float: left; diff --git a/docs/html/text-runs.html b/docs/html/text-runs.html index 26804d3..62bcc5a 100644 --- a/docs/html/text-runs.html +++ b/docs/html/text-runs.html @@ -3,12 +3,12 @@ Text runs: HarfBuzz Manual - + - + @@ -42,6 +42,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/the-distinction-between-levels-0-and-1.html b/docs/html/the-distinction-between-levels-0-and-1.html index cbb7afe..c22fe82 100644 --- a/docs/html/the-distinction-between-levels-0-and-1.html +++ b/docs/html/the-distinction-between-levels-0-and-1.html @@ -3,12 +3,12 @@ The distinction between levels 0 and 1: HarfBuzz Manual - + - + @@ -60,7 +60,7 @@

But this initial cluster-merging behavior makes it impossible - client programs to implement some features (such as to + for client programs to implement some features (such as to color diacritic marks differently from their base characters). That is why, in level 1, HarfBuzz does not perform the initial merging step. @@ -101,6 +101,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/unicode-character-categories.html b/docs/html/unicode-character-categories.html index 2b97961..9328e35 100644 --- a/docs/html/unicode-character-categories.html +++ b/docs/html/unicode-character-categories.html @@ -3,12 +3,12 @@ Unicode character categories: HarfBuzz Manual - + - + @@ -74,6 +74,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/up-insensitive.png b/docs/html/up-insensitive.png index 13e1a4f07b752a39a6da4a93f882c622f5bf7180..f40498606db349a7321cf6b470523e836ee7ac2e 100644 GIT binary patch delta 21 ccmeyy^o?mkAlF@X0bv&Ta?jsv8>6Ke0aXhI?*IS* delta 21 dcmeyy^o?mkAlE}Cel{g7@7I^UZj6>@1OQyQ2t@z@ diff --git a/docs/html/up.png b/docs/html/up.png index 67a9054b6a9d2653d98e1024d37feb1d95a3e1e0..80b4b37e997d69b2e128bc3090bc447ccb74bbe9 100644 GIT binary patch delta 20 ccmZo+YGIlX$aR-pKuCdo3jd3P6QfrG06&Ze1^@s6 delta 20 ccmZo+YGIlX$n}tkpG`^2`}L)-6QfrG07JG1&Hw-a diff --git a/docs/html/using-harfbuzzs-native-opentype-implementation.html b/docs/html/using-harfbuzzs-native-opentype-implementation.html index 71cda2c..1ee3f3e 100644 --- a/docs/html/using-harfbuzzs-native-opentype-implementation.html +++ b/docs/html/using-harfbuzzs-native-opentype-implementation.html @@ -3,12 +3,12 @@ Using HarfBuzz's native OpenType implementation: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/using-your-own-font-functions.html b/docs/html/using-your-own-font-functions.html index 400e3e0..53f33ac 100644 --- a/docs/html/using-your-own-font-functions.html +++ b/docs/html/using-your-own-font-functions.html @@ -3,12 +3,12 @@ Using your own font functions: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/what-about-the-other-scripts.html b/docs/html/what-about-the-other-scripts.html index 5b0ebed..edb7235 100644 --- a/docs/html/what-about-the-other-scripts.html +++ b/docs/html/what-about-the-other-scripts.html @@ -3,12 +3,12 @@ What about the other scripts?: HarfBuzz Manual - + - + @@ -26,6 +26,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/what-harfbuzz-doesnt-do.html b/docs/html/what-harfbuzz-doesnt-do.html index 33309a1..f460f9b 100644 --- a/docs/html/what-harfbuzz-doesnt-do.html +++ b/docs/html/what-harfbuzz-doesnt-do.html @@ -3,12 +3,12 @@ What HarfBuzz doesn't do: HarfBuzz Manual - + - + @@ -106,6 +106,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/what-is-harfbuzz.html b/docs/html/what-is-harfbuzz.html index a3eb0a2..251f873 100644 --- a/docs/html/what-is-harfbuzz.html +++ b/docs/html/what-is-harfbuzz.html @@ -3,12 +3,12 @@ What is HarfBuzz?: HarfBuzz Manual - + - + @@ -95,6 +95,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/why-do-i-need-a-shaping-engine.html b/docs/html/why-do-i-need-a-shaping-engine.html index 1c2350b..e340ac5 100644 --- a/docs/html/why-do-i-need-a-shaping-engine.html +++ b/docs/html/why-do-i-need-a-shaping-engine.html @@ -3,12 +3,12 @@ Why do I need a shaping engine?: HarfBuzz Manual - + - + @@ -169,6 +169,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/why-is-it-called-harfbuzz.html b/docs/html/why-is-it-called-harfbuzz.html index dbc62c1..b623b92 100644 --- a/docs/html/why-is-it-called-harfbuzz.html +++ b/docs/html/why-is-it-called-harfbuzz.html @@ -3,12 +3,12 @@ Why is it called HarfBuzz?: HarfBuzz Manual - + - + @@ -33,6 +33,6 @@

+
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/html/working-with-harfbuzz-clusters.html b/docs/html/working-with-harfbuzz-clusters.html index 8d40cd0..74ffd3b 100644 --- a/docs/html/working-with-harfbuzz-clusters.html +++ b/docs/html/working-with-harfbuzz-clusters.html @@ -3,12 +3,12 @@ Working with HarfBuzz clusters: HarfBuzz Manual - + - + @@ -222,6 +222,6 @@ +
Generated by GTK-Doc V1.29 \ No newline at end of file diff --git a/docs/usermanual-clusters.xml b/docs/usermanual-clusters.xml index 228cc56..b8d9191 100644 --- a/docs/usermanual-clusters.xml +++ b/docs/usermanual-clusters.xml @@ -492,7 +492,7 @@ But this initial cluster-merging behavior makes it impossible - client programs to implement some features (such as to + for client programs to implement some features (such as to color diacritic marks differently from their base characters). That is why, in level 1, HarfBuzz does not perform the initial merging step. @@ -684,7 +684,7 @@ There may be other problems encountered with ligatures under level 2, such as if the direction of the text is forced to - opposite of its natural direction (for example, Arabic text + the opposite of its natural direction (for example, Arabic text that is forced into left-to-right directionality). But, generally speaking, these other scenarios are minor corner cases that are too obscure for most client programs to need to diff --git a/docs/usermanual-getting-started.xml b/docs/usermanual-getting-started.xml index cc867e0..1f26df8 100644 --- a/docs/usermanual-getting-started.xml +++ b/docs/usermanual-getting-started.xml @@ -223,7 +223,7 @@ - Guess the script, language and direction of the buffer. + Set the script, language and direction of the buffer. @@ -275,14 +275,14 @@ for (i = 0; i < glyph_count; ++i) { - glyphid = glyph_info[i].codepoint; - x_offset = glyph_pos[i].x_offset / 64.0; - y_offset = glyph_pos[i].y_offset / 64.0; - x_advance = glyph_pos[i].x_advance / 64.0; - y_advance = glyph_pos[i].y_advance / 64.0; - draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset); - cursor_x += x_advance; - cursor_y += y_advance; + glyphid = glyph_info[i].codepoint; + x_offset = glyph_pos[i].x_offset / 64.0; + y_offset = glyph_pos[i].y_offset / 64.0; + x_advance = glyph_pos[i].x_advance / 64.0; + y_advance = glyph_pos[i].y_advance / 64.0; + draw_glyph(glyphid, cursor_x + x_offset, cursor_y + y_offset); + cursor_x += x_advance; + cursor_y += y_advance; } diff --git a/docs/usermanual-install-harfbuzz.xml b/docs/usermanual-install-harfbuzz.xml index a885d00..a1e7ab0 100644 --- a/docs/usermanual-install-harfbuzz.xml +++ b/docs/usermanual-install-harfbuzz.xml @@ -423,6 +423,18 @@ + + + --enable-gtk-doc + + + Use GTK-Doc. (Default = no) + + + This option enables the building of the documentation. + + + diff --git a/docs/version.xml b/docs/version.xml index 2bf1c1c..197c4d5 100644 --- a/docs/version.xml +++ b/docs/version.xml @@ -1 +1 @@ -2.3.1 +2.4.0 diff --git a/gtk-doc.make b/gtk-doc.make index 2454c28..7d9a27f 100644 --- a/gtk-doc.make +++ b/gtk-doc.make @@ -1,4 +1,22 @@ # -*- mode: makefile -*- +# +# gtk-doc.make - make rules for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2004-2007 Damon Chaplin +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . #################################### # Everything below here is generic # @@ -81,55 +99,54 @@ $(REPORT_FILES): sgml-build.stamp #### setup #### -GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_$(V)) -GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SETUP=$(GTK_DOC_V_SETUP_@AM_V@) +GTK_DOC_V_SETUP_=$(GTK_DOC_V_SETUP_@AM_DEFAULT_V@) GTK_DOC_V_SETUP_0=@echo " DOC Preparing build"; setup-build.stamp: -$(GTK_DOC_V_SETUP)if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - destdir=`dirname $(abs_builddir)/$$file`; \ - test -d "$$destdir" || mkdir -p "$$destdir"; \ - test -f $(abs_srcdir)/$$file && \ - cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ - done; \ - fi; \ + files=`echo $(SETUP_FILES) $(DOC_MODULE).types`; \ + if test "x$$files" != "x" ; then \ + for file in $$files ; do \ + destdir=`dirname $(abs_builddir)/$$file`; \ + test -d "$$destdir" || mkdir -p "$$destdir"; \ + test -f $(abs_srcdir)/$$file && \ + cp -pf $(abs_srcdir)/$$file $(abs_builddir)/$$file || true; \ + done; \ + fi; \ fi $(AM_V_at)touch setup-build.stamp - #### scan #### -GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_$(V)) -GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_SCAN=$(GTK_DOC_V_SCAN_@AM_V@) +GTK_DOC_V_SCAN_=$(GTK_DOC_V_SCAN_@AM_DEFAULT_V@) GTK_DOC_V_SCAN_0=@echo " DOC Scanning header files"; -GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_$(V)) -GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_INTROSPECT=$(GTK_DOC_V_INTROSPECT_@AM_V@) +GTK_DOC_V_INTROSPECT_=$(GTK_DOC_V_INTROSPECT_@AM_DEFAULT_V@) GTK_DOC_V_INTROSPECT_0=@echo " DOC Introspecting gobjects"; scan-build.stamp: setup-build.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(GTK_DOC_V_SCAN)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) $(GTK_DOC_V_INTROSPECT)if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$$?" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ + scanobj_options=""; \ + gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ + if test "$$?" = "0"; then \ + if test "x$(V)" = "x1"; then \ + scanobj_options="--verbose"; \ fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ + fi; \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ fi $(AM_V_at)touch scan-build.stamp @@ -138,14 +155,14 @@ $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE) #### xml #### -GTK_DOC_V_XML=$(GTK_DOC_V_XML_$(V)) -GTK_DOC_V_XML_=$(GTK_DOC_V_XML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XML=$(GTK_DOC_V_XML_@AM_V@) +GTK_DOC_V_XML_=$(GTK_DOC_V_XML_@AM_DEFAULT_V@) GTK_DOC_V_XML_0=@echo " DOC Building XML"; sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) xml/gtkdocentities.ent $(GTK_DOC_V_XML)_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ + _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) $(AM_V_at)touch sgml-build.stamp @@ -153,6 +170,9 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HF sgml.stamp: sgml-build.stamp @true +$(DOC_MAIN_SGML_FILE): sgml-build.stamp + @true + xml/gtkdocentities.ent: Makefile $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ echo ""; \ @@ -166,12 +186,12 @@ xml/gtkdocentities.ent: Makefile #### html #### -GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_$(V)) -GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_HTML=$(GTK_DOC_V_HTML_@AM_V@) +GTK_DOC_V_HTML_=$(GTK_DOC_V_HTML_@AM_DEFAULT_V@) GTK_DOC_V_HTML_0=@echo " DOC Building HTML"; -GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_$(V)) -GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_XREF=$(GTK_DOC_V_XREF_@AM_V@) +GTK_DOC_V_XREF_=$(GTK_DOC_V_XREF_@AM_DEFAULT_V@) GTK_DOC_V_XREF_0=@echo " DOC Fixing cross-references"; html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) @@ -190,12 +210,8 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_con cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ + test -f $(abs_srcdir)/$$file && cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ + test -f $(abs_builddir)/$$file && cp $(abs_builddir)/$$file $(abs_builddir)/html; \ test -f $$file && cp $$file $(abs_builddir)/html; \ done; $(GTK_DOC_V_XREF)gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) @@ -203,8 +219,8 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_con #### pdf #### -GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_$(V)) -GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_$(AM_DEFAULT_VERBOSITY)) +GTK_DOC_V_PDF=$(GTK_DOC_V_PDF_@AM_V@) +GTK_DOC_V_PDF_=$(GTK_DOC_V_PDF_@AM_DEFAULT_V@) GTK_DOC_V_PDF_0=@echo " DOC Building PDF"; pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) $(expand_content_files) diff --git a/install-sh b/install-sh index 59990a1..8175c64 100755 --- a/install-sh +++ b/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2014-09-12.12; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -271,15 +271,18 @@ do fi dst=$dst_arg - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. + # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst - dst=$dstdir/`basename "$src"` + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac dstdir_status=0 else dstdir=`dirname "$dst"` @@ -288,6 +291,11 @@ do fi fi + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + obsolete_mkdir_used=false if test $dstdir_status != 0; then @@ -324,14 +332,16 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) - # $RANDOM is not portable (e.g. dash); use it when possible to - # lower collision chance + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - # As "mkdir -p" follows symlinks and we work in /tmp possibly; so - # create the $tmpdir first (and fail if unsuccessful) to make sure - # that nobody tries to guess the $tmpdir name. + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 @@ -434,8 +444,8 @@ do else # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 @@ -500,9 +510,9 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/ltmain.sh b/ltmain.sh index a736cf9..d3ab94d 100644 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,12 +1,12 @@ #! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2018-07-24.06 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.4.6.42-b88ce # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-2" -package_revision=2.4.6 +VERSION=2.4.6.42-b88ce +package_revision=2.4.6.42 ## ------ ## @@ -64,34 +64,25 @@ package_revision=2.4.6 # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2018-07-24.06; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2018 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -140,9 +131,6 @@ do fi" done -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - # Make sure IFS has a sensible default sp=' ' nl=' @@ -159,6 +147,26 @@ if test "${PATH_SEPARATOR+set}" != set; then fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +267,7 @@ test -z "$SED" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +303,7 @@ test -z "$GREP" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -580,16 +588,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1099,199 @@ func_relative_path () } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in - *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break fi - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + # Quote for eval. + case $func_quote_portable_result in + *[\\\`\"\$]*) + case $func_quote_portable_result in + *[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac + + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () -{ - $debug_cmd +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () +{ + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: + ;; esac - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result ;; esac +} + - func_quote_for_expand_result=$_G_arg +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1337,8 @@ func_show_eval () _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1363,8 @@ func_show_eval_locale () _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1491,26 @@ func_lt_ver () # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2014-01-07.03; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2018 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 3 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# Please report bugs or propose patches to: +# -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2018-07-24.06; # UTC ## ------ ## @@ -1415,7 +1533,7 @@ scriptversion=2014-01-07.03; # UTC # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1545,7 @@ scriptversion=2014-01-07.03; # UTC # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1594,8 @@ fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1628,8 @@ func_add_hook () # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1638,28 @@ func_remove_hook () } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1532,22 +1669,19 @@ func_run_hooks () case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - eval $_G_hook '"$@"' - - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift + fi done - - func_quote_for_eval ${1+"$@"} - func_run_hooks_result=$func_quote_for_eval_result } @@ -1557,10 +1691,18 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, remove any -# options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. Like this: +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). +# +# Like this: # # my_options_prep () # { @@ -1570,9 +1712,8 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# -# func_quote_for_eval ${1+"$@"} -# my_options_prep_result=$func_quote_for_eval_result +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1581,25 +1722,36 @@ func_run_hooks () # { # $debug_cmd # -# # Note that for efficiency, we parse as many options as we can +# args_changed=false +# +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in -# --silent|-s) opt_silent=: ;; +# --silent|-s) opt_silent=: +# args_changed=: +# ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift +# args_changed=: # ;; -# *) set dummy "$_G_opt" "$*"; shift; break ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# # Only call 'func_quote' here if we processed at least one argument. +# if $args_changed; then +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result +# fi # } # func_add_hook func_parse_options my_silent_option # @@ -1610,17 +1762,26 @@ func_run_hooks () # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# func_quote_for_eval ${1+"$@"} -# my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # -# You'll alse need to manually amend $usage_message to reflect the extra +# You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish +} + + # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the @@ -1630,17 +1791,27 @@ func_options () { $debug_cmd - func_options_prep ${1+"$@"} - eval func_parse_options \ - ${func_options_prep_result+"$func_options_prep_result"} - eval func_validate_options \ - ${func_parse_options_result+"$func_parse_options_result"} + _G_options_quoted=false - eval func_run_hooks func_options \ - ${func_validate_options_result+"$func_validate_options_result"} + for my_func in options_prep parse_options validate_options options_finish + do + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: + fi + done - # save modified positional parameters for caller - func_options_result=$func_run_hooks_result + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1649,9 +1820,8 @@ func_options () # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and -# needs to propogate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning. +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1662,9 +1832,7 @@ func_options_prep () opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} - - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result + func_propagate_result func_run_hooks func_options_prep } @@ -1676,25 +1844,32 @@ func_parse_options () { $debug_cmd - func_parse_options_result= - + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} - - # Adjust func_parse_options positional parameters to match - eval set dummy "$func_run_hooks_result"; shift + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false + fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. + _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1704,7 +1879,10 @@ func_parse_options () ;; --warnings|--warning|-W) - test $# = 0 && func_missing_arg $_G_opt && break + if test $# = 0 && func_missing_arg $_G_opt; then + _G_parse_options_requote=: + break + fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above @@ -1757,15 +1935,24 @@ func_parse_options () shift ;; - --) break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; esac + + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + if $_G_parse_options_requote; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result + fi } @@ -1782,12 +1969,10 @@ func_validate_options () test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result } @@ -1843,8 +2028,8 @@ func_missing_arg () # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1859,8 +2044,9 @@ then func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1938,31 +2124,44 @@ func_usage_message () # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more - } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - /^# Written by / { - s|^# || - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -1972,12 +2171,12 @@ func_version () # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.4.6.42-b88ce' # func_echo ARG... @@ -2068,7 +2267,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-2 + version: $progname (GNU libtool) 2.4.6.42-b88ce automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2124,7 +2323,7 @@ fi # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2270,6 +2469,8 @@ libtool_options_prep () nonopt= preserve_args= + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2293,11 +2494,16 @@ libtool_options_prep () uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; + *) + _G_rc_lt_options_prep=false + ;; esac - # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result + fi } func_add_hook func_options_prep libtool_options_prep @@ -2309,9 +2515,12 @@ libtool_parse_options () { $debug_cmd + _G_rc_lt_parse_options=false + # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do + _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in @@ -2386,15 +2595,20 @@ libtool_parse_options () func_append preserve_args " $_G_opt" ;; - # An option not handled by this hook function: - *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done - - # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result + fi } func_add_hook func_parse_options libtool_parse_options @@ -2451,8 +2665,8 @@ libtool_validate_options () } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3418,8 +3632,8 @@ func_mode_compile () esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3492,8 +3706,8 @@ compiler." func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -4096,8 +4310,8 @@ func_mode_install () case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4107,8 +4321,8 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4165,12 +4379,12 @@ func_mode_install () esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4181,8 +4395,8 @@ func_mode_install () if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4478,8 +4692,8 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5258,7 +5472,8 @@ else if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5268,7 +5483,7 @@ func_fallback_echo () \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6611,9 +6826,9 @@ func_mode_link () while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -7211,9 +7426,9 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7227,10 +7442,10 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7254,8 +7469,8 @@ func_mode_link () # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7275,12 +7490,13 @@ func_mode_link () # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + -specs=*|-fsanitize=*|-fuse-ld=*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7301,15 +7517,15 @@ func_mode_link () continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7429,8 +7645,8 @@ func_mode_link () *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -7571,10 +7787,7 @@ func_mode_link () case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; - link) - libs="$deplibs %DEPLIBS%" - test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" - ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then @@ -7893,19 +8106,19 @@ func_mode_link () # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done continue fi # $pass = conv @@ -8829,9 +9042,6 @@ func_mode_link () revision=$number_minor lt_irix_increment=no ;; - *) - func_fatal_configuration "$modename: unknown library version type '$version_type'" - ;; esac ;; no) @@ -9942,8 +10152,8 @@ EOF for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10036,8 +10246,8 @@ EOF eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10511,12 +10721,13 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10756,13 +10967,15 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi diff --git a/m4/gtk-doc.m4 b/m4/gtk-doc.m4 index 3675543..2d12f01 100644 --- a/m4/gtk-doc.m4 +++ b/m4/gtk-doc.m4 @@ -1,4 +1,29 @@ -dnl -*- mode: autoconf -*- +# -*- mode: autoconf -*- +# +# gtk-doc.m4 - configure macro to check for gtk-doc +# Copyright (C) 2003 James Henstridge +# 2007-2017 Stefan Sauer +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# As a special exception, the above copyright owner gives unlimited +# permission to copy, distribute and modify the configure scripts that +# are the output of Autoconf when processing the Macro. You need not +# follow the terms of the GNU General Public License when using or +# distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. # serial 2 diff --git a/m4/libtool.m4 b/m4/libtool.m4 index ee80844..b55a6e5 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,6 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2018 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -219,8 +219,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -728,6 +728,7 @@ _LT_CONFIG_SAVE_COMMANDS([ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. @@ -1041,8 +1042,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1492,9 +1493,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -2206,26 +2220,35 @@ m4_defun([_LT_CMD_STRIPLIB], striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -2564,8 +2587,8 @@ m4_if([$1], [],[ dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -2621,7 +2644,7 @@ m4_if([$1], [],[ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -2886,18 +2909,6 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) dynamic_linker='GNU/Linux ld.so' ;; -netbsdelf*-gnu) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - dynamic_linker='NetBSD ld.elf_so' - ;; - netbsd*) version_type=sunos need_lib_prefix=no @@ -3557,7 +3568,7 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd* | netbsdelf*-gnu) +netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4021,7 +4032,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ @@ -4435,7 +4446,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4930,7 +4941,7 @@ m4_if([$1], [CXX], [ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -4938,7 +4949,7 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -4947,9 +4958,6 @@ m4_if([$1], [CXX], [ ;; esac ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4998,23 +5006,20 @@ dnl Note also adjust exclude_expsyms for C++ above. case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; - linux* | k*bsd*-gnu | gnu*) - _LT_TAGVAR(link_all_deplibs, $1)=no - ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -5173,6 +5178,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5269,7 +5275,7 @@ _LT_EOF fi ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5390,7 +5396,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5573,12 +5579,12 @@ _LT_EOF cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes @@ -5619,7 +5625,7 @@ _LT_EOF fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. @@ -5790,7 +5796,6 @@ _LT_EOF if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi - _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' @@ -5812,7 +5817,7 @@ _LT_EOF esac ;; - netbsd* | netbsdelf*-gnu) + netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -5879,6 +5884,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6649,8 +6655,8 @@ if test yes != "$_lt_caught_CXX_error"; then cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' @@ -6748,6 +6754,7 @@ if test yes != "$_lt_caught_CXX_error"; then emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 94b0829..07421d9 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -1,6 +1,6 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2009, 2011-2018 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 index 48bc934..3985c56 100644 --- a/m4/ltsugar.m4 +++ b/m4/ltsugar.m4 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2018 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index fa04b52..86b2ad7 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +9,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4221 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce]) +m4_define([LT_PACKAGE_REVISION], [2.4.6.42]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.6.42-b88ce' +macro_revision='2.4.6.42' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 index c6b26f8..54ea1c4 100644 --- a/m4/lt~obsolete.m4 +++ b/m4/lt~obsolete.m4 @@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007, 2009, 2011-2018 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # diff --git a/missing b/missing index f62bbae..625aeb1 100755 --- a/missing +++ b/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ scriptversion=2013-10-28.13; # UTC # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ else exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ give_advice "$1" | sed -e '1s/^/WARNING: /' \ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/src/Makefile.in b/src/Makefile.in index beba71c..9614bb0 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -187,6 +187,15 @@ mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = harfbuzz-config.cmake CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" \ + "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)" +am__EXEEXT_1 = +am__EXEEXT_2 = test-iter$(EXEEXT) test-ot-tag$(EXEEXT) \ + test-unicode-ranges$(EXEEXT) +@HAVE_CAIRO_FT_TRUE@@HAVE_FREETYPE_TRUE@am__EXEEXT_3 = test-ot-color$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -214,10 +223,6 @@ am__uninstall_files_from_dir = { \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" \ - "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" \ - "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = @HAVE_GOBJECT_TRUE@libharfbuzz_gobject_la_DEPENDENCIES = \ @@ -424,11 +429,6 @@ am__objects_35 = $(am__objects_8) $(am__objects_28) $(am__objects_29) \ $(am__objects_33) $(am__objects_34) am_libharfbuzz_la_OBJECTS = $(am__objects_27) $(am__objects_35) libharfbuzz_la_OBJECTS = $(am_libharfbuzz_la_OBJECTS) -am__EXEEXT_1 = -am__EXEEXT_2 = test-iter$(EXEEXT) test-ot-tag$(EXEEXT) \ - test-unicode-ranges$(EXEEXT) -@HAVE_CAIRO_FT_TRUE@@HAVE_FREETYPE_TRUE@am__EXEEXT_3 = test-ot-color$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_dump_indic_data_OBJECTS = \ dump_indic_data-dump-indic-data.$(OBJEXT) \ dump_indic_data-hb-ot-shape-complex-indic-table.$(OBJEXT) @@ -511,7 +511,90 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po \ + ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po \ + ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po \ + ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po \ + ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po \ + ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po \ + ./$(DEPDIR)/dump_use_data-dump-use-data.Po \ + ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po \ + ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo \ + ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo \ + ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo \ + ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo \ + ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo \ + ./$(DEPDIR)/main-main.Po ./$(DEPDIR)/test-test.Po \ + ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po \ + ./$(DEPDIR)/test_iter-hb-static.Po \ + ./$(DEPDIR)/test_iter-test-iter.Po \ + ./$(DEPDIR)/test_name_table-test-name-table.Po \ + ./$(DEPDIR)/test_ot_color-test-ot-color.Po \ + ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po \ + ./$(DEPDIR)/test_size_params-test-size-params.Po \ + ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po \ + ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -601,7 +684,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - check recheck distdir + check recheck distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -1009,7 +1092,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -1481,8 +1563,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -1496,53 +1578,6 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__aclocal_m4_deps): harfbuzz-config.cmake: $(top_builddir)/config.status $(srcdir)/harfbuzz-config.cmake.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libharfbuzz-gobject.la: $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_DEPENDENCIES) $(EXTRA_libharfbuzz_gobject_la_DEPENDENCIES) - $(AM_V_GEN)$(libharfbuzz_gobject_la_LINK) $(am_libharfbuzz_gobject_la_rpath) $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_LIBADD) $(LIBS) - -libharfbuzz-icu.la: $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_DEPENDENCIES) $(EXTRA_libharfbuzz_icu_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libharfbuzz_icu_la_LINK) $(am_libharfbuzz_icu_la_rpath) $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_LIBADD) $(LIBS) - -libharfbuzz-subset.la: $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_DEPENDENCIES) $(EXTRA_libharfbuzz_subset_la_DEPENDENCIES) - $(AM_V_CXXLD)$(libharfbuzz_subset_la_LINK) -rpath $(libdir) $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_LIBADD) $(LIBS) - -libharfbuzz.la: $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_DEPENDENCIES) $(EXTRA_libharfbuzz_la_DEPENDENCIES) - $(AM_V_GEN)$(libharfbuzz_la_LINK) -rpath $(libdir) $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ @@ -1627,6 +1662,53 @@ clean-noinstPROGRAMS: echo " rm -f" $$list; \ rm -f $$list +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libharfbuzz-gobject.la: $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_DEPENDENCIES) $(EXTRA_libharfbuzz_gobject_la_DEPENDENCIES) + $(AM_V_GEN)$(libharfbuzz_gobject_la_LINK) $(am_libharfbuzz_gobject_la_rpath) $(libharfbuzz_gobject_la_OBJECTS) $(libharfbuzz_gobject_la_LIBADD) $(LIBS) + +libharfbuzz-icu.la: $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_DEPENDENCIES) $(EXTRA_libharfbuzz_icu_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libharfbuzz_icu_la_LINK) $(am_libharfbuzz_icu_la_rpath) $(libharfbuzz_icu_la_OBJECTS) $(libharfbuzz_icu_la_LIBADD) $(LIBS) + +libharfbuzz-subset.la: $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_DEPENDENCIES) $(EXTRA_libharfbuzz_subset_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libharfbuzz_subset_la_LINK) -rpath $(libdir) $(libharfbuzz_subset_la_OBJECTS) $(libharfbuzz_subset_la_LIBADD) $(LIBS) + +libharfbuzz.la: $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_DEPENDENCIES) $(EXTRA_libharfbuzz_la_DEPENDENCIES) + $(AM_V_GEN)$(libharfbuzz_la_LINK) -rpath $(libdir) $(libharfbuzz_la_OBJECTS) $(libharfbuzz_la_LIBADD) $(LIBS) + dump-indic-data$(EXEEXT): $(dump_indic_data_OBJECTS) $(dump_indic_data_DEPENDENCIES) $(EXTRA_dump_indic_data_DEPENDENCIES) @rm -f dump-indic-data$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(dump_indic_data_OBJECTS) $(dump_indic_data_LDADD) $(LIBS) @@ -1689,90 +1771,96 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-dump-indic-data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-dump-use-data.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-common.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-face.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-font.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-map.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-set.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-static.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-hb-static.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-test-iter.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_name_table-test-name-table.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_color-test-ot-color.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_size_params-test-size-params.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_would_substitute-test-would-substitute.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-dump-indic-data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-dump-use-data.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-common.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-face.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-font.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-map.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-set.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-static.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main-main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-hb-static.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_iter-test-iter.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_name_table-test-name-table.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_color-test-ot-color.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_size_params-test-size-params.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_would_substitute-test-would-substitute.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -2867,7 +2955,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: $(check_PROGRAMS) $(dist_check_SCRIPTS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -2973,7 +3061,10 @@ test-unicode-ranges.log: test-unicode-ranges$(EXEEXT) @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -3034,12 +3125,12 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) +all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(DATA) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(typelibdir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) @@ -3087,7 +3178,90 @@ clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ mostlyclean-am distclean: distclean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po + -rm -f ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po + -rm -f ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po + -rm -f ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_use_data-dump-use-data.Po + -rm -f ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po + -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo + -rm -f ./$(DEPDIR)/main-main.Po + -rm -f ./$(DEPDIR)/test-test.Po + -rm -f ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po + -rm -f ./$(DEPDIR)/test_iter-hb-static.Po + -rm -f ./$(DEPDIR)/test_iter-test-iter.Po + -rm -f ./$(DEPDIR)/test_name_table-test-name-table.Po + -rm -f ./$(DEPDIR)/test_ot_color-test-ot-color.Po + -rm -f ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po + -rm -f ./$(DEPDIR)/test_size_params-test-size-params.Po + -rm -f ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po + -rm -f ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -3135,7 +3309,90 @@ install-ps-am: installcheck-am: installcheck-binPROGRAMS maintainer-clean: maintainer-clean-recursive - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/dump_indic_data-dump-indic-data.Po + -rm -f ./$(DEPDIR)/dump_indic_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_khmer_data-dump-khmer-data.Po + -rm -f ./$(DEPDIR)/dump_khmer_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_myanmar_data-dump-myanmar-data.Po + -rm -f ./$(DEPDIR)/dump_myanmar_data-hb-ot-shape-complex-indic-table.Po + -rm -f ./$(DEPDIR)/dump_use_data-dump-use-data.Po + -rm -f ./$(DEPDIR)/dump_use_data-hb-ot-shape-complex-use-table.Po + -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-enums.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_gobject_la-hb-gobject-structs.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_icu_la-hb-icu.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-layout.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-aat-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-blob.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer-serialize.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-buffer.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-common.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-coretext.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-directwrite.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-face.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-fallback-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-font.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ft.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-glib.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-graphite2.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-icu.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff1-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-cff2-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-color.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-face.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-font.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-layout.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-map.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-math.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name-language.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-name.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-arabic.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-default.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hangul.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-hebrew.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-indic.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-khmer.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-myanmar.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-thai.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-use.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-complex-vowel-constraints.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-fallback.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape-normalize.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-tag.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ot-var.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-set.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape-plan.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shape.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-shaper.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-static.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-ucdn.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-unicode.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-uniscribe.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_la-hb-warning.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff1-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-ot-cff2-table.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-static.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff-common.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff1.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-cff2.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-glyf.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-input.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset-plan.Plo + -rm -f ./$(DEPDIR)/libharfbuzz_subset_la-hb-subset.Plo + -rm -f ./$(DEPDIR)/main-main.Po + -rm -f ./$(DEPDIR)/test-test.Po + -rm -f ./$(DEPDIR)/test_buffer_serialize-test-buffer-serialize.Po + -rm -f ./$(DEPDIR)/test_iter-hb-static.Po + -rm -f ./$(DEPDIR)/test_iter-test-iter.Po + -rm -f ./$(DEPDIR)/test_name_table-test-name-table.Po + -rm -f ./$(DEPDIR)/test_ot_color-test-ot-color.Po + -rm -f ./$(DEPDIR)/test_ot_tag-hb-ot-tag.Po + -rm -f ./$(DEPDIR)/test_size_params-test-size-params.Po + -rm -f ./$(DEPDIR)/test_unicode_ranges-test-unicode-ranges.Po + -rm -f ./$(DEPDIR)/test_would_substitute-test-would-substitute.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -3160,28 +3417,29 @@ uninstall-am: uninstall-binPROGRAMS uninstall-cmakeDATA \ .MAKE: $(am__recursive_targets) all check check-am install install-am \ install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-TESTS check-am clean clean-binPROGRAMS \ - clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ - clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-binPROGRAMS \ - install-cmakeDATA install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-girDATA \ - install-html install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-man \ - install-nodist_pkgincludeHEADERS install-pdf install-pdf-am \ - install-pkgconfigDATA install-pkgincludeHEADERS install-ps \ - install-ps-am install-strip install-typelibDATA installcheck \ - installcheck-am installcheck-binPROGRAMS installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \ - uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-cmakeDATA uninstall-girDATA uninstall-libLTLIBRARIES \ - uninstall-nodist_pkgincludeHEADERS uninstall-pkgconfigDATA \ - uninstall-pkgincludeHEADERS uninstall-typelibDATA +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-TESTS check-am clean \ + clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ + clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-binPROGRAMS install-cmakeDATA install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-girDATA install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-nodist_pkgincludeHEADERS install-pdf \ + install-pdf-am install-pkgconfigDATA install-pkgincludeHEADERS \ + install-ps install-ps-am install-strip install-typelibDATA \ + installcheck installcheck-am installcheck-binPROGRAMS \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + recheck tags tags-am uninstall uninstall-am \ + uninstall-binPROGRAMS uninstall-cmakeDATA uninstall-girDATA \ + uninstall-libLTLIBRARIES uninstall-nodist_pkgincludeHEADERS \ + uninstall-pkgconfigDATA uninstall-pkgincludeHEADERS \ + uninstall-typelibDATA .PRECIOUS: Makefile diff --git a/src/check-symbols.sh b/src/check-symbols.sh index cea8684..423d186 100755 --- a/src/check-symbols.sh +++ b/src/check-symbols.sh @@ -26,7 +26,7 @@ for soname in harfbuzz harfbuzz-subset harfbuzz-icu harfbuzz-gobject; do symprefix= if test $suffix = dylib; then symprefix=_; fi - EXPORTED_SYMBOLS="`nm "$so" | grep ' [BCDGINRST] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt`" + EXPORTED_SYMBOLS=`nm "$so" | grep ' [BCDGINRST] .' | grep -v " $symprefix\\($IGNORED_SYMBOLS\\>\\)" | cut -d' ' -f3 | c++filt` prefix=$symprefix`basename "$so" | sed 's/libharfbuzz/hb/; s/-/_/g; s/[.].*//'` diff --git a/src/gen-indic-table.py b/src/gen-indic-table.py index 6532ee7..eedf420 100755 --- a/src/gen-indic-table.py +++ b/src/gen-indic-table.py @@ -79,10 +79,6 @@ data = combined del combined num = len (data) -for u in [0x17CD, 0x17CE, 0x17CF, 0x17D0, 0x17D3]: - if data[u][0] == 'Other': - data[u][0] = "Vowel_Dependent" - # Move the outliers NO-BREAK SPACE and DOTTED CIRCLE out singles = {} for u in ALLOWED_SINGLES: diff --git a/src/gen-use-table.py b/src/gen-use-table.py index be204b6..029e66e 100755 --- a/src/gen-use-table.py +++ b/src/gen-use-table.py @@ -48,7 +48,6 @@ defaults = ('Other', 'Not_Applicable', 'Cn', 'No_Block') # TODO Characters that are not in Unicode Indic files, but used in USE data[0][0x034F] = defaults[0] data[0][0x2060] = defaults[0] -data[0][0x20F0] = defaults[0] # TODO https://github.com/roozbehp/unicode-data/issues/9 data[0][0x11C44] = 'Consonant_Placeholder' data[0][0x11C45] = 'Consonant_Placeholder' @@ -317,12 +316,11 @@ def map_to_use(data): # Resolve Indic_Syllabic_Category - # TODO: These don't have UISC assigned in Unicode 8.0, but have UIPC - if U == 0x17DD: UISC = Vowel_Dependent + # TODO: These don't have UISC assigned in Unicode 12.0, but have UIPC if 0x1CE2 <= U <= 0x1CE8: UISC = Cantillation_Mark # Tibetan: - # TODO: These don't have UISC assigned in Unicode 11.0, but have UIPC + # TODO: These don't have UISC assigned in Unicode 12.0, but have UIPC if 0x0F18 <= U <= 0x0F19 or 0x0F3E <= U <= 0x0F3F: UISC = Vowel_Dependent if 0x0F86 <= U <= 0x0F87: UISC = Tone_Mark # Overrides to allow NFC order matching syllable @@ -347,13 +345,7 @@ def map_to_use(data): if U == 0x1CED: UISC = Tone_Mark # TODO: https://github.com/harfbuzz/harfbuzz/issues/525 - if U == 0x1A7F: UISC = Consonant_Final; UIPC = Bottom - - # TODO: https://github.com/harfbuzz/harfbuzz/pull/609 - if U == 0x20F0: UISC = Cantillation_Mark; UIPC = Top - - # TODO: https://github.com/harfbuzz/harfbuzz/pull/626 - if U == 0xA8B4: UISC = Consonant_Medial + if U == 0x1A7F: UISC = Consonant_Final # TODO: https://github.com/harfbuzz/harfbuzz/issues/1105 if U == 0x11134: UISC = Gemination_Mark @@ -367,27 +359,19 @@ def map_to_use(data): # Resolve Indic_Positional_Category - # TODO: Not in Unicode 8.0 yet, but in spec. - if U == 0x1B6C: UIPC = Bottom - - # TODO: These should die, but have UIPC in Unicode 8.0 + # TODO: These should die, but have UIPC in Unicode 12.0 if U in [0x953, 0x954]: UIPC = Not_Applicable - # TODO: In USE's override list but not in Unicode 11.0 + # TODO: In USE's override list but not in Unicode 12.0 if U == 0x103C: UIPC = Left - # TODO: These are not in USE's override list that we have, nor are they in Unicode 11.0 + # TODO: These are not in USE's override list that we have, nor are they in Unicode 12.0 if 0xA926 <= U <= 0xA92A: UIPC = Top - if U == 0x111CA: UIPC = Bottom - if U == 0x11300: UIPC = Top # TODO: https://github.com/harfbuzz/harfbuzz/pull/1037 - if U == 0x11302: UIPC = Top - if U == 0x1133C: UIPC = Bottom - if U == 0x1171E: UIPC = Left # Correct?! - if 0x1CF2 <= U <= 0x1CF3: UIPC = Right + # and https://github.com/harfbuzz/harfbuzz/issues/1631 + if U in [0x11302, 0x11303, 0x114C1]: UIPC = Top + if U == 0x1171E: UIPC = Left if 0x1CF8 <= U <= 0x1CF9: UIPC = Top - # https://github.com/roozbehp/unicode-data/issues/8 - if U == 0x0A51: UIPC = Bottom assert (UIPC in [Not_Applicable, Visual_Order_Left] or USE in use_positions), "%s %s %s %s %s" % (hex(U), UIPC, USE, UISC, UGC) diff --git a/src/gen-vowel-constraints.py b/src/gen-vowel-constraints.py index b7f6be2..afb21d9 100755 --- a/src/gen-vowel-constraints.py +++ b/src/gen-vowel-constraints.py @@ -180,6 +180,9 @@ print ('_hb_preprocess_text_vowel_constraints (const hb_ot_shape_plan_t *plan HB print ('\t\t\t\t hb_buffer_t *buffer,') print ('\t\t\t\t hb_font_t *font HB_UNUSED)') print ('{') +print (' if (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)') +print (' return;') +print () print (' /* UGLY UGLY UGLY business of adding dotted-circle in the middle of') print (' * vowel-sequences that look like another vowel. Data for each script') print (' * collected from the USE script development spec.') @@ -212,6 +215,7 @@ print (' if (processed)') print (' {') print (' if (buffer->idx < count)') print (' buffer->next_glyph ();') +print (' buffer->swap_buffers ();') print (' }') print ('}') diff --git a/src/hb-aat-layout-ankr-table.hh b/src/hb-aat-layout-ankr-table.hh index 236e4aa..4087b8c 100644 --- a/src/hb-aat-layout-ankr-table.hh +++ b/src/hb-aat-layout-ankr-table.hh @@ -76,6 +76,7 @@ struct ankr TRACE_SANITIZE (this); return_trace (likely (c->check_struct (this) && version == 0 && + c->check_range (this, anchorData) && lookupTable.sanitize (c, this, &(this+anchorData)))); } diff --git a/src/hb-aat-layout-common.hh b/src/hb-aat-layout-common.hh index 27ade28..2508276 100644 --- a/src/hb-aat-layout-common.hh +++ b/src/hb-aat-layout-common.hh @@ -418,15 +418,11 @@ struct Lookup } /* Close namespace. */ /* Ugly hand-coded null objects for template Lookup<> :(. */ extern HB_INTERNAL const unsigned char _hb_Null_AAT_Lookup[2]; -template <> -/*static*/ inline const AAT::Lookup& Null > () -{ return *reinterpret_cast *> (_hb_Null_AAT_Lookup); } -template <> -/*static*/ inline const AAT::Lookup& Null > () -{ return *reinterpret_cast *> (_hb_Null_AAT_Lookup); } -template <> -/*static*/ inline const AAT::Lookup >& Null > > () -{ return *reinterpret_cast > *> (_hb_Null_AAT_Lookup); } +template +struct Null > { + static AAT::Lookup const & get_null () + { return *reinterpret_cast *> (_hb_Null_AAT_Lookup); } +}; namespace AAT { enum { DELETED_GLYPH = 0xFFFF }; diff --git a/src/hb-atomic.hh b/src/hb-atomic.hh index 9321932..f9afd4f 100644 --- a/src/hb-atomic.hh +++ b/src/hb-atomic.hh @@ -85,11 +85,11 @@ _hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N) #define hb_atomic_int_impl_add(AI, V) (reinterpret_cast *> (AI)->fetch_add ((V), std::memory_order_acq_rel)) #define hb_atomic_int_impl_set_relaxed(AI, V) (reinterpret_cast *> (AI)->store ((V), std::memory_order_relaxed)) #define hb_atomic_int_impl_set(AI, V) (reinterpret_cast *> (AI)->store ((V), std::memory_order_release)) -#define hb_atomic_int_impl_get_relaxed(AI) (reinterpret_cast *> (AI)->load (std::memory_order_relaxed)) -#define hb_atomic_int_impl_get(AI) (reinterpret_cast *> (AI)->load (std::memory_order_acquire)) +#define hb_atomic_int_impl_get_relaxed(AI) (reinterpret_cast const *> (AI)->load (std::memory_order_relaxed)) +#define hb_atomic_int_impl_get(AI) (reinterpret_cast const *> (AI)->load (std::memory_order_acquire)) #define hb_atomic_ptr_impl_set_relaxed(P, V) (reinterpret_cast *> (P)->store ((V), std::memory_order_relaxed)) -#define hb_atomic_ptr_impl_get_relaxed(P) (reinterpret_cast *> (P)->load (std::memory_order_relaxed)) +#define hb_atomic_ptr_impl_get_relaxed(P) (reinterpret_cast const *> (P)->load (std::memory_order_relaxed)) #define hb_atomic_ptr_impl_get(P) (reinterpret_cast *> (P)->load (std::memory_order_acquire)) static inline bool _hb_atomic_ptr_impl_cmplexch (const void **P, const void *O_, const void *N) @@ -184,7 +184,7 @@ static inline bool _hb_compare_and_swap_ptr (void **P, void *O, void *N) #endif -#elif !defined(HB_NO_MT) && defined(_AIX) && defined(__IBMCPP__) +#elif !defined(HB_NO_MT) && defined(_AIX) && (defined(__IBMCPP__) || defined(__ibmxl__)) #include diff --git a/src/hb-buffer.h b/src/hb-buffer.h index f989d25..ac1d452 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -284,6 +284,10 @@ hb_buffer_guess_segment_properties (hb_buffer_t *buffer); * space glyph and zeroing the advance width.) * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes * precedence over this flag. Since: 1.8.0 + * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE: + * flag indicating that a dotted circle should + * not be inserted in the rendering of incorrect + * character sequences (such at <0905 093E>). Since: 2.4 * * Since: 0.9.20 */ @@ -292,7 +296,8 @@ typedef enum { /*< flags >*/ HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */ HB_BUFFER_FLAG_EOT = 0x00000002u, /* End-of-text */ HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u, - HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u + HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u, + HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 0x00000010u } hb_buffer_flags_t; HB_EXTERN void diff --git a/src/hb-common.cc b/src/hb-common.cc index 93f5b79..ab93bf4 100644 --- a/src/hb-common.cc +++ b/src/hb-common.cc @@ -731,7 +731,7 @@ parse_uint (const char **pp, const char *end, unsigned int *pv) /* Intentionally use strtol instead of strtoul, such that * -1 turns into "big number"... */ errno = 0; - v = strtol (p, &pend, 0); + v = strtol (p, &pend, 10); if (errno || p == pend) return false; @@ -755,7 +755,7 @@ parse_uint32 (const char **pp, const char *end, uint32_t *pv) /* Intentionally use strtol instead of strtoul, such that * -1 turns into "big number"... */ errno = 0; - v = strtol (p, &pend, 0); + v = strtol (p, &pend, 10); if (errno || p == pend) return false; @@ -857,9 +857,14 @@ parse_bool (const char **pp, const char *end, uint32_t *pv) (*pp)++; /* CSS allows on/off as aliases 1/0. */ - if (*pp - p == 2 && 0 == strncmp (p, "on", 2)) + if (*pp - p == 2 + && TOLOWER (p[0]) == 'o' + && TOLOWER (p[1]) == 'n') *pv = 1; - else if (*pp - p == 3 && 0 == strncmp (p, "off", 3)) + else if (*pp - p == 3 + && TOLOWER (p[0]) == 'o' + && TOLOWER (p[1]) == 'f' + && TOLOWER (p[2]) == 'f') *pv = 0; else return false; @@ -974,7 +979,41 @@ parse_one_feature (const char **pp, const char *end, hb_feature_t *feature) * * Parses a string into a #hb_feature_t. * - * TODO: document the syntax here. + * The format for specifying feature strings follows. All valid CSS + * font-feature-settings values other than 'normal' and the global values are + * also accepted, though not documented below. CSS string escapes are not + * supported. + * + * The range indices refer to the positions between Unicode characters. The + * position before the first character is always 0. + * + * The format is Python-esque. Here is how it all works: + * + * + * + *
+ * Syntax Value Start End + * + * + * Setting value: + * kern 1 0 ∞ Turn feature on + * +kern 1 0 ∞ Turn feature on + * -kern 0 0 ∞ Turn feature off + * kern=0 0 0 ∞ Turn feature off + * kern=1 1 0 ∞ Turn feature on + * aalt=2 2 0 ∞ Choose 2nd alternate + * Setting index: + * kern[] 1 0 ∞ Turn feature on + * kern[:] 1 0 ∞ Turn feature on + * kern[5:] 1 5 ∞ Turn feature on, partial + * kern[:5] 1 0 5 Turn feature on, partial + * kern[3:5] 1 3 5 Turn feature on, range + * kern[3] 1 3 3+1 Turn feature on, single char + * Mixing it all: + * aalt[3:5]=2 2 3 5 Turn 2nd alternate on for range + * + * + * * * Return value: * %true if @str is successfully parsed, %false otherwise. diff --git a/src/hb-common.h b/src/hb-common.h index 2b29e44..fbabd71 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -357,6 +357,14 @@ typedef enum /*11.0*/HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'), /*11.0*/HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'), + /* + * Since REPLACEME + */ + /*12.0*/HB_SCRIPT_ELYMAIC = HB_TAG ('E','l','y','m'), + /*12.0*/HB_SCRIPT_NANDINAGARI = HB_TAG ('N','a','n','d'), + /*12.0*/HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = HB_TAG ('H','m','n','p'), + /*12.0*/HB_SCRIPT_WANCHO = HB_TAG ('W','c','h','o'), + /* No script set. */ HB_SCRIPT_INVALID = HB_TAG_NONE, diff --git a/src/hb-coretext.cc b/src/hb-coretext.cc index 42ea3ea..5989306 100644 --- a/src/hb-coretext.cc +++ b/src/hb-coretext.cc @@ -171,7 +171,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size) if (CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSText")) || CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSDisplay"))) { -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1080 +#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1080 # define kCTFontUIFontSystem kCTFontSystemFontType # define kCTFontUIFontEmphasizedSystem kCTFontEmphasizedSystemFontType #endif @@ -214,7 +214,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size) } CFURLRef original_url = nullptr; -#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 ATSFontRef atsFont; FSRef fsref; OSStatus status; @@ -244,7 +244,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size) * process in Blink. This can be detected by the new file URL location * that the newly found font points to. */ CFURLRef new_url = nullptr; -#if TARGET_OS_OSX && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 atsFont = CTFontGetPlatformFont (new_ct_font, NULL); status = ATSFontGetFileReference (atsFont, &fsref); if (status == noErr) @@ -711,7 +711,7 @@ resize_and_retry: /* What's the iOS equivalent of this check? * The symbols was introduced in iOS 7.0. * At any rate, our fallback is safe and works fine. */ -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090 +#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1090 # define kCTLanguageAttributeName CFSTR ("NSLanguage") #endif CFStringRef lang = CFStringCreateWithCStringNoCopy (kCFAllocatorDefault, @@ -783,7 +783,7 @@ resize_and_retry: int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1; CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level); -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060 +#if !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) && MAC_OS_X_VERSION_MIN_REQUIRED < 1060 extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel; #endif CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault, diff --git a/src/hb-directwrite.cc b/src/hb-directwrite.cc index aaf10a1..137cd56 100644 --- a/src/hb-directwrite.cc +++ b/src/hb-directwrite.cc @@ -1,5 +1,5 @@ /* - * Copyright © 2015-2018 Ebrahim Byagowi + * Copyright © 2015-2019 Ebrahim Byagowi * * This is part of HarfBuzz, a text shaping library. * @@ -658,10 +658,10 @@ retry_getglyphs: * alignment needed after the WORD array. sizeof (WORD) == 2. */ unsigned int glyphs_size = (scratch_size * sizeof (int) - 2) / (sizeof (WORD) + - sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES) + - sizeof (int) + - sizeof (DWRITE_GLYPH_OFFSET) + - sizeof (uint32_t)); + sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES) + + sizeof (int) + + sizeof (DWRITE_GLYPH_OFFSET) + + sizeof (uint32_t)); ALLOCATE_ARRAY (uint32_t, vis_clusters, glyphs_size); #undef ALLOCATE_ARRAY @@ -868,3 +868,63 @@ hb_directwrite_shape_experimental_width (hb_font_t *font, return res; } + +struct _hb_directwrite_font_table_context { + IDWriteFontFace *face; + void *table_context; +}; + +static void +_hb_directwrite_table_data_release (void *data) +{ + _hb_directwrite_font_table_context *context = (_hb_directwrite_font_table_context *) data; + context->face->ReleaseFontTable (context->table_context); + delete context; +} + +static hb_blob_t * +reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data) +{ + IDWriteFontFace *dw_face = ((IDWriteFontFace *) user_data); + const void *data; + uint32_t length; + void *table_context; + BOOL exists; + if (!dw_face || FAILED (dw_face->TryGetFontTable (hb_uint32_swap (tag), &data, + &length, &table_context, &exists))) + return nullptr; + + if (!data || !exists || !length) + { + dw_face->ReleaseFontTable (table_context); + return nullptr; + } + + _hb_directwrite_font_table_context *context = new _hb_directwrite_font_table_context; + context->face = dw_face; + context->table_context = table_context; + + return hb_blob_create ((const char *) data, length, HB_MEMORY_MODE_READONLY, + context, _hb_directwrite_table_data_release); +} + +static void +_hb_directwrite_font_release (void *data) +{ + if (data) + ((IDWriteFontFace *) data)->Release (); +} + +/** + * hb_directwrite_face_create: + * @font_face: + * Since: REPLACEME + **/ +hb_face_t * +hb_directwrite_face_create (IDWriteFontFace *font_face) +{ + if (font_face) + font_face->AddRef (); + return hb_face_create_for_tables (reference_table, font_face, + _hb_directwrite_font_release); +} diff --git a/src/hb-directwrite.h b/src/hb-directwrite.h index 9bfd1f7..09776fd 100644 --- a/src/hb-directwrite.h +++ b/src/hb-directwrite.h @@ -1,5 +1,5 @@ /* - * Copyright © 2015 Ebrahim Byagowi + * Copyright © 2015-2019 Ebrahim Byagowi * * This is part of HarfBuzz, a text shaping library. * @@ -34,6 +34,9 @@ hb_directwrite_shape_experimental_width (hb_font_t *font, hb_buffer_t *buffer, const hb_feature_t *features, unsigned int num_features, float width); +HB_EXTERN hb_face_t * +hb_directwrite_face_create (IDWriteFontFace *font_face); + HB_END_DECLS #endif /* HB_DIRECTWRITE_H */ diff --git a/src/hb-dsalgs.hh b/src/hb-dsalgs.hh index cb3057c..0da244f 100644 --- a/src/hb-dsalgs.hh +++ b/src/hb-dsalgs.hh @@ -299,33 +299,19 @@ hb_ceil_to_4 (unsigned int v) } template struct hb_is_signed; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = true }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -template <> struct hb_is_signed { enum { value = false }; }; -/* We need to define hb_is_signed for the typedefs we use on pre-Visual - * Studio 2010 for the int8_t type, since __int8/__int64 is not considered - * the same as char/long. The previous lines will suffice for the other - * types, though. Note that somehow, unsigned __int8 is considered same - * as unsigned char. - * https://github.com/harfbuzz/harfbuzz/pull/1499 - */ -#if defined(_MSC_VER) && (_MSC_VER < 1600) -template <> struct hb_is_signed<__int8> { enum { value = true }; }; -#endif +/* https://github.com/harfbuzz/harfbuzz/issues/1535 */ +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = true }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; +template <> struct hb_is_signed { enum { value = false }; }; template static inline bool hb_in_range (T u, T lo, T hi) { - /* The sizeof() is here to force template instantiation. - * I'm sure there are better ways to do this but can't think of - * one right now. Declaring a variable won't work as HB_UNUSED - * is unusable on some platforms and unused types are less likely - * to generate a warning than unused variables. */ static_assert (!hb_is_signed::value, ""); /* The casts below are important as if T is smaller than int, diff --git a/src/hb-graphite2.cc b/src/hb-graphite2.cc index a1c602c..fdb5453 100644 --- a/src/hb-graphite2.cc +++ b/src/hb-graphite2.cc @@ -225,7 +225,7 @@ struct hb_graphite2_cluster_t { unsigned int base_glyph; unsigned int num_glyphs; unsigned int cluster; - float advance; + unsigned int advance; }; hb_bool_t @@ -253,7 +253,7 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, gr_segment *seg = nullptr; const gr_slot *is; unsigned int ci = 0, ic = 0; - float curradvx = 0., curradvy = 0.; + unsigned int curradvx = 0, curradvy = 0; unsigned int scratch_size; hb_buffer_t::scratch_buffer_t *scratch = buffer->get_scratch_buffer (&scratch_size); @@ -324,11 +324,15 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, hb_codepoint_t *pg = gids; clusters[0].cluster = buffer->info[0].cluster; - float curradv = 0.; + unsigned int upem = hb_face_get_upem (face); + float xscale = (float) font->x_scale / upem; + float yscale = (float) font->y_scale / upem; + yscale *= yscale / xscale; + unsigned int curradv = 0; if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) { - curradv = gr_slot_origin_X(gr_seg_first_slot(seg)); - clusters[0].advance = gr_seg_advance_X(seg) - curradv; + curradv = gr_slot_origin_X(gr_seg_first_slot(seg)) * xscale; + clusters[0].advance = gr_seg_advance_X(seg) * xscale - curradv; } else clusters[0].advance = 0; @@ -355,14 +359,17 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, c->base_glyph = ic; c->num_glyphs = 0; if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) - c->advance = curradv - gr_slot_origin_X(is); + { + c->advance = curradv - gr_slot_origin_X(is) * xscale; + curradv -= c->advance; + } else { c->advance = 0; - clusters[ci].advance += gr_slot_origin_X(is) - curradv; + clusters[ci].advance += gr_slot_origin_X(is) * xscale - curradv; + curradv += clusters[ci].advance; } ci++; - curradv = gr_slot_origin_X(is); } clusters[ci].num_glyphs++; @@ -373,7 +380,7 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, if (HB_DIRECTION_IS_BACKWARD(buffer->props.direction)) clusters[ci].advance += curradv; else - clusters[ci].advance += gr_seg_advance_X(seg) - curradv; + clusters[ci].advance += gr_seg_advance_X(seg) * xscale - curradv; ci++; for (unsigned int i = 0; i < ci; ++i) @@ -388,10 +395,6 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, } buffer->len = glyph_count; - unsigned int upem = hb_face_get_upem (face); - float xscale = (float) font->x_scale / upem; - float yscale = (float) font->y_scale / upem; - yscale *= yscale / xscale; /* Positioning. */ unsigned int currclus = (unsigned int) -1; const hb_glyph_info_t *info = buffer->info; @@ -404,7 +407,7 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, pPos->x_offset = gr_slot_origin_X (is) * xscale - curradvx; pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy; if (info->cluster != currclus) { - pPos->x_advance = info->var1.i32 * xscale; + pPos->x_advance = info->var1.i32; curradvx += pPos->x_advance; currclus = info->cluster; } else @@ -421,7 +424,7 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, { if (info->cluster != currclus) { - pPos->x_advance = info->var1.i32 * xscale; + pPos->x_advance = info->var1.i32; curradvx -= pPos->x_advance; currclus = info->cluster; } else @@ -429,7 +432,7 @@ _hb_graphite2_shape (hb_shape_plan_t *shape_plan HB_UNUSED, pPos->y_advance = gr_slot_advance_Y (is, grface, nullptr) * yscale; curradvy -= pPos->y_advance; - pPos->x_offset = (gr_slot_origin_X (is) - info->var1.i32) * xscale - curradvx + pPos->x_advance; + pPos->x_offset = gr_slot_origin_X (is) * xscale - info->var1.i32 - curradvx + pPos->x_advance; pPos->y_offset = gr_slot_origin_Y (is) * yscale - curradvy; } hb_buffer_reverse_clusters (buffer); diff --git a/src/hb-machinery.hh b/src/hb-machinery.hh index b22c238..ffa423d 100644 --- a/src/hb-machinery.hh +++ b/src/hb-machinery.hh @@ -326,27 +326,29 @@ struct hb_sanitize_context_t : } bool check_range (const void *base, - unsigned int len) const + unsigned int len) const { const char *p = (const char *) base; - bool ok = this->start <= p && - p <= this->end && - (unsigned int) (this->end - p) >= len && - this->max_ops-- > 0; + bool ok = !len || + (this->start <= p && + p <= this->end && + (unsigned int) (this->end - p) >= len && + this->max_ops-- > 0); DEBUG_MSG_LEVEL (SANITIZE, p, this->debug_depth+1, 0, - "check_range [%p..%p] (%d bytes) in [%p..%p] -> %s", - p, p + len, len, - this->start, this->end, - ok ? "OK" : "OUT-OF-RANGE"); + "check_range [%p..%p]" + " (%d bytes) in [%p..%p] -> %s", + p, p + len, len, + this->start, this->end, + ok ? "OK" : "OUT-OF-RANGE"); return likely (ok); } template bool check_range (const T *base, - unsigned int a, - unsigned int b) const + unsigned int a, + unsigned int b) const { return !hb_unsigned_mul_overflows (a, b) && this->check_range (base, a * b); @@ -354,9 +356,9 @@ struct hb_sanitize_context_t : template bool check_range (const T *base, - unsigned int a, - unsigned int b, - unsigned int c) const + unsigned int a, + unsigned int b, + unsigned int c) const { return !hb_unsigned_mul_overflows (a, b) && this->check_range (base, a * b, c); diff --git a/src/hb-map.hh b/src/hb-map.hh index 02d5406..f7156e5 100644 --- a/src/hb-map.hh +++ b/src/hb-map.hh @@ -170,7 +170,7 @@ struct hb_map_t void clear () { - memset (items, 0xFF, ((size_t) mask + 1) * sizeof (item_t)); + if (items) memset (items, 0xFF, ((size_t) mask + 1) * sizeof (item_t)); population = occupancy = 0; } diff --git a/src/hb-null.hh b/src/hb-null.hh index 204c2fe..baddd99 100644 --- a/src/hb-null.hh +++ b/src/hb-null.hh @@ -105,15 +105,18 @@ hb_vector_size_impl_t const _hb_NullPool[(HB_NULL_POOL_SIZE + sizeof (hb_vector_ /* Generic nul-content Null objects. */ template -static inline Type const & Null () { - static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE."); - return *reinterpret_cast (_hb_NullPool); -} +struct Null { + static Type const & get_null () + { + static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE."); + return *reinterpret_cast (_hb_NullPool); + } +}; template struct NullHelper { typedef typename hb_remove_const (typename hb_remove_reference (QType)) Type; - static const Type & get_null () { return Null (); } + static const Type & get_null () { return Null::get_null (); } }; #define Null(Type) NullHelper::get_null () @@ -122,9 +125,11 @@ struct NullHelper } /* Close namespace. */ \ extern HB_INTERNAL const unsigned char _hb_Null_##Namespace##_##Type[Namespace::Type::null_size]; \ template <> \ - /*static*/ inline const Namespace::Type& Null () { \ - return *reinterpret_cast (_hb_Null_##Namespace##_##Type); \ - } \ + struct Null { \ + static Namespace::Type const & get_null () { \ + return *reinterpret_cast (_hb_Null_##Namespace##_##Type); \ + } \ + }; \ namespace Namespace { \ static_assert (true, "Just so we take semicolon after.") #define DEFINE_NULL_NAMESPACE_BYTES(Namespace, Type) \ @@ -134,10 +139,12 @@ struct NullHelper #define DECLARE_NULL_INSTANCE(Type) \ extern HB_INTERNAL const Type _hb_Null_##Type; \ template <> \ - /*static*/ inline const Type& Null () { \ - return _hb_Null_##Type; \ - } \ -static_assert (true, "Just so we take semicolon after.") + struct Null { \ + static Type const & get_null () { \ + return _hb_Null_##Type; \ + } \ + }; \ + static_assert (true, "Just so we take semicolon after.") #define DEFINE_NULL_INSTANCE(Type) \ const Type _hb_Null_##Type diff --git a/src/hb-ot-cff-common.hh b/src/hb-ot-cff-common.hh index c645953..61e615c 100644 --- a/src/hb-ot-cff-common.hh +++ b/src/hb-ot-cff-common.hh @@ -525,6 +525,7 @@ struct FDArray : CFFIndexOf for (unsigned i = 0; i < fontDicts.length; i++) if (fdmap.includes (i)) { + if (unlikely (fid >= fdCount)) return_trace (false); CFFIndexOf::set_offset_at (fid++, offset); offset += FontDict::calculate_serialized_size (fontDicts[i], opszr); } diff --git a/src/hb-ot-cff1-table.hh b/src/hb-ot-cff1-table.hh index 1effdf0..9d39242 100644 --- a/src/hb-ot-cff1-table.hh +++ b/src/hb-ot-cff1-table.hh @@ -59,14 +59,14 @@ struct Encoding0 { bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && codes[nCodes - 1].sanitize (c)); + return_trace (codes.sanitize (c)); } hb_codepoint_t get_code (hb_codepoint_t glyph) const { assert (glyph > 0); glyph--; - if (glyph < nCodes) + if (glyph < nCodes ()) { return (hb_codepoint_t)codes[glyph]; } @@ -74,13 +74,12 @@ struct Encoding0 { return CFF_UNDEF_CODE; } - unsigned int get_size () const - { return HBUINT8::static_size * (nCodes + 1); } + HBUINT8 &nCodes () { return codes.len; } + HBUINT8 nCodes () const { return codes.len; } - HBUINT8 nCodes; - HBUINT8 codes[VAR]; + ArrayOf codes; - DEFINE_SIZE_ARRAY(1, codes); + DEFINE_SIZE_ARRAY_SIZED (1, codes); }; struct Encoding1_Range { @@ -97,20 +96,17 @@ struct Encoding1_Range { }; struct Encoding1 { - unsigned int get_size () const - { return HBUINT8::static_size + Encoding1_Range::static_size * nRanges; } - bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && ((nRanges == 0) || (ranges[nRanges - 1]).sanitize (c))); + return_trace (ranges.sanitize (c)); } hb_codepoint_t get_code (hb_codepoint_t glyph) const { assert (glyph > 0); glyph--; - for (unsigned int i = 0; i < nRanges; i++) + for (unsigned int i = 0; i < nRanges (); i++) { if (glyph <= ranges[i].nLeft) { @@ -121,10 +117,12 @@ struct Encoding1 { return CFF_UNDEF_CODE; } - HBUINT8 nRanges; - Encoding1_Range ranges[VAR]; + HBUINT8 &nRanges () { return ranges.len; } + HBUINT8 nRanges () const { return ranges.len; } - DEFINE_SIZE_ARRAY (1, ranges); + ArrayOf ranges; + + DEFINE_SIZE_ARRAY_SIZED (1, ranges); }; struct SuppEncoding { @@ -144,23 +142,22 @@ struct CFF1SuppEncData { bool sanitize (hb_sanitize_context_t *c) const { TRACE_SANITIZE (this); - return_trace (c->check_struct (this) && ((nSups == 0) || (supps[nSups - 1]).sanitize (c))); + return_trace (supps.sanitize (c)); } void get_codes (hb_codepoint_t sid, hb_vector_t &codes) const { - for (unsigned int i = 0; i < nSups; i++) + for (unsigned int i = 0; i < nSups (); i++) if (sid == supps[i].glyph) codes.push (supps[i].code); } - unsigned int get_size () const - { return HBUINT8::static_size + SuppEncoding::static_size * nSups; } + HBUINT8 &nSups () { return supps.len; } + HBUINT8 nSups () const { return supps.len; } - HBUINT8 nSups; - SuppEncoding supps[VAR]; + ArrayOf supps; - DEFINE_SIZE_ARRAY (1, supps); + DEFINE_SIZE_ARRAY_SIZED (1, supps); }; struct Encoding { @@ -204,7 +201,7 @@ struct Encoding { { Encoding0 *fmt0 = c->allocate_size (Encoding0::min_size + HBUINT8::static_size * enc_count); if (unlikely (fmt0 == nullptr)) return_trace (false); - fmt0->nCodes.set (enc_count); + fmt0->nCodes ().set (enc_count); unsigned int glyph = 0; for (unsigned int i = 0; i < code_ranges.length; i++) { @@ -219,7 +216,7 @@ struct Encoding { { Encoding1 *fmt1 = c->allocate_size (Encoding1::min_size + Encoding1_Range::static_size * code_ranges.length); if (unlikely (fmt1 == nullptr)) return_trace (false); - fmt1->nRanges.set (code_ranges.length); + fmt1->nRanges ().set (code_ranges.length); for (unsigned int i = 0; i < code_ranges.length; i++) { if (unlikely (!((code_ranges[i].code <= 0xFF) && (code_ranges[i].glyph <= 0xFF)))) @@ -232,7 +229,7 @@ struct Encoding { { CFF1SuppEncData *suppData = c->allocate_size (CFF1SuppEncData::min_size + SuppEncoding::static_size * supp_codes.length); if (unlikely (suppData == nullptr)) return_trace (false); - suppData->nSups.set (supp_codes.length); + suppData->nSups ().set (supp_codes.length); for (unsigned int i = 0; i < supp_codes.length; i++) { suppData->supps[i].code.set (supp_codes[i].code); @@ -291,9 +288,9 @@ struct Encoding { const CFF1SuppEncData &suppEncData () const { if ((format & 0x7F) == 0) - return StructAfter (u.format0.codes[u.format0.nCodes-1]); + return StructAfter (u.format0.codes[u.format0.nCodes ()-1]); else - return StructAfter (u.format1.ranges[u.format1.nRanges-1]); + return StructAfter (u.format1.ranges[u.format1.nRanges ()-1]); } public: diff --git a/src/hb-ot-font.cc b/src/hb-ot-font.cc index 20b09df..94a9fdc 100644 --- a/src/hb-ot-font.cc +++ b/src/hb-ot-font.cc @@ -52,7 +52,7 @@ * @short_description: OpenType font implementation * @include: hb-ot.h * - * Functions for using OpenType fonts with hb_shape(). Not that fonts returned + * Functions for using OpenType fonts with hb_shape(). Note that fonts returned * by hb_font_create() default to using these functions, so most clients would * never need to call these functions directly. **/ diff --git a/src/hb-ot-hdmx-table.hh b/src/hb-ot-hdmx-table.hh index 95229c5..953ccab 100644 --- a/src/hb-ot-hdmx-table.hh +++ b/src/hb-ot-hdmx-table.hh @@ -57,16 +57,19 @@ struct DeviceRecord } unsigned int len () const - { return this->subset_plan->glyphs.length; } + { return this->subset_plan->num_output_glyphs (); } - const HBUINT8* operator [] (unsigned int i) const + const HBUINT8* operator [] (unsigned int new_gid) const { - if (unlikely (i >= len ())) return nullptr; - hb_codepoint_t gid = this->subset_plan->glyphs [i]; + if (unlikely (new_gid >= len ())) return nullptr; - if (gid >= sizeDeviceRecord - DeviceRecord::min_size) + hb_codepoint_t old_gid; + if (!this->subset_plan->old_gid_for_new_gid (new_gid, &old_gid)) + return &Null(HBUINT8); + + if (old_gid >= sizeDeviceRecord - DeviceRecord::min_size) return nullptr; - return &(this->source_device_record->widthsZ[gid]); + return &(this->source_device_record->widthsZ[old_gid]); } }; @@ -140,7 +143,7 @@ struct hdmx this->version.set (source_hdmx->version); this->numRecords.set (source_hdmx->numRecords); - this->sizeDeviceRecord.set (DeviceRecord::get_size (plan->glyphs.length)); + this->sizeDeviceRecord.set (DeviceRecord::get_size (plan->num_output_glyphs ())); for (unsigned int i = 0; i < source_hdmx->numRecords; i++) { @@ -156,7 +159,7 @@ struct hdmx static size_t get_subsetted_size (const hdmx *source_hdmx, hb_subset_plan_t *plan) { - return min_size + source_hdmx->numRecords * DeviceRecord::get_size (plan->glyphs.length); + return min_size + source_hdmx->numRecords * DeviceRecord::get_size (plan->num_output_glyphs ()); } bool subset (hb_subset_plan_t *plan) const diff --git a/src/hb-ot-hmtx-table.hh b/src/hb-ot-hmtx-table.hh index a95a56f..9ef1f57 100644 --- a/src/hb-ot-hmtx-table.hh +++ b/src/hb-ot-hmtx-table.hh @@ -66,7 +66,7 @@ struct hmtxvmtx bool subset_update_header (hb_subset_plan_t *plan, - unsigned int num_hmetrics) const + unsigned int num_hmetrics) const { hb_blob_t *src_blob = hb_sanitize_context_t ().reference_table (plan->source, H::tableTag); hb_blob_t *dest_blob = hb_blob_copy_writable_or_fail (src_blob); @@ -93,75 +93,49 @@ struct hmtxvmtx /* All the trailing glyphs with the same advance can use one LongMetric * and just keep LSB */ - hb_vector_t &gids = plan->glyphs; - unsigned int num_advances = gids.length; - unsigned int last_advance = _mtx.get_advance (gids[num_advances - 1]); - while (num_advances > 1 && - last_advance == _mtx.get_advance (gids[num_advances - 2])) - { - num_advances--; - } + unsigned int num_output_glyphs = plan->num_output_glyphs (); + unsigned int num_advances = _mtx.num_advances_for_subset (plan); /* alloc the new table */ size_t dest_sz = num_advances * 4 - + (gids.length - num_advances) * 2; + + (num_output_glyphs - num_advances) * 2; void *dest = (void *) malloc (dest_sz); if (unlikely (!dest)) { return false; } DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in src has %d advances, %d lsbs", HB_UNTAG(T::tableTag), _mtx.num_advances, _mtx.num_metrics - _mtx.num_advances); - DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in dest has %d advances, %d lsbs, %u bytes", HB_UNTAG(T::tableTag), num_advances, gids.length - num_advances, (unsigned int) dest_sz); + DEBUG_MSG(SUBSET, nullptr, "%c%c%c%c in dest has %d advances, %d lsbs, %u bytes", + HB_UNTAG(T::tableTag), num_advances, num_output_glyphs - num_advances, (unsigned int) dest_sz); - const char *source_table = hb_blob_get_data (_mtx.table.get_blob (), nullptr); // Copy everything over - LongMetric * old_metrics = (LongMetric *) source_table; - FWORD *lsbs = (FWORD *) (old_metrics + _mtx.num_advances); char * dest_pos = (char *) dest; bool failed = false; - for (unsigned int i = 0; i < gids.length; i++) + for (unsigned int i = 0; i < num_output_glyphs; i++) { - /* the last metric or the one for gids[i] */ - LongMetric *src_metric = old_metrics + MIN ((hb_codepoint_t) _mtx.num_advances - 1, gids[i]); - if (gids[i] < _mtx.num_advances) + unsigned int side_bearing = 0; + unsigned int advance = 0; + hb_codepoint_t old_gid; + if (plan->old_gid_for_new_gid (i, &old_gid)) + { + // Glyph is not an empty glyph so copy advance and side bearing + // from the input font. + side_bearing = _mtx.get_side_bearing (old_gid); + advance = _mtx.get_advance (old_gid); + } + + bool has_advance = i < num_advances; + if (has_advance) { - /* src is a LongMetric */ - if (i < num_advances) - { - /* dest is a LongMetric, copy it */ - *((LongMetric *) dest_pos) = *src_metric; - } - else - { - /* dest just sb */ - *((FWORD *) dest_pos) = src_metric->sb; - } + ((LongMetric *) dest_pos)->advance.set (advance); + ((LongMetric *) dest_pos)->sb.set (side_bearing); } else { - if (gids[i] >= _mtx.num_metrics) - { - DEBUG_MSG(SUBSET, nullptr, "gid %d is >= number of source metrics %d", - gids[i], _mtx.num_metrics); - failed = true; - break; - } - FWORD src_sb = *(lsbs + gids[i] - _mtx.num_advances); - if (i < num_advances) - { - /* dest needs a full LongMetric */ - LongMetric *metric = (LongMetric *)dest_pos; - metric->advance = src_metric->advance; - metric->sb = src_sb; - } - else - { - /* dest just needs an sb */ - *((FWORD *) dest_pos) = src_sb; - } + ((FWORD *) dest_pos)->set (side_bearing); } - dest_pos += (i < num_advances ? 4 : 2); + dest_pos += (has_advance ? 4 : 2); } _mtx.fini (); @@ -187,7 +161,7 @@ struct hmtxvmtx friend struct hmtxvmtx; void init (hb_face_t *face, - unsigned int default_advance_ = 0) + unsigned int default_advance_ = 0) { default_advance = default_advance_ ? default_advance_ : hb_face_get_upem (face); @@ -280,6 +254,32 @@ struct hmtxvmtx return advance; } + unsigned int num_advances_for_subset (const hb_subset_plan_t *plan) const + { + unsigned int num_advances = plan->num_output_glyphs (); + unsigned int last_advance = _advance_for_new_gid (plan, + num_advances - 1); + while (num_advances > 1 && + last_advance == _advance_for_new_gid (plan, + num_advances - 2)) + { + num_advances--; + } + + return num_advances; + } + + private: + unsigned int _advance_for_new_gid (const hb_subset_plan_t *plan, + hb_codepoint_t new_gid) const + { + hb_codepoint_t old_gid; + if (!plan->old_gid_for_new_gid (new_gid, &old_gid)) + return 0; + + return get_advance (old_gid); + } + public: bool has_font_extents; int ascender; diff --git a/src/hb-ot-layout-common.hh b/src/hb-ot-layout-common.hh index 39a8bba..9b17225 100644 --- a/src/hb-ot-layout-common.hh +++ b/src/hb-ot-layout-common.hh @@ -1222,7 +1222,7 @@ struct ClassDefFormat1 bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); - const hb_set_t &glyphset = *c->plan->glyphset; + const hb_set_t &glyphset = *c->plan->glyphset (); const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t glyphs; hb_vector_t klasses; @@ -1369,7 +1369,7 @@ struct ClassDefFormat2 bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); - const hb_set_t &glyphset = *c->plan->glyphset; + const hb_set_t &glyphset = *c->plan->glyphset (); const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t glyphs; hb_vector_t klasses; diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 33b8f0e..cc10634 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -105,7 +105,7 @@ struct SingleSubstFormat1 bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); - const hb_set_t &glyphset = *c->plan->glyphset; + const hb_set_t &glyphset = *c->plan->glyphset (); const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t from; hb_vector_t to; @@ -202,7 +202,7 @@ struct SingleSubstFormat2 bool subset (hb_subset_context_t *c) const { TRACE_SUBSET (this); - const hb_set_t &glyphset = *c->plan->glyphset; + const hb_set_t &glyphset = *c->plan->glyphset (); const hb_map_t &glyph_map = *c->plan->glyph_map; hb_vector_t from; hb_vector_t to; diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc index d32be04..1365a3e 100644 --- a/src/hb-ot-layout.cc +++ b/src/hb-ot-layout.cc @@ -958,19 +958,6 @@ hb_ot_layout_lookup_would_substitute (hb_face_t *face, unsigned int glyphs_length, hb_bool_t zero_context) { - return hb_ot_layout_lookup_would_substitute_fast (face, - lookup_index, - glyphs, glyphs_length, - zero_context); -} - -bool -hb_ot_layout_lookup_would_substitute_fast (hb_face_t *face, - unsigned int lookup_index, - const hb_codepoint_t *glyphs, - unsigned int glyphs_length, - bool zero_context) -{ if (unlikely (lookup_index >= face->table.GSUB->lookup_count)) return false; OT::hb_would_apply_context_t c (face, glyphs, glyphs_length, (bool) zero_context); diff --git a/src/hb-ot-layout.hh b/src/hb-ot-layout.hh index a00b940..be7ef02 100644 --- a/src/hb-ot-layout.hh +++ b/src/hb-ot-layout.hh @@ -96,13 +96,6 @@ HB_MARK_AS_FLAG_T (hb_ot_layout_glyph_props_flags_t); * GSUB/GPOS */ -HB_INTERNAL bool -hb_ot_layout_lookup_would_substitute_fast (hb_face_t *face, - unsigned int lookup_index, - const hb_codepoint_t *glyphs, - unsigned int glyphs_length, - bool zero_context); - /* Should be called before all the substitute_lookup's are done. */ HB_INTERNAL void @@ -215,7 +208,7 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer) unsigned int gen_cat = (unsigned int) unicode->general_category (u); unsigned int props = gen_cat; - if (u >= 0x80) + if (u >= 0x80u) { buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_NON_ASCII; @@ -232,10 +225,10 @@ _hb_glyph_info_set_unicode_props (hb_glyph_info_t *info, hb_buffer_t *buffer) * FVSes are GC=Mn, we have use a separate bit to remember them. * Fixes: * https://github.com/harfbuzz/harfbuzz/issues/234 */ - else if (unlikely (hb_in_range (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN; + else if (unlikely (hb_in_range (u, 0x180Bu, 0x180Du))) props |= UPROPS_MASK_HIDDEN; /* TAG characters need similar treatment. Fixes: * https://github.com/harfbuzz/harfbuzz/issues/463 */ - else if (unlikely (hb_in_range (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN; + else if (unlikely (hb_in_range (u, 0xE0020u, 0xE007Fu))) props |= UPROPS_MASK_HIDDEN; /* COMBINING GRAPHEME JOINER should not be skipped; at least some times. * https://github.com/harfbuzz/harfbuzz/issues/554 */ else if (unlikely (u == 0x034Fu)) diff --git a/src/hb-ot-maxp-table.hh b/src/hb-ot-maxp-table.hh index e4b67ab..10bd592 100644 --- a/src/hb-ot-maxp-table.hh +++ b/src/hb-ot-maxp-table.hh @@ -105,7 +105,7 @@ struct maxp } maxp *maxp_prime = (maxp *) hb_blob_get_data (maxp_prime_blob, nullptr); - maxp_prime->set_num_glyphs (plan->glyphs.length); + maxp_prime->set_num_glyphs (plan->num_output_glyphs ()); if (plan->drop_hints) drop_hint_fields (plan, maxp_prime); diff --git a/src/hb-ot-shape-complex-arabic-table.hh b/src/hb-ot-shape-complex-arabic-table.hh index 9459aad..719fabd 100644 --- a/src/hb-ot-shape-complex-arabic-table.hh +++ b/src/hb-ot-shape-complex-arabic-table.hh @@ -6,10 +6,10 @@ * * on files with these headers: * - * # ArabicShaping-11.0.0.txt - * # Date: 2018-02-21, 14:50:00 GMT [KW, RP] - * # Blocks-11.0.0.txt - * # Date: 2017-10-16, 24:39:00 GMT [KW] + * # ArabicShaping-12.0.0.txt + * # Date: 2018-09-22, 23:54:00 GMT [KW, RP] + * # Blocks-12.0.0.txt + * # Date: 2018-07-30, 19:40:00 GMT [KW] * UnicodeData.txt does not have a header. */ @@ -152,9 +152,9 @@ static const uint8_t joining_table[] = /* 1E900 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D, /* 1E920 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D, - /* 1E940 */ D,D,D,D, + /* 1E940 */ D,D,D,D,X,X,X,X,X,X,X,T, -}; /* Table items: 1304; occupancy: 56% */ +}; /* Table items: 1312; occupancy: 56% */ static unsigned int @@ -190,7 +190,7 @@ joining_type (hb_codepoint_t u) break; case 0x1Eu: - if (hb_in_range (u, 0x1E900u, 0x1E943u)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u]; + if (hb_in_range (u, 0x1E900u, 0x1E94Bu)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u]; break; default: diff --git a/src/hb-ot-shape-complex-arabic.cc b/src/hb-ot-shape-complex-arabic.cc index 50a5213..bdebde0 100644 --- a/src/hb-ot-shape-complex-arabic.cc +++ b/src/hb-ot-shape-complex-arabic.cc @@ -467,7 +467,7 @@ apply_stch (const hb_ot_shape_plan_t *plan HB_UNUSED, unsigned int j = new_len; for (unsigned int i = count; i; i--) { - if (!hb_in_range (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING)) + if (!hb_in_range (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING)) { if (step == CUT) { @@ -488,7 +488,7 @@ apply_stch (const hb_ot_shape_plan_t *plan HB_UNUSED, unsigned int end = i; while (i && - hb_in_range (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING)) + hb_in_range (info[i - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING)) { i--; hb_position_t width = font->get_glyph_h_advance (info[i].codepoint); @@ -506,7 +506,7 @@ apply_stch (const hb_ot_shape_plan_t *plan HB_UNUSED, unsigned int start = i; unsigned int context = i; while (context && - !hb_in_range (info[context - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING) && + !hb_in_range (info[context - 1].arabic_shaping_action(), STCH_FIXED, STCH_REPEATING) && (_hb_glyph_info_is_default_ignorable (&info[context - 1]) || HB_ARABIC_GENERAL_CATEGORY_IS_WORD (_hb_glyph_info_get_general_category (&info[context - 1])))) { diff --git a/src/hb-ot-shape-complex-hangul.cc b/src/hb-ot-shape-complex-hangul.cc index e143867..f084f6a 100644 --- a/src/hb-ot-shape-complex-hangul.cc +++ b/src/hb-ot-shape-complex-hangul.cc @@ -214,7 +214,8 @@ preprocess_text_hangul (const hb_ot_shape_plan_t *plan HB_UNUSED, else { /* No valid syllable as base for tone mark; try to insert dotted circle. */ - if (font->has_glyph (0x25CCu)) + if (!(buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE) && + font->has_glyph (0x25CCu)) { hb_codepoint_t chars[2]; if (!is_zero_width_char (font, u)) { diff --git a/src/hb-ot-shape-complex-indic-machine.hh b/src/hb-ot-shape-complex-indic-machine.hh index e2ecfb8..08b90e9 100644 --- a/src/hb-ot-shape-complex-indic-machine.hh +++ b/src/hb-ot-shape-complex-indic-machine.hh @@ -51,40 +51,40 @@ static const unsigned char _indic_syllable_machine_trans_keys[] = { 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 8u, 4u, 13u, 4u, 13u, - 5u, 8u, 8u, 8u, 1u, 19u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, - 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, - 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, + 5u, 8u, 8u, 8u, 1u, 19u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, + 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, + 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, - 3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, - 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, - 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, - 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, - 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, - 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, - 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, - 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u, - 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, - 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, - 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 10u, 3u, 10u, 4u, 10u, 1u, 16u, - 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, - 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, - 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, + 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, + 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, + 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, + 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, + 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, + 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, + 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, - 5u, 10u, 3u, 10u, 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, - 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, - 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 13u, - 3u, 10u, 4u, 8u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, - 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, - 4u, 10u, 1u, 16u, 3u, 13u, 3u, 10u, 4u, 10u, 5u, 10u, 5u, 10u, 5u, 10u, - 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, + 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, + 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, + 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 8u, 3u, 17u, 3u, 17u, + 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, + 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, + 4u, 17u, 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, + 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, + 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, + 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, + 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, + 1u, 16u, 1u, 16u, 4u, 13u, 3u, 17u, 4u, 8u, 3u, 17u, 3u, 17u, 4u, 17u, + 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, + 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, + 5u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 3u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 5u, 10u, 3u, 10u, - 4u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, - 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, - 3u, 10u, 3u, 13u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 10u, 1u, 16u, 3u, 13u, - 1u, 16u, 4u, 13u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, - 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, - 0 + 4u, 10u, 5u, 10u, 3u, 10u, 4u, 10u, 4u, 10u, 3u, 17u, 3u, 17u, 1u, 16u, + 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, + 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, + 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 1u, 17u, 4u, 13u, 5u, 10u, 10u, 10u, + 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 10u, 10u, + 10u, 10u, 10u, 10u, 5u, 10u, 1u, 16u, 0 }; static const char _indic_syllable_machine_key_spans[] = { @@ -105,39 +105,40 @@ static const char _indic_syllable_machine_key_spans[] = { 3, 1, 5, 1, 1, 5, 1, 1, 5, 1, 1, 5, 1, 1, 10, 5, 10, 5, 10, 5, 10, 5, 10, 10, - 4, 1, 19, 11, 8, 7, 16, 11, - 8, 7, 16, 11, 8, 7, 16, 11, - 8, 7, 16, 11, 8, 7, 6, 6, + 4, 1, 19, 15, 15, 14, 16, 15, + 15, 14, 16, 15, 15, 14, 16, 15, + 15, 14, 16, 15, 15, 14, 6, 6, 6, 1, 1, 1, 6, 8, 6, 8, 7, 6, 8, 7, 6, 8, 7, 6, - 8, 7, 8, 11, 16, 16, 16, 8, - 11, 16, 16, 16, 8, 11, 16, 16, - 16, 8, 11, 16, 16, 16, 8, 11, - 11, 8, 7, 16, 11, 8, 7, 16, - 11, 8, 7, 16, 11, 8, 7, 16, - 11, 8, 7, 6, 6, 6, 1, 1, - 1, 6, 8, 6, 8, 7, 6, 8, - 7, 6, 8, 7, 6, 8, 7, 8, - 11, 16, 16, 16, 8, 11, 16, 16, - 16, 8, 11, 16, 16, 16, 8, 11, - 16, 16, 16, 5, 8, 8, 7, 16, - 11, 8, 7, 16, 11, 8, 7, 16, - 11, 8, 7, 16, 11, 8, 7, 6, - 6, 6, 1, 1, 1, 6, 8, 6, + 8, 7, 7, 15, 15, 16, 16, 16, + 15, 15, 16, 16, 16, 15, 15, 16, + 16, 16, 15, 15, 16, 16, 16, 15, + 15, 15, 15, 14, 16, 15, 15, 14, + 16, 15, 15, 14, 16, 15, 15, 14, + 16, 15, 15, 14, 6, 6, 6, 1, + 1, 1, 6, 8, 6, 8, 7, 6, 8, 7, 6, 8, 7, 6, 8, 7, - 6, 8, 7, 8, 11, 16, 16, 16, - 8, 11, 16, 16, 16, 8, 11, 16, - 16, 16, 8, 11, 16, 16, 16, 10, - 8, 5, 11, 8, 7, 16, 11, 8, - 7, 16, 11, 8, 7, 16, 11, 8, - 7, 16, 11, 8, 7, 6, 6, 6, - 1, 1, 1, 6, 8, 6, 8, 7, + 7, 15, 15, 16, 16, 16, 15, 15, + 16, 16, 16, 15, 15, 16, 16, 16, + 15, 15, 16, 16, 16, 5, 15, 15, + 14, 16, 15, 15, 14, 16, 15, 15, + 14, 16, 15, 15, 14, 16, 15, 15, + 14, 6, 6, 6, 1, 1, 1, 6, + 8, 6, 8, 7, 6, 8, 7, 6, + 8, 7, 6, 8, 7, 7, 15, 15, + 16, 16, 16, 15, 15, 16, 16, 16, + 15, 15, 16, 16, 16, 15, 15, 16, + 16, 16, 10, 15, 5, 15, 15, 14, + 16, 15, 15, 14, 16, 15, 15, 14, + 16, 15, 15, 14, 16, 15, 15, 14, + 6, 6, 6, 1, 1, 1, 6, 8, 6, 8, 7, 6, 8, 7, 6, 8, - 7, 8, 11, 16, 16, 16, 8, 11, - 16, 16, 16, 8, 11, 16, 16, 16, - 8, 11, 16, 16, 16, 8, 16, 11, - 16, 10, 6, 1, 1, 1, 6, 16, - 8, 6, 6, 1, 1, 1, 6, 16 + 7, 6, 8, 7, 7, 15, 15, 16, + 16, 16, 15, 15, 16, 16, 16, 15, + 15, 16, 16, 16, 15, 15, 16, 16, + 16, 15, 17, 15, 17, 10, 6, 1, + 1, 1, 6, 16, 8, 6, 6, 1, + 1, 1, 6, 16 }; static const short _indic_syllable_machine_index_offsets[] = { @@ -158,39 +159,40 @@ static const short _indic_syllable_machine_index_offsets[] = { 528, 532, 534, 540, 542, 544, 550, 552, 554, 560, 562, 564, 570, 572, 574, 585, 591, 602, 608, 619, 625, 636, 642, 653, - 664, 669, 671, 691, 703, 712, 720, 737, - 749, 758, 766, 783, 795, 804, 812, 829, - 841, 850, 858, 875, 887, 896, 904, 911, - 918, 925, 927, 929, 931, 938, 947, 954, - 963, 971, 978, 987, 995, 1002, 1011, 1019, - 1026, 1035, 1043, 1052, 1064, 1081, 1098, 1115, - 1124, 1136, 1153, 1170, 1187, 1196, 1208, 1225, - 1242, 1259, 1268, 1280, 1297, 1314, 1331, 1340, - 1352, 1364, 1373, 1381, 1398, 1410, 1419, 1427, - 1444, 1456, 1465, 1473, 1490, 1502, 1511, 1519, - 1536, 1548, 1557, 1565, 1572, 1579, 1586, 1588, - 1590, 1592, 1599, 1608, 1615, 1624, 1632, 1639, - 1648, 1656, 1663, 1672, 1680, 1687, 1696, 1704, - 1713, 1725, 1742, 1759, 1776, 1785, 1797, 1814, - 1831, 1848, 1857, 1869, 1886, 1903, 1920, 1929, - 1941, 1958, 1975, 1992, 1998, 2007, 2016, 2024, - 2041, 2053, 2062, 2070, 2087, 2099, 2108, 2116, - 2133, 2145, 2154, 2162, 2179, 2191, 2200, 2208, - 2215, 2222, 2229, 2231, 2233, 2235, 2242, 2251, - 2258, 2267, 2275, 2282, 2291, 2299, 2306, 2315, - 2323, 2330, 2339, 2347, 2356, 2368, 2385, 2402, - 2419, 2428, 2440, 2457, 2474, 2491, 2500, 2512, - 2529, 2546, 2563, 2572, 2584, 2601, 2618, 2635, - 2646, 2655, 2661, 2673, 2682, 2690, 2707, 2719, - 2728, 2736, 2753, 2765, 2774, 2782, 2799, 2811, - 2820, 2828, 2845, 2857, 2866, 2874, 2881, 2888, - 2895, 2897, 2899, 2901, 2908, 2917, 2924, 2933, - 2941, 2948, 2957, 2965, 2972, 2981, 2989, 2996, - 3005, 3013, 3022, 3034, 3051, 3068, 3085, 3094, - 3106, 3123, 3140, 3157, 3166, 3178, 3195, 3212, - 3229, 3238, 3250, 3267, 3284, 3301, 3310, 3327, - 3339, 3356, 3367, 3374, 3376, 3378, 3380, 3387, - 3404, 3413, 3420, 3427, 3429, 3431, 3433, 3440 + 664, 669, 671, 691, 707, 723, 738, 755, + 771, 787, 802, 819, 835, 851, 866, 883, + 899, 915, 930, 947, 963, 979, 994, 1001, + 1008, 1015, 1017, 1019, 1021, 1028, 1037, 1044, + 1053, 1061, 1068, 1077, 1085, 1092, 1101, 1109, + 1116, 1125, 1133, 1141, 1157, 1173, 1190, 1207, + 1224, 1240, 1256, 1273, 1290, 1307, 1323, 1339, + 1356, 1373, 1390, 1406, 1422, 1439, 1456, 1473, + 1489, 1505, 1521, 1537, 1552, 1569, 1585, 1601, + 1616, 1633, 1649, 1665, 1680, 1697, 1713, 1729, + 1744, 1761, 1777, 1793, 1808, 1815, 1822, 1829, + 1831, 1833, 1835, 1842, 1851, 1858, 1867, 1875, + 1882, 1891, 1899, 1906, 1915, 1923, 1930, 1939, + 1947, 1955, 1971, 1987, 2004, 2021, 2038, 2054, + 2070, 2087, 2104, 2121, 2137, 2153, 2170, 2187, + 2204, 2220, 2236, 2253, 2270, 2287, 2293, 2309, + 2325, 2340, 2357, 2373, 2389, 2404, 2421, 2437, + 2453, 2468, 2485, 2501, 2517, 2532, 2549, 2565, + 2581, 2596, 2603, 2610, 2617, 2619, 2621, 2623, + 2630, 2639, 2646, 2655, 2663, 2670, 2679, 2687, + 2694, 2703, 2711, 2718, 2727, 2735, 2743, 2759, + 2775, 2792, 2809, 2826, 2842, 2858, 2875, 2892, + 2909, 2925, 2941, 2958, 2975, 2992, 3008, 3024, + 3041, 3058, 3075, 3086, 3102, 3108, 3124, 3140, + 3155, 3172, 3188, 3204, 3219, 3236, 3252, 3268, + 3283, 3300, 3316, 3332, 3347, 3364, 3380, 3396, + 3411, 3418, 3425, 3432, 3434, 3436, 3438, 3445, + 3454, 3461, 3470, 3478, 3485, 3494, 3502, 3509, + 3518, 3526, 3533, 3542, 3550, 3558, 3574, 3590, + 3607, 3624, 3641, 3657, 3673, 3690, 3707, 3724, + 3740, 3756, 3773, 3790, 3807, 3823, 3839, 3856, + 3873, 3890, 3906, 3924, 3940, 3958, 3969, 3976, + 3978, 3980, 3982, 3989, 4006, 4015, 4022, 4029, + 4031, 4033, 4035, 4042 }; static const short _indic_syllable_machine_indicies[] = { @@ -279,410 +281,485 @@ static const short _indic_syllable_machine_indicies[] = { 76, 73, 72, 72, 72, 72, 144, 72, 78, 78, 76, 1, 0, 146, 145, 148, 149, 150, 151, 152, 153, 76, 73, 147, - 154, 155, 155, 144, 147, 156, 157, 147, - 158, 159, 147, 161, 162, 163, 164, 4, - 1, 160, 165, 160, 160, 35, 160, 166, - 162, 167, 167, 4, 1, 160, 165, 160, - 162, 167, 167, 4, 1, 160, 165, 160, - 168, 160, 160, 160, 17, 169, 160, 1, - 160, 165, 160, 160, 160, 160, 160, 168, - 160, 170, 171, 172, 173, 4, 1, 160, - 165, 160, 160, 33, 160, 174, 171, 175, - 175, 4, 1, 160, 165, 160, 171, 175, - 175, 4, 1, 160, 165, 160, 176, 160, - 160, 160, 17, 177, 160, 1, 160, 165, - 160, 160, 160, 160, 160, 176, 160, 178, - 179, 180, 181, 4, 1, 160, 165, 160, - 160, 31, 160, 182, 179, 183, 183, 4, - 1, 160, 165, 160, 179, 183, 183, 4, - 1, 160, 165, 160, 184, 160, 160, 160, - 17, 185, 160, 1, 160, 165, 160, 160, - 160, 160, 160, 184, 160, 186, 187, 188, - 189, 4, 1, 160, 165, 160, 160, 29, - 160, 190, 187, 191, 191, 4, 1, 160, - 165, 160, 187, 191, 191, 4, 1, 160, - 165, 160, 192, 160, 160, 160, 17, 193, - 160, 1, 160, 165, 160, 160, 160, 160, - 160, 192, 160, 194, 195, 196, 197, 4, - 1, 160, 165, 160, 160, 27, 160, 198, - 195, 199, 199, 4, 1, 160, 165, 160, - 195, 199, 199, 4, 1, 160, 165, 160, - 17, 200, 160, 1, 160, 165, 160, 201, - 201, 160, 1, 160, 165, 160, 202, 160, - 160, 203, 160, 165, 160, 165, 160, 204, - 160, 205, 160, 202, 160, 160, 160, 160, - 165, 160, 17, 160, 201, 201, 160, 1, - 160, 165, 160, 201, 200, 160, 1, 160, - 165, 160, 206, 26, 207, 208, 7, 1, - 160, 165, 160, 26, 207, 208, 7, 1, - 160, 165, 160, 207, 207, 7, 1, 160, - 165, 160, 209, 23, 210, 211, 10, 1, - 160, 165, 160, 23, 210, 211, 10, 1, - 160, 165, 160, 210, 210, 10, 1, 160, - 165, 160, 212, 20, 213, 214, 13, 1, - 160, 165, 160, 20, 213, 214, 13, 1, - 160, 165, 160, 213, 213, 13, 1, 160, - 165, 160, 215, 17, 201, 216, 160, 1, - 160, 165, 160, 17, 201, 216, 160, 1, - 160, 165, 160, 194, 195, 199, 199, 4, - 1, 160, 165, 160, 194, 195, 196, 199, - 4, 1, 160, 165, 160, 160, 27, 160, - 192, 160, 217, 160, 201, 201, 160, 1, - 160, 165, 160, 160, 160, 160, 160, 192, - 160, 192, 160, 160, 160, 201, 201, 160, - 1, 160, 165, 160, 160, 160, 160, 160, - 192, 160, 192, 160, 160, 160, 201, 193, - 160, 1, 160, 165, 160, 160, 160, 160, - 160, 192, 160, 186, 187, 191, 191, 4, - 1, 160, 165, 160, 186, 187, 188, 191, - 4, 1, 160, 165, 160, 160, 29, 160, - 184, 160, 218, 160, 201, 201, 160, 1, - 160, 165, 160, 160, 160, 160, 160, 184, - 160, 184, 160, 160, 160, 201, 201, 160, - 1, 160, 165, 160, 160, 160, 160, 160, - 184, 160, 184, 160, 160, 160, 201, 185, - 160, 1, 160, 165, 160, 160, 160, 160, - 160, 184, 160, 178, 179, 183, 183, 4, - 1, 160, 165, 160, 178, 179, 180, 183, - 4, 1, 160, 165, 160, 160, 31, 160, - 176, 160, 219, 160, 201, 201, 160, 1, - 160, 165, 160, 160, 160, 160, 160, 176, - 160, 176, 160, 160, 160, 201, 201, 160, - 1, 160, 165, 160, 160, 160, 160, 160, - 176, 160, 176, 160, 160, 160, 201, 177, - 160, 1, 160, 165, 160, 160, 160, 160, - 160, 176, 160, 170, 171, 175, 175, 4, - 1, 160, 165, 160, 170, 171, 172, 175, - 4, 1, 160, 165, 160, 160, 33, 160, - 168, 160, 220, 160, 201, 201, 160, 1, - 160, 165, 160, 160, 160, 160, 160, 168, - 160, 168, 160, 160, 160, 201, 201, 160, - 1, 160, 165, 160, 160, 160, 160, 160, - 168, 160, 168, 160, 160, 160, 201, 169, - 160, 1, 160, 165, 160, 160, 160, 160, - 160, 168, 160, 161, 162, 167, 167, 4, - 1, 160, 165, 160, 161, 162, 163, 167, - 4, 1, 160, 165, 160, 160, 35, 160, - 222, 223, 224, 225, 40, 37, 221, 226, - 221, 221, 71, 221, 227, 223, 228, 225, - 40, 37, 221, 226, 221, 223, 228, 225, - 40, 37, 221, 226, 221, 229, 221, 221, - 221, 53, 230, 221, 37, 221, 226, 221, - 221, 221, 221, 221, 229, 221, 231, 232, - 233, 234, 40, 37, 221, 226, 221, 221, - 69, 221, 235, 232, 236, 236, 40, 37, - 221, 226, 221, 232, 236, 236, 40, 37, - 221, 226, 221, 237, 221, 221, 221, 53, - 238, 221, 37, 221, 226, 221, 221, 221, - 221, 221, 237, 221, 239, 240, 241, 242, - 40, 37, 221, 226, 221, 221, 67, 221, - 243, 240, 244, 244, 40, 37, 221, 226, - 221, 240, 244, 244, 40, 37, 221, 226, - 221, 245, 221, 221, 221, 53, 246, 221, - 37, 221, 226, 221, 221, 221, 221, 221, - 245, 221, 247, 248, 249, 250, 40, 37, - 221, 226, 221, 221, 65, 221, 251, 248, - 252, 252, 40, 37, 221, 226, 221, 248, - 252, 252, 40, 37, 221, 226, 221, 253, - 221, 221, 221, 53, 254, 221, 37, 221, - 226, 221, 221, 221, 221, 221, 253, 221, - 255, 256, 257, 258, 40, 37, 221, 226, - 221, 221, 63, 221, 259, 256, 260, 260, - 40, 37, 221, 226, 221, 256, 260, 260, - 40, 37, 221, 226, 221, 53, 261, 221, - 37, 221, 226, 221, 262, 262, 221, 37, - 221, 226, 221, 263, 221, 221, 264, 221, - 226, 221, 226, 221, 265, 221, 266, 221, - 263, 221, 221, 221, 221, 226, 221, 53, - 221, 262, 262, 221, 37, 221, 226, 221, - 262, 261, 221, 37, 221, 226, 221, 267, - 62, 268, 269, 43, 37, 221, 226, 221, - 62, 268, 269, 43, 37, 221, 226, 221, - 268, 268, 43, 37, 221, 226, 221, 270, - 59, 271, 272, 46, 37, 221, 226, 221, - 59, 271, 272, 46, 37, 221, 226, 221, - 271, 271, 46, 37, 221, 226, 221, 273, - 56, 274, 275, 49, 37, 221, 226, 221, - 56, 274, 275, 49, 37, 221, 226, 221, - 274, 274, 49, 37, 221, 226, 221, 276, - 53, 262, 277, 221, 37, 221, 226, 221, - 53, 262, 277, 221, 37, 221, 226, 221, - 255, 256, 260, 260, 40, 37, 221, 226, - 221, 255, 256, 257, 260, 40, 37, 221, - 226, 221, 221, 63, 221, 253, 221, 278, - 221, 262, 262, 221, 37, 221, 226, 221, - 221, 221, 221, 221, 253, 221, 253, 221, - 221, 221, 262, 262, 221, 37, 221, 226, - 221, 221, 221, 221, 221, 253, 221, 253, - 221, 221, 221, 262, 254, 221, 37, 221, - 226, 221, 221, 221, 221, 221, 253, 221, - 247, 248, 252, 252, 40, 37, 221, 226, - 221, 247, 248, 249, 252, 40, 37, 221, - 226, 221, 221, 65, 221, 245, 221, 279, - 221, 262, 262, 221, 37, 221, 226, 221, - 221, 221, 221, 221, 245, 221, 245, 221, - 221, 221, 262, 262, 221, 37, 221, 226, - 221, 221, 221, 221, 221, 245, 221, 245, - 221, 221, 221, 262, 246, 221, 37, 221, - 226, 221, 221, 221, 221, 221, 245, 221, - 239, 240, 244, 244, 40, 37, 221, 226, - 221, 239, 240, 241, 244, 40, 37, 221, - 226, 221, 221, 67, 221, 237, 221, 280, - 221, 262, 262, 221, 37, 221, 226, 221, - 221, 221, 221, 221, 237, 221, 237, 221, - 221, 221, 262, 262, 221, 37, 221, 226, - 221, 221, 221, 221, 221, 237, 221, 237, - 221, 221, 221, 262, 238, 221, 37, 221, - 226, 221, 221, 221, 221, 221, 237, 221, - 231, 232, 236, 236, 40, 37, 221, 226, - 221, 231, 232, 233, 236, 40, 37, 221, - 226, 221, 221, 69, 221, 229, 221, 281, - 221, 262, 262, 221, 37, 221, 226, 221, - 221, 221, 221, 221, 229, 221, 229, 221, - 221, 221, 262, 262, 221, 37, 221, 226, - 221, 221, 221, 221, 221, 229, 221, 229, - 221, 221, 221, 262, 230, 221, 37, 221, - 226, 221, 221, 221, 221, 221, 229, 221, - 70, 39, 39, 40, 37, 221, 222, 223, - 228, 225, 40, 37, 221, 226, 221, 283, - 151, 284, 284, 76, 73, 282, 154, 282, - 151, 284, 284, 76, 73, 282, 154, 282, - 285, 282, 282, 282, 90, 286, 282, 73, - 282, 154, 282, 282, 282, 282, 282, 285, - 282, 287, 288, 289, 290, 76, 73, 282, - 154, 282, 282, 106, 282, 291, 288, 292, - 292, 76, 73, 282, 154, 282, 288, 292, - 292, 76, 73, 282, 154, 282, 293, 282, - 282, 282, 90, 294, 282, 73, 282, 154, - 282, 282, 282, 282, 282, 293, 282, 295, - 296, 297, 298, 76, 73, 282, 154, 282, - 282, 104, 282, 299, 296, 300, 300, 76, - 73, 282, 154, 282, 296, 300, 300, 76, - 73, 282, 154, 282, 301, 282, 282, 282, - 90, 302, 282, 73, 282, 154, 282, 282, - 282, 282, 282, 301, 282, 303, 304, 305, - 306, 76, 73, 282, 154, 282, 282, 102, - 282, 307, 304, 308, 308, 76, 73, 282, - 154, 282, 304, 308, 308, 76, 73, 282, - 154, 282, 309, 282, 282, 282, 90, 310, - 282, 73, 282, 154, 282, 282, 282, 282, - 282, 309, 282, 311, 312, 313, 314, 76, - 73, 282, 154, 282, 282, 100, 282, 315, - 312, 316, 316, 76, 73, 282, 154, 282, - 312, 316, 316, 76, 73, 282, 154, 282, - 90, 317, 282, 73, 282, 154, 282, 318, - 318, 282, 73, 282, 154, 282, 319, 282, - 282, 320, 282, 154, 282, 154, 282, 321, - 282, 322, 282, 319, 282, 282, 282, 282, - 154, 282, 90, 282, 318, 318, 282, 73, - 282, 154, 282, 318, 317, 282, 73, 282, - 154, 282, 323, 99, 324, 325, 80, 73, - 282, 154, 282, 99, 324, 325, 80, 73, - 282, 154, 282, 324, 324, 80, 73, 282, - 154, 282, 326, 96, 327, 328, 83, 73, - 282, 154, 282, 96, 327, 328, 83, 73, - 282, 154, 282, 327, 327, 83, 73, 282, - 154, 282, 329, 93, 330, 331, 86, 73, - 282, 154, 282, 93, 330, 331, 86, 73, - 282, 154, 282, 330, 330, 86, 73, 282, - 154, 282, 332, 90, 318, 333, 282, 73, - 282, 154, 282, 90, 318, 333, 282, 73, - 282, 154, 282, 311, 312, 316, 316, 76, - 73, 282, 154, 282, 311, 312, 313, 316, - 76, 73, 282, 154, 282, 282, 100, 282, - 309, 282, 334, 282, 318, 318, 282, 73, - 282, 154, 282, 282, 282, 282, 282, 309, - 282, 309, 282, 282, 282, 318, 318, 282, - 73, 282, 154, 282, 282, 282, 282, 282, - 309, 282, 309, 282, 282, 282, 318, 310, - 282, 73, 282, 154, 282, 282, 282, 282, - 282, 309, 282, 303, 304, 308, 308, 76, - 73, 282, 154, 282, 303, 304, 305, 308, - 76, 73, 282, 154, 282, 282, 102, 282, - 301, 282, 335, 282, 318, 318, 282, 73, - 282, 154, 282, 282, 282, 282, 282, 301, - 282, 301, 282, 282, 282, 318, 318, 282, - 73, 282, 154, 282, 282, 282, 282, 282, - 301, 282, 301, 282, 282, 282, 318, 302, - 282, 73, 282, 154, 282, 282, 282, 282, - 282, 301, 282, 295, 296, 300, 300, 76, - 73, 282, 154, 282, 295, 296, 297, 300, - 76, 73, 282, 154, 282, 282, 104, 282, - 293, 282, 336, 282, 318, 318, 282, 73, - 282, 154, 282, 282, 282, 282, 282, 293, - 282, 293, 282, 282, 282, 318, 318, 282, - 73, 282, 154, 282, 282, 282, 282, 282, - 293, 282, 293, 282, 282, 282, 318, 294, - 282, 73, 282, 154, 282, 282, 282, 282, - 282, 293, 282, 287, 288, 292, 292, 76, - 73, 282, 154, 282, 287, 288, 289, 292, - 76, 73, 282, 154, 282, 282, 106, 282, - 285, 282, 337, 282, 318, 318, 282, 73, - 282, 154, 282, 282, 282, 282, 282, 285, - 282, 285, 282, 282, 282, 318, 318, 282, - 73, 282, 154, 282, 282, 282, 282, 282, - 285, 282, 285, 282, 282, 282, 318, 286, - 282, 73, 282, 154, 282, 282, 282, 282, - 282, 285, 282, 107, 75, 75, 76, 73, - 338, 338, 338, 338, 144, 338, 150, 151, - 284, 284, 76, 73, 282, 154, 282, 107, - 75, 75, 76, 73, 338, 340, 341, 342, - 343, 112, 109, 339, 344, 339, 339, 143, - 339, 345, 341, 343, 343, 112, 109, 339, - 344, 339, 341, 343, 343, 112, 109, 339, - 344, 339, 346, 339, 339, 339, 125, 347, - 339, 109, 339, 344, 339, 339, 339, 339, - 339, 346, 339, 348, 349, 350, 351, 112, - 109, 339, 344, 339, 339, 141, 339, 352, - 349, 353, 353, 112, 109, 339, 344, 339, - 349, 353, 353, 112, 109, 339, 344, 339, - 354, 339, 339, 339, 125, 355, 339, 109, - 339, 344, 339, 339, 339, 339, 339, 354, - 339, 356, 357, 358, 359, 112, 109, 339, - 344, 339, 339, 139, 339, 360, 357, 361, - 361, 112, 109, 339, 344, 339, 357, 361, - 361, 112, 109, 339, 344, 339, 362, 339, - 339, 339, 125, 363, 339, 109, 339, 344, - 339, 339, 339, 339, 339, 362, 339, 364, - 365, 366, 367, 112, 109, 339, 344, 339, - 339, 137, 339, 368, 365, 369, 369, 112, - 109, 339, 344, 339, 365, 369, 369, 112, - 109, 339, 344, 339, 370, 339, 339, 339, - 125, 371, 339, 109, 339, 344, 339, 339, - 339, 339, 339, 370, 339, 372, 373, 374, - 375, 112, 109, 339, 344, 339, 339, 135, - 339, 376, 373, 377, 377, 112, 109, 339, - 344, 339, 373, 377, 377, 112, 109, 339, - 344, 339, 125, 378, 339, 109, 339, 344, - 339, 379, 379, 339, 109, 339, 344, 339, - 380, 339, 339, 381, 339, 344, 339, 344, - 339, 382, 339, 383, 339, 380, 339, 339, - 339, 339, 344, 339, 125, 339, 379, 379, - 339, 109, 339, 344, 339, 379, 378, 339, - 109, 339, 344, 339, 384, 134, 385, 386, - 115, 109, 339, 344, 339, 134, 385, 386, - 115, 109, 339, 344, 339, 385, 385, 115, - 109, 339, 344, 339, 387, 131, 388, 389, - 118, 109, 339, 344, 339, 131, 388, 389, - 118, 109, 339, 344, 339, 388, 388, 118, - 109, 339, 344, 339, 390, 128, 391, 392, - 121, 109, 339, 344, 339, 128, 391, 392, - 121, 109, 339, 344, 339, 391, 391, 121, - 109, 339, 344, 339, 393, 125, 379, 394, - 339, 109, 339, 344, 339, 125, 379, 394, - 339, 109, 339, 344, 339, 372, 373, 377, - 377, 112, 109, 339, 344, 339, 372, 373, - 374, 377, 112, 109, 339, 344, 339, 339, - 135, 339, 370, 339, 395, 339, 379, 379, - 339, 109, 339, 344, 339, 339, 339, 339, - 339, 370, 339, 370, 339, 339, 339, 379, - 379, 339, 109, 339, 344, 339, 339, 339, - 339, 339, 370, 339, 370, 339, 339, 339, - 379, 371, 339, 109, 339, 344, 339, 339, - 339, 339, 339, 370, 339, 364, 365, 369, - 369, 112, 109, 339, 344, 339, 364, 365, - 366, 369, 112, 109, 339, 344, 339, 339, - 137, 339, 362, 339, 396, 339, 379, 379, - 339, 109, 339, 344, 339, 339, 339, 339, - 339, 362, 339, 362, 339, 339, 339, 379, - 379, 339, 109, 339, 344, 339, 339, 339, - 339, 339, 362, 339, 362, 339, 339, 339, - 379, 363, 339, 109, 339, 344, 339, 339, - 339, 339, 339, 362, 339, 356, 357, 361, - 361, 112, 109, 339, 344, 339, 356, 357, - 358, 361, 112, 109, 339, 344, 339, 339, - 139, 339, 354, 339, 397, 339, 379, 379, - 339, 109, 339, 344, 339, 339, 339, 339, - 339, 354, 339, 354, 339, 339, 339, 379, - 379, 339, 109, 339, 344, 339, 339, 339, - 339, 339, 354, 339, 354, 339, 339, 339, - 379, 355, 339, 109, 339, 344, 339, 339, - 339, 339, 339, 354, 339, 348, 349, 353, - 353, 112, 109, 339, 344, 339, 348, 349, - 350, 353, 112, 109, 339, 344, 339, 339, - 141, 339, 346, 339, 398, 339, 379, 379, - 339, 109, 339, 344, 339, 339, 339, 339, - 339, 346, 339, 346, 339, 339, 339, 379, - 379, 339, 109, 339, 344, 339, 339, 339, - 339, 339, 346, 339, 346, 339, 339, 339, - 379, 347, 339, 109, 339, 344, 339, 339, - 339, 339, 339, 346, 339, 340, 341, 343, - 343, 112, 109, 339, 344, 339, 148, 149, - 150, 151, 399, 284, 76, 73, 282, 154, - 155, 155, 144, 282, 282, 148, 282, 161, - 400, 163, 164, 4, 1, 160, 165, 160, - 160, 35, 160, 168, 149, 150, 151, 401, - 402, 76, 403, 160, 404, 160, 155, 144, - 160, 160, 168, 160, 107, 405, 405, 76, - 403, 160, 165, 160, 160, 144, 160, 406, - 160, 160, 407, 160, 404, 160, 404, 160, - 408, 160, 205, 160, 406, 160, 160, 160, - 160, 404, 160, 168, 160, 220, 107, 405, - 405, 76, 403, 160, 165, 160, 160, 160, - 160, 160, 168, 160, 410, 409, 411, 411, - 409, 146, 409, 412, 409, 411, 411, 409, - 146, 409, 412, 409, 413, 409, 409, 414, - 409, 412, 409, 412, 409, 415, 409, 416, - 409, 413, 409, 409, 409, 409, 412, 409, - 148, 338, 338, 338, 338, 338, 338, 338, - 338, 338, 155, 338, 338, 338, 338, 148, - 338, 0 + 154, 155, 155, 144, 147, 156, 157, 158, + 159, 160, 147, 162, 163, 164, 165, 4, + 1, 161, 166, 161, 161, 35, 161, 161, + 161, 167, 161, 168, 163, 169, 169, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 163, 169, 169, 4, 1, + 161, 166, 161, 161, 161, 161, 161, 161, + 167, 161, 170, 161, 161, 161, 17, 171, + 161, 1, 161, 166, 161, 161, 161, 161, + 161, 170, 161, 172, 173, 174, 175, 4, + 1, 161, 166, 161, 161, 33, 161, 161, + 161, 167, 161, 176, 173, 177, 177, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 173, 177, 177, 4, 1, + 161, 166, 161, 161, 161, 161, 161, 161, + 167, 161, 178, 161, 161, 161, 17, 179, + 161, 1, 161, 166, 161, 161, 161, 161, + 161, 178, 161, 180, 181, 182, 183, 4, + 1, 161, 166, 161, 161, 31, 161, 161, + 161, 167, 161, 184, 181, 185, 185, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 181, 185, 185, 4, 1, + 161, 166, 161, 161, 161, 161, 161, 161, + 167, 161, 186, 161, 161, 161, 17, 187, + 161, 1, 161, 166, 161, 161, 161, 161, + 161, 186, 161, 188, 189, 190, 191, 4, + 1, 161, 166, 161, 161, 29, 161, 161, + 161, 167, 161, 192, 189, 193, 193, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 189, 193, 193, 4, 1, + 161, 166, 161, 161, 161, 161, 161, 161, + 167, 161, 194, 161, 161, 161, 17, 195, + 161, 1, 161, 166, 161, 161, 161, 161, + 161, 194, 161, 196, 197, 198, 199, 4, + 1, 161, 166, 161, 161, 27, 161, 161, + 161, 167, 161, 200, 197, 201, 201, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 197, 201, 201, 4, 1, + 161, 166, 161, 161, 161, 161, 161, 161, + 167, 161, 17, 202, 161, 1, 161, 166, + 161, 203, 203, 161, 1, 161, 166, 161, + 204, 161, 161, 205, 161, 166, 161, 166, + 161, 206, 161, 207, 161, 204, 161, 161, + 161, 161, 166, 161, 17, 161, 203, 203, + 161, 1, 161, 166, 161, 203, 202, 161, + 1, 161, 166, 161, 208, 26, 209, 210, + 7, 1, 161, 166, 161, 26, 209, 210, + 7, 1, 161, 166, 161, 209, 209, 7, + 1, 161, 166, 161, 211, 23, 212, 213, + 10, 1, 161, 166, 161, 23, 212, 213, + 10, 1, 161, 166, 161, 212, 212, 10, + 1, 161, 166, 161, 214, 20, 215, 216, + 13, 1, 161, 166, 161, 20, 215, 216, + 13, 1, 161, 166, 161, 215, 215, 13, + 1, 161, 166, 161, 217, 17, 203, 218, + 161, 1, 161, 166, 161, 17, 203, 218, + 161, 1, 161, 166, 161, 197, 201, 201, + 4, 1, 161, 166, 161, 196, 197, 201, + 201, 4, 1, 161, 166, 161, 161, 161, + 161, 161, 161, 167, 161, 196, 197, 198, + 201, 4, 1, 161, 166, 161, 161, 27, + 161, 161, 161, 167, 161, 194, 161, 219, + 161, 203, 203, 161, 1, 161, 166, 161, + 161, 161, 161, 161, 194, 161, 194, 161, + 161, 161, 203, 203, 161, 1, 161, 166, + 161, 161, 161, 161, 161, 194, 161, 194, + 161, 161, 161, 203, 195, 161, 1, 161, + 166, 161, 161, 161, 161, 161, 194, 161, + 188, 189, 193, 193, 4, 1, 161, 166, + 161, 161, 161, 161, 161, 161, 167, 161, + 188, 189, 190, 193, 4, 1, 161, 166, + 161, 161, 29, 161, 161, 161, 167, 161, + 186, 161, 220, 161, 203, 203, 161, 1, + 161, 166, 161, 161, 161, 161, 161, 186, + 161, 186, 161, 161, 161, 203, 203, 161, + 1, 161, 166, 161, 161, 161, 161, 161, + 186, 161, 186, 161, 161, 161, 203, 187, + 161, 1, 161, 166, 161, 161, 161, 161, + 161, 186, 161, 180, 181, 185, 185, 4, + 1, 161, 166, 161, 161, 161, 161, 161, + 161, 167, 161, 180, 181, 182, 185, 4, + 1, 161, 166, 161, 161, 31, 161, 161, + 161, 167, 161, 178, 161, 221, 161, 203, + 203, 161, 1, 161, 166, 161, 161, 161, + 161, 161, 178, 161, 178, 161, 161, 161, + 203, 203, 161, 1, 161, 166, 161, 161, + 161, 161, 161, 178, 161, 178, 161, 161, + 161, 203, 179, 161, 1, 161, 166, 161, + 161, 161, 161, 161, 178, 161, 172, 173, + 177, 177, 4, 1, 161, 166, 161, 161, + 161, 161, 161, 161, 167, 161, 172, 173, + 174, 177, 4, 1, 161, 166, 161, 161, + 33, 161, 161, 161, 167, 161, 170, 161, + 222, 161, 203, 203, 161, 1, 161, 166, + 161, 161, 161, 161, 161, 170, 161, 170, + 161, 161, 161, 203, 203, 161, 1, 161, + 166, 161, 161, 161, 161, 161, 170, 161, + 170, 161, 161, 161, 203, 171, 161, 1, + 161, 166, 161, 161, 161, 161, 161, 170, + 161, 162, 163, 169, 169, 4, 1, 161, + 166, 161, 161, 161, 161, 161, 161, 167, + 161, 162, 163, 164, 169, 4, 1, 161, + 166, 161, 161, 35, 161, 161, 161, 167, + 161, 224, 225, 226, 227, 40, 37, 223, + 228, 223, 223, 71, 223, 223, 223, 229, + 223, 230, 225, 231, 227, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 225, 231, 227, 40, 37, 223, 228, + 223, 223, 223, 223, 223, 223, 229, 223, + 232, 223, 223, 223, 53, 233, 223, 37, + 223, 228, 223, 223, 223, 223, 223, 232, + 223, 234, 235, 236, 237, 40, 37, 223, + 228, 223, 223, 69, 223, 223, 223, 229, + 223, 238, 235, 239, 239, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 235, 239, 239, 40, 37, 223, 228, + 223, 223, 223, 223, 223, 223, 229, 223, + 240, 223, 223, 223, 53, 241, 223, 37, + 223, 228, 223, 223, 223, 223, 223, 240, + 223, 242, 243, 244, 245, 40, 37, 223, + 228, 223, 223, 67, 223, 223, 223, 229, + 223, 246, 243, 247, 247, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 243, 247, 247, 40, 37, 223, 228, + 223, 223, 223, 223, 223, 223, 229, 223, + 248, 223, 223, 223, 53, 249, 223, 37, + 223, 228, 223, 223, 223, 223, 223, 248, + 223, 250, 251, 252, 253, 40, 37, 223, + 228, 223, 223, 65, 223, 223, 223, 229, + 223, 254, 251, 255, 255, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 251, 255, 255, 40, 37, 223, 228, + 223, 223, 223, 223, 223, 223, 229, 223, + 256, 223, 223, 223, 53, 257, 223, 37, + 223, 228, 223, 223, 223, 223, 223, 256, + 223, 258, 259, 260, 261, 40, 37, 223, + 228, 223, 223, 63, 223, 223, 223, 229, + 223, 262, 259, 263, 263, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 259, 263, 263, 40, 37, 223, 228, + 223, 223, 223, 223, 223, 223, 229, 223, + 53, 264, 223, 37, 223, 228, 223, 265, + 265, 223, 37, 223, 228, 223, 266, 223, + 223, 267, 223, 228, 223, 228, 223, 268, + 223, 269, 223, 266, 223, 223, 223, 223, + 228, 223, 53, 223, 265, 265, 223, 37, + 223, 228, 223, 265, 264, 223, 37, 223, + 228, 223, 270, 62, 271, 272, 43, 37, + 223, 228, 223, 62, 271, 272, 43, 37, + 223, 228, 223, 271, 271, 43, 37, 223, + 228, 223, 273, 59, 274, 275, 46, 37, + 223, 228, 223, 59, 274, 275, 46, 37, + 223, 228, 223, 274, 274, 46, 37, 223, + 228, 223, 276, 56, 277, 278, 49, 37, + 223, 228, 223, 56, 277, 278, 49, 37, + 223, 228, 223, 277, 277, 49, 37, 223, + 228, 223, 279, 53, 265, 280, 223, 37, + 223, 228, 223, 53, 265, 280, 223, 37, + 223, 228, 223, 259, 263, 263, 40, 37, + 223, 228, 223, 258, 259, 263, 263, 40, + 37, 223, 228, 223, 223, 223, 223, 223, + 223, 229, 223, 258, 259, 260, 263, 40, + 37, 223, 228, 223, 223, 63, 223, 223, + 223, 229, 223, 256, 223, 281, 223, 265, + 265, 223, 37, 223, 228, 223, 223, 223, + 223, 223, 256, 223, 256, 223, 223, 223, + 265, 265, 223, 37, 223, 228, 223, 223, + 223, 223, 223, 256, 223, 256, 223, 223, + 223, 265, 257, 223, 37, 223, 228, 223, + 223, 223, 223, 223, 256, 223, 250, 251, + 255, 255, 40, 37, 223, 228, 223, 223, + 223, 223, 223, 223, 229, 223, 250, 251, + 252, 255, 40, 37, 223, 228, 223, 223, + 65, 223, 223, 223, 229, 223, 248, 223, + 282, 223, 265, 265, 223, 37, 223, 228, + 223, 223, 223, 223, 223, 248, 223, 248, + 223, 223, 223, 265, 265, 223, 37, 223, + 228, 223, 223, 223, 223, 223, 248, 223, + 248, 223, 223, 223, 265, 249, 223, 37, + 223, 228, 223, 223, 223, 223, 223, 248, + 223, 242, 243, 247, 247, 40, 37, 223, + 228, 223, 223, 223, 223, 223, 223, 229, + 223, 242, 243, 244, 247, 40, 37, 223, + 228, 223, 223, 67, 223, 223, 223, 229, + 223, 240, 223, 283, 223, 265, 265, 223, + 37, 223, 228, 223, 223, 223, 223, 223, + 240, 223, 240, 223, 223, 223, 265, 265, + 223, 37, 223, 228, 223, 223, 223, 223, + 223, 240, 223, 240, 223, 223, 223, 265, + 241, 223, 37, 223, 228, 223, 223, 223, + 223, 223, 240, 223, 234, 235, 239, 239, + 40, 37, 223, 228, 223, 223, 223, 223, + 223, 223, 229, 223, 234, 235, 236, 239, + 40, 37, 223, 228, 223, 223, 69, 223, + 223, 223, 229, 223, 232, 223, 284, 223, + 265, 265, 223, 37, 223, 228, 223, 223, + 223, 223, 223, 232, 223, 232, 223, 223, + 223, 265, 265, 223, 37, 223, 228, 223, + 223, 223, 223, 223, 232, 223, 232, 223, + 223, 223, 265, 233, 223, 37, 223, 228, + 223, 223, 223, 223, 223, 232, 223, 70, + 39, 39, 40, 37, 223, 224, 225, 231, + 227, 40, 37, 223, 228, 223, 223, 223, + 223, 223, 223, 229, 223, 286, 151, 287, + 287, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 151, 287, 287, + 76, 73, 285, 154, 285, 285, 285, 285, + 285, 285, 158, 285, 288, 285, 285, 285, + 90, 289, 285, 73, 285, 154, 285, 285, + 285, 285, 285, 288, 285, 290, 291, 292, + 293, 76, 73, 285, 154, 285, 285, 106, + 285, 285, 285, 158, 285, 294, 291, 295, + 295, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 291, 295, 295, + 76, 73, 285, 154, 285, 285, 285, 285, + 285, 285, 158, 285, 296, 285, 285, 285, + 90, 297, 285, 73, 285, 154, 285, 285, + 285, 285, 285, 296, 285, 298, 299, 300, + 301, 76, 73, 285, 154, 285, 285, 104, + 285, 285, 285, 158, 285, 302, 299, 303, + 303, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 299, 303, 303, + 76, 73, 285, 154, 285, 285, 285, 285, + 285, 285, 158, 285, 304, 285, 285, 285, + 90, 305, 285, 73, 285, 154, 285, 285, + 285, 285, 285, 304, 285, 306, 307, 308, + 309, 76, 73, 285, 154, 285, 285, 102, + 285, 285, 285, 158, 285, 310, 307, 311, + 311, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 307, 311, 311, + 76, 73, 285, 154, 285, 285, 285, 285, + 285, 285, 158, 285, 312, 285, 285, 285, + 90, 313, 285, 73, 285, 154, 285, 285, + 285, 285, 285, 312, 285, 314, 315, 316, + 317, 76, 73, 285, 154, 285, 285, 100, + 285, 285, 285, 158, 285, 318, 315, 319, + 319, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 315, 319, 319, + 76, 73, 285, 154, 285, 285, 285, 285, + 285, 285, 158, 285, 90, 320, 285, 73, + 285, 154, 285, 321, 321, 285, 73, 285, + 154, 285, 322, 285, 285, 323, 285, 154, + 285, 154, 285, 324, 285, 325, 285, 322, + 285, 285, 285, 285, 154, 285, 90, 285, + 321, 321, 285, 73, 285, 154, 285, 321, + 320, 285, 73, 285, 154, 285, 326, 99, + 327, 328, 80, 73, 285, 154, 285, 99, + 327, 328, 80, 73, 285, 154, 285, 327, + 327, 80, 73, 285, 154, 285, 329, 96, + 330, 331, 83, 73, 285, 154, 285, 96, + 330, 331, 83, 73, 285, 154, 285, 330, + 330, 83, 73, 285, 154, 285, 332, 93, + 333, 334, 86, 73, 285, 154, 285, 93, + 333, 334, 86, 73, 285, 154, 285, 333, + 333, 86, 73, 285, 154, 285, 335, 90, + 321, 336, 285, 73, 285, 154, 285, 90, + 321, 336, 285, 73, 285, 154, 285, 315, + 319, 319, 76, 73, 285, 154, 285, 314, + 315, 319, 319, 76, 73, 285, 154, 285, + 285, 285, 285, 285, 285, 158, 285, 314, + 315, 316, 319, 76, 73, 285, 154, 285, + 285, 100, 285, 285, 285, 158, 285, 312, + 285, 337, 285, 321, 321, 285, 73, 285, + 154, 285, 285, 285, 285, 285, 312, 285, + 312, 285, 285, 285, 321, 321, 285, 73, + 285, 154, 285, 285, 285, 285, 285, 312, + 285, 312, 285, 285, 285, 321, 313, 285, + 73, 285, 154, 285, 285, 285, 285, 285, + 312, 285, 306, 307, 311, 311, 76, 73, + 285, 154, 285, 285, 285, 285, 285, 285, + 158, 285, 306, 307, 308, 311, 76, 73, + 285, 154, 285, 285, 102, 285, 285, 285, + 158, 285, 304, 285, 338, 285, 321, 321, + 285, 73, 285, 154, 285, 285, 285, 285, + 285, 304, 285, 304, 285, 285, 285, 321, + 321, 285, 73, 285, 154, 285, 285, 285, + 285, 285, 304, 285, 304, 285, 285, 285, + 321, 305, 285, 73, 285, 154, 285, 285, + 285, 285, 285, 304, 285, 298, 299, 303, + 303, 76, 73, 285, 154, 285, 285, 285, + 285, 285, 285, 158, 285, 298, 299, 300, + 303, 76, 73, 285, 154, 285, 285, 104, + 285, 285, 285, 158, 285, 296, 285, 339, + 285, 321, 321, 285, 73, 285, 154, 285, + 285, 285, 285, 285, 296, 285, 296, 285, + 285, 285, 321, 321, 285, 73, 285, 154, + 285, 285, 285, 285, 285, 296, 285, 296, + 285, 285, 285, 321, 297, 285, 73, 285, + 154, 285, 285, 285, 285, 285, 296, 285, + 290, 291, 295, 295, 76, 73, 285, 154, + 285, 285, 285, 285, 285, 285, 158, 285, + 290, 291, 292, 295, 76, 73, 285, 154, + 285, 285, 106, 285, 285, 285, 158, 285, + 288, 285, 340, 285, 321, 321, 285, 73, + 285, 154, 285, 285, 285, 285, 285, 288, + 285, 288, 285, 285, 285, 321, 321, 285, + 73, 285, 154, 285, 285, 285, 285, 285, + 288, 285, 288, 285, 285, 285, 321, 289, + 285, 73, 285, 154, 285, 285, 285, 285, + 285, 288, 285, 107, 75, 75, 76, 73, + 341, 341, 341, 341, 144, 341, 150, 151, + 287, 287, 76, 73, 285, 154, 285, 285, + 285, 285, 285, 285, 158, 285, 107, 75, + 75, 76, 73, 341, 343, 344, 345, 346, + 112, 109, 342, 347, 342, 342, 143, 342, + 342, 342, 348, 342, 349, 344, 346, 346, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 344, 346, 346, 112, + 109, 342, 347, 342, 342, 342, 342, 342, + 342, 348, 342, 350, 342, 342, 342, 125, + 351, 342, 109, 342, 347, 342, 342, 342, + 342, 342, 350, 342, 352, 353, 354, 355, + 112, 109, 342, 347, 342, 342, 141, 342, + 342, 342, 348, 342, 356, 353, 357, 357, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 353, 357, 357, 112, + 109, 342, 347, 342, 342, 342, 342, 342, + 342, 348, 342, 358, 342, 342, 342, 125, + 359, 342, 109, 342, 347, 342, 342, 342, + 342, 342, 358, 342, 360, 361, 362, 363, + 112, 109, 342, 347, 342, 342, 139, 342, + 342, 342, 348, 342, 364, 361, 365, 365, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 361, 365, 365, 112, + 109, 342, 347, 342, 342, 342, 342, 342, + 342, 348, 342, 366, 342, 342, 342, 125, + 367, 342, 109, 342, 347, 342, 342, 342, + 342, 342, 366, 342, 368, 369, 370, 371, + 112, 109, 342, 347, 342, 342, 137, 342, + 342, 342, 348, 342, 372, 369, 373, 373, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 369, 373, 373, 112, + 109, 342, 347, 342, 342, 342, 342, 342, + 342, 348, 342, 374, 342, 342, 342, 125, + 375, 342, 109, 342, 347, 342, 342, 342, + 342, 342, 374, 342, 376, 377, 378, 379, + 112, 109, 342, 347, 342, 342, 135, 342, + 342, 342, 348, 342, 380, 377, 381, 381, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 377, 381, 381, 112, + 109, 342, 347, 342, 342, 342, 342, 342, + 342, 348, 342, 125, 382, 342, 109, 342, + 347, 342, 383, 383, 342, 109, 342, 347, + 342, 384, 342, 342, 385, 342, 347, 342, + 347, 342, 386, 342, 387, 342, 384, 342, + 342, 342, 342, 347, 342, 125, 342, 383, + 383, 342, 109, 342, 347, 342, 383, 382, + 342, 109, 342, 347, 342, 388, 134, 389, + 390, 115, 109, 342, 347, 342, 134, 389, + 390, 115, 109, 342, 347, 342, 389, 389, + 115, 109, 342, 347, 342, 391, 131, 392, + 393, 118, 109, 342, 347, 342, 131, 392, + 393, 118, 109, 342, 347, 342, 392, 392, + 118, 109, 342, 347, 342, 394, 128, 395, + 396, 121, 109, 342, 347, 342, 128, 395, + 396, 121, 109, 342, 347, 342, 395, 395, + 121, 109, 342, 347, 342, 397, 125, 383, + 398, 342, 109, 342, 347, 342, 125, 383, + 398, 342, 109, 342, 347, 342, 377, 381, + 381, 112, 109, 342, 347, 342, 376, 377, + 381, 381, 112, 109, 342, 347, 342, 342, + 342, 342, 342, 342, 348, 342, 376, 377, + 378, 381, 112, 109, 342, 347, 342, 342, + 135, 342, 342, 342, 348, 342, 374, 342, + 399, 342, 383, 383, 342, 109, 342, 347, + 342, 342, 342, 342, 342, 374, 342, 374, + 342, 342, 342, 383, 383, 342, 109, 342, + 347, 342, 342, 342, 342, 342, 374, 342, + 374, 342, 342, 342, 383, 375, 342, 109, + 342, 347, 342, 342, 342, 342, 342, 374, + 342, 368, 369, 373, 373, 112, 109, 342, + 347, 342, 342, 342, 342, 342, 342, 348, + 342, 368, 369, 370, 373, 112, 109, 342, + 347, 342, 342, 137, 342, 342, 342, 348, + 342, 366, 342, 400, 342, 383, 383, 342, + 109, 342, 347, 342, 342, 342, 342, 342, + 366, 342, 366, 342, 342, 342, 383, 383, + 342, 109, 342, 347, 342, 342, 342, 342, + 342, 366, 342, 366, 342, 342, 342, 383, + 367, 342, 109, 342, 347, 342, 342, 342, + 342, 342, 366, 342, 360, 361, 365, 365, + 112, 109, 342, 347, 342, 342, 342, 342, + 342, 342, 348, 342, 360, 361, 362, 365, + 112, 109, 342, 347, 342, 342, 139, 342, + 342, 342, 348, 342, 358, 342, 401, 342, + 383, 383, 342, 109, 342, 347, 342, 342, + 342, 342, 342, 358, 342, 358, 342, 342, + 342, 383, 383, 342, 109, 342, 347, 342, + 342, 342, 342, 342, 358, 342, 358, 342, + 342, 342, 383, 359, 342, 109, 342, 347, + 342, 342, 342, 342, 342, 358, 342, 352, + 353, 357, 357, 112, 109, 342, 347, 342, + 342, 342, 342, 342, 342, 348, 342, 352, + 353, 354, 357, 112, 109, 342, 347, 342, + 342, 141, 342, 342, 342, 348, 342, 350, + 342, 402, 342, 383, 383, 342, 109, 342, + 347, 342, 342, 342, 342, 342, 350, 342, + 350, 342, 342, 342, 383, 383, 342, 109, + 342, 347, 342, 342, 342, 342, 342, 350, + 342, 350, 342, 342, 342, 383, 351, 342, + 109, 342, 347, 342, 342, 342, 342, 342, + 350, 342, 343, 344, 346, 346, 112, 109, + 342, 347, 342, 342, 342, 342, 342, 342, + 348, 342, 148, 149, 150, 151, 403, 287, + 76, 73, 285, 154, 155, 155, 144, 285, + 285, 148, 158, 285, 162, 404, 164, 165, + 4, 1, 161, 166, 161, 161, 35, 161, + 161, 161, 167, 161, 170, 149, 150, 151, + 405, 406, 76, 407, 161, 408, 161, 155, + 144, 161, 161, 170, 158, 161, 107, 409, + 409, 76, 407, 161, 166, 161, 161, 144, + 161, 410, 161, 161, 411, 161, 408, 161, + 408, 161, 412, 161, 207, 161, 410, 161, + 161, 161, 161, 408, 161, 170, 161, 222, + 107, 409, 409, 76, 407, 161, 166, 161, + 161, 161, 161, 161, 170, 161, 414, 413, + 415, 415, 413, 146, 413, 416, 413, 415, + 415, 413, 146, 413, 416, 413, 417, 413, + 413, 418, 413, 416, 413, 416, 413, 419, + 413, 420, 413, 417, 413, 413, 413, 413, + 416, 413, 148, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 155, 341, 341, 341, + 341, 148, 341, 0 }; static const short _indic_syllable_machine_trans_targs[] = { 138, 160, 166, 2, 167, 3, 5, 170, 6, 8, 173, 9, 11, 176, 12, 14, 15, 159, 17, 18, 175, 20, 21, 172, - 23, 24, 169, 178, 182, 183, 187, 188, - 192, 193, 197, 198, 138, 221, 227, 36, - 228, 37, 39, 231, 40, 42, 234, 43, - 45, 237, 46, 48, 49, 220, 51, 52, - 236, 54, 55, 233, 57, 58, 230, 239, - 243, 244, 248, 249, 253, 254, 258, 260, - 138, 281, 287, 70, 288, 138, 71, 73, - 291, 74, 76, 294, 77, 79, 297, 80, - 82, 83, 280, 85, 86, 296, 88, 89, - 293, 91, 92, 290, 299, 303, 304, 308, - 309, 313, 314, 318, 138, 343, 349, 103, - 350, 104, 106, 353, 107, 109, 356, 110, - 112, 359, 113, 115, 116, 342, 118, 119, - 358, 121, 122, 355, 124, 125, 352, 361, - 365, 366, 370, 371, 375, 376, 380, 381, - 320, 138, 394, 138, 139, 200, 261, 263, - 319, 321, 283, 322, 382, 383, 392, 399, - 138, 140, 142, 33, 199, 162, 141, 32, - 143, 195, 144, 146, 31, 194, 145, 30, - 147, 190, 148, 150, 29, 189, 149, 28, - 151, 185, 152, 154, 27, 184, 153, 26, - 155, 180, 156, 158, 25, 179, 157, 1, - 165, 0, 161, 164, 163, 138, 168, 4, - 22, 171, 7, 19, 174, 10, 16, 177, - 13, 181, 186, 191, 196, 138, 201, 203, - 67, 259, 223, 202, 66, 204, 256, 205, - 207, 65, 255, 206, 64, 208, 251, 209, - 211, 63, 250, 210, 62, 212, 246, 213, - 215, 61, 245, 214, 60, 216, 241, 217, - 219, 59, 240, 218, 35, 226, 34, 222, - 225, 224, 138, 229, 38, 56, 232, 41, - 53, 235, 44, 50, 238, 47, 242, 247, - 252, 257, 138, 262, 100, 264, 316, 265, - 267, 99, 315, 266, 98, 268, 311, 269, - 271, 97, 310, 270, 96, 272, 306, 273, - 275, 95, 305, 274, 94, 276, 301, 277, - 279, 93, 300, 278, 69, 286, 68, 282, - 285, 284, 138, 289, 72, 90, 292, 75, - 87, 295, 78, 84, 298, 81, 302, 307, - 312, 317, 138, 138, 323, 325, 134, 133, - 345, 324, 326, 378, 327, 329, 132, 377, - 328, 131, 330, 373, 331, 333, 130, 372, - 332, 129, 334, 368, 335, 337, 128, 367, - 336, 127, 338, 363, 339, 341, 126, 362, - 340, 102, 348, 101, 344, 347, 346, 138, - 351, 105, 123, 354, 108, 120, 357, 111, - 117, 360, 114, 364, 369, 374, 379, 135, - 384, 385, 391, 386, 388, 136, 387, 390, - 389, 138, 393, 137, 396, 395, 398, 397, - 138 + 23, 24, 169, 179, 183, 184, 188, 189, + 193, 194, 198, 199, 138, 222, 228, 36, + 229, 37, 39, 232, 40, 42, 235, 43, + 45, 238, 46, 48, 49, 221, 51, 52, + 237, 54, 55, 234, 57, 58, 231, 241, + 245, 246, 250, 251, 255, 256, 260, 262, + 138, 283, 289, 70, 290, 138, 71, 73, + 293, 74, 76, 296, 77, 79, 299, 80, + 82, 83, 282, 85, 86, 298, 88, 89, + 295, 91, 92, 292, 302, 306, 307, 311, + 312, 316, 317, 321, 138, 346, 352, 103, + 353, 104, 106, 356, 107, 109, 359, 110, + 112, 362, 113, 115, 116, 345, 118, 119, + 361, 121, 122, 358, 124, 125, 355, 365, + 369, 370, 374, 375, 379, 380, 384, 385, + 323, 138, 398, 138, 139, 201, 263, 265, + 322, 324, 285, 325, 386, 387, 301, 396, + 403, 138, 140, 142, 33, 200, 162, 178, + 141, 32, 143, 196, 144, 146, 31, 195, + 145, 30, 147, 191, 148, 150, 29, 190, + 149, 28, 151, 186, 152, 154, 27, 185, + 153, 26, 155, 181, 156, 158, 25, 180, + 157, 1, 165, 0, 161, 164, 163, 138, + 168, 4, 22, 171, 7, 19, 174, 10, + 16, 177, 13, 182, 187, 192, 197, 138, + 202, 204, 67, 261, 224, 240, 203, 66, + 205, 258, 206, 208, 65, 257, 207, 64, + 209, 253, 210, 212, 63, 252, 211, 62, + 213, 248, 214, 216, 61, 247, 215, 60, + 217, 243, 218, 220, 59, 242, 219, 35, + 227, 34, 223, 226, 225, 138, 230, 38, + 56, 233, 41, 53, 236, 44, 50, 239, + 47, 244, 249, 254, 259, 138, 264, 100, + 266, 319, 267, 269, 99, 318, 268, 98, + 270, 314, 271, 273, 97, 313, 272, 96, + 274, 309, 275, 277, 95, 308, 276, 94, + 278, 304, 279, 281, 93, 303, 280, 69, + 288, 68, 284, 287, 286, 138, 291, 72, + 90, 294, 75, 87, 297, 78, 84, 300, + 81, 305, 310, 315, 320, 138, 138, 326, + 328, 134, 133, 348, 364, 327, 329, 382, + 330, 332, 132, 381, 331, 131, 333, 377, + 334, 336, 130, 376, 335, 129, 337, 372, + 338, 340, 128, 371, 339, 127, 341, 367, + 342, 344, 126, 366, 343, 102, 351, 101, + 347, 350, 349, 138, 354, 105, 123, 357, + 108, 120, 360, 111, 117, 363, 114, 368, + 373, 378, 383, 135, 388, 389, 395, 390, + 392, 136, 391, 394, 393, 138, 397, 137, + 400, 399, 402, 401, 138 }; static const char _indic_syllable_machine_trans_actions[] = { @@ -705,40 +782,40 @@ static const char _indic_syllable_machine_trans_actions[] = { 2, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 8, 0, 11, 2, 2, 6, 0, - 12, 12, 0, 2, 6, 2, 2, 0, - 13, 2, 0, 0, 2, 0, 2, 0, + 12, 12, 0, 2, 6, 2, 6, 2, + 0, 13, 2, 0, 0, 2, 0, 2, + 2, 0, 2, 2, 2, 0, 0, 2, + 2, 0, 2, 2, 2, 0, 0, 2, + 2, 0, 2, 2, 2, 0, 0, 2, + 2, 0, 2, 2, 2, 0, 0, 2, + 2, 0, 2, 0, 0, 0, 0, 14, + 2, 0, 0, 2, 0, 0, 2, 0, + 0, 2, 0, 2, 2, 2, 2, 15, + 2, 0, 0, 2, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 2, 2, 0, - 2, 0, 0, 0, 0, 14, 2, 0, + 2, 0, 0, 0, 0, 16, 2, 0, 0, 2, 0, 0, 2, 0, 0, 2, - 0, 2, 2, 2, 2, 15, 2, 0, - 0, 2, 0, 2, 0, 2, 2, 2, - 0, 0, 2, 2, 0, 2, 2, 2, - 0, 0, 2, 2, 0, 2, 2, 2, - 0, 0, 2, 2, 0, 2, 2, 2, - 0, 0, 2, 2, 0, 2, 0, 0, - 0, 0, 16, 2, 0, 0, 2, 0, - 0, 2, 0, 0, 2, 0, 2, 2, - 2, 2, 17, 6, 0, 6, 2, 6, - 0, 0, 6, 6, 0, 6, 2, 6, - 0, 0, 6, 6, 0, 6, 2, 6, - 0, 0, 6, 6, 0, 6, 2, 6, - 0, 0, 6, 6, 0, 2, 0, 0, - 0, 0, 18, 2, 0, 0, 2, 0, - 0, 2, 0, 0, 2, 0, 2, 2, - 2, 2, 19, 20, 2, 0, 0, 0, - 0, 2, 2, 2, 2, 0, 0, 2, - 2, 0, 2, 2, 2, 0, 0, 2, - 2, 0, 2, 2, 2, 0, 0, 2, - 2, 0, 2, 2, 2, 0, 0, 2, - 2, 0, 2, 0, 0, 0, 0, 21, - 2, 0, 0, 2, 0, 0, 2, 0, - 0, 2, 0, 2, 2, 2, 2, 0, - 0, 22, 22, 0, 0, 0, 0, 0, - 0, 23, 2, 0, 0, 0, 0, 0, - 24 + 0, 2, 2, 2, 2, 17, 6, 0, + 6, 2, 6, 0, 0, 6, 6, 0, + 6, 2, 6, 0, 0, 6, 6, 0, + 6, 2, 6, 0, 0, 6, 6, 0, + 6, 2, 6, 0, 0, 6, 6, 0, + 2, 0, 0, 0, 0, 18, 2, 0, + 0, 2, 0, 0, 2, 0, 0, 2, + 0, 2, 2, 2, 2, 19, 20, 2, + 0, 0, 0, 0, 2, 2, 2, 2, + 2, 0, 0, 2, 2, 0, 2, 2, + 2, 0, 0, 2, 2, 0, 2, 2, + 2, 0, 0, 2, 2, 0, 2, 2, + 2, 0, 0, 2, 2, 0, 2, 0, + 0, 0, 0, 21, 2, 0, 0, 2, + 0, 0, 2, 0, 0, 2, 0, 2, + 2, 2, 2, 0, 0, 22, 22, 0, + 0, 0, 0, 0, 0, 23, 2, 0, + 0, 0, 0, 0, 24 }; static const char _indic_syllable_machine_to_state_actions[] = { @@ -791,7 +868,8 @@ static const char _indic_syllable_machine_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; static const char _indic_syllable_machine_from_state_actions[] = { @@ -844,7 +922,8 @@ static const char _indic_syllable_machine_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0 }; static const short _indic_syllable_machine_eof_trans[] = { @@ -865,39 +944,40 @@ static const short _indic_syllable_machine_eof_trans[] = { 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 73, - 1, 146, 0, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 222, 222, 222, - 222, 222, 222, 222, 222, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 339, - 283, 339, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 340, 283, 161, - 161, 161, 161, 161, 161, 161, 161, 161, - 410, 410, 410, 410, 410, 410, 410, 339 + 1, 146, 0, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 286, 286, 286, 286, 286, 286, + 286, 286, 342, 286, 342, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 286, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 414, 414, 414, 414, + 414, 414, 414, 342 }; static const int indic_syllable_machine_start = 138; @@ -911,7 +991,7 @@ static const int indic_syllable_machine_en_main = 138; -#line 92 "hb-ot-shape-complex-indic-machine.rl" +#line 93 "hb-ot-shape-complex-indic-machine.rl" #define found_syllable(syllable_type) \ @@ -930,7 +1010,7 @@ find_syllables (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 934 "hb-ot-shape-complex-indic-machine.hh" +#line 1014 "hb-ot-shape-complex-indic-machine.hh" { cs = indic_syllable_machine_start; ts = 0; @@ -938,7 +1018,7 @@ find_syllables (hb_buffer_t *buffer) act = 0; } -#line 112 "hb-ot-shape-complex-indic-machine.rl" +#line 113 "hb-ot-shape-complex-indic-machine.rl" p = 0; @@ -946,7 +1026,7 @@ find_syllables (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 950 "hb-ot-shape-complex-indic-machine.hh" +#line 1030 "hb-ot-shape-complex-indic-machine.hh" { int _slen; int _trans; @@ -960,7 +1040,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 964 "hb-ot-shape-complex-indic-machine.hh" +#line 1044 "hb-ot-shape-complex-indic-machine.hh" } _keys = _indic_syllable_machine_trans_keys + (cs<<1); @@ -983,71 +1063,71 @@ _eof_trans: {te = p+1;} break; case 14: -#line 83 "hb-ot-shape-complex-indic-machine.rl" +#line 84 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (consonant_syllable); }} break; case 16: -#line 84 "hb-ot-shape-complex-indic-machine.rl" +#line 85 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (vowel_syllable); }} break; case 21: -#line 85 "hb-ot-shape-complex-indic-machine.rl" +#line 86 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (standalone_cluster); }} break; case 24: -#line 86 "hb-ot-shape-complex-indic-machine.rl" +#line 87 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (symbol_cluster); }} break; case 18: -#line 87 "hb-ot-shape-complex-indic-machine.rl" +#line 88 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (broken_cluster); }} break; case 11: -#line 88 "hb-ot-shape-complex-indic-machine.rl" +#line 89 "hb-ot-shape-complex-indic-machine.rl" {te = p+1;{ found_syllable (non_indic_cluster); }} break; case 13: -#line 83 "hb-ot-shape-complex-indic-machine.rl" +#line 84 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (consonant_syllable); }} break; case 15: -#line 84 "hb-ot-shape-complex-indic-machine.rl" +#line 85 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (vowel_syllable); }} break; case 20: -#line 85 "hb-ot-shape-complex-indic-machine.rl" +#line 86 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (standalone_cluster); }} break; case 23: -#line 86 "hb-ot-shape-complex-indic-machine.rl" +#line 87 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (symbol_cluster); }} break; case 17: -#line 87 "hb-ot-shape-complex-indic-machine.rl" +#line 88 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (broken_cluster); }} break; case 19: -#line 88 "hb-ot-shape-complex-indic-machine.rl" +#line 89 "hb-ot-shape-complex-indic-machine.rl" {te = p;p--;{ found_syllable (non_indic_cluster); }} break; case 1: -#line 83 "hb-ot-shape-complex-indic-machine.rl" +#line 84 "hb-ot-shape-complex-indic-machine.rl" {{p = ((te))-1;}{ found_syllable (consonant_syllable); }} break; case 3: -#line 84 "hb-ot-shape-complex-indic-machine.rl" +#line 85 "hb-ot-shape-complex-indic-machine.rl" {{p = ((te))-1;}{ found_syllable (vowel_syllable); }} break; case 7: -#line 85 "hb-ot-shape-complex-indic-machine.rl" +#line 86 "hb-ot-shape-complex-indic-machine.rl" {{p = ((te))-1;}{ found_syllable (standalone_cluster); }} break; case 8: -#line 86 "hb-ot-shape-complex-indic-machine.rl" +#line 87 "hb-ot-shape-complex-indic-machine.rl" {{p = ((te))-1;}{ found_syllable (symbol_cluster); }} break; case 4: -#line 87 "hb-ot-shape-complex-indic-machine.rl" +#line 88 "hb-ot-shape-complex-indic-machine.rl" {{p = ((te))-1;}{ found_syllable (broken_cluster); }} break; case 5: @@ -1068,22 +1148,22 @@ _eof_trans: case 22: #line 1 "NONE" {te = p+1;} -#line 83 "hb-ot-shape-complex-indic-machine.rl" +#line 84 "hb-ot-shape-complex-indic-machine.rl" {act = 1;} break; case 6: #line 1 "NONE" {te = p+1;} -#line 87 "hb-ot-shape-complex-indic-machine.rl" +#line 88 "hb-ot-shape-complex-indic-machine.rl" {act = 5;} break; case 12: #line 1 "NONE" {te = p+1;} -#line 88 "hb-ot-shape-complex-indic-machine.rl" +#line 89 "hb-ot-shape-complex-indic-machine.rl" {act = 6;} break; -#line 1087 "hb-ot-shape-complex-indic-machine.hh" +#line 1167 "hb-ot-shape-complex-indic-machine.hh" } _again: @@ -1092,7 +1172,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 1096 "hb-ot-shape-complex-indic-machine.hh" +#line 1176 "hb-ot-shape-complex-indic-machine.hh" } if ( ++p != pe ) @@ -1108,7 +1188,7 @@ _again: } -#line 120 "hb-ot-shape-complex-indic-machine.rl" +#line 121 "hb-ot-shape-complex-indic-machine.rl" } diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl index c5d945d..f7e022b 100644 --- a/src/hb-ot-shape-complex-indic-machine.rl +++ b/src/hb-ot-shape-complex-indic-machine.rl @@ -52,6 +52,7 @@ DOTTEDCIRCLE = 12; RS = 13; Repha = 15; Ra = 16; +CM = 17; Symbol= 18; CS = 19; @@ -67,10 +68,10 @@ matra_group = z{0,3}.M.N?.(H | forced_rakar)?; syllable_tail = (z?.SM.SM?.ZWNJ?)? A{0,3}?; halant_group = (z?.H.(ZWJ.N?)?); final_halant_group = halant_group | H.ZWNJ; +medial_group = CM?; halant_or_matra_group = (final_halant_group | matra_group{0,4}); -complex_syllable_tail = (halant_group.cn){0,4} halant_or_matra_group syllable_tail; - +complex_syllable_tail = (halant_group.cn){0,4} medial_group halant_or_matra_group syllable_tail; consonant_syllable = (Repha|CS)? cn complex_syllable_tail; vowel_syllable = reph? V.n? (ZWJ | complex_syllable_tail); diff --git a/src/hb-ot-shape-complex-indic-table.cc b/src/hb-ot-shape-complex-indic-table.cc index 43b5ef8..d26bbb8 100644 --- a/src/hb-ot-shape-complex-indic-table.cc +++ b/src/hb-ot-shape-complex-indic-table.cc @@ -6,12 +6,12 @@ * * on files with these headers: * - * # IndicSyllabicCategory-11.0.0.txt - * # Date: 2018-05-21, 18:33:00 GMT [KW, RP] - * # IndicPositionalCategory-11.0.0.txt - * # Date: 2018-02-05, 16:21:00 GMT [KW, RP] - * # Blocks-11.0.0.txt - * # Date: 2017-10-16, 24:39:00 GMT [KW] + * # IndicSyllabicCategory-12.0.0.txt + * # Date: 2019-01-31, 02:26:00 GMT [KW, RP] + * # IndicPositionalCategory-12.0.0.txt + * # Date: 2019-01-31, 02:26:00 GMT [KW, RP] + * # Blocks-12.0.0.txt + * # Date: 2018-07-30, 19:40:00 GMT [KW] */ #include "hb-ot-shape-complex-indic.hh" @@ -19,21 +19,21 @@ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-macros" -#define ISC_A INDIC_SYLLABIC_CATEGORY_AVAGRAHA /* 16 chars; Avagraha */ -#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU /* 83 chars; Bindu */ +#define ISC_A INDIC_SYLLABIC_CATEGORY_AVAGRAHA /* 17 chars; Avagraha */ +#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU /* 86 chars; Bindu */ #define ISC_BJN INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER /* 20 chars; Brahmi_Joining_Number */ -#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK /* 58 chars; Cantillation_Mark */ -#define ISC_C INDIC_SYLLABIC_CATEGORY_CONSONANT /* 2110 chars; Consonant */ -#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD /* 10 chars; Consonant_Dead */ +#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK /* 59 chars; Cantillation_Mark */ +#define ISC_C INDIC_SYLLABIC_CATEGORY_CONSONANT /* 2160 chars; Consonant */ +#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD /* 12 chars; Consonant_Dead */ #define ISC_CF INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL /* 67 chars; Consonant_Final */ #define ISC_CHL INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER /* 5 chars; Consonant_Head_Letter */ #define ISC_CIP INDIC_SYLLABIC_CATEGORY_CONSONANT_INITIAL_POSTFIXED /* 1 chars; Consonant_Initial_Postfixed */ #define ISC_CK INDIC_SYLLABIC_CATEGORY_CONSONANT_KILLER /* 2 chars; Consonant_Killer */ -#define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL /* 28 chars; Consonant_Medial */ -#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER /* 21 chars; Consonant_Placeholder */ +#define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL /* 29 chars; Consonant_Medial */ +#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER /* 22 chars; Consonant_Placeholder */ #define ISC_CPR INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA /* 2 chars; Consonant_Preceding_Repha */ -#define ISC_CPrf INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED /* 7 chars; Consonant_Prefixed */ -#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED /* 95 chars; Consonant_Subjoined */ +#define ISC_CPrf INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED /* 9 chars; Consonant_Prefixed */ +#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED /* 94 chars; Consonant_Subjoined */ #define ISC_CSR INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA /* 4 chars; Consonant_Succeeding_Repha */ #define ISC_CWS INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER /* 6 chars; Consonant_With_Stacker */ #define ISC_GM INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK /* 3 chars; Gemination_Mark */ @@ -42,7 +42,7 @@ #define ISC_ML INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER /* 1 chars; Modifying_Letter */ #define ISC_ZWNJ INDIC_SYLLABIC_CATEGORY_NON_JOINER /* 1 chars; Non_Joiner */ #define ISC_N INDIC_SYLLABIC_CATEGORY_NUKTA /* 30 chars; Nukta */ -#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER /* 480 chars; Number */ +#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER /* 481 chars; Number */ #define ISC_NJ INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER /* 1 chars; Number_Joiner */ #define ISC_x INDIC_SYLLABIC_CATEGORY_OTHER /* 1 chars; Other */ #define ISC_PK INDIC_SYLLABIC_CATEGORY_PURE_KILLER /* 21 chars; Pure_Killer */ @@ -50,21 +50,21 @@ #define ISC_SM INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER /* 25 chars; Syllable_Modifier */ #define ISC_TL INDIC_SYLLABIC_CATEGORY_TONE_LETTER /* 7 chars; Tone_Letter */ #define ISC_TM INDIC_SYLLABIC_CATEGORY_TONE_MARK /* 42 chars; Tone_Mark */ -#define ISC_V INDIC_SYLLABIC_CATEGORY_VIRAMA /* 25 chars; Virama */ -#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA /* 36 chars; Visarga */ +#define ISC_V INDIC_SYLLABIC_CATEGORY_VIRAMA /* 27 chars; Virama */ +#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA /* 35 chars; Visarga */ #define ISC_Vo INDIC_SYLLABIC_CATEGORY_VOWEL /* 30 chars; Vowel */ -#define ISC_M INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT /* 660 chars; Vowel_Dependent */ -#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT /* 464 chars; Vowel_Independent */ +#define ISC_M INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT /* 673 chars; Vowel_Dependent */ +#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT /* 476 chars; Vowel_Independent */ -#define IMC_B INDIC_MATRA_CATEGORY_BOTTOM /* 340 chars; Bottom */ +#define IMC_B INDIC_MATRA_CATEGORY_BOTTOM /* 349 chars; Bottom */ #define IMC_BL INDIC_MATRA_CATEGORY_BOTTOM_AND_LEFT /* 1 chars; Bottom_And_Left */ #define IMC_BR INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT /* 2 chars; Bottom_And_Right */ -#define IMC_L INDIC_MATRA_CATEGORY_LEFT /* 59 chars; Left */ +#define IMC_L INDIC_MATRA_CATEGORY_LEFT /* 61 chars; Left */ #define IMC_LR INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT /* 21 chars; Left_And_Right */ #define IMC_x INDIC_MATRA_CATEGORY_NOT_APPLICABLE /* 1 chars; Not_Applicable */ #define IMC_O INDIC_MATRA_CATEGORY_OVERSTRUCK /* 10 chars; Overstruck */ -#define IMC_R INDIC_MATRA_CATEGORY_RIGHT /* 276 chars; Right */ -#define IMC_T INDIC_MATRA_CATEGORY_TOP /* 393 chars; Top */ +#define IMC_R INDIC_MATRA_CATEGORY_RIGHT /* 281 chars; Right */ +#define IMC_T INDIC_MATRA_CATEGORY_TOP /* 398 chars; Top */ #define IMC_TB INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM /* 10 chars; Top_And_Bottom */ #define IMC_TBR INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT /* 1 chars; Top_And_Bottom_And_Right */ #define IMC_TL INDIC_MATRA_CATEGORY_TOP_AND_LEFT /* 6 chars; Top_And_Left */ @@ -152,7 +152,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = { /* 0A38 */ _(C,x), _(C,x), _(x,x), _(x,x), _(N,B), _(x,x), _(M,R), _(M,L), /* 0A40 */ _(M,R), _(M,B), _(M,B), _(x,x), _(x,x), _(x,x), _(x,x), _(M,T), /* 0A48 */ _(M,T), _(x,x), _(x,x), _(M,T), _(M,T), _(V,B), _(x,x), _(x,x), - /* 0A50 */ _(x,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), + /* 0A50 */ _(x,x), _(Ca,B), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), /* 0A58 */ _(x,x), _(C,x), _(C,x), _(C,x), _(C,x), _(x,x), _(C,x), _(x,x), /* 0A60 */ _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(Nd,x), _(Nd,x), /* 0A68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), @@ -237,7 +237,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = { /* Kannada */ - /* 0C80 */ _(x,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x), + /* 0C80 */ _(Bi,x), _(Bi,T), _(Bi,R), _(Vs,R), _(x,x), _(VI,x), _(VI,x), _(VI,x), /* 0C88 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(x,x), _(VI,x), _(VI,x), /* 0C90 */ _(VI,x), _(x,x), _(VI,x), _(VI,x), _(VI,x), _(C,x), _(C,x), _(C,x), /* 0C98 */ _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), _(C,x), @@ -346,8 +346,8 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = { /* 1CD8 */ _(Ca,B), _(Ca,B), _(Ca,T), _(Ca,T), _(Ca,B), _(Ca,B), _(Ca,B), _(Ca,B), /* 1CE0 */ _(Ca,T), _(Ca,R), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O), _(x,O), /* 1CE8 */ _(x,O), _(x,x), _(x,x), _(x,x), _(x,x), _(x,B), _(x,x), _(x,x), - /* 1CF0 */ _(x,x), _(x,x), _(Vs,x), _(Vs,x), _(Ca,T),_(CWS,x),_(CWS,x), _(Ca,R), - /* 1CF8 */ _(Ca,x), _(Ca,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), + /* 1CF0 */ _(x,x), _(x,x), _(CD,x), _(CD,x), _(Ca,T),_(CWS,x),_(CWS,x), _(Ca,R), + /* 1CF8 */ _(Ca,x), _(Ca,x), _(CP,x), _(x,x), _(x,x), _(x,x), _(x,x), _(x,x), #define indic_offset_0x2008u 1656 diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index d2d0a5a..1fd8fc6 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -239,7 +239,7 @@ struct would_substitute_feature_t hb_face_t *face) const { for (unsigned int i = 0; i < count; i++) - if (hb_ot_layout_lookup_would_substitute_fast (face, lookups[i].index, glyphs, glyphs_count, zero_context)) + if (hb_ot_layout_lookup_would_substitute (face, lookups[i].index, glyphs, glyphs_count, zero_context)) return true; return false; } @@ -720,7 +720,7 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan, indic_position_t last_pos = POS_START; for (unsigned int i = start; i < end; i++) { - if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | FLAG (OT_H)))) + if ((FLAG_UNSAFE (info[i].indic_category()) & (JOINER_FLAGS | FLAG (OT_N) | FLAG (OT_RS) | MEDIAL_FLAGS | FLAG (OT_H)))) { info[i].indic_position() = last_pos; if (unlikely (info[i].indic_category() == OT_H && @@ -965,6 +965,9 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_font_t *font, hb_buffer_t *buffer) { + if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)) + return; + /* Note: This loop is extra overhead, but should not be measurable. * TODO Use a buffer scratch flag to remove the loop. */ bool has_broken_syllables = false; @@ -1199,9 +1202,14 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan, goto search; } } - /* -> If ZWNJ follows this halant, position is moved after it. */ - if (info[new_pos + 1].indic_category() == OT_ZWNJ) - new_pos++; + /* -> If ZWNJ follows this halant, position is moved after it. + * + * IMPLEMENTATION NOTES: + * + * This is taken care of by the state-machine. A Halant,ZWNJ is a terminating + * sequence for a consonant syllable; any pre-base matras occurring after it + * will belong to the subsequent syllable. + */ } } else diff --git a/src/hb-ot-shape-complex-indic.hh b/src/hb-ot-shape-complex-indic.hh index dcc2a7a..13ab516 100644 --- a/src/hb-ot-shape-complex-indic.hh +++ b/src/hb-ot-shape-complex-indic.hh @@ -62,17 +62,19 @@ enum indic_category_t { OT_Coeng = 14, /* Khmer-style Virama. */ OT_Repha = 15, /* Atomically-encoded logical or visual repha. */ OT_Ra = 16, - OT_CM = 17, /* Consonant-Medial; Unused by Indic shaper. */ + OT_CM = 17, /* Consonant-Medial. */ OT_Symbol = 18, /* Avagraha, etc that take marks (SM,A,VD). */ OT_CS = 19 }; +#define MEDIAL_FLAGS (FLAG (OT_CM)) + /* Note: * * We treat Vowels and placeholders as if they were consonants. This is safe because Vowels * cannot happen in a consonant syllable. The plus side however is, we can call the * consonant syllable logic from the vowel syllable function and get it all right! */ -#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE)) +#define CONSONANT_FLAGS (FLAG (OT_C) | FLAG (OT_CS) | FLAG (OT_Ra) | MEDIAL_FLAGS | FLAG (OT_V) | FLAG (OT_PLACEHOLDER) | FLAG (OT_DOTTEDCIRCLE)) #define JOINER_FLAGS (FLAG (OT_ZWJ) | FLAG (OT_ZWNJ)) @@ -362,6 +364,7 @@ set_indic_properties (hb_glyph_info_t &info) else if (unlikely (u == 0x0AFBu)) cat = OT_N; /* https://github.com/harfbuzz/harfbuzz/issues/552 */ else if (unlikely (u == 0x0980u)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/issues/538 */ + else if (unlikely (u == 0x09FCu)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/pull/1613 */ else if (unlikely (u == 0x0C80u)) cat = OT_PLACEHOLDER; /* https://github.com/harfbuzz/harfbuzz/pull/623 */ else if (unlikely (hb_in_range (u, 0x2010u, 0x2011u))) cat = OT_PLACEHOLDER; diff --git a/src/hb-ot-shape-complex-khmer-machine.hh b/src/hb-ot-shape-complex-khmer-machine.hh index 2bc8ca6..65e0ffc 100644 --- a/src/hb-ot-shape-complex-khmer-machine.hh +++ b/src/hb-ot-shape-complex-khmer-machine.hh @@ -35,29 +35,27 @@ #line 36 "hb-ot-shape-complex-khmer-machine.hh" static const unsigned char _khmer_syllable_machine_trans_keys[] = { 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u, - 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, - 5u, 26u, 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 16u, 1u, 29u, 5u, 29u, - 5u, 29u, 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 5u, 26u, - 5u, 29u, 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 29u, - 5u, 29u, 0 + 5u, 26u, 5u, 21u, 5u, 21u, 5u, 26u, 5u, 21u, 1u, 16u, 5u, 21u, 5u, 26u, + 5u, 21u, 5u, 26u, 5u, 21u, 5u, 26u, 1u, 29u, 5u, 29u, 5u, 29u, 5u, 29u, + 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 26u, 5u, 29u, + 5u, 29u, 22u, 22u, 5u, 22u, 5u, 29u, 5u, 29u, 1u, 16u, 5u, 29u, 5u, 29u, + 0 }; static const char _khmer_syllable_machine_key_spans[] = { 22, 17, 22, 17, 16, 17, 22, 17, - 22, 17, 16, 17, 22, 17, 16, 17, - 22, 17, 22, 17, 22, 16, 29, 25, - 25, 25, 1, 18, 25, 25, 25, 22, - 25, 25, 1, 18, 25, 25, 16, 25, - 25 + 22, 17, 17, 22, 17, 16, 17, 22, + 17, 22, 17, 22, 29, 25, 25, 25, + 1, 18, 25, 25, 25, 16, 22, 25, + 25, 1, 18, 25, 25, 16, 25, 25 }; static const short _khmer_syllable_machine_index_offsets[] = { 0, 23, 41, 64, 82, 99, 117, 140, - 158, 181, 199, 216, 234, 257, 275, 292, - 310, 333, 351, 374, 392, 415, 432, 462, - 488, 514, 540, 542, 561, 587, 613, 639, - 662, 688, 714, 716, 735, 761, 787, 804, - 830 + 158, 181, 199, 217, 240, 258, 275, 293, + 316, 334, 357, 375, 398, 428, 454, 480, + 506, 508, 527, 553, 579, 605, 622, 645, + 671, 697, 699, 718, 744, 770, 787, 813 }; static const char _khmer_syllable_machine_indicies[] = { @@ -85,142 +83,136 @@ static const char _khmer_syllable_machine_indicies[] = { 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 4, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 0, 13, - 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, - 15, 15, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 16, 14, 15, 15, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 16, 17, 17, 17, 17, 18, - 17, 19, 19, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 18, 17, 20, 20, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 20, 17, 21, 21, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 22, 17, 23, 23, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 24, 17, - 17, 17, 17, 18, 17, 23, 23, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 24, 17, 25, - 25, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 26, - 17, 17, 17, 17, 18, 17, 25, 25, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 26, 17, - 15, 15, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 27, - 16, 17, 17, 17, 17, 18, 17, 28, - 28, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 28, 17, - 13, 13, 29, 29, 30, 30, 29, 29, - 29, 29, 2, 2, 29, 31, 29, 13, - 29, 29, 29, 29, 16, 20, 29, 29, - 29, 18, 24, 26, 22, 29, 33, 33, - 32, 32, 32, 32, 32, 32, 32, 34, - 32, 32, 32, 32, 32, 2, 3, 6, - 32, 32, 32, 4, 10, 12, 8, 32, - 35, 35, 32, 32, 32, 32, 32, 32, - 32, 36, 32, 32, 32, 32, 32, 32, - 3, 6, 32, 32, 32, 4, 10, 12, - 8, 32, 5, 5, 32, 32, 32, 32, - 32, 32, 32, 36, 32, 32, 32, 32, - 32, 32, 4, 6, 32, 32, 32, 32, - 32, 32, 8, 32, 6, 32, 7, 7, - 32, 32, 32, 32, 32, 32, 32, 36, - 32, 32, 32, 32, 32, 32, 8, 6, - 32, 37, 37, 32, 32, 32, 32, 32, - 32, 32, 36, 32, 32, 32, 32, 32, - 32, 10, 6, 32, 32, 32, 4, 32, - 32, 8, 32, 38, 38, 32, 32, 32, - 32, 32, 32, 32, 36, 32, 32, 32, - 32, 32, 32, 12, 6, 32, 32, 32, - 4, 10, 32, 8, 32, 35, 35, 32, - 32, 32, 32, 32, 32, 32, 34, 32, - 32, 32, 32, 32, 32, 3, 6, 32, - 32, 32, 4, 10, 12, 8, 32, 15, - 15, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 39, 39, 39, 39, 39, 16, - 39, 39, 39, 39, 18, 39, 41, 41, - 40, 40, 40, 40, 40, 40, 40, 42, - 40, 40, 40, 40, 40, 40, 16, 20, - 40, 40, 40, 18, 24, 26, 22, 40, - 19, 19, 40, 40, 40, 40, 40, 40, - 40, 42, 40, 40, 40, 40, 40, 40, - 18, 20, 40, 40, 40, 40, 40, 40, - 22, 40, 20, 40, 21, 21, 40, 40, - 40, 40, 40, 40, 40, 42, 40, 40, - 40, 40, 40, 40, 22, 20, 40, 43, - 43, 40, 40, 40, 40, 40, 40, 40, - 42, 40, 40, 40, 40, 40, 40, 24, - 20, 40, 40, 40, 18, 40, 40, 22, - 40, 44, 44, 40, 40, 40, 40, 40, - 40, 40, 42, 40, 40, 40, 40, 40, - 40, 26, 20, 40, 40, 40, 18, 24, - 40, 22, 40, 28, 28, 39, 39, 39, + 0, 0, 0, 0, 0, 12, 0, 14, + 14, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 15, + 13, 14, 14, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 15, 16, 16, 16, 16, 17, 16, + 18, 18, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 17, 16, 19, 19, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 19, 16, 20, 20, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 21, 16, 22, 22, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 23, 16, 16, + 16, 16, 17, 16, 22, 22, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 23, 16, 24, 24, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 25, 16, + 16, 16, 16, 17, 16, 24, 24, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 25, 16, 14, + 14, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 26, 15, + 16, 16, 16, 16, 17, 16, 28, 28, + 27, 27, 29, 29, 27, 27, 27, 27, + 2, 2, 27, 30, 27, 28, 27, 27, + 27, 27, 15, 19, 27, 27, 27, 17, + 23, 25, 21, 27, 32, 32, 31, 31, + 31, 31, 31, 31, 31, 33, 31, 31, + 31, 31, 31, 2, 3, 6, 31, 31, + 31, 4, 10, 12, 8, 31, 34, 34, + 31, 31, 31, 31, 31, 31, 31, 35, + 31, 31, 31, 31, 31, 31, 3, 6, + 31, 31, 31, 4, 10, 12, 8, 31, + 5, 5, 31, 31, 31, 31, 31, 31, + 31, 35, 31, 31, 31, 31, 31, 31, + 4, 6, 31, 31, 31, 31, 31, 31, + 8, 31, 6, 31, 7, 7, 31, 31, + 31, 31, 31, 31, 31, 35, 31, 31, + 31, 31, 31, 31, 8, 6, 31, 36, + 36, 31, 31, 31, 31, 31, 31, 31, + 35, 31, 31, 31, 31, 31, 31, 10, + 6, 31, 31, 31, 4, 31, 31, 8, + 31, 37, 37, 31, 31, 31, 31, 31, + 31, 31, 35, 31, 31, 31, 31, 31, + 31, 12, 6, 31, 31, 31, 4, 10, + 31, 8, 31, 34, 34, 31, 31, 31, + 31, 31, 31, 31, 33, 31, 31, 31, + 31, 31, 31, 3, 6, 31, 31, 31, + 4, 10, 12, 8, 31, 28, 28, 31, + 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 28, 31, 14, 14, + 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 15, 38, + 38, 38, 38, 17, 38, 40, 40, 39, + 39, 39, 39, 39, 39, 39, 41, 39, + 39, 39, 39, 39, 39, 15, 19, 39, + 39, 39, 17, 23, 25, 21, 39, 18, + 18, 39, 39, 39, 39, 39, 39, 39, + 41, 39, 39, 39, 39, 39, 39, 17, + 19, 39, 39, 39, 39, 39, 39, 21, + 39, 19, 39, 20, 20, 39, 39, 39, + 39, 39, 39, 39, 41, 39, 39, 39, + 39, 39, 39, 21, 19, 39, 42, 42, + 39, 39, 39, 39, 39, 39, 39, 41, + 39, 39, 39, 39, 39, 39, 23, 19, + 39, 39, 39, 17, 39, 39, 21, 39, + 43, 43, 39, 39, 39, 39, 39, 39, + 39, 41, 39, 39, 39, 39, 39, 39, + 25, 19, 39, 39, 39, 17, 23, 39, + 21, 39, 44, 44, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, - 39, 39, 28, 39, 45, 45, 40, 40, - 40, 40, 40, 40, 40, 46, 40, 40, - 40, 40, 40, 27, 16, 20, 40, 40, - 40, 18, 24, 26, 22, 40, 41, 41, - 40, 40, 40, 40, 40, 40, 40, 46, - 40, 40, 40, 40, 40, 40, 16, 20, - 40, 40, 40, 18, 24, 26, 22, 40, - 0 + 39, 44, 39, 45, 45, 39, 39, 39, + 39, 39, 39, 39, 30, 39, 39, 39, + 39, 39, 26, 15, 19, 39, 39, 39, + 17, 23, 25, 21, 39, 40, 40, 39, + 39, 39, 39, 39, 39, 39, 30, 39, + 39, 39, 39, 39, 39, 15, 19, 39, + 39, 39, 17, 23, 25, 21, 39, 0 }; static const char _khmer_syllable_machine_trans_targs[] = { - 22, 1, 30, 24, 25, 3, 26, 5, - 27, 7, 28, 9, 29, 23, 22, 11, - 32, 22, 33, 13, 34, 15, 35, 17, - 36, 19, 37, 40, 39, 22, 31, 38, - 22, 0, 10, 2, 4, 6, 8, 22, - 22, 12, 14, 16, 18, 20, 21 + 20, 1, 28, 22, 23, 3, 24, 5, + 25, 7, 26, 9, 27, 20, 10, 31, + 20, 32, 12, 33, 14, 34, 16, 35, + 18, 36, 39, 20, 21, 30, 37, 20, + 0, 29, 2, 4, 6, 8, 20, 20, + 11, 13, 15, 17, 38, 19 }; static const char _khmer_syllable_machine_trans_actions[] = { 1, 0, 2, 2, 2, 0, 0, 0, - 2, 0, 2, 0, 2, 2, 3, 0, - 4, 5, 2, 0, 0, 0, 2, 0, - 2, 0, 2, 4, 4, 8, 9, 0, - 10, 0, 0, 0, 0, 0, 0, 11, - 12, 0, 0, 0, 0, 0, 0 + 2, 0, 2, 0, 2, 3, 0, 4, + 5, 2, 0, 0, 0, 2, 0, 2, + 0, 2, 4, 8, 2, 9, 0, 10, + 0, 0, 0, 0, 0, 0, 11, 12, + 0, 0, 0, 0, 4, 0 }; static const char _khmer_syllable_machine_to_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 + 0, 0, 0, 0, 0, 0, 0, 0 }; static const char _khmer_syllable_machine_from_state_actions[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 + 0, 0, 0, 0, 0, 0, 0, 0 }; static const unsigned char _khmer_syllable_machine_eof_trans[] = { 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 15, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 0, 33, - 33, 33, 33, 33, 33, 33, 33, 40, - 41, 41, 41, 41, 41, 41, 40, 41, - 41 + 1, 1, 14, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 0, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 39, 40, + 40, 40, 40, 40, 40, 40, 40, 40 }; -static const int khmer_syllable_machine_start = 22; -static const int khmer_syllable_machine_first_final = 22; +static const int khmer_syllable_machine_start = 20; +static const int khmer_syllable_machine_first_final = 20; static const int khmer_syllable_machine_error = -1; -static const int khmer_syllable_machine_en_main = 22; +static const int khmer_syllable_machine_en_main = 20; #line 36 "hb-ot-shape-complex-khmer-machine.rl" @@ -246,7 +238,7 @@ find_syllables (hb_buffer_t *buffer) int cs; hb_glyph_info_t *info = buffer->info; -#line 250 "hb-ot-shape-complex-khmer-machine.hh" +#line 242 "hb-ot-shape-complex-khmer-machine.hh" { cs = khmer_syllable_machine_start; ts = 0; @@ -262,7 +254,7 @@ find_syllables (hb_buffer_t *buffer) unsigned int syllable_serial = 1; -#line 266 "hb-ot-shape-complex-khmer-machine.hh" +#line 258 "hb-ot-shape-complex-khmer-machine.hh" { int _slen; int _trans; @@ -276,7 +268,7 @@ _resume: #line 1 "NONE" {ts = p;} break; -#line 280 "hb-ot-shape-complex-khmer-machine.hh" +#line 272 "hb-ot-shape-complex-khmer-machine.hh" } _keys = _khmer_syllable_machine_trans_keys + (cs<<1); @@ -346,7 +338,7 @@ _eof_trans: #line 76 "hb-ot-shape-complex-khmer-machine.rl" {act = 3;} break; -#line 350 "hb-ot-shape-complex-khmer-machine.hh" +#line 342 "hb-ot-shape-complex-khmer-machine.hh" } _again: @@ -355,7 +347,7 @@ _again: #line 1 "NONE" {ts = 0;} break; -#line 359 "hb-ot-shape-complex-khmer-machine.hh" +#line 351 "hb-ot-shape-complex-khmer-machine.hh" } if ( ++p != pe ) diff --git a/src/hb-ot-shape-complex-khmer-machine.rl b/src/hb-ot-shape-complex-khmer-machine.rl index 4c596ab..1076a08 100644 --- a/src/hb-ot-shape-complex-khmer-machine.rl +++ b/src/hb-ot-shape-complex-khmer-machine.rl @@ -66,7 +66,7 @@ matra_group = VPre? xgroup VBlw? xgroup (joiner?.VAbv)? xgroup VPst?; syllable_tail = xgroup matra_group xgroup (Coeng.c)? ygroup; -broken_cluster = (Coeng.cn)* syllable_tail; +broken_cluster = (Coeng.cn)* (Coeng | syllable_tail); consonant_syllable = (cn|PLACEHOLDER|DOTTEDCIRCLE) broken_cluster; other = any; diff --git a/src/hb-ot-shape-complex-khmer.cc b/src/hb-ot-shape-complex-khmer.cc index 4475ceb..5746651 100644 --- a/src/hb-ot-shape-complex-khmer.cc +++ b/src/hb-ot-shape-complex-khmer.cc @@ -164,7 +164,7 @@ struct would_substitute_feature_t hb_face_t *face) const { for (unsigned int i = 0; i < count; i++) - if (hb_ot_layout_lookup_would_substitute_fast (face, lookups[i].index, glyphs, glyphs_count, zero_context)) + if (hb_ot_layout_lookup_would_substitute (face, lookups[i].index, glyphs, glyphs_count, zero_context)) return true; return false; } @@ -365,6 +365,9 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_font_t *font, hb_buffer_t *buffer) { + if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)) + return; + /* Note: This loop is extra overhead, but should not be measurable. */ bool has_broken_syllables = false; unsigned int count = buffer->len; diff --git a/src/hb-ot-shape-complex-myanmar.cc b/src/hb-ot-shape-complex-myanmar.cc index 8fdf2f4..70ab972 100644 --- a/src/hb-ot-shape-complex-myanmar.cc +++ b/src/hb-ot-shape-complex-myanmar.cc @@ -298,6 +298,9 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_font_t *font, hb_buffer_t *buffer) { + if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)) + return; + /* Note: This loop is extra overhead, but should not be measurable. */ bool has_broken_syllables = false; unsigned int count = buffer->len; diff --git a/src/hb-ot-shape-complex-use-table.cc b/src/hb-ot-shape-complex-use-table.cc index 835b95b..cb5c358 100644 --- a/src/hb-ot-shape-complex-use-table.cc +++ b/src/hb-ot-shape-complex-use-table.cc @@ -6,12 +6,12 @@ * * on files with these headers: * - * # IndicSyllabicCategory-11.0.0.txt - * # Date: 2018-05-21, 18:33:00 GMT [KW, RP] - * # IndicPositionalCategory-11.0.0.txt - * # Date: 2018-02-05, 16:21:00 GMT [KW, RP] - * # Blocks-11.0.0.txt - * # Date: 2017-10-16, 24:39:00 GMT [KW] + * # IndicSyllabicCategory-12.0.0.txt + * # Date: 2019-01-31, 02:26:00 GMT [KW, RP] + * # IndicPositionalCategory-12.0.0.txt + * # Date: 2019-01-31, 02:26:00 GMT [KW, RP] + * # Blocks-12.0.0.txt + * # Date: 2018-07-30, 19:40:00 GMT [KW] * UnicodeData.txt does not have a header. */ @@ -167,7 +167,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* Kannada */ - /* 0C80 */ O, VMAbv, VMPst, VMPst, O, B, B, B, B, B, B, B, B, O, B, B, + /* 0C80 */ B, VMAbv, VMPst, VMPst, O, B, B, B, B, B, B, B, B, O, B, B, /* 0C90 */ B, O, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 0CA0 */ B, B, B, B, B, B, B, B, B, O, B, B, B, B, B, B, /* 0CB0 */ B, B, B, B, O, B, B, B, B, B, O, O, CMBlw, B, VPst, VAbv, @@ -261,7 +261,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 17A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 17B0 */ B, B, B, B, O, O, VPst, VAbv, VAbv, VAbv, VAbv, VBlw, VBlw, VBlw, VPst, VPst, /* 17C0 */ VPst, VPre, VPre, VPre, VPst, VPst, VMAbv, VMPst, VPst, VMAbv, VMAbv, FM, FAbv, CMAbv, FM, FM, - /* 17D0 */ FM, VAbv, H, FM, O, O, O, O, O, O, O, O, B, VAbv, O, O, + /* 17D0 */ FM, VAbv, H, FM, O, O, O, O, O, O, O, O, B, FM, O, O, /* 17E0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, #define use_offset_0x1900u 1936 @@ -288,7 +288,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 19A0 */ B, B, B, B, B, B, B, B, B, B, B, B, O, O, O, O, /* 19B0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 19C0 */ B, B, B, B, B, B, B, B, VMPst, VMPst, O, O, O, O, O, O, - /* 19D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, + /* 19D0 */ B, B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, /* 19E0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, /* 19F0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, @@ -351,7 +351,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 1CD0 */ VMAbv, VMAbv, VMAbv, O, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMAbv, VMAbv, VMBlw, VMBlw, VMBlw, VMBlw, /* 1CE0 */ VMAbv, VMPst, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, O, O, O, O, VMBlw, O, O, - /* 1CF0 */ O, O, VMPst, VMPst, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, O, O, O, O, O, O, + /* 1CF0 */ O, O, IND, IND, VMAbv, CS, CS, VMPst, VMAbv, VMAbv, GB, O, O, O, O, O, #define use_offset_0x1df8u 2736 @@ -393,7 +393,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* Syloti Nagri */ - /* A800 */ B, B, O, B, B, B, VAbv, B, B, B, B, VMAbv, B, B, B, B, + /* A800 */ B, B, VAbv, B, B, B, H, B, B, B, B, VMAbv, B, B, B, B, /* A810 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* A820 */ B, B, B, VPst, VPst, VBlw, VAbv, VPst, O, O, O, O, O, O, O, O, /* A830 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, @@ -438,7 +438,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* A980 */ VMAbv, VMAbv, FAbv, VMPst, B, B, B, B, B, B, B, B, B, B, B, B, /* A990 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* A9A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, - /* A9B0 */ B, B, B, CMAbv, VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VPre, VAbv, SUB, MPst, MBlw, + /* A9B0 */ B, B, B, CMAbv, VPst, VPst, VAbv, VAbv, VBlw, VBlw, VPre, VPre, VAbv, MBlw, MPst, MBlw, /* A9C0 */ H, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, /* A9D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, @@ -581,7 +581,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* Grantha */ - /* 11300 */ VMAbv, VMAbv, VMAbv, VMPst, O, B, B, B, B, B, B, B, B, O, O, B, + /* 11300 */ VMAbv, VMAbv, VMAbv, VMAbv, O, B, B, B, B, B, B, B, B, O, O, B, /* 11310 */ B, O, O, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 11320 */ B, B, B, B, B, B, B, B, B, O, B, B, B, B, B, B, /* 11330 */ B, O, B, B, O, B, B, B, B, B, O, CMBlw, CMBlw, B, VPst, VPst, @@ -600,7 +600,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11420 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 11430 */ B, B, B, B, B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VAbv, VAbv, /* 11440 */ VPst, VPst, H, VMAbv, VMAbv, VMPst, CMBlw, B, O, O, O, O, O, O, O, O, - /* 11450 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, FM, O, + /* 11450 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, FM, B, /* 11460 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, /* 11470 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, @@ -610,7 +610,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11490 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 114A0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 114B0 */ VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, VBlw, VBlw, VPre, VAbv, VPst, VPst, VPst, VPst, VMAbv, - /* 114C0 */ VMAbv, VMPst, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O, + /* 114C0 */ VMAbv, VMAbv, H, CMBlw, B, O, O, O, O, O, O, O, O, O, O, O, /* 114D0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, #define use_offset_0x11580u 4720 @@ -643,7 +643,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11680 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 11690 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 116A0 */ B, B, B, B, B, B, B, B, B, B, B, VMAbv, VMPst, VAbv, VPre, VPst, - /* 116B0 */ VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, H, CMBlw, O, O, O, O, O, O, O, O, + /* 116B0 */ VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, H, CMBlw, B, O, O, O, O, O, O, O, /* 116C0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, /* 116D0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, /* 116E0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, @@ -666,9 +666,18 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11820 */ B, B, B, B, B, B, B, B, B, B, B, B, VPst, VPre, VPst, VBlw, /* 11830 */ VBlw, VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, VMAbv, VMPst, H, CMBlw, O, O, O, O, O, -#define use_offset_0x11a00u 5232 +#define use_offset_0x119a0u 5232 + /* Nandinagari */ + + /* 119A0 */ B, B, B, B, B, B, B, B, O, O, B, B, B, B, B, B, + /* 119B0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, + /* 119C0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, + /* 119D0 */ B, VPst, VPre, VPst, VBlw, VBlw, VBlw, VBlw, O, O, VAbv, VAbv, VPst, VPst, VMPst, VMPst, + /* 119E0 */ H, B, O, O, VPre, O, O, O, O, O, O, O, O, O, O, O, + /* 119F0 */ O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, O, + /* Zanabazar Square */ /* 11A00 */ B, VAbv, VBlw, VBlw, VAbv, VAbv, VAbv, VAbv, VAbv, VAbv, VBlw, B, B, B, B, B, @@ -682,10 +691,10 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11A50 */ B, VAbv, VBlw, VBlw, VAbv, VAbv, VAbv, VPst, VPst, VBlw, VBlw, VBlw, B, B, B, B, /* 11A60 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 11A70 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, - /* 11A80 */ B, B, B, B, O, O, R, R, R, R, FBlw, FBlw, FBlw, FBlw, FBlw, FBlw, + /* 11A80 */ B, B, B, B, R, R, R, R, R, R, FBlw, FBlw, FBlw, FBlw, FBlw, FBlw, /* 11A90 */ FBlw, FBlw, FBlw, FBlw, FBlw, FBlw, VMAbv, VMPst, CMAbv, H, O, O, O, B, O, O, -#define use_offset_0x11c00u 5392 +#define use_offset_0x11c00u 5488 /* Bhaiksuki */ @@ -706,7 +715,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11CA0 */ SUB, SUB, SUB, SUB, SUB, SUB, SUB, SUB, O, SUB, SUB, SUB, SUB, SUB, SUB, SUB, /* 11CB0 */ VBlw, VPre, VBlw, VAbv, VPst, VMAbv, VMAbv, O, -#define use_offset_0x11d00u 5576 +#define use_offset_0x11d00u 5672 /* Masaram Gondi */ @@ -726,7 +735,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11D90 */ VAbv, VAbv, O, VPst, VPst, VMAbv, VMPst, H, O, O, O, O, O, O, O, O, /* 11DA0 */ B, B, B, B, B, B, B, B, B, B, O, O, O, O, O, O, -#define use_offset_0x11ee0u 5752 +#define use_offset_0x11ee0u 5848 /* Makasar */ @@ -734,7 +743,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = { /* 11EE0 */ B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, B, /* 11EF0 */ B, B, GB, VAbv, VBlw, VPre, VPst, O, -}; /* Table items: 5776; occupancy: 74% */ +}; /* Table items: 5872; occupancy: 74% */ USE_TABLE_ELEMENT_TYPE hb_use_get_category (hb_codepoint_t u) @@ -785,7 +794,7 @@ hb_use_get_category (hb_codepoint_t u) if (hb_in_range (u, 0x11400u, 0x114DFu)) return use_table[u - 0x11400u + use_offset_0x11400u]; if (hb_in_range (u, 0x11580u, 0x1173Fu)) return use_table[u - 0x11580u + use_offset_0x11580u]; if (hb_in_range (u, 0x11800u, 0x1183Fu)) return use_table[u - 0x11800u + use_offset_0x11800u]; - if (hb_in_range (u, 0x11A00u, 0x11A9Fu)) return use_table[u - 0x11A00u + use_offset_0x11a00u]; + if (hb_in_range (u, 0x119A0u, 0x11A9Fu)) return use_table[u - 0x119A0u + use_offset_0x119a0u]; if (hb_in_range (u, 0x11C00u, 0x11CB7u)) return use_table[u - 0x11C00u + use_offset_0x11c00u]; if (hb_in_range (u, 0x11D00u, 0x11DAFu)) return use_table[u - 0x11D00u + use_offset_0x11d00u]; if (hb_in_range (u, 0x11EE0u, 0x11EF7u)) return use_table[u - 0x11EE0u + use_offset_0x11ee0u]; diff --git a/src/hb-ot-shape-complex-use.cc b/src/hb-ot-shape-complex-use.cc index 2e3f202..eecde6e 100644 --- a/src/hb-ot-shape-complex-use.cc +++ b/src/hb-ot-shape-complex-use.cc @@ -523,6 +523,9 @@ insert_dotted_circles (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_font_t *font, hb_buffer_t *buffer) { + if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)) + return; + /* Note: This loop is extra overhead, but should not be measurable. */ bool has_broken_syllables = false; unsigned int count = buffer->len; diff --git a/src/hb-ot-shape-complex-vowel-constraints.cc b/src/hb-ot-shape-complex-vowel-constraints.cc index 0e53258..e4cf645 100644 --- a/src/hb-ot-shape-complex-vowel-constraints.cc +++ b/src/hb-ot-shape-complex-vowel-constraints.cc @@ -9,8 +9,8 @@ * # Copied from https://docs.microsoft.com/en-us/typography/script-development/use * # On October 23, 2018; with documentd dated 02/07/2018. * - * # Scripts-11.0.0.txt - * # Date: 2018-02-21, 05:34:31 GMT + * # Scripts-12.0.0.txt + * # Date: 2019-01-28, 22:16:47 GMT */ #include "hb-ot-shape-complex-vowel-constraints.hh" @@ -34,6 +34,9 @@ _hb_preprocess_text_vowel_constraints (const hb_ot_shape_plan_t *plan HB_UNUSED, hb_buffer_t *buffer, hb_font_t *font HB_UNUSED) { + if (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE) + return; + /* UGLY UGLY UGLY business of adding dotted-circle in the middle of * vowel-sequences that look like another vowel. Data for each script * collected from the USE script development spec. diff --git a/src/hb-ot-shape-complex.hh b/src/hb-ot-shape-complex.hh index a2499de..2691622 100644 --- a/src/hb-ot-shape-complex.hh +++ b/src/hb-ot-shape-complex.hh @@ -377,6 +377,9 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner) case HB_SCRIPT_MAKASAR: //case HB_SCRIPT_SOGDIAN: + /* Unicode-12.0 additions */ + case HB_SCRIPT_NANDINAGARI: + /* If the designer designed the font for the 'DFLT' script, * (or we ended up arbitrarily pick 'latn'), use the default shaper. * Otherwise, use the specific shaper. diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index e9d97c9..7fff305 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -448,6 +448,9 @@ hb_set_unicode_props (hb_buffer_t *buffer) static void hb_insert_dotted_circle (hb_buffer_t *buffer, hb_font_t *font) { + if (unlikely (buffer->flags & HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE)) + return; + if (!(buffer->flags & HB_BUFFER_FLAG_BOT) || buffer->context_len[0] || !_hb_glyph_info_is_unicode_mark (&buffer->info[0])) diff --git a/src/hb-ot-tag-table.hh b/src/hb-ot-tag-table.hh index b7090a0..09e1627 100644 --- a/src/hb-ot-tag-table.hh +++ b/src/hb-ot-tag-table.hh @@ -6,8 +6,8 @@ * * on files with these headers: * - * - * File-Date: 2018-08-08 + * + * File-Date: 2019-02-20 */ #ifndef HB_OT_TAG_TABLE_HH @@ -131,7 +131,7 @@ static const LangTag ot_languages[] = { {"bjt", {HB_TAG('B','L','N',' ')}}, /* Balanta-Ganja -> Balante */ {"bla", {HB_TAG('B','K','F',' ')}}, /* Siksika -> Blackfoot */ {"ble", {HB_TAG('B','L','N',' ')}}, /* Balanta-Kentohe -> Balante */ - {"blk", {HB_TAG('B','L','K',' ')}}, /* Pa'o Karen */ + {"blk", {HB_TAG('B','L','K',' ')}}, /* Pa’o Karen */ {"bln", {HB_TAG('B','I','K',' ')}}, /* Southern Catanduanes Bikol -> Bikol */ {"bm", {HB_TAG('B','M','B',' ')}}, /* Bambara (Bamanankan) */ {"bmm", {HB_TAG('M','L','G',' ')}}, /* Northern Betsimisaraka Malagasy -> Malagasy */ @@ -318,7 +318,7 @@ static const LangTag ot_languages[] = { {"fj", {HB_TAG('F','J','I',' ')}}, /* Fijian */ {"flm", {HB_TAG('H','A','L',' '), /* Halam (Falam Chin) (retired code) */ HB_TAG('Q','I','N',' ')}}, /* Falam Chin (retired code) -> Chin */ - {"fmp", {HB_TAG('F','M','P',' ')}}, /* Fe'fe' */ + {"fmp", {HB_TAG('F','M','P',' ')}}, /* Fe’fe’ */ {"fo", {HB_TAG('F','O','S',' ')}}, /* Faroese */ {"fon", {HB_TAG('F','O','N',' ')}}, /* Fon */ {"fr", {HB_TAG('F','R','A',' ')}}, /* French */ @@ -653,7 +653,7 @@ static const LangTag ot_languages[] = { {"mwr", {HB_TAG('M','A','W',' ')}}, /* Marwari [macrolanguage] */ {"mww", {HB_TAG('M','W','W',' ')}}, /* Hmong Daw */ {"my", {HB_TAG('B','R','M',' ')}}, /* Burmese */ - {"mym", {HB_TAG('M','E','N',' ')}}, /* Me'en */ + {"mym", {HB_TAG('M','E','N',' ')}}, /* Me’en */ {"myn", {HB_TAG('M','Y','N',' ')}}, /* Mayan [family] */ {"myq", {HB_TAG('M','N','K',' ')}}, /* Forest Maninka (retired code) -> Maninka */ {"myv", {HB_TAG('E','R','Z',' ')}}, /* Erzya */ @@ -687,7 +687,7 @@ static const LangTag ot_languages[] = { {"nog", {HB_TAG('N','O','G',' ')}}, /* Nogai */ {"nov", {HB_TAG('N','O','V',' ')}}, /* Novial */ {"npi", {HB_TAG('N','E','P',' ')}}, /* Nepali */ - {"nqo", {HB_TAG('N','K','O',' ')}}, /* N'Ko */ + {"nqo", {HB_TAG('N','K','O',' ')}}, /* N’Ko */ {"nr", {HB_TAG('N','D','B',' ')}}, /* South Ndebele -> Ndebele */ {"nsk", {HB_TAG('N','A','S',' ')}}, /* Naskapi */ {"nso", {HB_TAG('N','S','O',' ')}}, /* Pedi -> Sotho, Northern */ diff --git a/src/hb-ot-tag.cc b/src/hb-ot-tag.cc index d04e532..751ccab 100644 --- a/src/hb-ot-tag.cc +++ b/src/hb-ot-tag.cc @@ -171,24 +171,6 @@ hb_ot_tag_to_script (hb_tag_t tag) /* hb_language_t */ -static int -lang_compare_first_component (const void *pa, - const void *pb) -{ - const char *a = (const char *) pa; - const char *b = (const char *) pb; - unsigned int da, db; - const char *p; - - p = strchr (a, '-'); - da = p ? (unsigned int) (p - a) : strlen (a); - - p = strchr (b, '-'); - db = p ? (unsigned int) (p - b) : strlen (b); - - return strncmp (a, b, MAX (da, db)); -} - static bool subtag_matches (const char *lang_str, const char *limit, @@ -213,10 +195,28 @@ lang_matches (const char *lang_str, const char *spec) (lang_str[len] == '\0' || lang_str[len] == '-'); } -typedef struct { +struct LangTag +{ char language[4]; hb_tag_t tags[HB_OT_MAX_TAGS_PER_LANGUAGE]; -} LangTag; + + int cmp (const char *a) const + { + const char *b = this->language; + unsigned int da, db; + const char *p; + + p = strchr (a, '-'); + da = p ? (unsigned int) (p - a) : strlen (a); + + p = strchr (b, '-'); + db = p ? (unsigned int) (p - b) : strlen (b); + + return strncmp (a, b, MAX (da, db)); + } + int cmp (const LangTag *that) const + { return cmp (that->language); } +}; #include "hb-ot-tag-table.hh" @@ -263,9 +263,7 @@ hb_ot_tags_from_language (const char *lang_str, ISALPHA (s[1])) lang_str = s + 1; } - lang_tag = (LangTag *) bsearch (lang_str, ot_languages, - ARRAY_LENGTH (ot_languages), sizeof (LangTag), - lang_compare_first_component); + lang_tag = hb_sorted_array (ot_languages).bsearch (lang_str); if (lang_tag) { unsigned int i; @@ -507,7 +505,7 @@ test_langs_sorted () { for (unsigned int i = 1; i < ARRAY_LENGTH (ot_languages); i++) { - int c = lang_compare_first_component (ot_languages[i-1].language, ot_languages[i].language); + int c = ot_languages[i].cmp (&ot_languages[i - 1]); if (c >= 0) { fprintf (stderr, "ot_languages not sorted at index %d: %s %d %s\n", diff --git a/src/hb-ot-vorg-table.hh b/src/hb-ot-vorg-table.hh index 0202fcc..39073db 100644 --- a/src/hb-ot-vorg-table.hh +++ b/src/hb-ot-vorg-table.hh @@ -110,21 +110,29 @@ struct VORG /* count the number of glyphs to be included in the subset table */ hb_vector_t subset_metrics; subset_metrics.init (); - unsigned int glyph = 0; + + + hb_codepoint_t old_glyph = HB_SET_VALUE_INVALID; unsigned int i = 0; - while ((glyph < plan->glyphs.length) && (i < vertYOrigins.len)) + while (i < vertYOrigins.len + && plan->glyphset ()->next (&old_glyph)) { - if (plan->glyphs[glyph] > vertYOrigins[i].glyph) - i++; - else if (plan->glyphs[glyph] < vertYOrigins[i].glyph) - glyph++; - else + while (old_glyph > vertYOrigins[i].glyph) { - VertOriginMetric *metrics = subset_metrics.push (); - metrics->glyph.set (glyph); - metrics->vertOriginY.set (vertYOrigins[i].vertOriginY); - glyph++; i++; + if (i >= vertYOrigins.len) + break; + } + + if (old_glyph == vertYOrigins[i].glyph) + { + hb_codepoint_t new_glyph; + if (plan->new_gid_for_old_gid (old_glyph, &new_glyph)) + { + VertOriginMetric *metrics = subset_metrics.push (); + metrics->glyph.set (new_glyph); + metrics->vertOriginY.set (vertYOrigins[i].vertOriginY); + } } } diff --git a/src/hb-subset-cff-common.cc b/src/hb-subset-cff-common.cc index 3e617d5..f29937a 100644 --- a/src/hb-subset-cff-common.cc +++ b/src/hb-subset-cff-common.cc @@ -43,7 +43,7 @@ using namespace CFF; **/ bool -hb_plan_subset_cff_fdselect (const hb_vector_t &glyphs, +hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan, unsigned int fdCount, const FDSelect &src, /* IN */ unsigned int &subset_fd_count /* OUT */, @@ -57,7 +57,7 @@ hb_plan_subset_cff_fdselect (const hb_vector_t &glyphs, subset_fdselect_format = 0; unsigned int num_ranges = 0; - unsigned int subset_num_glyphs = glyphs.length; + unsigned int subset_num_glyphs = plan->num_output_glyphs (); if (subset_num_glyphs == 0) return true; @@ -69,7 +69,14 @@ hb_plan_subset_cff_fdselect (const hb_vector_t &glyphs, hb_codepoint_t prev_fd = CFF_UNDEF_CODE; for (hb_codepoint_t i = 0; i < subset_num_glyphs; i++) { - hb_codepoint_t fd = src.get_fd (glyphs[i]); + hb_codepoint_t glyph; + hb_codepoint_t fd; + if (!plan->old_gid_for_new_gid (i, &glyph)) + { + /* fonttools retains FDSelect & font dicts for missing glyphs. do the same */ + glyph = i; + } + fd = src.get_fd (glyph); set->add (fd); if (fd != prev_fd) diff --git a/src/hb-subset-cff-common.hh b/src/hb-subset-cff-common.hh index 915b4c4..81368ee 100644 --- a/src/hb-subset-cff-common.hh +++ b/src/hb-subset-cff-common.hh @@ -282,30 +282,35 @@ struct flatten_param_t bool drop_hints; }; -template +template struct subr_flattener_t { subr_flattener_t (const ACC &acc_, - const hb_vector_t &glyphs_, - bool drop_hints_) : acc (acc_), glyphs (glyphs_), - drop_hints (drop_hints_) {} + const hb_subset_plan_t *plan_) + : acc (acc_), plan (plan_) {} bool flatten (str_buff_vec_t &flat_charstrings) { - if (!flat_charstrings.resize (glyphs.length)) + if (!flat_charstrings.resize (plan->num_output_glyphs ())) return false; - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) flat_charstrings[i].init (); - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) { - hb_codepoint_t glyph = glyphs[i]; + hb_codepoint_t glyph; + if (!plan->old_gid_for_new_gid (i, &glyph)) + { + /* add an endchar only charstring for a missing glyph if CFF1 */ + if (endchar_op != OpCode_Invalid) flat_charstrings[i].push (endchar_op); + continue; + } const byte_str_t str = (*acc.charStrings)[glyph]; unsigned int fd = acc.fdSelect->get_fd (glyph); if (unlikely (fd >= acc.fdCount)) return false; cs_interpreter_t interp; interp.env.init (str, acc, fd); - flatten_param_t param = { flat_charstrings[i], drop_hints }; + flatten_param_t param = { flat_charstrings[i], plan->drop_hints }; if (unlikely (!interp.interpret (param))) return false; } @@ -313,8 +318,7 @@ struct subr_flattener_t } const ACC &acc; - const hb_vector_t &glyphs; - bool drop_hints; + const hb_subset_plan_t *plan; }; struct subr_closures_t @@ -611,10 +615,11 @@ struct subr_remap_ts hb_vector_t local_remaps; }; -template +template struct subr_subsetter_t { - subr_subsetter_t () + subr_subsetter_t (ACC &acc_, const hb_subset_plan_t *plan_) + : acc (acc_), plan (plan_) { parsed_charstrings.init (); parsed_global_subrs.init (); @@ -644,12 +649,12 @@ struct subr_subsetter_t * Assumption: a callsubr/callgsubr operator must immediately follow a (biased) subroutine number * within the same charstring/subroutine, e.g., not split across a charstring and a subroutine. */ - bool subset (ACC &acc, const hb_vector_t &glyphs, bool drop_hints) + bool subset (void) { closures.init (acc.fdCount); remaps.init (acc.fdCount); - parsed_charstrings.init (glyphs.length); + parsed_charstrings.init (plan->num_output_glyphs ()); parsed_global_subrs.init (acc.globalSubrs->count); parsed_local_subrs.resize (acc.fdCount); for (unsigned int i = 0; i < acc.fdCount; i++) @@ -660,9 +665,11 @@ struct subr_subsetter_t return false; /* phase 1 & 2 */ - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) { - hb_codepoint_t glyph = glyphs[i]; + hb_codepoint_t glyph; + if (!plan->old_gid_for_new_gid (i, &glyph)) + continue; const byte_str_t str = (*acc.charStrings)[glyph]; unsigned int fd = acc.fdSelect->get_fd (glyph); if (unlikely (fd >= acc.fdCount)) @@ -675,7 +682,7 @@ struct subr_subsetter_t param.init (&parsed_charstrings[i], &parsed_global_subrs, &parsed_local_subrs[fd], closures.global_closure, closures.local_closures[fd], - drop_hints); + plan->drop_hints); if (unlikely (!interp.interpret (param))) return false; @@ -684,19 +691,22 @@ struct subr_subsetter_t SUBSETTER::finalize_parsed_str (interp.env, param, parsed_charstrings[i]); } - if (drop_hints) + if (plan->drop_hints) { /* mark hint ops and arguments for drop */ - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) { - unsigned int fd = acc.fdSelect->get_fd (glyphs[i]); + hb_codepoint_t glyph; + if (!plan->old_gid_for_new_gid (i, &glyph)) + continue; + unsigned int fd = acc.fdSelect->get_fd (glyph); if (unlikely (fd >= acc.fdCount)) return false; subr_subset_param_t param; param.init (&parsed_charstrings[i], &parsed_global_subrs, &parsed_local_subrs[fd], closures.global_closure, closures.local_closures[fd], - drop_hints); + plan->drop_hints); drop_hints_param_t drop; if (drop_hints_in_str (parsed_charstrings[i], param, drop)) @@ -709,16 +719,19 @@ struct subr_subsetter_t /* after dropping hints recreate closures of actually used subrs */ closures.reset (); - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) { - unsigned int fd = acc.fdSelect->get_fd (glyphs[i]); + hb_codepoint_t glyph; + if (!plan->old_gid_for_new_gid (i, &glyph)) + continue; + unsigned int fd = acc.fdSelect->get_fd (glyph); if (unlikely (fd >= acc.fdCount)) return false; subr_subset_param_t param; param.init (&parsed_charstrings[i], &parsed_global_subrs, &parsed_local_subrs[fd], closures.global_closure, closures.local_closures[fd], - drop_hints); + plan->drop_hints); collect_subr_refs_in_str (parsed_charstrings[i], param); } } @@ -728,13 +741,20 @@ struct subr_subsetter_t return true; } - bool encode_charstrings (ACC &acc, const hb_vector_t &glyphs, str_buff_vec_t &buffArray) const + bool encode_charstrings (str_buff_vec_t &buffArray) const { - if (unlikely (!buffArray.resize (glyphs.length))) + if (unlikely (!buffArray.resize (plan->num_output_glyphs ()))) return false; - for (unsigned int i = 0; i < glyphs.length; i++) + for (unsigned int i = 0; i < plan->num_output_glyphs (); i++) { - unsigned int fd = acc.fdSelect->get_fd (glyphs[i]); + hb_codepoint_t glyph; + if (!plan->old_gid_for_new_gid (i, &glyph)) + { + /* add an endchar only charstring for a missing glyph if CFF1 */ + if (endchar_op != OpCode_Invalid) buffArray[i].push (endchar_op); + continue; + } + unsigned int fd = acc.fdSelect->get_fd (glyph); if (unlikely (fd >= acc.fdCount)) return false; if (unlikely (!encode_str (parsed_charstrings[i], fd, buffArray[i]))) @@ -777,10 +797,12 @@ struct subr_subsetter_t drop_hints_param_t () : seen_moveto (false), ends_in_hint (false), + all_dropped (false), vsindex_dropped (false) {} bool seen_moveto; bool ends_in_hint; + bool all_dropped; bool vsindex_dropped; }; @@ -791,7 +813,7 @@ struct subr_subsetter_t drop.ends_in_hint = false; bool has_hint = drop_hints_in_str (subrs[subr_num], param, drop); - /* if this subr ends with a stem hint (i.e., not a number a potential argument for moveto), + /* if this subr ends with a stem hint (i.e., not a number; potential argument for moveto), * then this entire subroutine must be a hint. drop its call. */ if (drop.ends_in_hint) { @@ -801,6 +823,10 @@ struct subr_subsetter_t if (!str.at_end (pos)) drop.ends_in_hint = false; } + else if (drop.all_dropped) + { + str.values[pos].set_drop (); + } return has_hint; } @@ -819,7 +845,6 @@ struct subr_subsetter_t has_hint = drop_hints_in_subr (str, pos, *param.parsed_local_subrs, str.values[pos].subr_num, param, drop); - break; case OpCode_callgsubr: @@ -876,6 +901,23 @@ struct subr_subsetter_t } } + /* Raise all_dropped flag if all operators except return are dropped from a subr. + * It may happen even after seeing the first moveto if a subr contains + * only (usually one) hintmask operator, then calls to this subr can be dropped. + */ + drop.all_dropped = true; + for (unsigned int pos = 0; pos < str.values.length; pos++) + { + parsed_cs_op_t &csop = str.values[pos]; + if (csop.op == OpCode_return) + break; + if (!csop.for_drop ()) + { + drop.all_dropped = false; + break; + } + } + return seen_hint; } @@ -954,13 +996,16 @@ struct subr_subsetter_t } protected: - subr_closures_t closures; + const ACC &acc; + const hb_subset_plan_t *plan; + + subr_closures_t closures; - parsed_cs_str_vec_t parsed_charstrings; - parsed_cs_str_vec_t parsed_global_subrs; + parsed_cs_str_vec_t parsed_charstrings; + parsed_cs_str_vec_t parsed_global_subrs; hb_vector_t parsed_local_subrs; - subr_remap_ts remaps; + subr_remap_ts remaps; private: typedef typename SUBRS::count_type subr_count_type; @@ -969,7 +1014,7 @@ struct subr_subsetter_t } /* namespace CFF */ HB_INTERNAL bool -hb_plan_subset_cff_fdselect (const hb_vector_t &glyphs, +hb_plan_subset_cff_fdselect (const hb_subset_plan_t *plan, unsigned int fdCount, const CFF::FDSelect &src, /* IN */ unsigned int &subset_fd_count /* OUT */, diff --git a/src/hb-subset-cff1.cc b/src/hb-subset-cff1.cc index 5133a4d..49ac0bf 100644 --- a/src/hb-subset-cff1.cc +++ b/src/hb-subset-cff1.cc @@ -392,8 +392,11 @@ struct cff1_cs_opset_subr_subset_t : cff1_cs_opset_t SUPER; }; -struct cff1_subr_subsetter_t : subr_subsetter_t +struct cff1_subr_subsetter_t : subr_subsetter_t { + cff1_subr_subsetter_t (const OT::cff1::accelerator_subset_t &acc, const hb_subset_plan_t *plan) + : subr_subsetter_t (acc, plan) {} + static void finalize_parsed_str (cff1_cs_interp_env_t &env, subr_subset_param_t& param, parsed_cs_str_t &charstring) { /* insert width at the beginning of the charstring as necessary */ @@ -469,19 +472,24 @@ struct cff_subset_plan { supp_size = 0; supp_codes.init (); - subset_enc_num_codes = plan->glyphs.length - 1; + subset_enc_num_codes = plan->num_output_glyphs () - 1; unsigned int glyph; - for (glyph = 1; glyph < plan->glyphs.length; glyph++) + for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++) { - hb_codepoint_t orig_glyph = plan->glyphs[glyph]; - code = acc.glyph_to_code (orig_glyph); + hb_codepoint_t old_glyph; + if (!plan->old_gid_for_new_gid (glyph, &old_glyph)) + { + /* Retain the code for the old missing glyph ID */ + old_glyph = glyph; + } + code = acc.glyph_to_code (old_glyph); if (code == CFF_UNDEF_CODE) { subset_enc_num_codes = glyph - 1; break; } - if (code != last_code + 1) + if ((last_code == CFF_UNDEF_CODE) || (code != last_code + 1)) { code_pair_t pair = { code, glyph }; subset_enc_code_ranges.push (pair); @@ -490,7 +498,7 @@ struct cff_subset_plan { if (encoding != &Null(Encoding)) { - hb_codepoint_t sid = acc.glyph_to_sid (orig_glyph); + hb_codepoint_t sid = acc.glyph_to_sid (old_glyph); encoding->get_supplement_codes (sid, supp_codes); for (unsigned int i = 0; i < supp_codes.length; i++) { @@ -526,15 +534,20 @@ struct cff_subset_plan { subset_charset_ranges.resize (0); unsigned int glyph; - for (glyph = 1; glyph < plan->glyphs.length; glyph++) + for (glyph = 1; glyph < plan->num_output_glyphs (); glyph++) { - hb_codepoint_t orig_glyph = plan->glyphs[glyph]; - sid = acc.glyph_to_sid (orig_glyph); + hb_codepoint_t old_glyph; + if (!plan->old_gid_for_new_gid (glyph, &old_glyph)) + { + /* Retain the SID for the old missing glyph ID */ + old_glyph = glyph; + } + sid = acc.glyph_to_sid (old_glyph); if (!acc.is_CID ()) sid = sidmap.add (sid); - if (sid != last_sid + 1) + if ((last_sid == CFF_UNDEF_CODE) || (sid != last_sid + 1)) { code_pair_t pair = { sid, glyph }; subset_charset_ranges.push (pair); @@ -544,7 +557,7 @@ struct cff_subset_plan { bool two_byte = subset_charset_ranges.finalize (glyph); - size0 = Charset0::min_size + HBUINT16::static_size * (plan->glyphs.length - 1); + size0 = Charset0::min_size + HBUINT16::static_size * (plan->num_output_glyphs () - 1); if (!two_byte) size_ranges = Charset1::min_size + Charset1_Range::static_size * subset_charset_ranges.length; else @@ -559,7 +572,7 @@ struct cff_subset_plan { return Charset::calculate_serialized_size ( subset_charset_format, - subset_charset_format? subset_charset_ranges.length: plan->glyphs.length); + subset_charset_format? subset_charset_ranges.length: plan->num_output_glyphs ()); } bool collect_sids_in_dicts (const OT::cff1::accelerator_subset_t &acc) @@ -586,22 +599,25 @@ struct cff_subset_plan { } bool create (const OT::cff1::accelerator_subset_t &acc, - hb_subset_plan_t *plan) + hb_subset_plan_t *plan) { - /* make sure notdef is first */ - if ((plan->glyphs.length == 0) || (plan->glyphs[0] != 0)) return false; + /* make sure notdef is first */ + hb_codepoint_t old_glyph; + if (!plan->old_gid_for_new_gid (0, &old_glyph) || (old_glyph != 0)) return false; final_size = 0; - num_glyphs = plan->glyphs.length; + num_glyphs = plan->num_output_glyphs (); orig_fdcount = acc.fdCount; drop_hints = plan->drop_hints; desubroutinize = plan->desubroutinize; /* check whether the subset renumbers any glyph IDs */ gid_renum = false; - for (unsigned int glyph = 0; glyph < plan->glyphs.length; glyph++) + for (hb_codepoint_t new_glyph = 0; new_glyph < plan->num_output_glyphs (); new_glyph++) { - if (plan->glyphs[glyph] != glyph) { + if (!plan->old_gid_for_new_gid(new_glyph, &old_glyph)) + continue; + if (new_glyph != old_glyph) { gid_renum = true; break; } @@ -644,7 +660,7 @@ struct cff_subset_plan { /* Determine re-mapping of font index as fdmap among other info */ if (acc.fdSelect != &Null(CFF1FDSelect)) { - if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs, + if (unlikely (!hb_plan_subset_cff_fdselect (plan, orig_fdcount, *acc.fdSelect, subset_fdcount, @@ -680,8 +696,8 @@ struct cff_subset_plan { if (desubroutinize) { /* Flatten global & local subrs */ - subr_flattener_t - flattener(acc, plan->glyphs, plan->drop_hints); + subr_flattener_t + flattener(acc, plan); if (!flattener.flatten (subset_charstrings)) return false; @@ -690,12 +706,14 @@ struct cff_subset_plan { } else { + cff1_subr_subsetter_t subr_subsetter (acc, plan); + /* Subset subrs: collect used subroutines, leaving all unused ones behind */ - if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints)) + if (!subr_subsetter.subset ()) return false; /* encode charstrings, global subrs, local subrs with new subroutine numbers */ - if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings)) + if (!subr_subsetter.encode_charstrings (subset_charstrings)) return false; if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs)) @@ -784,7 +802,7 @@ struct cff_subset_plan { offsets.charStringsInfo.offSize = calcOffSize (dataSize); if (unlikely (offsets.charStringsInfo.offSize > 4)) return false; - final_size += CFF1CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->glyphs.length, dataSize); + final_size += CFF1CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->num_output_glyphs (), dataSize); } /* private dicts & local subrs */ @@ -816,7 +834,7 @@ struct cff_subset_plan { if (!acc.is_CID ()) offsets.privateDictInfo = fontdicts_mod[0].privateDictInfo; - return ((subset_charstrings.length == plan->glyphs.length) + return ((subset_charstrings.length == plan->num_output_glyphs ()) && (fontdicts_mod.length == subset_fdcount)); } @@ -859,12 +877,11 @@ struct cff_subset_plan { unsigned int topDictModSIDs[name_dict_values_t::ValCount]; bool desubroutinize; - cff1_subr_subsetter_t subr_subsetter; }; static inline bool _write_cff1 (const cff_subset_plan &plan, const OT::cff1::accelerator_subset_t &acc, - const hb_vector_t& glyphs, + unsigned int num_glyphs, unsigned int dest_sz, void *dest) { @@ -972,7 +989,7 @@ static inline bool _write_cff1 (const cff_subset_plan &plan, { assert (plan.offsets.FDSelectInfo.offset == (unsigned) (c.head - c.start)); - if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.length, *acc.fdSelect, acc.fdCount, + if (unlikely (!hb_serialize_cff_fdselect (&c, num_glyphs, *acc.fdSelect, acc.fdCount, plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size, plan.subset_fdselect_ranges))) { @@ -1064,7 +1081,7 @@ _hb_subset_cff1 (const OT::cff1::accelerator_subset_t &acc, unsigned int cff_prime_size = cff_plan.get_final_size (); char *cff_prime_data = (char *) calloc (1, cff_prime_size); - if (unlikely (!_write_cff1 (cff_plan, acc, plan->glyphs, + if (unlikely (!_write_cff1 (cff_plan, acc, plan->num_output_glyphs (), cff_prime_size, cff_prime_data))) { DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff."); free (cff_prime_data); diff --git a/src/hb-subset-cff2.cc b/src/hb-subset-cff2.cc index 73a292d..bf76a3e 100644 --- a/src/hb-subset-cff2.cc +++ b/src/hb-subset-cff2.cc @@ -225,6 +225,9 @@ struct cff2_cs_opset_subr_subset_t : cff2_cs_opset_t { + cff2_subr_subsetter_t (const OT::cff2::accelerator_subset_t &acc, const hb_subset_plan_t *plan) + : subr_subsetter_t (acc, plan) {} + static void finalize_parsed_str (cff2_cs_interp_env_t &env, subr_subset_param_t& param, parsed_cs_str_t &charstring) { /* vsindex is inserted at the beginning of the charstring as necessary */ @@ -287,7 +290,7 @@ struct cff2_subset_plan { { /* Flatten global & local subrs */ subr_flattener_t - flattener(acc, plan->glyphs, plan->drop_hints); + flattener(acc, plan); if (!flattener.flatten (subset_charstrings)) return false; @@ -296,12 +299,14 @@ struct cff2_subset_plan { } else { + cff2_subr_subsetter_t subr_subsetter (acc, plan); + /* Subset subrs: collect used subroutines, leaving all unused ones behind */ - if (!subr_subsetter.subset (acc, plan->glyphs, plan->drop_hints)) + if (!subr_subsetter.subset ()) return false; /* encode charstrings, global subrs, local subrs with new subroutine numbers */ - if (!subr_subsetter.encode_charstrings (acc, plan->glyphs, subset_charstrings)) + if (!subr_subsetter.encode_charstrings (subset_charstrings)) return false; if (!subr_subsetter.encode_globalsubrs (subset_globalsubrs)) @@ -352,7 +357,7 @@ struct cff2_subset_plan { if (acc.fdSelect != &Null(CFF2FDSelect)) { offsets.FDSelectInfo.offset = final_size; - if (unlikely (!hb_plan_subset_cff_fdselect (plan->glyphs, + if (unlikely (!hb_plan_subset_cff_fdselect (plan, orig_fdcount, *(const FDSelect *)acc.fdSelect, subset_fdcount, @@ -385,7 +390,7 @@ struct cff2_subset_plan { offsets.charStringsInfo.offset = final_size; unsigned int dataSize = subset_charstrings.total_size (); offsets.charStringsInfo.offSize = calcOffSize (dataSize); - final_size += CFF2CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->glyphs.length, dataSize); + final_size += CFF2CharStrings::calculate_serialized_size (offsets.charStringsInfo.offSize, plan->num_output_glyphs (), dataSize); } /* private dicts & local subrs */ @@ -431,12 +436,11 @@ struct cff2_subset_plan { bool drop_hints; bool desubroutinize; - cff2_subr_subsetter_t subr_subsetter; }; static inline bool _write_cff2 (const cff2_subset_plan &plan, const OT::cff2::accelerator_subset_t &acc, - const hb_vector_t& glyphs, + unsigned int num_glyphs, unsigned int dest_sz, void *dest) { @@ -493,7 +497,7 @@ static inline bool _write_cff2 (const cff2_subset_plan &plan, { assert (plan.offsets.FDSelectInfo.offset == (unsigned) (c.head - c.start)); - if (unlikely (!hb_serialize_cff_fdselect (&c, glyphs.length, *(const FDSelect *)acc.fdSelect, acc.fdArray->count, + if (unlikely (!hb_serialize_cff_fdselect (&c, num_glyphs, *(const FDSelect *)acc.fdSelect, acc.fdArray->count, plan.subset_fdselect_format, plan.offsets.FDSelectInfo.size, plan.subset_fdselect_ranges))) { @@ -584,7 +588,7 @@ _hb_subset_cff2 (const OT::cff2::accelerator_subset_t &acc, unsigned int cff2_prime_size = cff2_plan.get_final_size (); char *cff2_prime_data = (char *) calloc (1, cff2_prime_size); - if (unlikely (!_write_cff2 (cff2_plan, acc, plan->glyphs, + if (unlikely (!_write_cff2 (cff2_plan, acc, plan->num_output_glyphs (), cff2_prime_size, cff2_prime_data))) { DEBUG_MSG(SUBSET, nullptr, "Failed to write a subset cff2."); free (cff2_prime_data); @@ -592,10 +596,10 @@ _hb_subset_cff2 (const OT::cff2::accelerator_subset_t &acc, } *prime = hb_blob_create (cff2_prime_data, - cff2_prime_size, - HB_MEMORY_MODE_READONLY, - cff2_prime_data, - free); + cff2_prime_size, + HB_MEMORY_MODE_READONLY, + cff2_prime_data, + free); return true; } diff --git a/src/hb-subset-glyf.cc b/src/hb-subset-glyf.cc index cca364d..ee004ee 100644 --- a/src/hb-subset-glyf.cc +++ b/src/hb-subset-glyf.cc @@ -29,97 +29,128 @@ #include "hb-set.h" #include "hb-subset-glyf.hh" +struct loca_data_t +{ + bool is_short; + void *data; + unsigned int size; + + inline bool + _write_loca_entry (unsigned int id, + unsigned int offset) + { + unsigned int entry_size = is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32); + if ((id + 1) * entry_size <= size) + { + if (is_short) { + ((OT::HBUINT16*) data) [id].set (offset / 2); + } else { + ((OT::HBUINT32*) data) [id].set (offset); + } + return true; + } + + // Offset was not written because the write is out of bounds. + DEBUG_MSG(SUBSET, + nullptr, + "WARNING: Attempted to write an out of bounds loca entry at index %d. Loca size is %d.", + id, + size); + return false; + } +}; + +/** + * If hints are being dropped find the range which in glyf at which + * the hinting instructions are located. Add them to the instruction_ranges + * vector. + */ static bool -_calculate_glyf_and_loca_prime_size (const OT::glyf::accelerator_t &glyf, - hb_vector_t &glyph_ids, - hb_bool_t drop_hints, - bool *use_short_loca /* OUT */, - unsigned int *glyf_size /* OUT */, - unsigned int *loca_size /* OUT */, - hb_vector_t *instruction_ranges /* OUT */) +_add_instructions_range (const OT::glyf::accelerator_t &glyf, + hb_codepoint_t glyph_id, + unsigned int glyph_start_offset, + unsigned int glyph_end_offset, + bool drop_hints, + hb_vector_t *instruction_ranges /* OUT */) { - unsigned int total = 0; - for (unsigned int i = 0; i < glyph_ids.length; i++) + if (!instruction_ranges->resize (instruction_ranges->length + 2)) { - hb_codepoint_t next_glyph = glyph_ids[i]; - if (!instruction_ranges->resize (instruction_ranges->length + 2)) + DEBUG_MSG(SUBSET, nullptr, "Failed to resize instruction_ranges."); + return false; + } + unsigned int *instruction_start = &(*instruction_ranges)[instruction_ranges->length - 2]; + *instruction_start = 0; + unsigned int *instruction_end = &(*instruction_ranges)[instruction_ranges->length - 1]; + *instruction_end = 0; + + if (drop_hints) + { + if (unlikely (!glyf.get_instruction_offsets (glyph_start_offset, glyph_end_offset, + instruction_start, instruction_end))) { - DEBUG_MSG(SUBSET, nullptr, "Failed to resize instruction_ranges."); + DEBUG_MSG(SUBSET, nullptr, "Unable to get instruction offsets for %d", glyph_id); return false; } - unsigned int *instruction_start = &(*instruction_ranges)[instruction_ranges->length - 2]; - *instruction_start = 0; - unsigned int *instruction_end = &(*instruction_ranges)[instruction_ranges->length - 1]; - *instruction_end = 0; + } + + return true; +} +static bool +_calculate_glyf_and_loca_prime_size (const OT::glyf::accelerator_t &glyf, + const hb_subset_plan_t *plan, + loca_data_t *loca_data, /* OUT */ + unsigned int *glyf_size /* OUT */, + hb_vector_t *instruction_ranges /* OUT */) +{ + unsigned int total = 0; + + hb_codepoint_t next_glyph = HB_SET_VALUE_INVALID; + while (plan->glyphset ()->next (&next_glyph)) + { unsigned int start_offset, end_offset; if (unlikely (!(glyf.get_offsets (next_glyph, &start_offset, &end_offset) && glyf.remove_padding (start_offset, &end_offset)))) { DEBUG_MSG(SUBSET, nullptr, "Invalid gid %d", next_glyph); - continue; + start_offset = end_offset = 0; } - if (end_offset - start_offset < OT::glyf::GlyphHeader::static_size) - continue; /* 0-length glyph */ - if (drop_hints) - { - if (unlikely (!glyf.get_instruction_offsets (start_offset, end_offset, - instruction_start, instruction_end))) - { - DEBUG_MSG(SUBSET, nullptr, "Unable to get instruction offsets for %d", next_glyph); - return false; - } - } + bool is_zero_length = end_offset - start_offset < OT::glyf::GlyphHeader::static_size; + if (!_add_instructions_range (glyf, + next_glyph, + start_offset, + end_offset, + plan->drop_hints && !is_zero_length, + instruction_ranges)) + return false; - total += end_offset - start_offset - (*instruction_end - *instruction_start); + if (is_zero_length) + continue; /* 0-length glyph */ + + total += end_offset - start_offset + - ((*instruction_ranges)[instruction_ranges->length - 1] + - (*instruction_ranges)[instruction_ranges->length - 2]); /* round2 so short loca will work */ total += total % 2; } *glyf_size = total; - *use_short_loca = (total <= 131070); - *loca_size = (glyph_ids.length + 1) - * (*use_short_loca ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32)); + loca_data->is_short = (total <= 131070); + loca_data->size = (plan->num_output_glyphs () + 1) + * (loca_data->is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32)); DEBUG_MSG(SUBSET, nullptr, "preparing to subset glyf: final size %d, loca size %d, using %s loca", total, - *loca_size, - *use_short_loca ? "short" : "long"); + loca_data->size, + loca_data->is_short ? "short" : "long"); return true; } -static bool -_write_loca_entry (unsigned int id, - unsigned int offset, - bool is_short, - void *loca_prime, - unsigned int loca_size) -{ - unsigned int entry_size = is_short ? sizeof (OT::HBUINT16) : sizeof (OT::HBUINT32); - if ((id + 1) * entry_size <= loca_size) - { - if (is_short) { - ((OT::HBUINT16*) loca_prime) [id].set (offset / 2); - } else { - ((OT::HBUINT32*) loca_prime) [id].set (offset); - } - return true; - } - - // Offset was not written because the write is out of bounds. - DEBUG_MSG(SUBSET, - nullptr, - "WARNING: Attempted to write an out of bounds loca entry at index %d. Loca size is %d.", - id, - loca_size); - return false; -} - static void -_update_components (hb_subset_plan_t * plan, - char * glyph_start, - unsigned int length) +_update_components (const hb_subset_plan_t *plan, + char *glyph_start, + unsigned int length) { OT::glyf::CompositeGlyphHeader::Iterator iterator; if (OT::glyf::CompositeGlyphHeader::get_iterator (glyph_start, @@ -153,24 +184,35 @@ static bool _remove_composite_instruction_flag (char *glyf_prime, unsigned int l } static bool -_write_glyf_and_loca_prime (hb_subset_plan_t *plan, +_write_glyf_and_loca_prime (const hb_subset_plan_t *plan, const OT::glyf::accelerator_t &glyf, const char *glyf_data, - bool use_short_loca, - hb_vector_t &instruction_ranges, + hb_vector_t &instruction_ranges, unsigned int glyf_prime_size, char *glyf_prime_data /* OUT */, - unsigned int loca_prime_size, - char *loca_prime_data /* OUT */) + loca_data_t *loca_prime /* OUT */) { - hb_vector_t &glyph_ids = plan->glyphs; char *glyf_prime_data_next = glyf_prime_data; bool success = true; - for (unsigned int i = 0; i < glyph_ids.length; i++) + + + unsigned int i = 0; + hb_codepoint_t new_gid; + for (new_gid = 0; new_gid < plan->num_output_glyphs (); new_gid++) { + hb_codepoint_t old_gid; + if (!plan->old_gid_for_new_gid (new_gid, &old_gid)) + { + // Empty glyph, add a loca entry and carry on. + loca_prime->_write_loca_entry (new_gid, + glyf_prime_data_next - glyf_prime_data); + continue; + } + + unsigned int start_offset, end_offset; - if (unlikely (!(glyf.get_offsets (glyph_ids[i], &start_offset, &end_offset) && + if (unlikely (!(glyf.get_offsets (old_gid, &start_offset, &end_offset) && glyf.remove_padding (start_offset, &end_offset)))) end_offset = start_offset = 0; @@ -182,9 +224,9 @@ _write_glyf_and_loca_prime (hb_subset_plan_t *plan, if (glyf_prime_data_next + length > glyf_prime_data + glyf_prime_size) { DEBUG_MSG(SUBSET, - nullptr, - "WARNING: Attempted to write an out of bounds glyph entry for gid %d (length %d)", - i, length); + nullptr, + "WARNING: Attempted to write an out of bounds glyph entry for gid %d (length %d)", + i, length); return false; } @@ -204,22 +246,20 @@ _write_glyf_and_loca_prime (hb_subset_plan_t *plan, memset (glyf_prime_data_next + instruction_start - start_offset - 2, 0, 2); } - success = success && _write_loca_entry (i, - glyf_prime_data_next - glyf_prime_data, - use_short_loca, - loca_prime_data, - loca_prime_size); + success = success && loca_prime->_write_loca_entry (new_gid, + glyf_prime_data_next - glyf_prime_data); _update_components (plan, glyf_prime_data_next, length); // TODO: don't align to two bytes if using long loca. glyf_prime_data_next += length + (length % 2); // Align to 2 bytes for short loca. + + i++; } - success = success && _write_loca_entry (glyph_ids.length, - glyf_prime_data_next - glyf_prime_data, - use_short_loca, - loca_prime_data, - loca_prime_size); + // loca table has n+1 entries where the last entry signifies the end location of the last + // glyph. + success = success && loca_prime->_write_loca_entry (new_gid, + glyf_prime_data_next - glyf_prime_data); return success; } @@ -228,52 +268,48 @@ _hb_subset_glyf_and_loca (const OT::glyf::accelerator_t &glyf, const char *glyf_data, hb_subset_plan_t *plan, bool *use_short_loca, - hb_blob_t **glyf_prime /* OUT */, - hb_blob_t **loca_prime /* OUT */) + hb_blob_t **glyf_prime_blob /* OUT */, + hb_blob_t **loca_prime_blob /* OUT */) { // TODO(grieger): Sanity check allocation size for the new table. - hb_vector_t &glyphs_to_retain = plan->glyphs; - + loca_data_t loca_prime; unsigned int glyf_prime_size; - unsigned int loca_prime_size; hb_vector_t instruction_ranges; instruction_ranges.init (); if (unlikely (!_calculate_glyf_and_loca_prime_size (glyf, - glyphs_to_retain, - plan->drop_hints, - use_short_loca, + plan, + &loca_prime, &glyf_prime_size, - &loca_prime_size, &instruction_ranges))) { instruction_ranges.fini (); return false; } + *use_short_loca = loca_prime.is_short; char *glyf_prime_data = (char *) calloc (1, glyf_prime_size); - char *loca_prime_data = (char *) calloc (1, loca_prime_size); + loca_prime.data = (void *) calloc (1, loca_prime.size); if (unlikely (!_write_glyf_and_loca_prime (plan, glyf, glyf_data, - *use_short_loca, instruction_ranges, glyf_prime_size, glyf_prime_data, - loca_prime_size, loca_prime_data))) { + &loca_prime))) { free (glyf_prime_data); - free (loca_prime_data); + free (loca_prime.data); instruction_ranges.fini (); return false; } instruction_ranges.fini (); - *glyf_prime = hb_blob_create (glyf_prime_data, - glyf_prime_size, - HB_MEMORY_MODE_READONLY, - glyf_prime_data, - free); - *loca_prime = hb_blob_create (loca_prime_data, - loca_prime_size, - HB_MEMORY_MODE_READONLY, - loca_prime_data, - free); + *glyf_prime_blob = hb_blob_create (glyf_prime_data, + glyf_prime_size, + HB_MEMORY_MODE_READONLY, + glyf_prime_data, + free); + *loca_prime_blob = hb_blob_create ((char *) loca_prime.data, + loca_prime.size, + HB_MEMORY_MODE_READONLY, + loca_prime.data, + free); return true; } diff --git a/src/hb-subset-input.cc b/src/hb-subset-input.cc index f718a56..693c9c2 100644 --- a/src/hb-subset-input.cc +++ b/src/hb-subset-input.cc @@ -44,7 +44,10 @@ hb_subset_input_create_or_fail () input->unicodes = hb_set_create (); input->glyphs = hb_set_create (); + input->drop_hints = false; input->drop_layout = true; + input->desubroutinize = false; + input->retain_gids = false; return input; } @@ -144,3 +147,27 @@ hb_subset_input_get_desubroutinize (hb_subset_input_t *subset_input) { return subset_input->desubroutinize; } + +/** + * hb_subset_input_set_retain_gids: + * @subset_input: a subset_input. + * @retain_gids: If true the subsetter will not renumber glyph ids. + * Since: REPLACEME + **/ +HB_EXTERN void +hb_subset_input_set_retain_gids (hb_subset_input_t *subset_input, + hb_bool_t retain_gids) +{ + subset_input->retain_gids = retain_gids; +} + +/** + * hb_subset_input_get_retain_gids: + * Returns: value of retain_gids. + * Since: REPLACEME + **/ +HB_EXTERN hb_bool_t +hb_subset_input_get_retain_gids (hb_subset_input_t *subset_input) +{ + return subset_input->retain_gids; +} diff --git a/src/hb-subset-input.hh b/src/hb-subset-input.hh index 8dad94f..04d6e12 100644 --- a/src/hb-subset-input.hh +++ b/src/hb-subset-input.hh @@ -44,6 +44,7 @@ struct hb_subset_input_t bool drop_hints : 1; bool drop_layout : 1; bool desubroutinize : 1; + bool retain_gids : 1; /* TODO * * features diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc index cff3426..8b72314 100644 --- a/src/hb-subset-plan.cc +++ b/src/hb-subset-plan.cc @@ -96,10 +96,10 @@ _remove_invalid_gids (hb_set_t *glyphs, static hb_set_t * _populate_gids_to_retain (hb_face_t *face, const hb_set_t *unicodes, + const hb_set_t *input_glyphs_to_retain, bool close_over_gsub, hb_set_t *unicodes_to_retain, - hb_map_t *codepoint_to_glyph, - hb_vector_t *glyphs) + hb_map_t *codepoint_to_glyph) { OT::cmap::accelerator_t cmap; OT::glyf::accelerator_t glyf; @@ -110,6 +110,7 @@ _populate_gids_to_retain (hb_face_t *face, hb_set_t *initial_gids_to_retain = hb_set_create (); initial_gids_to_retain->add (0); // Not-def + hb_set_union (initial_gids_to_retain, input_glyphs_to_retain); hb_codepoint_t cp = HB_SET_VALUE_INVALID; while (unicodes->next (&cp)) @@ -143,10 +144,6 @@ _populate_gids_to_retain (hb_face_t *face, _remove_invalid_gids (all_gids_to_retain, face->get_num_glyphs ()); - glyphs->alloc (all_gids_to_retain->get_population ()); - gid = HB_SET_VALUE_INVALID; - while (all_gids_to_retain->next (&gid)) - glyphs->push (gid); cff.fini (); glyf.fini (); @@ -156,11 +153,35 @@ _populate_gids_to_retain (hb_face_t *face, } static void -_create_old_gid_to_new_gid_map (const hb_vector_t &glyphs, - hb_map_t *glyph_map) +_create_old_gid_to_new_gid_map (const hb_face_t *face, + bool retain_gids, + hb_set_t *all_gids_to_retain, + hb_map_t *glyph_map, /* OUT */ + hb_map_t *reverse_glyph_map, /* OUT */ + unsigned int *num_glyphs /* OUT */) { - for (unsigned int i = 0; i < glyphs.length; i++) { - glyph_map->set (glyphs[i], i); + hb_codepoint_t gid = HB_SET_VALUE_INVALID; + unsigned int length = 0; + for (unsigned int i = 0; all_gids_to_retain->next (&gid); i++) { + if (!retain_gids) + { + glyph_map->set (gid, i); + reverse_glyph_map->set (i, gid); + } + else + { + glyph_map->set (gid, gid); + reverse_glyph_map->set (gid, gid); + } + ++length; + } + if (!retain_gids || length == 0) + { + *num_glyphs = length; + } + else + { + *num_glyphs = face->get_num_glyphs (); } } @@ -184,19 +205,24 @@ hb_subset_plan_create (hb_face_t *face, plan->drop_layout = input->drop_layout; plan->desubroutinize = input->desubroutinize; plan->unicodes = hb_set_create(); - plan->glyphs.init(); plan->source = hb_face_reference (face); plan->dest = hb_face_builder_create (); plan->codepoint_to_glyph = hb_map_create(); plan->glyph_map = hb_map_create(); - plan->glyphset = _populate_gids_to_retain (face, - input->unicodes, - !plan->drop_layout, - plan->unicodes, - plan->codepoint_to_glyph, - &plan->glyphs); - _create_old_gid_to_new_gid_map (plan->glyphs, - plan->glyph_map); + plan->reverse_glyph_map = hb_map_create(); + plan->_glyphset = _populate_gids_to_retain (face, + input->unicodes, + input->glyphs, + !plan->drop_layout, + plan->unicodes, + plan->codepoint_to_glyph); + + _create_old_gid_to_new_gid_map (face, + input->retain_gids, + plan->_glyphset, + plan->glyph_map, + plan->reverse_glyph_map, + &plan->_num_output_glyphs); return plan; } @@ -212,12 +238,12 @@ hb_subset_plan_destroy (hb_subset_plan_t *plan) if (!hb_object_destroy (plan)) return; hb_set_destroy (plan->unicodes); - plan->glyphs.fini (); hb_face_destroy (plan->source); hb_face_destroy (plan->dest); hb_map_destroy (plan->codepoint_to_glyph); hb_map_destroy (plan->glyph_map); - hb_set_destroy (plan->glyphset); + hb_map_destroy (plan->reverse_glyph_map); + hb_set_destroy (plan->_glyphset); free (plan); } diff --git a/src/hb-subset-plan.hh b/src/hb-subset-plan.hh index a710a4d..56726d4 100644 --- a/src/hb-subset-plan.hh +++ b/src/hb-subset-plan.hh @@ -33,6 +33,7 @@ #include "hb-subset-input.hh" #include "hb-map.hh" +#include "hb-set.hh" struct hb_subset_plan_t { @@ -45,18 +46,51 @@ struct hb_subset_plan_t // For each cp that we'd like to retain maps to the corresponding gid. hb_set_t *unicodes; - hb_vector_t glyphs; - hb_set_t *glyphset; - + // The glyph subset hb_map_t *codepoint_to_glyph; + + // Old -> New glyph id mapping hb_map_t *glyph_map; + hb_map_t *reverse_glyph_map; // Plan is only good for a specific source/dest so keep them with it hb_face_t *source; hb_face_t *dest; - bool new_gid_for_codepoint (hb_codepoint_t codepoint, - hb_codepoint_t *new_gid) const + unsigned int _num_output_glyphs; + hb_set_t *_glyphset; + + public: + + /* + * The set of input glyph ids which will be retained in the subset. + */ + inline const hb_set_t * + glyphset () const + { + return _glyphset; + } + + /* + * The total number of output glyphs in the final subset. + */ + inline unsigned int + num_output_glyphs () const + { + return _num_output_glyphs; + } + + /* + * Given an output gid , returns true if that glyph id is an empty + * glyph (ie. it's a gid that we are dropping all data for). + */ + inline bool is_empty_glyph (hb_codepoint_t gid) const + { + return !_glyphset->has (gid); + } + + inline bool new_gid_for_codepoint (hb_codepoint_t codepoint, + hb_codepoint_t *new_gid) const { hb_codepoint_t old_gid = codepoint_to_glyph->get (codepoint); if (old_gid == HB_MAP_VALUE_INVALID) @@ -65,8 +99,8 @@ struct hb_subset_plan_t return new_gid_for_old_gid (old_gid, new_gid); } - bool new_gid_for_old_gid (hb_codepoint_t old_gid, - hb_codepoint_t *new_gid) const + inline bool new_gid_for_old_gid (hb_codepoint_t old_gid, + hb_codepoint_t *new_gid) const { hb_codepoint_t gid = glyph_map->get (old_gid); if (gid == HB_MAP_VALUE_INVALID) @@ -76,7 +110,18 @@ struct hb_subset_plan_t return true; } - bool + inline bool old_gid_for_new_gid (hb_codepoint_t new_gid, + hb_codepoint_t *old_gid) const + { + hb_codepoint_t gid = reverse_glyph_map->get (new_gid); + if (gid == HB_MAP_VALUE_INVALID) + return false; + + *old_gid = gid; + return true; + } + + inline bool add_table (hb_tag_t tag, hb_blob_t *contents) { diff --git a/src/hb-subset.cc b/src/hb-subset.cc index 37e7cec..135265f 100644 --- a/src/hb-subset.cc +++ b/src/hb-subset.cc @@ -52,7 +52,7 @@ _plan_estimate_subset_table_size (hb_subset_plan_t *plan, unsigned int table_len) { unsigned int src_glyphs = plan->source->get_num_glyphs (); - unsigned int dst_glyphs = plan->glyphset->get_population (); + unsigned int dst_glyphs = plan->glyphset ()->get_population (); if (unlikely (!src_glyphs)) return 512 + table_len; diff --git a/src/hb-subset.h b/src/hb-subset.h index f582e46..657709e 100644 --- a/src/hb-subset.h +++ b/src/hb-subset.h @@ -72,6 +72,12 @@ hb_subset_input_set_desubroutinize (hb_subset_input_t *subset_input, HB_EXTERN hb_bool_t hb_subset_input_get_desubroutinize (hb_subset_input_t *subset_input); +HB_EXTERN void +hb_subset_input_set_retain_gids (hb_subset_input_t *subset_input, + hb_bool_t retain_gids); +HB_EXTERN hb_bool_t +hb_subset_input_get_retain_gids (hb_subset_input_t *subset_input); + /* hb_subset () */ HB_EXTERN hb_face_t * hb_subset (hb_face_t *source, hb_subset_input_t *input); diff --git a/src/hb-ucdn.cc b/src/hb-ucdn.cc index 534935f..8230bf1 100644 --- a/src/hb-ucdn.cc +++ b/src/hb-ucdn.cc @@ -171,6 +171,10 @@ static const hb_script_t ucdn_script_translate[] = HB_SCRIPT_MEDEFAIDRIN, HB_SCRIPT_OLD_SOGDIAN, HB_SCRIPT_SOGDIAN, + HB_SCRIPT_ELYMAIC, + HB_SCRIPT_NANDINAGARI, + HB_SCRIPT_NYIAKENG_PUACHUE_HMONG, + HB_SCRIPT_WANCHO, }; static hb_unicode_combining_class_t diff --git a/src/hb-ucdn/Makefile.in b/src/hb-ucdn/Makefile.in index 9529940..509bed2 100644 --- a/src/hb-ucdn/Makefile.in +++ b/src/hb-ucdn/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -127,7 +127,8 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -354,7 +355,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -400,8 +400,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -434,7 +434,13 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -522,7 +528,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -592,7 +601,7 @@ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -638,7 +647,7 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/libhb_ucdn_la-ucdn.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -659,16 +668,16 @@ uninstall-am: .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-libtool distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstLTLIBRARIES \ + cscopelist-am ctags ctags-am distclean distclean-compile \ + distclean-generic distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am diff --git a/src/hb-ucdn/ucdn.h b/src/hb-ucdn/ucdn.h index 05d46d2..1317d4f 100644 --- a/src/hb-ucdn/ucdn.h +++ b/src/hb-ucdn/ucdn.h @@ -206,6 +206,17 @@ typedef unsigned __int64 uint64_t; #define UCDN_SCRIPT_NUSHU 139 #define UCDN_SCRIPT_SOYOMBO 140 #define UCDN_SCRIPT_ZANABAZAR_SQUARE 141 +#define UCDN_SCRIPT_DOGRA 142 +#define UCDN_SCRIPT_GUNJALA_GONDI 143 +#define UCDN_SCRIPT_HANIFI_ROHINGYA 144 +#define UCDN_SCRIPT_MAKASAR 145 +#define UCDN_SCRIPT_MEDEFAIDRIN 146 +#define UCDN_SCRIPT_OLD_SOGDIAN 147 +#define UCDN_SCRIPT_SOGDIAN 148 +#define UCDN_SCRIPT_ELYMAIC 149 +#define UCDN_SCRIPT_NANDINAGARI 150 +#define UCDN_SCRIPT_NYIAKENG_PUACHUE_HMONG 151 +#define UCDN_SCRIPT_WANCHO 152 #define UCDN_LINEBREAK_CLASS_OP 0 #define UCDN_LINEBREAK_CLASS_CL 1 diff --git a/src/hb-ucdn/ucdn_db.h b/src/hb-ucdn/ucdn_db.h index 87872b7..8f1310f 100644 --- a/src/hb-ucdn/ucdn_db.h +++ b/src/hb-ucdn/ucdn_db.h @@ -1,6 +1,6 @@ /* this file was generated by makeunicodedata.py 3.2 */ -#define UNIDATA_VERSION "11.0.0" +#define UNIDATA_VERSION "12.0.0" /* a list of unique database records */ static const UCDRecord ucd_records[] = { {2, 0, 18, 5, 102, 39}, @@ -201,7 +201,6 @@ static const UCDRecord ucd_records[] = { {7, 0, 0, 5, 9, 12}, {12, 7, 13, 5, 9, 21}, {12, 9, 13, 5, 9, 21}, - {12, 230, 13, 5, 9, 21}, {21, 0, 0, 5, 0, 17}, {13, 0, 0, 5, 9, 11}, {21, 0, 0, 5, 9, 12}, @@ -257,6 +256,7 @@ static const UCDRecord ucd_records[] = { {12, 84, 13, 5, 15, 21}, {12, 91, 13, 5, 15, 21}, {13, 0, 0, 5, 15, 11}, + {21, 0, 0, 5, 15, 18}, {15, 0, 18, 5, 15, 12}, {26, 0, 0, 5, 15, 12}, {7, 0, 0, 5, 16, 12}, @@ -294,6 +294,7 @@ static const UCDRecord ucd_records[] = { {7, 0, 0, 5, 20, 36}, {12, 0, 13, 5, 20, 36}, {12, 118, 13, 5, 20, 36}, + {12, 9, 13, 5, 20, 36}, {6, 0, 0, 5, 20, 36}, {12, 122, 13, 5, 20, 36}, {13, 0, 0, 5, 20, 11}, @@ -348,6 +349,7 @@ static const UCDRecord ucd_records[] = { {5, 0, 0, 5, 26, 12}, {17, 0, 18, 5, 27, 17}, {7, 0, 0, 5, 27, 12}, + {26, 0, 0, 5, 27, 12}, {21, 0, 0, 5, 27, 12}, {29, 0, 17, 5, 28, 17}, {7, 0, 0, 5, 28, 12}, @@ -632,6 +634,7 @@ static const UCDRecord ucd_records[] = { {12, 0, 13, 5, 70, 21}, {21, 0, 0, 5, 70, 17}, {13, 0, 0, 5, 70, 11}, + {12, 230, 13, 5, 9, 21}, {21, 0, 0, 5, 9, 18}, {13, 0, 0, 5, 71, 11}, {7, 0, 0, 5, 71, 12}, @@ -817,6 +820,7 @@ static const UCDRecord ucd_records[] = { {12, 230, 13, 5, 148, 21}, {15, 0, 4, 5, 148, 12}, {21, 0, 4, 5, 148, 12}, + {7, 0, 3, 5, 149, 12}, {10, 0, 0, 5, 93, 21}, {12, 0, 13, 5, 93, 21}, {7, 0, 0, 5, 93, 12}, @@ -936,6 +940,11 @@ static const UCDRecord ucd_records[] = { {13, 0, 0, 5, 125, 11}, {15, 0, 0, 5, 125, 12}, {7, 0, 0, 5, 125, 12}, + {7, 0, 0, 5, 150, 12}, + {10, 0, 0, 5, 150, 21}, + {12, 0, 13, 5, 150, 21}, + {12, 9, 13, 5, 150, 21}, + {21, 0, 0, 5, 150, 18}, {7, 0, 0, 5, 141, 12}, {12, 0, 13, 5, 141, 21}, {12, 0, 0, 5, 141, 21}, @@ -977,12 +986,17 @@ static const UCDRecord ucd_records[] = { {12, 0, 13, 5, 145, 21}, {10, 0, 0, 5, 145, 21}, {21, 0, 0, 5, 145, 12}, + {23, 0, 10, 5, 14, 10}, + {21, 0, 0, 5, 14, 17}, {7, 0, 0, 5, 62, 12}, {14, 0, 0, 5, 62, 12}, {21, 0, 0, 5, 62, 17}, {7, 0, 0, 5, 80, 12}, {7, 0, 0, 5, 80, 0}, {7, 0, 0, 5, 80, 1}, + {1, 0, 0, 5, 80, 4}, + {1, 0, 0, 5, 80, 0}, + {1, 0, 0, 5, 80, 1}, {7, 0, 0, 5, 127, 12}, {7, 0, 0, 5, 127, 0}, {7, 0, 0, 5, 127, 1}, @@ -1006,11 +1020,12 @@ static const UCDRecord ucd_records[] = { {21, 0, 0, 5, 146, 17}, {21, 0, 0, 5, 146, 12}, {7, 0, 0, 5, 98, 12}, - {10, 0, 0, 5, 98, 21}, {12, 0, 13, 5, 98, 21}, + {10, 0, 0, 5, 98, 21}, {6, 0, 0, 5, 98, 12}, {6, 0, 0, 2, 137, 5}, {6, 0, 0, 2, 139, 5}, + {6, 0, 0, 2, 0, 5}, {7, 0, 0, 2, 137, 14}, {7, 0, 0, 2, 139, 14}, {7, 0, 0, 5, 105, 12}, @@ -1028,6 +1043,15 @@ static const UCDRecord ucd_records[] = { {21, 0, 0, 5, 131, 17}, {21, 0, 0, 5, 131, 12}, {12, 230, 13, 5, 56, 21}, + {7, 0, 0, 5, 151, 12}, + {12, 230, 13, 5, 151, 21}, + {6, 0, 0, 5, 151, 12}, + {13, 0, 0, 5, 151, 11}, + {26, 0, 0, 5, 151, 12}, + {7, 0, 0, 5, 152, 12}, + {12, 230, 13, 5, 152, 21}, + {13, 0, 0, 5, 152, 11}, + {23, 0, 10, 5, 152, 9}, {7, 0, 3, 5, 113, 12}, {15, 0, 3, 5, 113, 12}, {12, 220, 13, 5, 113, 21}, @@ -1035,11 +1059,13 @@ static const UCDRecord ucd_records[] = { {5, 0, 3, 5, 132, 12}, {12, 230, 13, 5, 132, 21}, {12, 7, 13, 5, 132, 21}, + {6, 0, 3, 5, 132, 12}, {13, 0, 3, 5, 132, 11}, {21, 0, 3, 5, 132, 0}, {15, 0, 4, 5, 0, 12}, {26, 0, 4, 5, 0, 10}, {23, 0, 4, 5, 0, 10}, + {26, 0, 4, 5, 0, 12}, {2, 0, 18, 5, 102, 14}, {26, 0, 0, 2, 0, 29}, {26, 0, 0, 5, 0, 28}, @@ -2012,6 +2038,10 @@ static const Reindex nfc_last[] = { #define UCDN_SCRIPT_MEDEFAIDRIN 146 #define UCDN_SCRIPT_OLD_SOGDIAN 147 #define UCDN_SCRIPT_SOGDIAN 148 +#define UCDN_SCRIPT_ELYMAIC 149 +#define UCDN_SCRIPT_NANDINAGARI 150 +#define UCDN_SCRIPT_NYIAKENG_PUACHUE_HMONG 151 +#define UCDN_SCRIPT_WANCHO 152 #define UCDN_GENERAL_CATEGORY_CC 0 #define UCDN_GENERAL_CATEGORY_CF 1 @@ -2087,23 +2117,23 @@ static const unsigned char index0[] = { 73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 52, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 106, 108, 109, 110, 106, - 111, 111, 111, 112, 113, 114, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 115, 115, 116, 117, 118, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 119, 120, 121, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 122, 122, 123, 124, 106, 106, 125, 126, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 128, 127, 127, 129, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 130, 131, 132, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 133, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 142, 143, 106, 106, 106, 106, 106, 144, 106, 106, 106, - 106, 106, 106, 106, 145, 146, 106, 106, 147, 106, 148, 106, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 160, 160, 160, 161, 52, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 113, 113, 114, 115, 116, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 117, 117, 118, 119, 120, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 121, 122, 123, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 124, 124, 125, 126, 108, 108, 127, 128, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, + 129, 129, 129, 129, 129, 130, 129, 129, 131, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 132, 133, 134, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 135, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 144, 145, 108, 108, 108, 108, 108, 146, 147, 148, 108, + 108, 108, 108, 108, 149, 150, 108, 108, 151, 152, 153, 108, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 165, 165, 165, 166, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, @@ -2113,231 +2143,231 @@ static const unsigned char index0[] = { 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 162, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 163, 164, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 165, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 167, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 168, 169, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 52, 52, 52, 52, 170, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 166, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 52, 52, - 168, 167, 167, 167, 167, 169, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 169, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 170, 171, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, - 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 74, 74, 74, + 171, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 52, 52, + 173, 172, 172, 172, 172, 174, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, + 172, 172, 172, 172, 172, 172, 172, 172, 172, 174, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 175, 176, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, @@ -2352,7 +2382,7 @@ static const unsigned char index0[] = { 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 172, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 177, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, @@ -2366,7 +2396,7 @@ static const unsigned char index0[] = { 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 172, + 74, 74, 74, 74, 177, }; static const unsigned short index1[] = { @@ -2396,388 +2426,400 @@ static const unsigned short index1[] = { 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 119, 242, 243, 244, 245, 246, 243, 247, 248, 249, 250, 251, 119, 252, 253, 254, 255, 256, 257, 258, 259, 259, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 119, 267, 268, 269, 270, 271, 271, 270, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 119, 281, 282, 283, 284, 284, 284, 284, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 295, 295, 298, 299, - 296, 300, 301, 302, 303, 304, 305, 119, 306, 307, 307, 307, 307, 307, - 308, 309, 310, 311, 312, 313, 119, 119, 119, 119, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 119, 119, 119, 119, 326, 327, - 328, 329, 330, 331, 332, 333, 334, 335, 334, 334, 334, 336, 337, 338, - 339, 340, 341, 342, 341, 341, 341, 343, 344, 345, 346, 347, 119, 119, - 119, 119, 348, 348, 348, 348, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 348, 359, 360, 352, 361, 362, 362, 362, 362, 363, 364, - 365, 365, 365, 365, 365, 366, 367, 367, 367, 367, 367, 367, 367, 367, - 367, 367, 367, 367, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369, - 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 370, 370, 370, 370, - 370, 370, 370, 370, 370, 371, 372, 371, 370, 370, 370, 370, 370, 371, - 370, 370, 370, 370, 371, 372, 371, 370, 372, 370, 370, 370, 370, 370, - 370, 370, 371, 370, 370, 370, 370, 370, 370, 370, 370, 373, 374, 375, - 376, 377, 370, 370, 378, 379, 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 381, 382, 383, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 384, 384, - 386, 387, 387, 388, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, - 391, 392, 393, 394, 395, 119, 396, 396, 397, 119, 398, 398, 399, 119, - 400, 401, 402, 119, 403, 403, 403, 403, 403, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 418, 418, 418, - 419, 418, 418, 418, 418, 418, 418, 420, 421, 418, 418, 418, 418, 422, - 384, 384, 384, 384, 384, 384, 384, 384, 423, 119, 424, 424, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 432, 432, 433, 434, 119, 435, 435, - 435, 435, 435, 436, 435, 435, 435, 437, 438, 439, 440, 440, 440, 440, - 441, 441, 442, 443, 444, 444, 444, 444, 444, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 451, 452, 453, 454, 455, 456, 119, 119, 119, 119, - 119, 119, 119, 119, 457, 458, 458, 458, 458, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 470, 470, 471, 472, 473, 474, - 475, 475, 475, 475, 476, 477, 478, 479, 480, 480, 480, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 489, 489, 490, 100, 491, 362, 362, - 362, 362, 362, 492, 493, 119, 494, 495, 496, 497, 498, 499, 54, 54, 54, - 54, 500, 501, 56, 56, 56, 56, 56, 502, 503, 504, 54, 505, 54, 54, 54, - 506, 56, 56, 56, 507, 508, 509, 510, 511, 511, 511, 512, 513, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 514, 515, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 516, 517, 518, 519, 516, 517, - 516, 517, 518, 519, 516, 520, 516, 517, 516, 518, 516, 521, 516, 521, - 516, 521, 522, 523, 524, 525, 526, 527, 516, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 56, 549, 550, 551, 552, 553, 554, 554, 555, 556, 557, 558, 559, - 119, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 572, 574, 575, 576, 577, 578, 579, 580, 581, 582, 581, 583, 584, - 581, 585, 581, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 587, - 596, 597, 587, 598, 599, 587, 587, 599, 587, 600, 601, 600, 587, 587, - 602, 587, 587, 587, 587, 587, 603, 587, 587, 581, 604, 605, 606, 607, - 608, 609, 610, 610, 610, 610, 610, 610, 610, 610, 611, 581, 581, 612, - 613, 587, 587, 614, 581, 581, 581, 581, 586, 607, 615, 616, 581, 581, - 581, 581, 581, 617, 119, 119, 119, 581, 618, 119, 119, 619, 619, 619, - 619, 619, 620, 620, 621, 622, 622, 622, 622, 622, 622, 622, 622, 622, - 623, 619, 624, 625, 625, 625, 625, 625, 625, 625, 625, 625, 626, 625, - 625, 625, 625, 627, 581, 625, 625, 628, 581, 629, 630, 631, 632, 633, - 634, 630, 581, 628, 635, 581, 636, 637, 638, 639, 640, 581, 581, 581, - 641, 642, 643, 644, 581, 645, 646, 581, 647, 581, 581, 648, 649, 650, - 651, 581, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 581, - 581, 581, 663, 581, 664, 581, 665, 666, 667, 668, 669, 670, 619, 671, - 671, 672, 581, 581, 581, 663, 673, 674, 587, 587, 587, 675, 676, 587, - 587, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, - 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, - 677, 677, 677, 677, 677, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 678, 679, 679, 680, 587, 587, 587, - 587, 587, 587, 587, 681, 587, 587, 587, 682, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 581, - 581, 581, 683, 581, 581, 587, 587, 684, 685, 686, 630, 581, 581, 687, - 581, 581, 581, 688, 581, 581, 581, 581, 581, 581, 689, 581, 581, 581, - 581, 581, 617, 690, 690, 690, 690, 690, 691, 692, 692, 692, 692, 692, - 693, 694, 695, 696, 697, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, - 698, 699, 700, 701, 365, 365, 365, 365, 702, 703, 704, 704, 704, 704, - 704, 704, 704, 705, 706, 707, 370, 370, 372, 119, 372, 372, 372, 372, - 372, 372, 372, 372, 708, 708, 708, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 718, 119, 119, 119, 119, 119, 119, 719, 719, 719, 720, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 721, 119, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 719, 719, 719, 719, 719, 722, 119, 119, 119, - 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 735, - 736, 735, 735, 735, 737, 738, 739, 740, 741, 742, 743, 743, 744, 743, - 743, 743, 745, 746, 747, 748, 749, 750, 750, 750, 750, 750, 751, 752, - 752, 752, 752, 752, 752, 752, 752, 752, 752, 753, 754, 755, 750, 750, - 750, 756, 723, 723, 723, 723, 724, 119, 757, 757, 758, 758, 758, 759, - 760, 761, 755, 755, 755, 762, 763, 764, 758, 758, 758, 765, 760, 761, - 755, 755, 755, 755, 766, 764, 755, 767, 768, 768, 768, 768, 768, 769, - 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 755, 755, 755, - 770, 771, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 772, - 755, 755, 755, 770, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 774, 775, 581, 581, 581, 581, 581, 581, 581, 581, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 775, 775, 776, 776, 777, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 778, - 779, 779, 779, 779, 779, 779, 780, 119, 781, 781, 781, 781, 781, 782, - 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, - 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, 783, - 783, 783, 783, 783, 783, 784, 783, 783, 785, 786, 119, 119, 101, 101, - 101, 101, 101, 787, 788, 789, 101, 101, 101, 790, 791, 791, 791, 791, - 791, 791, 791, 791, 792, 793, 794, 119, 64, 64, 795, 796, 797, 27, 798, - 27, 27, 27, 27, 27, 27, 27, 799, 800, 27, 801, 802, 27, 27, 803, 804, - 805, 119, 119, 119, 119, 119, 119, 806, 807, 808, 809, 810, 810, 811, - 812, 813, 814, 815, 815, 815, 815, 815, 815, 816, 119, 817, 818, 818, - 818, 818, 818, 819, 820, 821, 822, 823, 824, 825, 825, 826, 827, 828, - 829, 830, 830, 831, 832, 833, 833, 834, 835, 836, 837, 367, 367, 367, - 838, 839, 840, 840, 840, 840, 840, 841, 842, 843, 844, 845, 846, 847, - 348, 352, 848, 849, 849, 849, 849, 849, 850, 851, 119, 852, 853, 854, - 855, 348, 348, 856, 857, 858, 858, 858, 858, 858, 858, 859, 860, 861, - 119, 119, 862, 863, 864, 865, 119, 866, 866, 866, 119, 372, 372, 54, 54, - 54, 54, 54, 867, 868, 119, 869, 869, 869, 869, 869, 869, 869, 869, 869, - 869, 863, 863, 863, 863, 870, 871, 872, 873, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, - 875, 875, 874, 875, 875, 876, 875, 875, 875, 875, 875, 875, 874, 875, - 875, 876, 875, 875, 875, 874, 875, 875, 876, 875, 875, 875, 874, 875, - 875, 877, 119, 368, 368, 878, 879, 369, 369, 369, 369, 369, 880, 881, - 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, - 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, - 881, 881, 881, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 774, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 883, 775, 775, 775, 775, 884, 119, 885, - 886, 120, 887, 888, 889, 890, 120, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 891, 892, 893, 119, 894, 127, 127, 127, 127, + 267, 268, 269, 270, 271, 272, 272, 271, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 119, 282, 283, 284, 285, 285, 285, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 296, 296, 299, 300, + 297, 301, 302, 303, 304, 305, 306, 119, 307, 308, 308, 308, 308, 308, + 309, 310, 311, 312, 313, 314, 119, 119, 119, 119, 315, 316, 317, 317, + 318, 317, 319, 320, 321, 322, 323, 324, 119, 119, 119, 119, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 333, 333, 333, 335, 336, 337, + 338, 339, 340, 341, 340, 340, 340, 342, 343, 344, 345, 346, 119, 119, + 119, 119, 347, 347, 347, 347, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 347, 358, 359, 351, 360, 361, 361, 361, 361, 362, 363, + 364, 364, 364, 364, 364, 365, 366, 366, 366, 366, 366, 366, 366, 366, + 366, 366, 366, 366, 367, 367, 367, 367, 367, 367, 367, 367, 367, 368, + 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369, 369, 369, 369, + 369, 369, 369, 369, 369, 370, 371, 370, 369, 369, 369, 369, 369, 370, + 369, 369, 369, 369, 370, 371, 370, 369, 371, 369, 369, 369, 369, 369, + 369, 369, 370, 369, 369, 369, 369, 369, 369, 369, 369, 372, 373, 374, + 375, 376, 369, 369, 377, 378, 379, 379, 379, 379, 379, 379, 379, 379, + 379, 379, 380, 381, 382, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, + 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 383, 383, + 385, 386, 386, 387, 388, 388, 388, 388, 388, 388, 388, 388, 388, 389, + 390, 391, 392, 393, 394, 119, 395, 395, 396, 119, 397, 397, 398, 119, + 399, 400, 401, 119, 402, 402, 402, 402, 402, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 417, 417, 417, + 418, 417, 417, 417, 417, 417, 417, 419, 420, 417, 417, 417, 417, 421, + 383, 383, 383, 383, 383, 383, 383, 383, 422, 119, 423, 423, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 431, 431, 432, 433, 119, 434, 434, + 434, 434, 434, 435, 434, 434, 434, 436, 437, 438, 439, 439, 439, 439, + 440, 440, 441, 442, 443, 443, 443, 443, 443, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 450, 451, 452, 453, 454, 455, 119, 119, 119, 119, + 119, 119, 119, 119, 456, 457, 457, 457, 457, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 469, 469, 470, 471, 472, 473, + 474, 474, 474, 474, 475, 476, 477, 478, 479, 479, 479, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 488, 488, 489, 100, 490, 361, 361, + 361, 361, 361, 491, 492, 119, 493, 494, 495, 496, 497, 498, 54, 54, 54, + 54, 499, 500, 56, 56, 56, 56, 56, 501, 502, 503, 54, 504, 54, 54, 54, + 505, 56, 56, 56, 506, 507, 508, 509, 510, 510, 510, 511, 512, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 513, 514, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 515, 516, 517, 518, 515, 516, + 515, 516, 517, 518, 515, 519, 515, 516, 515, 517, 515, 520, 515, 520, + 515, 520, 521, 522, 523, 524, 525, 526, 515, 527, 528, 529, 530, 531, + 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, + 546, 547, 56, 548, 549, 550, 551, 552, 553, 553, 554, 555, 556, 557, 558, + 119, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, + 572, 571, 573, 574, 575, 576, 577, 578, 579, 580, 581, 580, 582, 583, + 580, 584, 580, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 586, + 595, 596, 586, 597, 598, 586, 586, 598, 586, 599, 600, 599, 586, 586, + 601, 586, 586, 586, 586, 586, 602, 586, 586, 580, 603, 604, 605, 606, + 607, 608, 609, 609, 609, 609, 609, 609, 609, 609, 610, 580, 580, 611, + 612, 586, 586, 613, 580, 580, 580, 580, 585, 606, 614, 615, 580, 580, + 580, 580, 580, 616, 119, 119, 119, 580, 617, 119, 119, 618, 618, 618, + 618, 618, 619, 619, 620, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 622, 618, 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 625, 624, + 624, 624, 624, 626, 580, 624, 624, 627, 580, 628, 629, 630, 631, 632, + 633, 629, 580, 627, 634, 580, 635, 636, 637, 638, 639, 580, 580, 580, + 640, 641, 642, 643, 580, 644, 645, 580, 646, 580, 580, 647, 648, 649, + 650, 580, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 580, + 580, 580, 662, 580, 663, 580, 664, 665, 666, 667, 668, 669, 618, 670, + 670, 671, 580, 580, 580, 662, 672, 673, 586, 586, 586, 674, 675, 586, + 586, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, + 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, + 676, 676, 676, 676, 676, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 677, 678, 678, 679, 586, 586, 586, + 586, 586, 586, 586, 680, 586, 586, 586, 681, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 580, + 580, 580, 682, 580, 580, 586, 586, 683, 684, 685, 629, 580, 580, 686, + 580, 580, 580, 687, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 688, 688, 688, 688, 688, 689, 690, 690, 690, 690, 690, + 691, 692, 693, 694, 695, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, + 696, 697, 698, 699, 364, 364, 364, 364, 700, 701, 702, 702, 702, 702, + 702, 702, 702, 703, 704, 705, 369, 369, 371, 119, 371, 371, 371, 371, + 371, 371, 371, 371, 706, 706, 706, 706, 707, 708, 709, 710, 711, 712, + 713, 714, 715, 716, 119, 119, 119, 119, 119, 119, 717, 717, 717, 718, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 719, 119, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 717, 717, 720, 119, 119, 119, + 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 733, + 734, 733, 733, 733, 735, 736, 737, 738, 739, 740, 741, 741, 742, 741, + 741, 741, 743, 744, 745, 746, 747, 748, 748, 748, 748, 748, 749, 750, + 750, 750, 750, 750, 750, 750, 750, 750, 750, 751, 752, 753, 748, 748, + 748, 754, 721, 721, 721, 721, 722, 119, 755, 755, 756, 756, 756, 757, + 758, 759, 753, 753, 753, 760, 761, 762, 756, 756, 756, 763, 758, 759, + 753, 753, 753, 753, 764, 762, 753, 765, 766, 766, 766, 766, 766, 767, + 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 766, 753, 753, 753, + 768, 769, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 770, + 753, 753, 753, 768, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 772, 773, 580, 580, 580, 580, 580, 580, 580, 580, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 773, 773, 774, 774, 775, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, + 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 774, 776, + 777, 777, 777, 777, 777, 777, 778, 119, 779, 779, 779, 779, 779, 780, + 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, + 781, 781, 781, 781, 781, 782, 781, 781, 783, 784, 119, 119, 101, 101, + 101, 101, 101, 785, 786, 787, 101, 101, 101, 788, 789, 789, 789, 789, + 789, 789, 789, 789, 790, 791, 792, 119, 64, 64, 793, 794, 795, 27, 796, + 27, 27, 27, 27, 27, 27, 27, 797, 798, 27, 799, 800, 27, 27, 801, 802, 27, + 803, 119, 119, 119, 119, 119, 804, 805, 806, 807, 808, 808, 809, 810, + 811, 812, 813, 813, 813, 813, 813, 813, 814, 119, 815, 816, 816, 816, + 816, 816, 817, 818, 819, 820, 821, 822, 823, 823, 824, 825, 826, 827, + 828, 828, 829, 830, 831, 831, 832, 833, 834, 835, 366, 366, 366, 836, + 837, 838, 838, 838, 838, 838, 839, 840, 841, 842, 843, 844, 845, 347, + 351, 846, 847, 847, 847, 847, 847, 848, 849, 119, 850, 851, 852, 853, + 347, 347, 854, 855, 856, 856, 856, 856, 856, 856, 857, 858, 859, 119, + 119, 860, 861, 862, 863, 119, 864, 864, 864, 119, 371, 371, 54, 54, 54, + 54, 54, 865, 866, 119, 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, + 861, 861, 861, 861, 868, 869, 870, 871, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, + 873, 872, 873, 873, 874, 873, 873, 873, 873, 873, 873, 872, 873, 873, + 874, 873, 873, 873, 872, 873, 873, 874, 873, 873, 873, 872, 873, 873, + 875, 119, 367, 367, 876, 877, 368, 368, 368, 368, 368, 878, 879, 879, + 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, + 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, + 879, 879, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 772, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 881, 773, 773, 773, 773, 882, 119, 883, 884, + 120, 885, 886, 887, 888, 120, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 889, 890, 891, 119, 892, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 895, 119, - 119, 127, 127, 127, 127, 127, 127, 127, 127, 896, 127, 127, 127, 127, - 127, 127, 119, 119, 119, 119, 119, 127, 897, 898, 898, 899, 900, 901, - 902, 903, 904, 905, 906, 907, 908, 909, 910, 169, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 911, 912, - 913, 914, 915, 916, 917, 917, 918, 919, 920, 920, 921, 922, 923, 924, - 925, 925, 925, 925, 926, 927, 927, 927, 928, 929, 929, 929, 930, 931, - 932, 119, 933, 934, 935, 934, 934, 936, 934, 934, 937, 934, 938, 934, - 938, 119, 119, 119, 119, 934, 934, 934, 934, 934, 934, 934, 934, 934, - 934, 934, 934, 934, 934, 934, 939, 940, 941, 941, 941, 941, 941, 942, - 610, 943, 943, 943, 943, 943, 943, 944, 945, 946, 947, 581, 948, 949, - 119, 119, 119, 119, 119, 610, 610, 610, 610, 610, 950, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 951, - 951, 951, 952, 953, 953, 953, 953, 953, 953, 954, 119, 955, 956, 956, - 957, 958, 958, 958, 958, 959, 960, 961, 961, 962, 963, 964, 964, 964, - 964, 965, 966, 967, 967, 967, 968, 969, 969, 969, 969, 970, 969, 971, - 119, 119, 119, 119, 119, 972, 972, 972, 972, 972, 973, 973, 973, 973, - 973, 974, 974, 974, 974, 974, 974, 975, 975, 975, 976, 977, 978, 979, - 979, 979, 979, 980, 981, 981, 981, 981, 982, 983, 983, 983, 983, 983, - 119, 984, 984, 984, 984, 984, 984, 985, 986, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 987, - 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, - 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, 987, - 987, 987, 987, 987, 987, 987, 987, 987, 987, 988, 119, 987, 987, 989, - 119, 987, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 990, 991, 992, 992, 992, 992, 993, - 994, 995, 995, 996, 997, 998, 998, 999, 1000, 1001, 1001, 1001, 1002, - 1003, 1004, 119, 119, 119, 119, 119, 119, 1005, 1005, 1006, 1007, 1008, - 1008, 1009, 1010, 1011, 1011, 1011, 1012, 119, 119, 119, 119, 119, 119, - 119, 119, 1013, 1013, 1013, 1013, 1014, 1014, 1014, 1015, 1016, 1016, - 1017, 1016, 1016, 1016, 1016, 1016, 1018, 1019, 1020, 1021, 1022, 1022, - 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1029, 1029, 1030, 1031, 1031, - 1031, 1032, 119, 119, 119, 119, 1033, 1034, 1033, 1033, 1035, 1036, 1037, - 119, 1038, 1038, 1038, 1038, 1038, 1038, 1039, 1040, 1041, 1041, 1042, - 1043, 1044, 1044, 1045, 1046, 1047, 1047, 1048, 1049, 119, 1050, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 1051, 1051, 1051, 1051, - 1051, 1051, 1051, 1051, 1051, 1052, 119, 119, 119, 119, 119, 119, 1053, - 1053, 1053, 1053, 1053, 1053, 1054, 119, 1055, 1055, 1055, 1055, 1055, - 1055, 1056, 1057, 1058, 1058, 1058, 1058, 1059, 119, 1060, 1061, 119, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 893, 119, 119, + 127, 127, 127, 127, 127, 127, 127, 127, 894, 127, 127, 127, 127, 127, + 127, 119, 119, 119, 119, 119, 127, 895, 896, 896, 897, 898, 899, 900, + 901, 902, 903, 904, 905, 906, 907, 908, 169, 127, 127, 127, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 909, 910, 911, + 912, 913, 914, 915, 915, 916, 917, 918, 918, 919, 920, 921, 922, 923, + 923, 923, 923, 924, 925, 925, 925, 926, 927, 927, 927, 928, 929, 930, + 119, 931, 932, 933, 932, 932, 934, 932, 932, 935, 932, 936, 932, 936, + 119, 119, 119, 119, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, + 932, 932, 932, 932, 932, 937, 938, 939, 939, 939, 939, 939, 940, 609, + 941, 941, 941, 941, 941, 941, 942, 943, 944, 945, 580, 946, 947, 119, + 119, 119, 119, 119, 609, 609, 609, 609, 609, 948, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 949, 949, + 949, 950, 951, 951, 951, 951, 951, 951, 952, 119, 953, 954, 954, 955, + 956, 956, 956, 956, 957, 958, 959, 959, 960, 961, 962, 962, 962, 962, + 963, 964, 965, 965, 965, 966, 967, 967, 967, 967, 968, 967, 969, 119, + 119, 119, 119, 119, 970, 970, 970, 970, 970, 971, 971, 971, 971, 971, + 972, 972, 972, 972, 972, 972, 973, 973, 973, 974, 975, 976, 977, 977, + 977, 977, 978, 979, 979, 979, 979, 980, 981, 981, 981, 981, 981, 119, + 982, 982, 982, 982, 982, 982, 983, 984, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 985, 985, + 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, + 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, + 985, 985, 985, 985, 985, 985, 985, 985, 986, 119, 985, 985, 987, 119, + 985, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 988, 989, 990, 990, 990, 990, 991, 992, + 993, 993, 994, 995, 996, 996, 997, 998, 999, 999, 999, 1000, 1001, 1002, + 119, 119, 119, 119, 119, 119, 1003, 1003, 1004, 1005, 1006, 1006, 1007, + 1008, 1009, 1009, 1009, 1010, 119, 119, 119, 119, 119, 119, 119, 119, + 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1014, 1014, 1015, 1014, + 1014, 1014, 1014, 1014, 1016, 1017, 1018, 1019, 1020, 1020, 1021, 1022, + 1023, 1024, 1025, 1026, 1027, 1027, 1027, 1028, 1029, 1029, 1029, 1030, + 119, 119, 119, 119, 1031, 1032, 1031, 1031, 1033, 1034, 1035, 119, 1036, + 1036, 1036, 1036, 1036, 1036, 1037, 1038, 1039, 1039, 1040, 1041, 1042, + 1042, 1043, 1044, 1045, 1045, 1046, 1047, 119, 1048, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 1049, 1049, 1049, 1049, 1049, 1049, 1049, + 1049, 1049, 1050, 119, 119, 119, 119, 119, 119, 1051, 1051, 1051, 1051, + 1051, 1051, 1052, 119, 1053, 1053, 1053, 1053, 1053, 1053, 1054, 1055, + 1056, 1056, 1056, 1056, 1057, 119, 1058, 1059, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 1062, 1062, 1062, 1063, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1064, - 1064, 1064, 1065, 1066, 119, 1067, 1067, 1068, 1069, 1070, 1071, 119, + 119, 119, 119, 1060, 1060, 1060, 1061, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 1062, 1062, 1062, 1063, + 1064, 119, 1065, 1065, 1066, 1067, 1068, 1069, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1070, 1070, 1071, + 119, 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1074, 1075, 1076, 1077, + 1078, 1079, 1080, 119, 1081, 1082, 1083, 1083, 1083, 1083, 1083, 1084, + 1085, 1086, 1087, 1088, 1088, 1088, 1089, 1090, 1091, 1092, 1093, 1093, + 1093, 1094, 1095, 1096, 1097, 1098, 119, 1099, 1099, 1099, 1099, 1100, + 119, 1101, 1102, 1102, 1102, 1102, 1102, 1103, 1104, 1105, 1106, 1107, + 1108, 1109, 1110, 1111, 119, 1112, 1112, 1113, 1112, 1112, 1114, 1115, + 1116, 119, 119, 119, 119, 119, 119, 119, 119, 1117, 1118, 1119, 1120, + 1119, 1121, 1122, 1122, 1122, 1122, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1140, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 1141, 1141, 1141, 1141, 1141, 1141, 1142, + 1143, 1144, 1145, 1146, 1147, 119, 119, 119, 119, 1148, 1148, 1148, 1148, + 1148, 1148, 1149, 1150, 1151, 119, 1152, 1153, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 119, 1081, 1082, 1083, 1083, 1083, - 1083, 1083, 1084, 1085, 1086, 1087, 1088, 1088, 1088, 1089, 1090, 1091, - 1092, 1093, 1093, 1093, 1094, 1095, 1096, 1097, 1098, 119, 1099, 1099, - 1099, 1099, 1100, 119, 1101, 1102, 1102, 1102, 1102, 1102, 1103, 1104, - 1105, 1106, 1107, 1108, 1109, 1110, 1111, 119, 1112, 1112, 1113, 1112, - 1112, 1114, 1115, 1116, 119, 119, 119, 119, 119, 119, 119, 119, 1117, - 1118, 1119, 1120, 1119, 1121, 1122, 1122, 1122, 1122, 1122, 1123, 1124, - 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1140, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1141, 1141, 1141, 1141, - 1141, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 119, 119, 119, 119, 1148, - 1148, 1148, 1148, 1148, 1148, 1149, 1150, 1151, 119, 1152, 1153, 119, + 119, 1154, 1154, 1154, 1154, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 119, 119, 119, 119, 1162, 1162, 1162, 1162, 1162, 1162, 1163, 1164, + 1165, 119, 1166, 1167, 1168, 1169, 119, 119, 1170, 1170, 1170, 1170, + 1170, 1171, 1172, 1173, 1174, 1175, 119, 119, 119, 119, 119, 119, 1176, + 1176, 1176, 1177, 1178, 1179, 1180, 1181, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 1154, 1154, 1154, 1154, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161, 119, 119, 119, 119, 1162, 1162, 1162, 1162, 1162, - 1162, 1163, 1164, 1165, 119, 1166, 1167, 1168, 1169, 119, 119, 1170, - 1170, 1170, 1170, 1170, 1171, 1172, 119, 1173, 1174, 119, 119, 119, 119, - 119, 119, 1175, 1175, 1175, 1176, 1177, 1178, 1179, 1180, 119, 119, 119, + 119, 119, 119, 119, 1182, 1182, 1182, 1182, 1182, 1183, 1184, 1185, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1186, 1186, 1186, + 1186, 1187, 1187, 1187, 1187, 1188, 1189, 1190, 1191, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 1181, 1181, 1181, 1181, 1181, 1182, - 1183, 1184, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 1185, 1185, 1185, 1185, 1186, 1186, 1186, 1186, 1187, 1188, 1189, 1190, + 119, 119, 1192, 1193, 1192, 1192, 1192, 1192, 1194, 1195, 1196, 119, 119, + 119, 1197, 1198, 1199, 1199, 1199, 1199, 1200, 1201, 1202, 119, 1203, + 1204, 1205, 1205, 1205, 1205, 1205, 1206, 1207, 1208, 1209, 119, 119, + 119, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1211, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 1191, 1192, 1193, 1193, 1193, 1193, 1194, 1195, 1196, - 119, 1197, 1198, 1199, 1199, 1199, 1199, 1200, 1201, 1202, 1203, 1204, - 119, 119, 119, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1206, 1207, - 1208, 1207, 1207, 1207, 1209, 1210, 1211, 1212, 119, 1213, 1214, 1215, - 1216, 1217, 1218, 1218, 1218, 1219, 1220, 1220, 1221, 1222, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 1223, 1224, 1225, 1225, 1225, 1225, - 1226, 1227, 1228, 119, 1229, 1230, 1231, 1232, 1233, 1233, 1233, 1234, - 1235, 1236, 1237, 1238, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 1212, 1213, 1212, 1212, 1212, 1214, 1215, 1216, 1217, 119, 1218, 1219, + 1220, 1221, 1222, 1223, 1223, 1223, 1224, 1225, 1225, 1226, 1227, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 1228, 1229, 1230, 1230, 1230, + 1230, 1231, 1232, 1233, 119, 1234, 1235, 1236, 1237, 1238, 1238, 1238, + 1239, 1240, 1241, 1242, 1243, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 1239, 1239, 1240, 1241, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 1244, 1244, 1244, 1244, 1244, 1244, - 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1245, 1246, 119, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1247, 119, + 119, 119, 1244, 1244, 1245, 1246, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1249, 1248, 1248, 1248, 1248, 1250, 1251, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1252, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, - 1253, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1254, + 119, 119, 1247, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, - 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1254, 1254, 1254, - 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256, + 1254, 1255, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, + 1256, 1257, 1258, 119, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + 1254, 1254, 1254, 1254, 1259, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1261, 1260, 1260, 1260, + 1260, 1262, 1263, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1264, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, + 1260, 1260, 1260, 1260, 1260, 1260, 1265, 1266, 1267, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 1257, 1258, 1258, 1258, 1259, 1260, 1261, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1262, 1262, - 1262, 1263, 1264, 119, 1265, 1265, 1265, 1265, 1265, 1265, 1266, 1267, - 1268, 119, 1269, 1270, 1271, 1265, 1265, 1272, 1265, 1265, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1269, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1270, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274, - 1275, 1275, 1276, 1277, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1279, 119, - 1280, 1281, 1281, 1281, 1281, 1282, 119, 1283, 1284, 1285, 119, 119, 119, - 119, 119, 119, 119, 119, 1286, 119, 119, 119, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1288, 119, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, - 1287, 1287, 1287, 1287, 1287, 1287, 1289, 119, 1290, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, - 735, 735, 1291, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, - 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, - 1293, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, - 1294, 1294, 1295, 1294, 1296, 1294, 1297, 1294, 1298, 1299, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 610, 610, 610, 610, 610, - 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, - 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, 1300, 119, 610, - 610, 610, 610, 1301, 1302, 610, 610, 610, 610, 610, 610, 1303, 1304, - 1305, 1306, 1307, 1308, 610, 610, 610, 1309, 610, 610, 610, 610, 610, - 610, 610, 1310, 119, 119, 946, 946, 946, 946, 946, 946, 946, 946, 1311, + 119, 119, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 789, 1271, + 1272, 1272, 1272, 1273, 1274, 1275, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 1276, 1276, 1276, 1277, 1278, 119, 1279, 1279, + 1279, 1279, 1279, 1279, 1280, 1281, 1282, 119, 1283, 1284, 1285, 1279, + 1279, 1286, 1279, 1279, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1287, 1287, + 1287, 1287, 1288, 1288, 1288, 1288, 1289, 1289, 1290, 1291, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1292, 1292, 1292, 1292, + 1292, 1292, 1292, 1292, 1292, 1293, 1294, 1295, 1295, 1295, 1295, 1295, + 1295, 1296, 1297, 1298, 119, 119, 119, 119, 119, 119, 119, 119, 1299, + 119, 119, 119, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 119, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, + 1300, 1301, 119, 1302, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 1303, 119, 119, 119, + 119, 119, 119, 1304, 119, 1305, 119, 1306, 1306, 1306, 1306, 1306, 1306, + 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, + 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, + 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, + 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1308, 1308, 1308, 1308, + 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1309, 1308, 1310, + 1308, 1311, 1308, 1312, 1313, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, + 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, + 609, 609, 609, 609, 609, 1314, 119, 609, 609, 609, 609, 1315, 1316, 609, + 609, 609, 609, 609, 609, 1317, 1318, 1319, 1320, 1321, 1322, 609, 609, + 609, 1323, 609, 609, 609, 609, 609, 609, 609, 1324, 119, 119, 944, 944, + 944, 944, 944, 944, 944, 944, 1325, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 939, 939, + 1326, 119, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 616, 119, + 939, 939, 939, 1327, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 1328, 1328, 1328, 1329, 1330, 1330, 1331, + 1328, 1328, 1332, 1333, 1330, 1330, 1328, 1328, 1328, 1329, 1330, 1330, + 1334, 1335, 1336, 1332, 1337, 1338, 1330, 1328, 1328, 1328, 1329, 1330, + 1330, 1339, 1340, 1341, 1342, 1330, 1330, 1330, 1343, 1344, 1345, 1346, + 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328, 1328, 1328, + 1329, 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328, 1328, + 1328, 1329, 1330, 1330, 1331, 1328, 1328, 1332, 1330, 1330, 1330, 1328, + 1328, 1328, 1329, 1330, 1330, 1347, 1328, 1328, 1328, 1348, 1330, 1330, + 1349, 1350, 1328, 1328, 1351, 1330, 1330, 1352, 1331, 1328, 1328, 1353, + 1330, 1330, 1354, 1355, 1328, 1328, 1356, 1330, 1330, 1330, 1357, 1328, + 1328, 1328, 1348, 1330, 1330, 1349, 1358, 1359, 1359, 1359, 1359, 1359, + 1359, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, + 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, + 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, + 1361, 1361, 1361, 1362, 1363, 1361, 1361, 1361, 1361, 1361, 1364, 1365, + 1360, 1366, 1367, 119, 1368, 1369, 1361, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 1370, 1371, 1371, 1372, 1373, 1374, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 941, 941, 1312, 119, 581, 581, 581, 581, 581, - 581, 581, 581, 581, 581, 617, 119, 941, 941, 941, 1313, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1314, - 1314, 1314, 1315, 1316, 1316, 1317, 1314, 1314, 1318, 1319, 1316, 1316, - 1314, 1314, 1314, 1315, 1316, 1316, 1320, 1321, 1322, 1318, 1323, 1324, - 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1325, 1326, 1327, 1328, 1316, - 1316, 1316, 1329, 1330, 1331, 1332, 1316, 1316, 1317, 1314, 1314, 1318, - 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1317, 1314, 1314, - 1318, 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1317, 1314, - 1314, 1318, 1316, 1316, 1316, 1314, 1314, 1314, 1315, 1316, 1316, 1333, - 1314, 1314, 1314, 1334, 1316, 1316, 1335, 1336, 1314, 1314, 1337, 1316, - 1316, 1338, 1317, 1314, 1314, 1339, 1316, 1316, 1340, 1341, 1314, 1314, - 1342, 1316, 1316, 1316, 1343, 1314, 1314, 1314, 1334, 1316, 1316, 1335, - 1344, 1345, 1345, 1345, 1345, 1345, 1345, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1346, 1347, 1347, 1347, 1347, 1347, 1347, 1348, 1349, 1347, - 1347, 1347, 1347, 1347, 1350, 1351, 1346, 1352, 1353, 119, 1354, 1355, - 1347, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1356, 1357, 1357, - 1358, 1359, 1360, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 1375, 1375, 1375, 1375, + 1375, 1376, 1377, 1378, 1379, 1380, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, - 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, - 1361, 1362, 1363, 1364, 119, 119, 119, 119, 119, 1365, 1365, 1365, 1365, - 1366, 1367, 1367, 1367, 1368, 1369, 1370, 1371, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1381, 1381, 1381, + 1381, 1381, 1382, 1383, 1384, 1385, 1385, 1385, 1385, 1385, 1385, 1385, + 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1385, + 1385, 1385, 1385, 1385, 1385, 1386, 1387, 1388, 119, 119, 119, 119, 119, + 1389, 1389, 1389, 1389, 1390, 1391, 1391, 1391, 1392, 1393, 1394, 1395, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 1372, 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1375, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 1376, 127, 127, 127, 1377, 1378, 1379, - 1380, 1381, 1382, 1377, 1383, 1377, 1379, 1379, 1384, 127, 1385, 127, - 1386, 1387, 1385, 127, 1386, 119, 119, 119, 119, 119, 119, 1388, 119, - 1389, 1390, 1390, 1390, 1390, 1391, 1390, 1390, 1390, 1390, 1390, 1390, - 1390, 1390, 1390, 1390, 1390, 1390, 1391, 1392, 1390, 1393, 1394, 1390, - 1394, 1395, 1394, 1390, 1390, 1390, 1396, 1392, 620, 1397, 622, 622, 622, - 1398, 622, 622, 622, 622, 622, 622, 622, 1399, 622, 622, 622, 1400, 1401, - 1402, 622, 1403, 1392, 1392, 1392, 1392, 1392, 1392, 1404, 1405, 1405, - 1405, 1406, 1392, 755, 755, 755, 755, 755, 1407, 755, 1408, 1409, 1392, - 1410, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 723, 723, 723, 723, 1411, - 1412, 1413, 723, 723, 723, 723, 723, 723, 723, 723, 1414, 1415, 723, - 1416, 1417, 723, 723, 1418, 1419, 1420, 1421, 1416, 1390, 723, 723, 1422, - 1423, 723, 723, 723, 723, 723, 723, 723, 1424, 1425, 1426, 1427, 723, - 1428, 1429, 1426, 1430, 1431, 723, 723, 723, 1432, 1433, 1434, 723, 723, - 723, 723, 723, 723, 723, 723, 1435, 1436, 723, 1437, 643, 1438, 723, - 1439, 1440, 581, 1441, 723, 723, 723, 1390, 1442, 1443, 1390, 1390, 1444, - 1390, 1389, 1390, 1390, 1390, 1390, 1390, 1445, 1446, 1390, 1390, 1445, - 1447, 723, 723, 723, 723, 723, 723, 723, 723, 1448, 1449, 581, 581, 581, - 581, 1450, 1451, 723, 723, 723, 723, 1452, 723, 1453, 723, 1454, 1455, - 1456, 1392, 1390, 1457, 1458, 1459, 581, 581, 581, 581, 581, 581, 581, - 581, 581, 581, 581, 581, 581, 581, 1460, 1392, 581, 581, 581, 581, 581, - 581, 581, 581, 581, 581, 1461, 1462, 1392, 1392, 1392, 1392, 581, 1460, - 581, 581, 581, 581, 581, 581, 581, 1392, 581, 1463, 581, 581, 581, 581, - 581, 1392, 581, 581, 581, 1464, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 581, 1460, 723, 1465, 1466, 723, 1426, 1467, 723, 723, - 723, 723, 723, 723, 1468, 1469, 723, 723, 723, 723, 1470, 1392, 1471, - 1472, 1470, 1392, 1473, 1474, 723, 723, 723, 723, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1390, 1396, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, - 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1475, 773, 773, 773, 773, 773, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 1396, 1397, 1397, 1397, 1397, 1397, 1397, + 1398, 1399, 119, 119, 119, 119, 119, 119, 119, 119, 119, 1396, 1397, + 1397, 1397, 1397, 1400, 1397, 1401, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 1402, 127, 127, 127, 1403, 1404, 1405, 1406, 1407, 1408, + 1403, 1409, 1403, 1405, 1405, 1410, 127, 1411, 127, 1412, 1413, 1411, + 127, 1412, 119, 119, 119, 119, 119, 119, 1414, 119, 1415, 1416, 1416, + 1416, 1416, 1417, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, 1416, + 1416, 1416, 1416, 1417, 1418, 1416, 1419, 1420, 1416, 1420, 1421, 1420, + 1416, 1416, 1416, 1422, 1418, 619, 1423, 621, 621, 621, 1424, 621, 621, + 621, 621, 621, 621, 621, 1425, 621, 621, 621, 1426, 1427, 1428, 621, + 1429, 1418, 1418, 1418, 1418, 1418, 1418, 1430, 1431, 1431, 1431, 1432, + 1418, 753, 753, 753, 753, 753, 1433, 753, 1434, 1435, 1418, 1436, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 721, 721, 721, 721, 1437, 1438, 1439, + 721, 721, 721, 721, 721, 721, 721, 721, 1440, 1441, 721, 1442, 1443, 721, + 721, 1444, 1445, 1446, 1447, 1442, 1416, 721, 721, 1448, 1449, 721, 721, + 721, 721, 721, 721, 721, 1450, 1451, 1452, 1453, 721, 1454, 1452, 1452, + 1455, 1456, 1457, 1458, 721, 1459, 1460, 1461, 721, 721, 721, 721, 721, + 721, 721, 721, 1462, 1463, 721, 1464, 642, 1465, 721, 1466, 1467, 580, + 1468, 721, 721, 721, 1416, 1469, 1470, 1416, 1416, 1471, 1416, 1415, + 1416, 1416, 1416, 1416, 1416, 1472, 1473, 1416, 1416, 1472, 1474, 721, + 721, 721, 721, 721, 721, 721, 721, 1475, 1476, 580, 580, 580, 580, 1477, + 1478, 721, 721, 721, 721, 1479, 721, 1480, 721, 1481, 1482, 1483, 1418, + 1416, 1484, 1485, 1486, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 1487, 1418, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 1488, 1489, 721, 1490, 1418, 1418, 580, 1487, 580, 580, 580, + 580, 580, 580, 580, 1418, 580, 1491, 580, 580, 580, 580, 580, 1418, 580, + 580, 580, 1492, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 580, 1493, 721, 1452, 1494, 721, 1452, 1495, 721, 721, 721, 721, + 721, 721, 1496, 1497, 721, 721, 721, 721, 1498, 1499, 1500, 1501, 721, + 1502, 1503, 1504, 721, 721, 721, 721, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 1487, 1418, 1416, 1422, 1490, 1486, 1486, 1418, 1436, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, 1418, + 1418, 1418, 1418, 1418, 1505, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 1506, 773, 773, 773, 773, 773, 771, 771, 771, 771, + 771, 771, 1507, 773, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 772, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 881, 773, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, + 771, 771, 771, 771, 771, 771, 771, 771, 1508, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 1476, 775, 775, 775, 775, 775, 773, - 773, 773, 773, 773, 773, 1477, 775, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 774, 773, 773, 773, 773, 773, 773, 773, + 773, 773, 771, 771, 771, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 883, - 775, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 1478, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 773, 773, 773, 774, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 1479, 1480, - 119, 119, 119, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, 1481, - 1481, 1481, 1481, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, 898, - 898, 898, 898, 898, 898, 898, 898, 119, 119, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 1482, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 1509, 1510, 119, 119, 119, + 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, 896, + 896, 896, 896, 896, 119, 119, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 880, 880, 880, 880, 880, 1512, }; static const unsigned short index2[] = { @@ -2868,704 +2910,722 @@ static const unsigned short index2[] = { 139, 139, 139, 157, 139, 139, 157, 157, 139, 139, 139, 139, 139, 193, 193, 193, 194, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 193, 194, 196, 195, 194, 194, 194, 193, 193, 193, 193, - 193, 193, 193, 193, 194, 194, 194, 194, 197, 194, 194, 195, 96, 156, 198, - 198, 193, 193, 193, 195, 195, 193, 193, 199, 199, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 201, 202, 195, 195, 195, 195, 195, 195, - 203, 204, 205, 205, 81, 203, 203, 203, 203, 203, 203, 203, 203, 81, 81, - 203, 203, 81, 81, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 81, 203, 203, 203, 203, 203, 203, 203, 81, 203, 81, 81, - 81, 203, 203, 203, 203, 81, 81, 206, 203, 205, 205, 205, 204, 204, 204, - 204, 81, 81, 205, 205, 81, 81, 205, 205, 207, 203, 81, 81, 81, 81, 81, - 81, 81, 81, 205, 81, 81, 81, 81, 203, 203, 81, 203, 203, 203, 204, 204, - 81, 81, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 203, 203, 209, - 209, 210, 210, 210, 210, 210, 211, 212, 213, 203, 214, 215, 81, 81, 216, - 216, 217, 81, 218, 218, 218, 218, 218, 218, 81, 81, 81, 81, 218, 218, 81, - 81, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 81, 218, 218, 218, 218, 218, 218, 218, 81, 218, 218, 81, 218, 218, 81, - 218, 218, 81, 81, 219, 81, 217, 217, 217, 216, 216, 81, 81, 81, 81, 216, - 216, 81, 81, 216, 216, 220, 81, 81, 81, 216, 81, 81, 81, 81, 81, 81, 81, - 218, 218, 218, 218, 81, 218, 81, 81, 81, 81, 81, 81, 81, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 216, 216, 218, 218, 218, 216, 222, 81, - 81, 223, 223, 224, 81, 225, 225, 225, 225, 225, 225, 225, 225, 225, 81, - 225, 225, 225, 81, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, - 225, 225, 225, 81, 225, 225, 225, 225, 225, 225, 225, 81, 225, 225, 81, - 225, 225, 225, 225, 225, 81, 81, 226, 225, 224, 224, 224, 223, 223, 223, - 223, 223, 81, 223, 223, 224, 81, 224, 224, 227, 81, 81, 225, 81, 81, 81, - 81, 81, 81, 81, 225, 225, 223, 223, 81, 81, 228, 228, 228, 228, 228, 228, - 228, 228, 228, 228, 229, 230, 81, 81, 81, 81, 81, 81, 81, 225, 223, 223, - 223, 223, 223, 223, 81, 231, 232, 232, 81, 233, 233, 233, 233, 233, 233, - 233, 233, 81, 81, 233, 233, 81, 81, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 81, 233, 233, 233, 233, 233, 233, 233, - 81, 233, 233, 81, 233, 233, 233, 233, 233, 81, 81, 234, 233, 232, 231, - 232, 231, 231, 231, 231, 81, 81, 232, 232, 81, 81, 232, 232, 235, 81, 81, - 81, 81, 81, 81, 81, 81, 231, 232, 81, 81, 81, 81, 233, 233, 81, 233, 233, - 233, 231, 231, 81, 81, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, - 237, 233, 238, 238, 238, 238, 238, 238, 81, 81, 239, 240, 81, 240, 240, - 240, 240, 240, 240, 81, 81, 81, 240, 240, 240, 81, 240, 240, 240, 240, - 81, 81, 81, 240, 240, 81, 240, 81, 240, 240, 81, 81, 81, 240, 240, 81, - 81, 81, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 81, 81, 81, 81, - 241, 241, 239, 241, 241, 81, 81, 81, 241, 241, 241, 81, 241, 241, 241, - 242, 81, 81, 240, 81, 81, 81, 81, 81, 81, 241, 81, 81, 81, 81, 81, 81, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, - 245, 245, 245, 245, 245, 246, 245, 81, 81, 81, 81, 81, 247, 248, 248, - 248, 247, 249, 249, 249, 249, 249, 249, 249, 249, 81, 249, 249, 249, 81, - 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 81, 81, 81, 249, 247, 247, 247, 248, 248, 248, 248, 81, 247, - 247, 247, 81, 247, 247, 247, 250, 81, 81, 81, 81, 81, 81, 81, 251, 252, - 81, 249, 249, 249, 81, 81, 81, 81, 81, 249, 249, 247, 247, 81, 81, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 254, 254, 254, 254, 254, - 254, 254, 255, 256, 257, 258, 258, 259, 256, 256, 256, 256, 256, 256, - 256, 256, 81, 256, 256, 256, 81, 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 81, 256, 256, 256, 256, - 256, 81, 81, 260, 256, 258, 261, 258, 258, 258, 258, 258, 81, 261, 258, - 258, 81, 258, 258, 257, 262, 81, 81, 81, 81, 81, 81, 81, 258, 258, 81, - 81, 81, 81, 81, 81, 81, 256, 81, 256, 256, 257, 257, 81, 81, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, 81, 256, 256, 81, 81, 81, 81, 81, - 264, 264, 265, 265, 81, 266, 266, 266, 266, 266, 266, 266, 266, 81, 266, - 266, 266, 81, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 267, 267, 266, 265, 265, 265, 264, 264, 264, - 264, 81, 265, 265, 265, 81, 265, 265, 265, 267, 266, 268, 81, 81, 81, 81, - 266, 266, 266, 265, 269, 269, 269, 269, 269, 269, 269, 266, 266, 266, - 264, 264, 81, 81, 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 271, 266, 266, 266, 266, 266, - 266, 81, 81, 272, 272, 81, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 273, 273, 273, 273, 81, 81, 81, 273, 273, 273, - 273, 273, 273, 273, 273, 81, 273, 273, 273, 273, 273, 273, 273, 273, 273, - 81, 273, 81, 81, 81, 81, 274, 81, 81, 81, 81, 272, 272, 272, 275, 275, - 275, 81, 275, 81, 272, 272, 272, 272, 272, 272, 272, 272, 81, 81, 81, 81, - 81, 81, 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, 81, 81, 272, - 272, 277, 81, 81, 81, 81, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 278, 278, 278, 278, 278, 278, 278, 279, 278, 278, 279, 279, 279, 279, - 280, 280, 281, 81, 81, 81, 81, 282, 278, 278, 278, 278, 278, 278, 283, - 279, 284, 284, 284, 284, 279, 279, 279, 285, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 287, 287, 81, 81, 81, 81, 81, 288, 288, 81, 288, - 81, 81, 288, 288, 81, 288, 81, 81, 288, 81, 81, 81, 81, 81, 81, 288, 288, - 288, 288, 81, 288, 288, 288, 288, 288, 288, 288, 81, 288, 288, 288, 81, - 288, 81, 288, 81, 81, 288, 288, 81, 288, 288, 288, 288, 289, 288, 288, - 289, 289, 289, 289, 290, 290, 81, 289, 289, 288, 81, 81, 288, 288, 288, - 288, 288, 81, 291, 81, 292, 292, 292, 292, 289, 289, 81, 81, 293, 293, - 293, 293, 293, 293, 293, 293, 293, 293, 81, 81, 288, 288, 288, 288, 294, - 295, 295, 295, 296, 297, 296, 296, 298, 296, 296, 299, 298, 300, 300, - 300, 300, 300, 298, 301, 300, 301, 301, 301, 302, 302, 301, 301, 301, - 301, 301, 301, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 304, - 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, 302, 301, 302, 301, - 306, 307, 308, 307, 308, 309, 309, 294, 294, 294, 294, 294, 294, 294, - 294, 81, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 81, - 81, 81, 81, 310, 311, 312, 313, 312, 312, 312, 312, 312, 311, 311, 311, - 311, 312, 314, 311, 312, 315, 315, 316, 299, 315, 315, 294, 294, 294, - 294, 294, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 81, 312, - 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 312, 81, 305, 305, 301, - 301, 301, 301, 301, 301, 302, 301, 301, 301, 301, 301, 301, 81, 301, 301, - 296, 296, 299, 296, 297, 317, 317, 317, 317, 298, 298, 81, 81, 81, 81, - 81, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 320, - 320, 320, 320, 319, 320, 320, 320, 320, 320, 321, 319, 322, 322, 319, - 319, 320, 320, 318, 323, 323, 323, 323, 323, 323, 323, 323, 323, 323, - 324, 324, 325, 325, 325, 325, 318, 318, 318, 318, 318, 318, 319, 319, - 320, 320, 318, 318, 318, 318, 320, 320, 320, 318, 319, 319, 319, 318, - 318, 319, 319, 319, 319, 319, 319, 319, 318, 318, 318, 320, 320, 320, - 320, 318, 318, 318, 318, 318, 320, 319, 319, 320, 320, 319, 319, 319, - 319, 319, 319, 326, 318, 319, 323, 323, 319, 319, 319, 320, 327, 327, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 81, - 328, 81, 81, 81, 81, 81, 328, 81, 81, 329, 329, 329, 329, 329, 329, 329, - 329, 329, 329, 329, 330, 331, 329, 329, 329, 332, 332, 332, 332, 332, - 332, 332, 332, 333, 333, 333, 333, 333, 333, 333, 333, 334, 334, 334, - 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, 335, 81, - 335, 335, 335, 335, 81, 81, 335, 335, 335, 335, 335, 335, 335, 81, 335, - 335, 335, 81, 81, 336, 336, 336, 337, 338, 337, 337, 337, 337, 337, 337, - 337, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 339, 81, 81, 81, 340, 340, 340, 340, 340, - 340, 340, 340, 340, 340, 81, 81, 81, 81, 81, 81, 341, 341, 341, 341, 341, - 341, 341, 341, 341, 341, 341, 341, 341, 341, 81, 81, 342, 342, 342, 342, - 342, 342, 81, 81, 343, 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 345, 345, 344, 346, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 348, 349, 81, 81, 81, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 199, 199, 199, 351, 351, 351, 350, 350, 350, - 350, 350, 350, 350, 350, 81, 81, 81, 81, 81, 81, 81, 352, 352, 352, 352, - 352, 352, 352, 352, 352, 352, 352, 352, 352, 81, 352, 352, 352, 352, 353, - 353, 354, 81, 81, 81, 355, 355, 355, 355, 355, 355, 355, 355, 355, 355, - 356, 356, 357, 199, 199, 81, 358, 358, 358, 358, 358, 358, 358, 358, 358, - 358, 359, 359, 81, 81, 81, 81, 360, 360, 360, 360, 360, 360, 360, 360, - 360, 360, 360, 360, 360, 81, 360, 360, 360, 81, 361, 361, 81, 81, 81, 81, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 363, 363, - 364, 363, 363, 363, 363, 363, 363, 363, 364, 364, 364, 364, 364, 364, - 364, 364, 363, 364, 364, 363, 363, 363, 363, 363, 363, 363, 363, 363, - 365, 363, 366, 366, 367, 368, 366, 369, 366, 370, 362, 371, 81, 81, 372, - 372, 372, 372, 372, 372, 372, 372, 372, 372, 81, 81, 81, 81, 81, 81, 373, - 373, 373, 373, 373, 373, 373, 373, 373, 373, 81, 81, 81, 81, 81, 81, 374, - 374, 375, 375, 376, 377, 378, 374, 379, 379, 374, 380, 380, 380, 381, 81, - 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 81, 81, 81, 81, 81, 81, - 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 384, 383, 383, - 383, 383, 383, 81, 81, 81, 81, 81, 81, 81, 383, 383, 383, 383, 383, 380, - 380, 383, 383, 385, 383, 81, 81, 81, 81, 81, 344, 344, 344, 344, 344, - 344, 81, 81, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, - 386, 386, 386, 81, 387, 387, 387, 388, 388, 388, 388, 387, 387, 388, 388, - 388, 81, 81, 81, 81, 388, 388, 387, 388, 388, 388, 388, 388, 388, 389, - 390, 391, 81, 81, 81, 81, 392, 81, 81, 81, 393, 393, 394, 394, 394, 394, - 394, 394, 394, 394, 394, 394, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 395, 395, 395, 395, 81, 81, 395, 395, 395, 395, 395, 81, 81, - 81, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 81, 81, - 81, 81, 396, 396, 81, 81, 81, 81, 81, 81, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 398, 81, 81, 81, 399, 399, 400, 400, 400, 400, 400, - 400, 400, 400, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 401, 401, 401, 402, 403, 404, 404, 405, 81, 81, 406, 406, 407, 407, - 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 408, 409, 408, - 409, 409, 409, 409, 409, 409, 409, 81, 410, 408, 409, 408, 408, 409, 409, - 409, 409, 409, 409, 409, 409, 408, 408, 408, 408, 408, 408, 409, 409, - 411, 411, 411, 411, 411, 411, 411, 411, 81, 81, 412, 413, 413, 413, 413, - 413, 413, 413, 413, 413, 413, 81, 81, 81, 81, 81, 81, 414, 414, 414, 414, - 414, 414, 414, 415, 414, 414, 414, 414, 414, 414, 81, 81, 96, 96, 96, 96, - 96, 156, 156, 156, 156, 156, 156, 96, 96, 156, 416, 81, 417, 417, 417, - 417, 418, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, 419, - 419, 419, 419, 420, 418, 417, 417, 417, 417, 417, 418, 417, 418, 418, - 418, 418, 418, 417, 418, 421, 419, 419, 419, 419, 419, 419, 419, 81, 81, - 81, 81, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 423, 423, 424, - 423, 423, 423, 423, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, - 426, 427, 426, 426, 426, 426, 426, 426, 426, 425, 425, 425, 425, 425, - 425, 425, 425, 425, 81, 81, 81, 428, 428, 429, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 429, 428, 428, 428, 428, - 429, 429, 428, 428, 431, 432, 428, 428, 430, 430, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 430, 430, 430, 430, 430, 430, 434, 434, - 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 434, 435, 436, - 437, 437, 436, 436, 436, 437, 436, 437, 437, 437, 438, 438, 81, 81, 81, - 81, 81, 81, 81, 81, 439, 439, 439, 439, 440, 440, 440, 440, 440, 440, - 440, 440, 440, 440, 440, 440, 441, 441, 441, 441, 441, 441, 441, 441, - 442, 442, 442, 442, 442, 442, 442, 442, 441, 441, 442, 443, 81, 81, 81, - 444, 444, 444, 444, 444, 445, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 81, 81, 81, 440, 440, 440, 446, 446, 446, 446, 446, 446, 446, 446, - 446, 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 448, 448, 448, 448, 448, 448, 449, 449, 93, 81, 81, 81, 81, 81, - 81, 81, 328, 328, 328, 81, 81, 328, 328, 328, 450, 450, 450, 450, 450, - 450, 450, 450, 96, 96, 96, 330, 451, 156, 156, 156, 156, 156, 96, 96, - 156, 156, 156, 156, 96, 452, 451, 451, 451, 451, 451, 451, 451, 453, 453, - 453, 453, 156, 453, 453, 453, 453, 452, 452, 96, 453, 453, 452, 96, 96, - 81, 81, 81, 81, 81, 81, 56, 56, 56, 56, 56, 56, 79, 79, 79, 79, 79, 93, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 82, 82, 82, 82, 59, 59, 59, 59, - 82, 82, 82, 82, 82, 56, 56, 56, 56, 56, 454, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 96, 96, - 156, 96, 96, 96, 96, 96, 96, 96, 156, 96, 96, 455, 456, 156, 457, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 458, 459, 459, 156, 81, 96, 460, 156, 96, 156, 52, 56, 52, 56, 52, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56, 79, 79, 79, 79, 79, 79, 79, - 79, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 81, 81, 78, - 78, 78, 78, 78, 78, 81, 81, 81, 78, 81, 78, 81, 78, 81, 78, 461, 461, - 461, 461, 461, 461, 461, 461, 79, 79, 79, 79, 79, 81, 79, 79, 78, 78, 78, - 78, 461, 80, 79, 80, 80, 80, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 461, - 80, 80, 80, 79, 79, 79, 79, 81, 81, 79, 79, 78, 78, 78, 78, 81, 80, 80, - 80, 78, 78, 78, 78, 78, 80, 80, 80, 81, 81, 79, 79, 79, 81, 79, 79, 78, - 78, 78, 78, 461, 462, 80, 81, 463, 463, 463, 463, 463, 463, 463, 464, - 463, 463, 463, 465, 466, 467, 468, 469, 470, 471, 472, 470, 473, 474, 38, - 84, 475, 476, 477, 42, 475, 476, 477, 42, 38, 38, 478, 84, 479, 479, 479, - 480, 481, 482, 483, 484, 485, 486, 487, 33, 488, 489, 488, 488, 489, 490, - 491, 491, 84, 42, 50, 38, 492, 492, 478, 493, 493, 84, 84, 84, 494, 477, - 495, 492, 492, 492, 84, 84, 84, 84, 84, 84, 84, 84, 496, 84, 493, 84, - 377, 84, 377, 377, 377, 377, 84, 377, 377, 463, 497, 498, 498, 498, 498, - 81, 499, 500, 501, 502, 503, 503, 503, 503, 503, 503, 504, 59, 81, 81, - 47, 504, 504, 504, 504, 504, 505, 505, 496, 477, 495, 506, 504, 47, 47, - 47, 47, 504, 504, 504, 504, 504, 505, 505, 496, 477, 495, 81, 59, 59, 59, - 59, 59, 81, 81, 81, 282, 282, 282, 282, 282, 282, 282, 507, 282, 508, - 282, 282, 36, 282, 282, 282, 282, 282, 282, 282, 282, 282, 507, 282, 282, - 282, 282, 507, 282, 282, 507, 282, 509, 509, 509, 509, 509, 509, 509, - 509, 96, 96, 451, 451, 96, 96, 96, 96, 451, 451, 451, 96, 96, 416, 416, - 416, 416, 96, 416, 416, 416, 451, 451, 96, 156, 96, 451, 451, 156, 156, - 156, 156, 96, 81, 81, 81, 81, 81, 81, 81, 40, 40, 510, 511, 40, 512, 40, - 510, 40, 511, 49, 510, 510, 510, 49, 49, 510, 510, 510, 513, 40, 510, - 514, 40, 496, 510, 510, 510, 510, 510, 40, 40, 40, 512, 512, 40, 510, 40, - 85, 40, 510, 40, 52, 515, 510, 510, 516, 49, 510, 510, 52, 510, 49, 453, - 453, 453, 453, 49, 40, 40, 49, 49, 510, 510, 496, 496, 496, 496, 496, - 510, 49, 49, 49, 49, 40, 496, 40, 40, 56, 317, 517, 517, 517, 518, 51, - 519, 517, 517, 517, 517, 517, 51, 518, 518, 51, 517, 520, 520, 520, 520, - 520, 520, 520, 520, 520, 520, 520, 520, 521, 521, 521, 521, 520, 520, - 521, 521, 521, 521, 521, 521, 521, 521, 521, 52, 56, 521, 521, 521, 521, - 51, 40, 40, 81, 81, 81, 81, 54, 54, 54, 54, 54, 512, 512, 512, 512, 512, - 496, 496, 40, 40, 40, 40, 496, 40, 40, 496, 40, 40, 496, 40, 40, 40, 40, - 40, 40, 40, 496, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 44, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 496, 496, 40, 40, 54, 40, 54, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 44, 40, 40, 40, 40, 496, 496, 496, 496, - 496, 496, 496, 496, 496, 496, 496, 496, 54, 496, 54, 54, 496, 496, 496, - 54, 54, 496, 496, 54, 496, 496, 496, 54, 496, 54, 522, 523, 496, 54, 496, - 496, 496, 496, 54, 496, 496, 54, 54, 54, 54, 496, 496, 54, 496, 54, 496, - 54, 54, 54, 54, 54, 54, 496, 54, 496, 496, 496, 496, 496, 54, 54, 54, 54, - 496, 496, 496, 496, 54, 54, 496, 496, 54, 496, 496, 496, 54, 496, 496, - 496, 496, 496, 54, 496, 496, 496, 496, 496, 54, 54, 496, 496, 54, 54, 54, - 54, 496, 496, 54, 54, 496, 496, 54, 54, 496, 496, 496, 496, 496, 54, 496, - 496, 496, 54, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, - 496, 54, 496, 496, 496, 496, 496, 496, 496, 524, 477, 495, 477, 495, 40, - 40, 40, 40, 40, 40, 512, 40, 40, 40, 40, 40, 40, 40, 525, 525, 40, 40, - 40, 40, 496, 496, 40, 40, 40, 40, 40, 40, 40, 526, 527, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 40, 496, 40, 40, 40, 40, 40, 40, 40, 40, 317, 40, 40, - 40, 40, 40, 496, 496, 496, 496, 496, 496, 496, 496, 496, 40, 40, 40, 40, - 40, 528, 528, 528, 528, 40, 40, 40, 525, 529, 529, 525, 40, 40, 40, 40, + 193, 193, 193, 193, 194, 194, 194, 194, 197, 194, 194, 195, 96, 156, 96, + 96, 193, 193, 193, 195, 195, 193, 193, 198, 198, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 200, 201, 195, 195, 195, 195, 195, 195, 202, + 203, 204, 204, 81, 202, 202, 202, 202, 202, 202, 202, 202, 81, 81, 202, + 202, 81, 81, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 81, 202, 202, 202, 202, 202, 202, 202, 81, 202, 81, 81, 81, + 202, 202, 202, 202, 81, 81, 205, 202, 204, 204, 204, 203, 203, 203, 203, + 81, 81, 204, 204, 81, 81, 204, 204, 206, 202, 81, 81, 81, 81, 81, 81, 81, + 81, 204, 81, 81, 81, 81, 202, 202, 81, 202, 202, 202, 203, 203, 81, 81, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 202, 202, 208, 208, + 209, 209, 209, 209, 209, 210, 211, 212, 202, 213, 214, 81, 81, 215, 215, + 216, 81, 217, 217, 217, 217, 217, 217, 81, 81, 81, 81, 217, 217, 81, 81, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 81, + 217, 217, 217, 217, 217, 217, 217, 81, 217, 217, 81, 217, 217, 81, 217, + 217, 81, 81, 218, 81, 216, 216, 216, 215, 215, 81, 81, 81, 81, 215, 215, + 81, 81, 215, 215, 219, 81, 81, 81, 215, 81, 81, 81, 81, 81, 81, 81, 217, + 217, 217, 217, 81, 217, 81, 81, 81, 81, 81, 81, 81, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 215, 215, 217, 217, 217, 215, 221, 81, 81, + 222, 222, 223, 81, 224, 224, 224, 224, 224, 224, 224, 224, 224, 81, 224, + 224, 224, 81, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, + 224, 224, 81, 224, 224, 224, 224, 224, 224, 224, 81, 224, 224, 81, 224, + 224, 224, 224, 224, 81, 81, 225, 224, 223, 223, 223, 222, 222, 222, 222, + 222, 81, 222, 222, 223, 81, 223, 223, 226, 81, 81, 224, 81, 81, 81, 81, + 81, 81, 81, 224, 224, 222, 222, 81, 81, 227, 227, 227, 227, 227, 227, + 227, 227, 227, 227, 228, 229, 81, 81, 81, 81, 81, 81, 81, 224, 222, 222, + 222, 222, 222, 222, 81, 230, 231, 231, 81, 232, 232, 232, 232, 232, 232, + 232, 232, 81, 81, 232, 232, 81, 81, 232, 232, 232, 232, 232, 232, 232, + 232, 232, 232, 232, 232, 232, 232, 81, 232, 232, 232, 232, 232, 232, 232, + 81, 232, 232, 81, 232, 232, 232, 232, 232, 81, 81, 233, 232, 231, 230, + 231, 230, 230, 230, 230, 81, 81, 231, 231, 81, 81, 231, 231, 234, 81, 81, + 81, 81, 81, 81, 81, 81, 230, 231, 81, 81, 81, 81, 232, 232, 81, 232, 232, + 232, 230, 230, 81, 81, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, + 236, 232, 237, 237, 237, 237, 237, 237, 81, 81, 238, 239, 81, 239, 239, + 239, 239, 239, 239, 81, 81, 81, 239, 239, 239, 81, 239, 239, 239, 239, + 81, 81, 81, 239, 239, 81, 239, 81, 239, 239, 81, 81, 81, 239, 239, 81, + 81, 81, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 81, 81, 81, 81, + 240, 240, 238, 240, 240, 81, 81, 81, 240, 240, 240, 81, 240, 240, 240, + 241, 81, 81, 239, 81, 81, 81, 81, 81, 81, 240, 81, 81, 81, 81, 81, 81, + 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, + 244, 244, 244, 244, 244, 245, 244, 81, 81, 81, 81, 81, 246, 247, 247, + 247, 246, 248, 248, 248, 248, 248, 248, 248, 248, 81, 248, 248, 248, 81, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 81, 81, 81, 248, 246, 246, 246, 247, 247, 247, 247, 81, 246, + 246, 246, 81, 246, 246, 246, 249, 81, 81, 81, 81, 81, 81, 81, 250, 251, + 81, 248, 248, 248, 81, 81, 81, 81, 81, 248, 248, 246, 246, 81, 81, 252, + 252, 252, 252, 252, 252, 252, 252, 252, 252, 81, 81, 81, 81, 81, 81, 81, + 253, 254, 254, 254, 254, 254, 254, 254, 255, 256, 257, 258, 258, 259, + 256, 256, 256, 256, 256, 256, 256, 256, 81, 256, 256, 256, 81, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 81, 256, 256, 256, 256, 256, 81, 81, 260, 256, 258, 261, 258, + 258, 258, 258, 258, 81, 261, 258, 258, 81, 258, 258, 257, 262, 81, 81, + 81, 81, 81, 81, 81, 258, 258, 81, 81, 81, 81, 81, 81, 81, 256, 81, 256, + 256, 257, 257, 81, 81, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, + 81, 256, 256, 81, 81, 81, 81, 81, 264, 264, 265, 265, 81, 266, 266, 266, + 266, 266, 266, 266, 266, 81, 266, 266, 266, 81, 266, 266, 266, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 267, 267, + 266, 265, 265, 265, 264, 264, 264, 264, 81, 265, 265, 265, 81, 265, 265, + 265, 267, 266, 268, 81, 81, 81, 81, 266, 266, 266, 265, 269, 269, 269, + 269, 269, 269, 269, 266, 266, 266, 264, 264, 81, 81, 270, 270, 270, 270, + 270, 270, 270, 270, 270, 270, 269, 269, 269, 269, 269, 269, 269, 269, + 269, 271, 266, 266, 266, 266, 266, 266, 81, 81, 272, 272, 81, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 81, 81, 81, 273, 273, 273, 273, 273, 273, 273, 273, 81, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 81, 273, 81, 81, 81, 81, 274, 81, + 81, 81, 81, 272, 272, 272, 275, 275, 275, 81, 275, 81, 272, 272, 272, + 272, 272, 272, 272, 272, 81, 81, 81, 81, 81, 81, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 81, 81, 272, 272, 277, 81, 81, 81, 81, 278, 278, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 279, 278, 278, 279, 279, 279, 279, 280, 280, 281, 81, 81, 81, 81, 282, + 278, 278, 278, 278, 278, 278, 283, 279, 284, 284, 284, 284, 279, 279, + 279, 285, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, 81, + 81, 81, 81, 81, 288, 288, 81, 288, 81, 288, 288, 288, 288, 288, 81, 288, + 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, + 288, 81, 288, 81, 288, 288, 289, 288, 288, 289, 289, 289, 289, 290, 290, + 291, 289, 289, 288, 81, 81, 288, 288, 288, 288, 288, 81, 292, 81, 293, + 293, 293, 293, 289, 289, 81, 81, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 81, 81, 288, 288, 288, 288, 295, 296, 296, 296, 297, 298, 297, + 297, 299, 297, 297, 300, 299, 301, 301, 301, 301, 301, 299, 302, 301, + 302, 302, 302, 303, 303, 302, 302, 302, 302, 302, 302, 304, 304, 304, + 304, 304, 304, 304, 304, 304, 304, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 305, 306, 303, 302, 303, 302, 307, 308, 309, 308, 309, 310, + 310, 295, 295, 295, 295, 295, 295, 295, 295, 81, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, 295, 81, 81, 81, 81, 311, 312, 313, 314, + 313, 313, 313, 313, 313, 312, 312, 312, 312, 313, 315, 312, 313, 316, + 316, 317, 300, 316, 316, 295, 295, 295, 295, 295, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 313, 313, 81, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 81, 306, 306, 302, 302, 302, 302, 302, 302, 303, + 302, 302, 302, 302, 302, 302, 81, 302, 302, 297, 297, 300, 297, 298, 318, + 318, 318, 318, 299, 299, 81, 81, 81, 81, 81, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 320, 320, 321, 321, 321, 321, 320, 321, + 321, 321, 321, 321, 322, 320, 323, 323, 320, 320, 321, 321, 319, 324, + 324, 324, 324, 324, 324, 324, 324, 324, 324, 325, 325, 326, 326, 326, + 326, 319, 319, 319, 319, 319, 319, 320, 320, 321, 321, 319, 319, 319, + 319, 321, 321, 321, 319, 320, 320, 320, 319, 319, 320, 320, 320, 320, + 320, 320, 320, 319, 319, 319, 321, 321, 321, 321, 319, 319, 319, 319, + 319, 321, 320, 320, 321, 321, 320, 320, 320, 320, 320, 320, 327, 319, + 320, 324, 324, 320, 320, 320, 321, 328, 328, 329, 329, 329, 329, 329, + 329, 329, 329, 329, 329, 329, 329, 329, 329, 81, 329, 81, 81, 81, 81, 81, + 329, 81, 81, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 331, + 332, 330, 330, 330, 333, 333, 333, 333, 333, 333, 333, 333, 334, 334, + 334, 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, + 336, 336, 336, 336, 336, 336, 336, 336, 336, 81, 336, 336, 336, 336, 81, + 81, 336, 336, 336, 336, 336, 336, 336, 81, 336, 336, 336, 81, 81, 337, + 337, 337, 338, 339, 338, 338, 338, 338, 338, 338, 338, 340, 340, 340, + 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, + 340, 340, 340, 81, 81, 81, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 81, 81, 81, 81, 81, 81, 342, 342, 342, 342, 342, 342, 342, 342, 342, + 342, 342, 342, 342, 342, 81, 81, 343, 343, 343, 343, 343, 343, 81, 81, + 344, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 346, 347, 345, 348, 349, 349, 349, + 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, 349, + 349, 350, 351, 81, 81, 81, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 198, 198, 198, 353, 353, 353, 352, 352, 352, 352, 352, 352, + 352, 352, 81, 81, 81, 81, 81, 81, 81, 354, 354, 354, 354, 354, 354, 354, + 354, 354, 354, 354, 354, 354, 81, 354, 354, 354, 354, 355, 355, 356, 81, + 81, 81, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 358, 358, 359, + 198, 198, 81, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 361, + 81, 81, 81, 81, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 362, 362, 81, 362, 362, 362, 81, 363, 363, 81, 81, 81, 81, 364, 364, 364, + 364, 364, 364, 364, 364, 364, 364, 364, 364, 365, 365, 366, 365, 365, + 365, 365, 365, 365, 365, 366, 366, 366, 366, 366, 366, 366, 366, 365, + 366, 366, 365, 365, 365, 365, 365, 365, 365, 365, 365, 367, 365, 368, + 368, 369, 370, 368, 371, 368, 372, 364, 373, 81, 81, 374, 374, 374, 374, + 374, 374, 374, 374, 374, 374, 81, 81, 81, 81, 81, 81, 375, 375, 375, 375, + 375, 375, 375, 375, 375, 375, 81, 81, 81, 81, 81, 81, 376, 376, 377, 377, + 378, 379, 380, 376, 381, 381, 376, 382, 382, 382, 383, 81, 384, 384, 384, + 384, 384, 384, 384, 384, 384, 384, 81, 81, 81, 81, 81, 81, 385, 385, 385, + 385, 385, 385, 385, 385, 385, 385, 385, 386, 385, 385, 385, 385, 385, 81, + 81, 81, 81, 81, 81, 81, 385, 385, 385, 385, 385, 382, 382, 385, 385, 387, + 385, 81, 81, 81, 81, 81, 345, 345, 345, 345, 345, 345, 81, 81, 388, 388, + 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 81, 389, + 389, 389, 390, 390, 390, 390, 389, 389, 390, 390, 390, 81, 81, 81, 81, + 390, 390, 389, 390, 390, 390, 390, 390, 390, 391, 392, 393, 81, 81, 81, + 81, 394, 81, 81, 81, 395, 395, 396, 396, 396, 396, 396, 396, 396, 396, + 396, 396, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, + 397, 397, 81, 81, 397, 397, 397, 397, 397, 81, 81, 81, 398, 398, 398, + 398, 398, 398, 398, 398, 398, 398, 398, 398, 81, 81, 81, 81, 398, 398, + 81, 81, 81, 81, 81, 81, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 400, 81, 81, 81, 401, 401, 402, 402, 402, 402, 402, 402, 402, 402, 403, + 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, + 404, 405, 406, 406, 407, 81, 81, 408, 408, 409, 409, 409, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 410, 411, 410, 411, 411, 411, 411, + 411, 411, 411, 81, 412, 410, 411, 410, 410, 411, 411, 411, 411, 411, 411, + 411, 411, 410, 410, 410, 410, 410, 410, 411, 411, 413, 413, 413, 413, + 413, 413, 413, 413, 81, 81, 414, 415, 415, 415, 415, 415, 415, 415, 415, + 415, 415, 81, 81, 81, 81, 81, 81, 416, 416, 416, 416, 416, 416, 416, 417, + 416, 416, 416, 416, 416, 416, 81, 81, 96, 96, 96, 96, 96, 156, 156, 156, + 156, 156, 156, 96, 96, 156, 418, 81, 419, 419, 419, 419, 420, 421, 421, + 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 422, + 420, 419, 419, 419, 419, 419, 420, 419, 420, 420, 420, 420, 420, 419, + 420, 423, 421, 421, 421, 421, 421, 421, 421, 81, 81, 81, 81, 424, 424, + 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, 426, 425, 425, 425, + 425, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 428, 429, 428, + 428, 428, 428, 428, 428, 428, 427, 427, 427, 427, 427, 427, 427, 427, + 427, 81, 81, 81, 430, 430, 431, 432, 432, 432, 432, 432, 432, 432, 432, + 432, 432, 432, 432, 432, 432, 431, 430, 430, 430, 430, 431, 431, 430, + 430, 433, 434, 430, 430, 432, 432, 435, 435, 435, 435, 435, 435, 435, + 435, 435, 435, 432, 432, 432, 432, 432, 432, 436, 436, 436, 436, 436, + 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 438, 439, 439, 438, + 438, 438, 439, 438, 439, 439, 439, 440, 440, 81, 81, 81, 81, 81, 81, 81, + 81, 441, 441, 441, 441, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, + 442, 442, 443, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, + 444, 444, 444, 444, 443, 443, 444, 445, 81, 81, 81, 446, 446, 446, 446, + 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 81, 81, 81, 442, + 442, 442, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 449, 449, + 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 450, 450, + 450, 450, 450, 450, 451, 451, 93, 81, 81, 81, 81, 81, 81, 81, 329, 329, + 329, 81, 81, 329, 329, 329, 452, 452, 452, 452, 452, 452, 452, 452, 96, + 96, 96, 331, 453, 156, 156, 156, 156, 156, 96, 96, 156, 156, 156, 156, + 96, 454, 453, 453, 453, 453, 453, 453, 453, 455, 455, 455, 455, 156, 455, + 455, 455, 455, 455, 455, 96, 455, 455, 454, 96, 96, 455, 81, 81, 81, 81, + 81, 56, 56, 56, 56, 56, 56, 79, 79, 79, 79, 79, 93, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 82, 82, 82, 82, 82, 59, 59, 59, 59, 82, 82, 82, 82, 82, + 56, 56, 56, 56, 56, 456, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 82, 96, 96, 156, 96, 96, 96, 96, + 96, 96, 96, 156, 96, 96, 457, 458, 156, 459, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, 460, 461, 461, + 156, 81, 96, 462, 156, 96, 156, 52, 56, 52, 56, 52, 56, 56, 56, 56, 56, + 56, 56, 56, 56, 52, 56, 79, 79, 79, 79, 79, 79, 79, 79, 78, 78, 78, 78, + 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 81, 81, 78, 78, 78, 78, 78, 78, + 81, 81, 81, 78, 81, 78, 81, 78, 81, 78, 463, 463, 463, 463, 463, 463, + 463, 463, 79, 79, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463, 80, 79, + 80, 80, 80, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463, 80, 80, 80, 79, + 79, 79, 79, 81, 81, 79, 79, 78, 78, 78, 78, 81, 80, 80, 80, 78, 78, 78, + 78, 78, 80, 80, 80, 81, 81, 79, 79, 79, 81, 79, 79, 78, 78, 78, 78, 463, + 464, 80, 81, 465, 465, 465, 465, 465, 465, 465, 466, 465, 465, 465, 467, + 468, 469, 470, 471, 472, 473, 474, 472, 475, 476, 38, 84, 477, 478, 479, + 42, 477, 478, 479, 42, 38, 38, 480, 84, 481, 481, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 33, 490, 491, 490, 490, 491, 492, 493, 493, 84, + 42, 50, 38, 494, 494, 480, 495, 495, 84, 84, 84, 496, 479, 497, 494, 494, + 494, 84, 84, 84, 84, 84, 84, 84, 84, 498, 84, 495, 84, 379, 84, 379, 379, + 379, 379, 84, 379, 379, 465, 499, 500, 500, 500, 500, 81, 501, 502, 503, + 504, 505, 505, 505, 505, 505, 505, 506, 59, 81, 81, 47, 506, 506, 506, + 506, 506, 507, 507, 498, 479, 497, 508, 506, 47, 47, 47, 47, 506, 506, + 506, 506, 506, 507, 507, 498, 479, 497, 81, 59, 59, 59, 59, 59, 81, 81, + 81, 282, 282, 282, 282, 282, 282, 282, 509, 282, 510, 282, 282, 36, 282, + 282, 282, 282, 282, 282, 282, 282, 282, 509, 282, 282, 282, 282, 509, + 282, 282, 509, 282, 511, 511, 511, 511, 511, 511, 511, 511, 96, 96, 453, + 453, 96, 96, 96, 96, 453, 453, 453, 96, 96, 418, 418, 418, 418, 96, 418, + 418, 418, 453, 453, 96, 156, 96, 453, 453, 156, 156, 156, 156, 96, 81, + 81, 81, 81, 81, 81, 81, 40, 40, 512, 513, 40, 514, 40, 512, 40, 513, 49, + 512, 512, 512, 49, 49, 512, 512, 512, 515, 40, 512, 516, 40, 498, 512, + 512, 512, 512, 512, 40, 40, 40, 514, 514, 40, 512, 40, 85, 40, 512, 40, + 52, 517, 512, 512, 518, 49, 512, 512, 52, 512, 49, 455, 455, 455, 455, + 49, 40, 40, 49, 49, 512, 512, 498, 498, 498, 498, 498, 512, 49, 49, 49, + 49, 40, 498, 40, 40, 56, 318, 519, 519, 519, 520, 51, 521, 519, 519, 519, + 519, 519, 51, 520, 520, 51, 519, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 522, 522, 523, 523, 523, 523, 522, 522, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 52, 56, 523, 523, 523, 523, 51, 40, 40, 81, 81, + 81, 81, 54, 54, 54, 54, 54, 514, 514, 514, 514, 514, 498, 498, 40, 40, + 40, 40, 498, 40, 40, 498, 40, 40, 498, 40, 40, 40, 40, 40, 40, 40, 498, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 44, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 498, 498, 40, 40, 54, 40, 54, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 44, 40, 40, 40, 40, 498, 498, 498, 498, 498, 498, 498, + 498, 498, 498, 498, 498, 54, 498, 54, 54, 498, 498, 498, 54, 54, 498, + 498, 54, 498, 498, 498, 54, 498, 54, 524, 525, 498, 54, 498, 498, 498, + 498, 54, 498, 498, 54, 54, 54, 54, 498, 498, 54, 498, 54, 498, 54, 54, + 54, 54, 54, 54, 498, 54, 498, 498, 498, 498, 498, 54, 54, 54, 54, 498, + 498, 498, 498, 54, 54, 498, 498, 54, 498, 498, 498, 54, 498, 498, 498, + 498, 498, 54, 498, 498, 498, 498, 498, 54, 54, 498, 498, 54, 54, 54, 54, + 498, 498, 54, 54, 498, 498, 54, 54, 498, 498, 498, 498, 498, 54, 498, + 498, 498, 54, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, + 498, 54, 498, 498, 498, 498, 498, 498, 498, 526, 479, 497, 479, 497, 40, + 40, 40, 40, 40, 40, 514, 40, 40, 40, 40, 40, 40, 40, 527, 527, 40, 40, + 40, 40, 498, 498, 40, 40, 40, 40, 40, 40, 40, 528, 529, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 40, 498, 40, 40, 40, 40, 40, 40, 40, 40, 318, 40, 40, + 40, 40, 40, 498, 498, 498, 498, 498, 498, 498, 498, 498, 40, 40, 40, 40, + 40, 530, 530, 530, 530, 40, 40, 40, 527, 531, 531, 527, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 81, 40, 40, 40, 81, 81, 81, 81, 81, 51, 51, 51, 51, 51, 51, 51, 51, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, - 519, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 518, 512, 512, 512, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 40, 40, 40, 40, 512, 512, - 512, 512, 531, 40, 40, 40, 40, 40, 512, 512, 512, 512, 40, 40, 512, 512, - 40, 512, 512, 512, 512, 512, 512, 512, 40, 40, 40, 40, 40, 40, 40, 40, - 512, 512, 40, 40, 512, 54, 40, 40, 40, 40, 512, 512, 40, 40, 512, 54, 40, - 40, 40, 40, 512, 512, 512, 40, 40, 512, 40, 40, 512, 512, 40, 40, 40, 40, - 40, 40, 40, 512, 496, 496, 496, 496, 496, 532, 532, 496, 529, 529, 529, - 529, 40, 512, 512, 40, 40, 512, 40, 40, 40, 40, 512, 512, 40, 40, 40, 40, - 525, 525, 531, 531, 529, 40, 529, 529, 533, 534, 533, 529, 40, 529, 529, - 529, 40, 40, 40, 40, 512, 40, 512, 40, 40, 40, 40, 40, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 40, 40, 40, 40, 512, 512, - 40, 512, 512, 512, 40, 512, 533, 512, 512, 40, 512, 512, 40, 54, 40, 40, - 40, 40, 40, 40, 40, 525, 40, 40, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 512, 512, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40, 528, 528, 317, - 40, 40, 40, 40, 40, 40, 40, 40, 525, 525, 533, 529, 529, 529, 529, 525, - 525, 533, 533, 533, 512, 512, 512, 512, 533, 528, 533, 533, 533, 512, - 533, 525, 512, 512, 512, 533, 533, 512, 512, 533, 512, 512, 533, 533, - 533, 40, 512, 40, 40, 40, 40, 512, 512, 525, 512, 512, 512, 512, 512, - 512, 533, 525, 525, 533, 525, 512, 533, 533, 535, 525, 512, 512, 525, - 533, 533, 529, 529, 529, 529, 529, 528, 40, 40, 529, 529, 536, 536, 534, - 534, 40, 40, 528, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 40, - 40, 40, 40, 40, 40, 528, 40, 528, 40, 40, 40, 40, 528, 528, 528, 40, 537, - 40, 40, 40, 538, 538, 538, 538, 538, 538, 40, 539, 539, 529, 40, 40, 40, - 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 51, - 51, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 40, 528, - 528, 528, 40, 40, 40, 40, 40, 40, 40, 528, 496, 496, 496, 496, 496, 477, - 495, 496, 496, 496, 496, 496, 496, 496, 16, 31, 16, 31, 16, 31, 16, 31, - 477, 495, 540, 540, 540, 540, 540, 540, 540, 540, 496, 496, 496, 477, - 495, 16, 31, 477, 495, 477, 495, 477, 495, 477, 495, 477, 495, 496, 496, - 496, 496, 496, 496, 496, 477, 495, 477, 495, 496, 496, 496, 496, 496, - 496, 496, 496, 477, 495, 496, 496, 40, 40, 40, 528, 528, 40, 40, 40, 496, - 496, 496, 496, 496, 40, 40, 496, 496, 496, 496, 496, 496, 40, 40, 40, - 528, 40, 40, 40, 40, 537, 512, 512, 40, 40, 40, 40, 81, 81, 40, 40, 40, - 40, 40, 40, 40, 40, 81, 81, 40, 81, 40, 40, 40, 40, 40, 40, 541, 541, - 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 81, 542, - 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 542, 81, - 52, 56, 52, 52, 52, 56, 56, 52, 56, 52, 56, 52, 56, 52, 52, 52, 52, 56, - 52, 56, 56, 52, 56, 56, 56, 56, 56, 56, 59, 59, 52, 52, 87, 88, 87, 88, - 88, 543, 543, 543, 543, 543, 543, 87, 88, 87, 88, 544, 544, 544, 87, 88, - 81, 81, 81, 81, 81, 545, 546, 546, 546, 547, 545, 546, 329, 329, 329, - 329, 329, 329, 81, 329, 81, 81, 81, 81, 81, 329, 81, 81, 548, 548, 548, - 548, 548, 548, 548, 548, 81, 81, 81, 81, 81, 81, 81, 549, 550, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 551, 95, 95, 95, 95, 95, - 95, 95, 95, 552, 552, 42, 50, 42, 50, 552, 552, 552, 42, 50, 552, 42, 50, - 377, 377, 377, 377, 377, 377, 377, 377, 84, 472, 553, 377, 554, 84, 42, - 50, 84, 84, 42, 50, 477, 495, 477, 495, 477, 495, 477, 495, 377, 377, - 377, 377, 375, 60, 377, 377, 84, 377, 377, 84, 84, 84, 84, 84, 555, 555, - 377, 377, 377, 84, 472, 377, 477, 377, 377, 377, 377, 377, 377, 377, 377, - 84, 377, 84, 377, 81, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 81, 556, 556, 556, 556, 556, 556, 556, 556, 556, 81, 81, 81, 81, 556, - 556, 556, 556, 556, 556, 81, 81, 525, 525, 525, 525, 525, 525, 525, 525, - 525, 525, 525, 525, 81, 81, 81, 81, 557, 558, 558, 559, 525, 560, 561, - 562, 526, 527, 526, 527, 526, 527, 526, 527, 526, 527, 525, 525, 526, - 527, 526, 527, 526, 527, 526, 527, 563, 526, 527, 527, 525, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 564, 565, 566, 567, 568, 568, 569, - 570, 570, 570, 570, 571, 525, 525, 562, 562, 562, 560, 572, 559, 525, - 529, 81, 573, 574, 573, 574, 573, 574, 573, 574, 573, 574, 574, 574, 574, - 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 574, 573, - 574, 574, 574, 574, 574, 574, 574, 573, 574, 573, 574, 573, 574, 574, - 574, 574, 574, 574, 573, 574, 574, 574, 574, 574, 574, 573, 573, 81, 81, - 575, 575, 576, 576, 577, 577, 574, 563, 578, 579, 578, 579, 578, 579, - 578, 579, 578, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 579, 579, 579, 579, 579, 579, 578, 579, 579, 579, 579, 579, 579, 579, - 578, 579, 578, 579, 578, 579, 579, 579, 579, 579, 579, 578, 579, 579, - 579, 579, 579, 579, 578, 578, 579, 579, 579, 579, 580, 581, 582, 582, - 579, 81, 81, 81, 81, 81, 583, 583, 583, 583, 583, 583, 583, 583, 583, - 583, 583, 81, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, - 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 81, 585, 585, 586, 586, - 586, 586, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 583, 583, - 583, 81, 81, 81, 81, 81, 578, 578, 578, 578, 578, 578, 578, 578, 587, - 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 587, 588, 588, 81, - 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 585, 585, 585, 585, - 585, 585, 589, 589, 589, 589, 589, 589, 589, 589, 525, 590, 590, 590, - 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 587, 587, - 587, 587, 588, 588, 588, 585, 585, 590, 590, 590, 590, 590, 590, 590, - 585, 585, 585, 585, 525, 525, 525, 525, 591, 591, 591, 591, 591, 591, - 591, 591, 591, 591, 591, 591, 591, 591, 591, 81, 585, 585, 585, 585, 585, - 585, 585, 525, 525, 525, 525, 585, 585, 585, 585, 585, 585, 585, 585, - 585, 585, 585, 525, 525, 592, 592, 592, 592, 592, 592, 592, 592, 592, - 592, 592, 592, 592, 592, 593, 593, 593, 593, 593, 593, 593, 593, 593, - 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, - 595, 594, 594, 594, 594, 594, 594, 594, 81, 81, 81, 596, 596, 596, 596, - 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 81, 597, 597, 597, - 597, 597, 597, 597, 597, 598, 598, 598, 598, 598, 598, 599, 599, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 601, 602, 603, - 602, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 600, 600, 81, 81, - 81, 81, 90, 93, 90, 93, 90, 93, 605, 95, 97, 97, 97, 606, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 606, 607, 90, 93, 90, 93, 454, 454, 95, 95, 608, - 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 608, 609, - 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 611, 612, 612, - 612, 612, 612, 62, 62, 62, 62, 62, 62, 62, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 62, 62, 52, 56, 52, 56, 52, 56, 56, 56, 52, 56, 52, 56, 52, 56, - 59, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56, 52, 56, 52, 52, 56, 60, 613, - 613, 52, 56, 52, 56, 57, 52, 56, 52, 56, 56, 56, 52, 56, 52, 56, 52, 52, - 52, 52, 52, 56, 52, 52, 52, 52, 52, 56, 52, 56, 52, 56, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 57, 59, 59, 56, 57, 57, 57, 57, 57, - 614, 614, 615, 614, 614, 614, 616, 614, 614, 614, 614, 615, 614, 614, - 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 614, 617, - 617, 615, 615, 617, 618, 618, 618, 618, 81, 81, 81, 81, 619, 619, 619, - 619, 619, 619, 317, 317, 507, 516, 81, 81, 81, 81, 81, 81, 620, 620, 620, - 620, 620, 620, 620, 620, 620, 620, 620, 620, 621, 621, 622, 622, 623, - 623, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, - 624, 624, 624, 624, 624, 623, 623, 623, 623, 623, 623, 623, 623, 623, - 623, 623, 623, 623, 623, 623, 623, 625, 626, 81, 81, 81, 81, 81, 81, 81, - 81, 627, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 81, 81, - 81, 81, 81, 81, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 195, - 195, 195, 195, 195, 195, 201, 201, 201, 195, 629, 195, 195, 193, 630, - 630, 630, 630, 630, 630, 630, 630, 630, 630, 631, 631, 631, 631, 631, - 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, - 631, 632, 632, 632, 632, 632, 633, 633, 633, 199, 634, 635, 635, 635, - 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 635, 636, 636, - 636, 636, 636, 636, 636, 636, 636, 636, 636, 637, 638, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 639, 332, 332, 332, 332, 332, 81, 81, 81, - 640, 640, 640, 641, 642, 642, 642, 642, 642, 642, 642, 642, 642, 642, - 642, 642, 642, 642, 642, 643, 641, 641, 640, 640, 640, 640, 641, 641, - 640, 641, 641, 641, 644, 645, 645, 645, 645, 645, 645, 646, 646, 646, - 645, 645, 645, 645, 81, 61, 647, 647, 647, 647, 647, 647, 647, 647, 647, - 647, 81, 81, 81, 81, 645, 645, 318, 318, 318, 318, 318, 320, 648, 318, - 323, 323, 318, 318, 318, 318, 318, 81, 649, 649, 649, 649, 649, 649, 649, - 649, 649, 650, 650, 650, 650, 650, 650, 651, 651, 650, 650, 651, 651, - 650, 650, 81, 649, 649, 649, 650, 649, 649, 649, 649, 649, 649, 649, 649, - 650, 651, 81, 81, 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, 81, - 81, 653, 654, 654, 654, 648, 318, 318, 318, 318, 318, 318, 327, 327, 327, - 318, 319, 320, 319, 318, 318, 655, 655, 655, 655, 655, 655, 655, 655, - 656, 655, 656, 656, 657, 655, 655, 656, 656, 655, 655, 655, 655, 655, - 656, 656, 655, 656, 655, 81, 81, 81, 81, 81, 81, 81, 81, 655, 655, 658, - 659, 659, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, 661, - 662, 662, 661, 661, 663, 663, 660, 664, 664, 661, 665, 81, 81, 335, 335, - 335, 335, 335, 335, 81, 56, 56, 56, 613, 59, 59, 59, 59, 56, 56, 56, 56, - 56, 79, 81, 81, 342, 342, 342, 342, 342, 342, 342, 342, 660, 660, 660, - 661, 661, 662, 661, 661, 662, 661, 661, 663, 661, 665, 81, 81, 666, 666, - 666, 666, 666, 666, 666, 666, 666, 666, 81, 81, 81, 81, 81, 81, 667, 668, - 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, - 668, 668, 668, 668, 667, 668, 668, 668, 668, 668, 668, 668, 81, 81, 81, - 81, 333, 333, 333, 333, 333, 333, 333, 81, 81, 81, 81, 334, 334, 334, - 334, 334, 334, 334, 334, 334, 81, 81, 81, 81, 669, 669, 669, 669, 669, - 669, 669, 669, 670, 670, 670, 670, 670, 670, 670, 670, 592, 592, 593, - 593, 593, 593, 593, 593, 56, 56, 56, 56, 56, 56, 56, 81, 81, 81, 81, 101, - 101, 101, 101, 101, 81, 81, 81, 81, 81, 129, 671, 129, 129, 672, 129, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 521, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 520, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 40, 40, 40, 40, 514, 514, + 514, 514, 533, 40, 40, 40, 40, 40, 514, 514, 514, 514, 40, 40, 514, 514, + 40, 514, 514, 514, 514, 514, 514, 514, 40, 40, 40, 40, 40, 40, 40, 40, + 514, 514, 40, 40, 514, 54, 40, 40, 40, 40, 514, 514, 40, 40, 514, 54, 40, + 40, 40, 40, 514, 514, 514, 40, 40, 514, 40, 40, 514, 514, 40, 40, 40, 40, + 40, 40, 40, 514, 498, 498, 498, 498, 498, 534, 534, 498, 531, 531, 531, + 531, 40, 514, 514, 40, 40, 514, 40, 40, 40, 40, 514, 514, 40, 40, 40, 40, + 527, 527, 533, 533, 531, 40, 531, 531, 535, 536, 535, 531, 40, 531, 531, + 531, 40, 40, 40, 40, 514, 40, 514, 40, 40, 40, 40, 40, 530, 530, 530, + 530, 530, 530, 530, 530, 530, 530, 530, 530, 40, 40, 40, 40, 514, 514, + 40, 514, 514, 514, 40, 514, 535, 514, 514, 40, 514, 514, 40, 54, 40, 40, + 40, 40, 40, 40, 40, 527, 40, 40, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 514, 514, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40, 530, 530, 318, + 40, 40, 40, 40, 40, 40, 40, 40, 527, 527, 535, 531, 531, 531, 531, 527, + 527, 535, 535, 535, 514, 514, 514, 514, 535, 530, 535, 535, 535, 514, + 535, 527, 514, 514, 514, 535, 535, 514, 514, 535, 514, 514, 535, 535, + 535, 40, 514, 40, 40, 40, 40, 514, 514, 527, 514, 514, 514, 514, 514, + 514, 535, 527, 527, 535, 527, 514, 535, 535, 537, 527, 514, 514, 527, + 535, 535, 531, 531, 531, 531, 531, 530, 40, 40, 531, 531, 538, 538, 536, + 536, 40, 40, 530, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 44, 40, + 40, 40, 40, 40, 40, 530, 40, 530, 40, 40, 40, 40, 530, 530, 530, 40, 539, + 40, 40, 40, 540, 540, 540, 540, 540, 540, 40, 541, 541, 531, 40, 40, 40, + 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 51, + 51, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 40, 530, + 530, 530, 40, 40, 40, 40, 40, 40, 40, 530, 498, 498, 498, 498, 498, 479, + 497, 498, 498, 498, 498, 498, 498, 498, 16, 31, 16, 31, 16, 31, 16, 31, + 479, 497, 542, 542, 542, 542, 542, 542, 542, 542, 498, 498, 498, 479, + 497, 16, 31, 479, 497, 479, 497, 479, 497, 479, 497, 479, 497, 498, 498, + 498, 498, 498, 498, 498, 479, 497, 479, 497, 498, 498, 498, 498, 498, + 498, 498, 498, 479, 497, 498, 498, 40, 40, 40, 530, 530, 40, 40, 40, 498, + 498, 498, 498, 498, 40, 40, 498, 498, 498, 498, 498, 498, 40, 40, 40, + 530, 40, 40, 40, 40, 539, 514, 514, 40, 40, 40, 40, 81, 81, 40, 40, 40, + 40, 40, 40, 40, 40, 81, 81, 543, 543, 543, 543, 543, 543, 543, 543, 543, + 543, 543, 543, 543, 543, 543, 81, 544, 544, 544, 544, 544, 544, 544, 544, + 544, 544, 544, 544, 544, 544, 544, 81, 52, 56, 52, 52, 52, 56, 56, 52, + 56, 52, 56, 52, 56, 52, 52, 52, 52, 56, 52, 56, 56, 52, 56, 56, 56, 56, + 56, 56, 59, 59, 52, 52, 87, 88, 87, 88, 88, 545, 545, 545, 545, 545, 545, + 87, 88, 87, 88, 546, 546, 546, 87, 88, 81, 81, 81, 81, 81, 547, 548, 548, + 548, 549, 547, 548, 330, 330, 330, 330, 330, 330, 81, 330, 81, 81, 81, + 81, 81, 330, 81, 81, 550, 550, 550, 550, 550, 550, 550, 550, 81, 81, 81, + 81, 81, 81, 81, 551, 552, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 553, 95, 95, 95, 95, 95, 95, 95, 95, 554, 554, 42, 50, 42, 50, + 554, 554, 554, 42, 50, 554, 42, 50, 379, 379, 379, 379, 379, 379, 379, + 379, 84, 474, 555, 379, 556, 84, 42, 50, 84, 84, 42, 50, 479, 497, 479, + 497, 479, 497, 479, 497, 379, 379, 379, 379, 377, 60, 379, 379, 84, 379, + 379, 84, 84, 84, 84, 84, 557, 557, 379, 379, 379, 84, 474, 379, 479, 379, + 379, 379, 379, 379, 379, 379, 379, 84, 379, 84, 379, 379, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 81, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 81, 81, 81, 81, 558, 558, 558, 558, 558, 558, 81, 81, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 81, 81, 81, 81, 559, + 560, 560, 561, 527, 562, 563, 564, 528, 529, 528, 529, 528, 529, 528, + 529, 528, 529, 527, 527, 528, 529, 528, 529, 528, 529, 528, 529, 565, + 528, 529, 529, 527, 564, 564, 564, 564, 564, 564, 564, 564, 564, 566, + 567, 568, 569, 570, 570, 571, 572, 572, 572, 572, 573, 527, 527, 564, + 564, 564, 562, 574, 561, 527, 531, 81, 575, 576, 575, 576, 575, 576, 575, + 576, 575, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 576, 576, 576, 576, 576, 575, 576, 576, 576, 576, 576, 576, 576, 575, + 576, 575, 576, 575, 576, 576, 576, 576, 576, 576, 575, 576, 576, 576, + 576, 576, 576, 575, 575, 81, 81, 577, 577, 578, 578, 579, 579, 576, 565, + 580, 581, 580, 581, 580, 581, 580, 581, 580, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 581, + 581, 581, 581, 581, 581, 581, 580, 581, 580, 581, 580, 581, 581, 581, + 581, 581, 581, 580, 581, 581, 581, 581, 581, 581, 580, 580, 581, 581, + 581, 581, 582, 583, 584, 584, 581, 81, 81, 81, 81, 81, 585, 585, 585, + 585, 585, 585, 585, 585, 585, 585, 585, 81, 586, 586, 586, 586, 586, 586, + 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, + 586, 586, 81, 587, 587, 588, 588, 588, 588, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 585, 585, 585, 81, 81, 81, 81, 81, 580, 580, 580, + 580, 580, 580, 580, 580, 589, 589, 589, 589, 589, 589, 589, 589, 589, + 589, 589, 589, 589, 590, 590, 81, 588, 588, 588, 588, 588, 588, 588, 588, + 588, 588, 587, 587, 587, 587, 587, 587, 591, 591, 591, 591, 591, 591, + 591, 591, 527, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, + 592, 592, 592, 592, 589, 589, 589, 589, 590, 590, 590, 587, 587, 592, + 592, 592, 592, 592, 592, 592, 587, 587, 587, 587, 527, 527, 527, 527, + 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, + 593, 81, 587, 587, 587, 587, 587, 587, 587, 527, 527, 527, 527, 587, 587, + 587, 587, 587, 587, 587, 587, 587, 587, 587, 527, 527, 594, 594, 594, + 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 595, 595, + 595, 595, 595, 595, 595, 595, 595, 596, 596, 596, 596, 596, 596, 596, + 596, 596, 596, 596, 596, 596, 597, 596, 596, 596, 596, 596, 596, 596, 81, + 81, 81, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, + 598, 598, 81, 599, 599, 599, 599, 599, 599, 599, 599, 600, 600, 600, 600, + 600, 600, 601, 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 603, 604, 605, 604, 606, 606, 606, 606, 606, 606, 606, 606, + 606, 606, 602, 602, 81, 81, 81, 81, 90, 93, 90, 93, 90, 93, 607, 95, 97, + 97, 97, 608, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 608, 609, 90, 93, + 90, 93, 456, 456, 95, 95, 610, 610, 610, 610, 610, 610, 610, 610, 610, + 610, 610, 610, 610, 610, 611, 611, 611, 611, 611, 611, 611, 611, 611, + 611, 612, 612, 613, 614, 614, 614, 614, 614, 62, 62, 62, 62, 62, 62, 62, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 62, 62, 52, 56, 52, 56, 52, 56, 56, + 56, 52, 56, 52, 56, 52, 56, 59, 56, 56, 56, 56, 56, 56, 56, 56, 52, 56, + 52, 56, 52, 52, 56, 60, 615, 615, 52, 56, 52, 56, 57, 52, 56, 52, 56, 56, + 56, 52, 56, 52, 56, 52, 52, 52, 52, 52, 56, 52, 52, 52, 52, 52, 56, 52, + 56, 81, 81, 52, 56, 52, 52, 52, 81, 81, 81, 81, 81, 81, 81, 81, 57, 59, + 59, 56, 57, 57, 57, 57, 57, 616, 616, 617, 616, 616, 616, 618, 616, 616, + 616, 616, 617, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, 616, + 616, 616, 616, 616, 619, 619, 617, 617, 619, 620, 620, 620, 620, 81, 81, + 81, 81, 621, 621, 621, 621, 621, 621, 318, 318, 509, 518, 81, 81, 81, 81, + 81, 81, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, 623, + 623, 624, 624, 625, 625, 626, 626, 626, 626, 626, 626, 626, 626, 626, + 626, 626, 626, 626, 626, 626, 626, 626, 626, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 627, 628, 81, 81, + 81, 81, 81, 81, 81, 81, 629, 629, 630, 630, 630, 630, 630, 630, 630, 630, + 630, 630, 81, 81, 81, 81, 81, 81, 631, 631, 631, 631, 631, 631, 631, 631, + 631, 631, 195, 195, 195, 195, 195, 195, 200, 200, 200, 195, 632, 195, + 195, 193, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, + 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 635, 635, 635, 635, 635, 636, 636, 636, 198, 637, + 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, + 638, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, 640, 641, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 642, 333, 333, 333, 333, 333, 81, + 81, 81, 643, 643, 643, 644, 645, 645, 645, 645, 645, 645, 645, 645, 645, + 645, 645, 645, 645, 645, 645, 646, 644, 644, 643, 643, 643, 643, 644, + 644, 643, 643, 644, 644, 647, 648, 648, 648, 648, 648, 648, 649, 649, + 649, 648, 648, 648, 648, 81, 61, 650, 650, 650, 650, 650, 650, 650, 650, + 650, 650, 81, 81, 81, 81, 648, 648, 319, 319, 319, 319, 319, 321, 651, + 319, 324, 324, 319, 319, 319, 319, 319, 81, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 653, 653, 653, 653, 653, 653, 654, 654, 653, 653, 654, + 654, 653, 653, 81, 652, 652, 652, 653, 652, 652, 652, 652, 652, 652, 652, + 652, 653, 654, 81, 81, 655, 655, 655, 655, 655, 655, 655, 655, 655, 655, + 81, 81, 656, 657, 657, 657, 651, 319, 319, 319, 319, 319, 319, 328, 328, + 328, 319, 320, 321, 320, 319, 319, 658, 658, 658, 658, 658, 658, 658, + 658, 659, 658, 659, 659, 660, 658, 658, 659, 659, 658, 658, 658, 658, + 658, 659, 659, 658, 659, 658, 81, 81, 81, 81, 81, 81, 81, 81, 658, 658, + 661, 662, 662, 663, 663, 663, 663, 663, 663, 663, 663, 663, 663, 663, + 664, 665, 665, 664, 664, 666, 666, 663, 667, 667, 664, 668, 81, 81, 336, + 336, 336, 336, 336, 336, 81, 56, 56, 56, 615, 59, 59, 59, 59, 56, 56, 56, + 56, 56, 79, 56, 56, 343, 343, 343, 343, 343, 343, 343, 343, 663, 663, + 663, 664, 664, 665, 664, 664, 665, 664, 664, 666, 664, 668, 81, 81, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 81, 81, 81, 81, 81, 81, 670, + 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 671, + 671, 671, 671, 671, 671, 670, 671, 671, 671, 671, 671, 671, 671, 81, 81, + 81, 81, 334, 334, 334, 334, 334, 334, 334, 81, 81, 81, 81, 335, 335, 335, + 335, 335, 335, 335, 335, 335, 81, 81, 81, 81, 672, 672, 672, 672, 672, + 672, 672, 672, 673, 673, 673, 673, 673, 673, 673, 673, 594, 594, 595, + 595, 595, 595, 595, 595, 56, 56, 56, 56, 56, 56, 56, 81, 81, 81, 81, 101, + 101, 101, 101, 101, 81, 81, 81, 81, 81, 129, 674, 129, 129, 675, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 81, 129, 129, 129, 129, 129, 81, 129, 81, 129, 129, 81, 129, 129, 81, 129, 129, 146, - 146, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, - 673, 673, 673, 81, 81, 81, 81, 81, 81, 81, 81, 81, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 495, 477, 81, 81, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 135, 138, 81, 81, 674, 674, 674, 674, 674, - 674, 674, 674, 675, 558, 558, 675, 675, 676, 676, 526, 527, 677, 81, 81, + 146, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, 676, + 676, 676, 676, 81, 81, 81, 81, 81, 81, 81, 81, 81, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 497, 479, 81, 81, 146, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 135, 138, 81, 81, 677, 677, 677, 677, 677, + 677, 677, 677, 678, 560, 560, 678, 678, 679, 679, 528, 529, 680, 81, 81, 81, 81, 81, 81, 96, 96, 96, 96, 96, 96, 96, 156, 156, 156, 156, 156, 156, - 156, 95, 95, 559, 569, 569, 678, 678, 526, 527, 526, 527, 526, 527, 526, - 527, 526, 527, 526, 527, 526, 527, 526, 527, 559, 559, 526, 527, 559, - 559, 559, 559, 678, 678, 678, 679, 559, 679, 81, 580, 680, 676, 676, 569, - 526, 527, 526, 527, 526, 527, 681, 559, 559, 682, 683, 684, 684, 684, 81, - 559, 685, 686, 559, 81, 81, 81, 81, 146, 146, 146, 146, 146, 81, 81, 497, - 81, 687, 688, 689, 690, 691, 688, 688, 692, 693, 688, 694, 695, 696, 695, - 697, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 699, 700, 701, - 701, 701, 687, 688, 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, - 702, 702, 702, 702, 702, 702, 702, 702, 692, 688, 693, 703, 704, 703, - 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, - 705, 705, 705, 705, 692, 701, 693, 701, 692, 693, 706, 707, 708, 706, - 709, 710, 711, 711, 711, 711, 711, 711, 711, 711, 711, 712, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 713, 713, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 714, 714, 714, 714, 81, 81, 81, 714, 714, 714, 714, - 714, 714, 81, 81, 714, 714, 714, 81, 81, 81, 715, 690, 701, 703, 716, - 690, 690, 81, 717, 718, 718, 718, 718, 717, 717, 81, 81, 719, 719, 719, - 720, 512, 81, 81, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, - 721, 81, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 81, 721, 721, - 721, 81, 721, 721, 81, 721, 721, 721, 721, 721, 721, 721, 81, 81, 721, - 721, 721, 81, 81, 81, 81, 81, 199, 377, 199, 81, 81, 81, 81, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 81, 81, 81, 317, - 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 722, 723, - 723, 723, 723, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, - 724, 724, 724, 724, 724, 724, 723, 723, 724, 725, 725, 81, 40, 40, 40, - 40, 81, 81, 81, 81, 724, 81, 81, 81, 81, 81, 81, 81, 317, 317, 317, 317, - 317, 156, 81, 81, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, - 726, 726, 81, 81, 81, 727, 727, 727, 727, 727, 727, 727, 727, 727, 81, - 81, 81, 81, 81, 81, 81, 156, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 81, 81, 81, 81, 728, - 728, 728, 728, 728, 728, 728, 728, 729, 729, 729, 729, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 728, 728, 728, 730, 730, 730, 730, 730, 730, 730, - 730, 730, 731, 730, 730, 730, 730, 730, 730, 730, 730, 731, 81, 81, 81, - 81, 81, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, - 732, 733, 733, 733, 733, 733, 81, 81, 81, 81, 81, 734, 734, 734, 734, - 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 81, 735, 736, 736, 736, - 736, 736, 736, 736, 736, 736, 736, 736, 736, 81, 81, 81, 81, 737, 738, - 738, 738, 738, 738, 81, 81, 739, 739, 739, 739, 739, 739, 739, 739, 740, - 740, 740, 740, 740, 740, 740, 740, 741, 741, 741, 741, 741, 741, 741, - 741, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 81, 81, 743, 743, 743, 743, 743, 743, 743, 743, 743, 743, 81, 81, - 81, 81, 81, 81, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 81, 81, 81, 81, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 81, 81, 81, 81, 746, 746, 746, 746, 746, 746, 746, 746, 747, - 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 748, 749, 749, 749, 749, 749, 749, 749, 749, - 749, 749, 749, 749, 749, 749, 749, 81, 749, 749, 749, 749, 749, 749, 81, - 81, 750, 750, 750, 750, 750, 750, 81, 81, 750, 81, 750, 750, 750, 750, - 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, - 750, 750, 81, 750, 750, 81, 81, 81, 750, 81, 81, 750, 751, 751, 751, 751, - 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 81, 752, 753, 753, 753, - 753, 753, 753, 753, 753, 754, 754, 754, 754, 754, 754, 754, 754, 754, - 754, 754, 754, 754, 754, 754, 755, 755, 756, 756, 756, 756, 756, 756, - 756, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, - 757, 757, 81, 81, 81, 81, 81, 81, 81, 81, 758, 758, 758, 758, 758, 758, - 758, 758, 758, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 81, - 759, 759, 81, 81, 81, 81, 81, 760, 760, 760, 760, 760, 761, 761, 761, - 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 762, 762, 762, - 762, 762, 762, 81, 81, 81, 763, 764, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 81, 81, 81, 81, 81, 765, 766, 766, 766, 766, 766, 766, 766, - 766, 767, 767, 767, 767, 767, 767, 767, 767, 81, 81, 81, 81, 768, 768, - 767, 767, 768, 768, 768, 768, 768, 768, 768, 768, 81, 81, 768, 768, 768, - 768, 768, 768, 769, 770, 770, 770, 81, 770, 770, 81, 81, 81, 81, 81, 770, - 771, 770, 772, 769, 769, 769, 769, 81, 769, 769, 769, 81, 769, 769, 769, - 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, 769, - 769, 769, 769, 769, 81, 81, 772, 773, 771, 81, 81, 81, 81, 774, 775, 775, - 775, 775, 775, 775, 775, 775, 775, 81, 81, 81, 81, 81, 81, 81, 776, 776, - 776, 776, 776, 776, 776, 776, 777, 81, 81, 81, 81, 81, 81, 81, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, 779, 779, 780, - 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 782, - 782, 782, 783, 783, 783, 783, 783, 783, 783, 783, 784, 783, 783, 783, - 783, 783, 783, 783, 783, 783, 783, 783, 783, 785, 786, 81, 81, 81, 81, - 787, 787, 787, 787, 787, 788, 788, 788, 788, 788, 788, 789, 81, 790, 790, - 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 81, 81, 81, - 791, 791, 791, 791, 791, 791, 791, 792, 792, 792, 792, 792, 792, 792, - 792, 792, 792, 792, 792, 792, 792, 81, 81, 793, 793, 793, 793, 793, 793, - 793, 793, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 81, 81, - 81, 81, 81, 795, 795, 795, 795, 795, 795, 795, 795, 796, 796, 796, 796, - 796, 796, 796, 796, 796, 796, 81, 81, 81, 81, 81, 81, 81, 797, 797, 797, - 797, 81, 81, 81, 81, 798, 798, 798, 798, 798, 798, 798, 799, 799, 799, + 156, 95, 95, 561, 571, 571, 681, 681, 528, 529, 528, 529, 528, 529, 528, + 529, 528, 529, 528, 529, 528, 529, 528, 529, 561, 561, 528, 529, 561, + 561, 561, 561, 681, 681, 681, 682, 561, 682, 81, 582, 683, 679, 679, 571, + 528, 529, 528, 529, 528, 529, 684, 561, 561, 685, 686, 687, 687, 687, 81, + 561, 688, 689, 561, 81, 81, 81, 81, 146, 146, 146, 146, 146, 81, 81, 499, + 81, 690, 691, 692, 693, 694, 691, 691, 695, 696, 691, 697, 698, 699, 698, + 700, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 702, 703, 704, + 704, 704, 690, 691, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, + 705, 705, 705, 705, 705, 705, 705, 705, 695, 691, 696, 706, 707, 706, + 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, + 708, 708, 708, 708, 695, 704, 696, 704, 695, 696, 709, 710, 711, 709, + 712, 713, 714, 714, 714, 714, 714, 714, 714, 714, 714, 715, 713, 713, + 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 713, 713, 713, 713, 713, 716, 716, 717, 717, 717, 717, 717, 717, 717, + 717, 717, 717, 717, 717, 717, 717, 717, 81, 81, 81, 717, 717, 717, 717, + 717, 717, 81, 81, 717, 717, 717, 81, 81, 81, 718, 693, 704, 706, 719, + 693, 693, 81, 720, 721, 721, 721, 721, 720, 720, 81, 81, 722, 722, 722, + 723, 514, 81, 81, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, + 724, 81, 724, 724, 724, 724, 724, 724, 724, 724, 724, 724, 81, 724, 724, + 724, 81, 724, 724, 81, 724, 724, 724, 724, 724, 724, 724, 81, 81, 724, + 724, 724, 81, 81, 81, 81, 81, 198, 379, 198, 81, 81, 81, 81, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 81, 81, 81, 318, + 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 726, + 726, 726, 726, 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, 727, + 727, 727, 727, 727, 727, 727, 726, 726, 727, 728, 728, 81, 40, 40, 40, + 40, 81, 81, 81, 81, 727, 81, 81, 81, 81, 81, 81, 81, 318, 318, 318, 318, + 318, 156, 81, 81, 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, 729, + 729, 729, 81, 81, 81, 730, 730, 730, 730, 730, 730, 730, 730, 730, 81, + 81, 81, 81, 81, 81, 81, 156, 506, 506, 506, 506, 506, 506, 506, 506, 506, + 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 81, 81, 81, 81, 731, + 731, 731, 731, 731, 731, 731, 731, 732, 732, 732, 732, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 731, 731, 731, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 734, 733, 733, 733, 733, 733, 733, 733, 733, 734, 81, 81, 81, + 81, 81, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 736, 736, 736, 736, 736, 81, 81, 81, 81, 81, 737, 737, 737, 737, + 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 81, 738, 739, 739, 739, + 739, 739, 739, 739, 739, 739, 739, 739, 739, 81, 81, 81, 81, 740, 741, + 741, 741, 741, 741, 81, 81, 742, 742, 742, 742, 742, 742, 742, 742, 743, + 743, 743, 743, 743, 743, 743, 743, 744, 744, 744, 744, 744, 744, 744, + 744, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 81, 81, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 81, 81, + 81, 81, 81, 81, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, 747, + 747, 81, 81, 81, 81, 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, + 748, 748, 81, 81, 81, 81, 749, 749, 749, 749, 749, 749, 749, 749, 750, + 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 750, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 751, 752, 752, 752, 752, 752, 752, 752, 752, + 752, 752, 752, 752, 752, 752, 752, 81, 752, 752, 752, 752, 752, 752, 81, + 81, 753, 753, 753, 753, 753, 753, 81, 81, 753, 81, 753, 753, 753, 753, + 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, + 753, 753, 81, 753, 753, 81, 81, 81, 753, 81, 81, 753, 754, 754, 754, 754, + 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 81, 755, 756, 756, 756, + 756, 756, 756, 756, 756, 757, 757, 757, 757, 757, 757, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 758, 758, 759, 759, 759, 759, 759, 759, + 759, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, + 760, 760, 81, 81, 81, 81, 81, 81, 81, 81, 761, 761, 761, 761, 761, 761, + 761, 761, 761, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 81, + 762, 762, 81, 81, 81, 81, 81, 763, 763, 763, 763, 763, 764, 764, 764, + 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, 765, 765, 765, + 765, 765, 765, 81, 81, 81, 766, 767, 767, 767, 767, 767, 767, 767, 767, + 767, 767, 81, 81, 81, 81, 81, 768, 769, 769, 769, 769, 769, 769, 769, + 769, 770, 770, 770, 770, 770, 770, 770, 770, 81, 81, 81, 81, 771, 771, + 770, 770, 771, 771, 771, 771, 771, 771, 771, 771, 81, 81, 771, 771, 771, + 771, 771, 771, 772, 773, 773, 773, 81, 773, 773, 81, 81, 81, 81, 81, 773, + 774, 773, 775, 772, 772, 772, 772, 81, 772, 772, 772, 81, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 772, 81, 81, 775, 776, 774, 81, 81, 81, 81, 777, 778, 778, + 778, 778, 778, 778, 778, 778, 778, 81, 81, 81, 81, 81, 81, 81, 779, 779, + 779, 779, 779, 779, 779, 779, 780, 81, 81, 81, 81, 81, 81, 81, 781, 781, + 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 782, 782, 783, + 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 785, + 785, 785, 786, 786, 786, 786, 786, 786, 786, 786, 787, 786, 786, 786, + 786, 786, 786, 786, 786, 786, 786, 786, 786, 788, 789, 81, 81, 81, 81, + 790, 790, 790, 790, 790, 791, 791, 791, 791, 791, 791, 792, 81, 793, 793, + 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 81, 81, 81, + 794, 794, 794, 794, 794, 794, 794, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 81, 81, 796, 796, 796, 796, 796, 796, + 796, 796, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 81, 81, + 81, 81, 81, 798, 798, 798, 798, 798, 798, 798, 798, 799, 799, 799, 799, 799, 799, 799, 799, 799, 799, 81, 81, 81, 81, 81, 81, 81, 800, 800, 800, - 800, 800, 800, 800, 800, 800, 800, 800, 81, 81, 81, 81, 81, 801, 801, - 801, 801, 801, 801, 801, 801, 801, 801, 801, 81, 81, 81, 81, 81, 81, 81, - 802, 802, 802, 802, 802, 802, 803, 803, 803, 803, 803, 803, 803, 803, - 803, 803, 803, 803, 804, 804, 804, 804, 805, 805, 805, 805, 805, 805, - 805, 805, 805, 805, 81, 81, 81, 81, 81, 81, 806, 806, 806, 806, 806, 806, - 806, 806, 806, 806, 806, 806, 806, 806, 806, 81, 807, 807, 807, 807, 807, - 807, 807, 807, 807, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, - 808, 808, 808, 808, 807, 809, 809, 809, 809, 809, 809, 809, 809, 809, - 809, 809, 809, 809, 809, 810, 810, 811, 811, 811, 810, 811, 810, 810, - 810, 810, 812, 812, 812, 812, 813, 813, 813, 813, 813, 81, 81, 81, 81, - 81, 81, 814, 815, 814, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, - 816, 816, 816, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, 815, - 815, 815, 815, 817, 818, 818, 819, 819, 819, 819, 819, 81, 81, 81, 81, - 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, - 820, 820, 820, 820, 820, 820, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 81, 81, 81, 81, 81, 81, 81, 817, 822, 822, 823, 824, 824, 824, - 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 823, 823, 823, 822, - 822, 822, 822, 823, 823, 825, 826, 827, 827, 828, 829, 829, 829, 829, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 828, 81, 81, 830, 830, 830, 830, - 830, 830, 830, 830, 830, 81, 81, 81, 81, 81, 81, 81, 831, 831, 831, 831, - 831, 831, 831, 831, 831, 831, 81, 81, 81, 81, 81, 81, 832, 832, 832, 833, - 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, - 833, 833, 833, 833, 833, 834, 834, 834, 834, 834, 835, 834, 834, 834, - 834, 834, 834, 836, 836, 81, 837, 837, 837, 837, 837, 837, 837, 837, 837, - 837, 838, 838, 838, 838, 833, 835, 835, 81, 839, 839, 839, 839, 839, 839, - 839, 839, 839, 839, 839, 840, 841, 842, 839, 81, 843, 843, 844, 845, 845, - 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, - 844, 844, 844, 843, 843, 843, 843, 843, 843, 843, 843, 843, 844, 846, - 845, 845, 845, 845, 847, 847, 848, 847, 843, 849, 843, 843, 848, 81, 81, - 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 845, 851, 845, 847, - 847, 847, 81, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, 852, - 852, 852, 852, 852, 852, 852, 852, 852, 81, 81, 81, 853, 853, 853, 853, - 853, 853, 853, 853, 853, 853, 81, 853, 853, 853, 853, 853, 853, 853, 853, - 853, 854, 854, 854, 855, 855, 855, 854, 854, 855, 856, 857, 855, 858, - 858, 859, 858, 858, 859, 855, 81, 860, 860, 860, 860, 860, 860, 860, 81, - 860, 81, 860, 860, 860, 860, 81, 860, 860, 860, 860, 860, 860, 860, 860, - 860, 860, 860, 860, 860, 860, 860, 81, 860, 860, 861, 81, 81, 81, 81, 81, - 81, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, - 862, 863, 864, 864, 864, 863, 863, 863, 863, 863, 863, 865, 866, 81, 81, - 81, 81, 81, 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, 81, 81, 81, - 81, 81, 81, 868, 868, 869, 869, 81, 870, 870, 870, 870, 870, 870, 870, - 870, 81, 81, 870, 870, 81, 81, 870, 870, 870, 870, 870, 870, 870, 870, - 870, 870, 870, 870, 870, 870, 81, 870, 870, 870, 870, 870, 870, 870, 81, - 870, 870, 81, 870, 870, 870, 870, 870, 81, 871, 872, 870, 869, 869, 868, - 869, 869, 869, 869, 81, 81, 869, 869, 81, 81, 869, 869, 873, 81, 81, 870, - 81, 81, 81, 81, 81, 81, 869, 81, 81, 81, 81, 81, 870, 870, 870, 870, 870, - 869, 869, 81, 81, 874, 874, 874, 874, 874, 874, 874, 81, 81, 81, 875, - 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 875, 876, 876, - 876, 877, 877, 877, 877, 877, 877, 877, 877, 876, 876, 878, 877, 877, - 876, 879, 875, 875, 875, 875, 880, 880, 880, 880, 881, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 81, 880, 81, 881, 883, 81, 884, 884, - 884, 884, 884, 884, 884, 884, 885, 885, 885, 886, 886, 886, 886, 886, - 886, 885, 886, 885, 885, 885, 885, 886, 886, 885, 887, 888, 884, 884, - 889, 884, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 81, 81, 81, - 81, 81, 81, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, 891, - 891, 891, 891, 892, 892, 892, 893, 893, 893, 893, 81, 81, 892, 892, 892, - 892, 893, 893, 892, 894, 895, 896, 897, 897, 898, 898, 899, 899, 899, - 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, - 897, 891, 891, 891, 891, 893, 893, 81, 81, 900, 900, 900, 900, 900, 900, - 900, 900, 901, 901, 901, 902, 902, 902, 902, 902, 902, 902, 902, 901, - 901, 902, 901, 903, 902, 904, 904, 905, 900, 81, 81, 81, 906, 906, 906, - 906, 906, 906, 906, 906, 906, 906, 81, 81, 81, 81, 81, 81, 907, 907, 907, - 907, 907, 907, 907, 907, 907, 907, 907, 907, 907, 81, 81, 81, 908, 908, - 908, 908, 908, 908, 908, 908, 908, 908, 908, 909, 910, 909, 910, 910, - 909, 909, 909, 909, 909, 909, 911, 912, 913, 913, 913, 913, 913, 913, - 913, 913, 913, 913, 81, 81, 81, 81, 81, 81, 914, 914, 914, 914, 914, 914, - 914, 914, 914, 914, 914, 81, 81, 915, 915, 915, 916, 916, 915, 915, 915, - 915, 916, 915, 915, 915, 915, 917, 81, 81, 81, 81, 918, 918, 918, 918, - 918, 918, 918, 918, 918, 918, 919, 919, 920, 920, 920, 921, 922, 922, - 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 923, 923, 923, 924, - 924, 924, 924, 924, 924, 924, 924, 924, 923, 925, 926, 927, 81, 81, 81, - 81, 928, 928, 928, 928, 928, 928, 928, 928, 929, 929, 929, 929, 929, 929, - 929, 929, 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 931, 931, - 931, 931, 931, 931, 931, 931, 931, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 932, 933, 934, 934, 934, 934, 934, 934, 935, 935, 934, 934, - 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, - 933, 933, 934, 936, 934, 934, 934, 934, 937, 933, 934, 934, 934, 934, - 938, 939, 940, 940, 940, 940, 938, 939, 936, 941, 942, 942, 942, 942, - 942, 942, 943, 943, 942, 942, 942, 941, 941, 941, 941, 941, 941, 941, - 941, 941, 941, 941, 941, 941, 941, 941, 941, 81, 81, 941, 941, 941, 941, - 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 943, - 942, 944, 945, 945, 945, 941, 946, 946, 946, 945, 945, 81, 81, 81, 81, - 81, 947, 947, 947, 947, 947, 947, 947, 947, 947, 81, 81, 81, 81, 81, 81, - 81, 948, 948, 948, 948, 948, 948, 948, 948, 948, 81, 948, 948, 948, 948, - 948, 948, 948, 948, 948, 948, 948, 948, 948, 949, 950, 950, 950, 950, - 950, 950, 950, 81, 950, 950, 950, 950, 950, 950, 949, 951, 948, 952, 952, - 952, 952, 952, 81, 81, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, - 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, - 954, 954, 954, 954, 954, 81, 81, 81, 955, 956, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 957, 957, 957, 957, 957, 81, 81, 958, 958, 958, 958, - 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 81, 959, 958, 958, 958, - 958, 958, 958, 958, 959, 958, 958, 959, 958, 958, 81, 960, 960, 960, 960, - 960, 960, 960, 81, 960, 960, 81, 960, 960, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 960, 960, 961, 961, 961, 961, 961, 961, 81, 81, 81, - 961, 81, 961, 961, 81, 961, 961, 961, 962, 961, 963, 963, 960, 961, 964, - 964, 964, 964, 964, 964, 964, 964, 964, 964, 81, 81, 81, 81, 81, 81, 965, - 965, 965, 965, 965, 965, 81, 965, 965, 81, 965, 965, 965, 965, 965, 965, - 965, 965, 965, 965, 965, 965, 965, 965, 965, 965, 966, 966, 966, 966, - 966, 81, 967, 967, 81, 966, 966, 967, 966, 968, 965, 81, 81, 81, 81, 81, - 81, 81, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 81, 81, 81, 81, - 81, 81, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 971, 971, - 972, 972, 973, 973, 81, 81, 81, 81, 81, 81, 81, 974, 974, 974, 974, 974, - 974, 974, 974, 974, 974, 81, 81, 81, 81, 81, 81, 975, 975, 975, 975, 975, - 975, 975, 975, 975, 975, 975, 975, 975, 975, 975, 81, 976, 976, 976, 976, - 976, 81, 81, 81, 974, 974, 974, 974, 81, 81, 81, 81, 977, 977, 977, 977, - 977, 977, 977, 977, 978, 978, 978, 979, 979, 979, 977, 977, 977, 977, - 979, 977, 977, 977, 978, 979, 978, 979, 977, 977, 977, 977, 977, 977, - 977, 978, 979, 979, 977, 977, 977, 977, 977, 977, 977, 977, 977, 977, - 977, 81, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, - 980, 981, 982, 980, 980, 980, 980, 980, 980, 980, 81, 608, 81, 81, 81, - 81, 81, 81, 81, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, - 983, 983, 983, 983, 81, 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, - 81, 81, 81, 81, 985, 985, 986, 986, 986, 986, 986, 986, 986, 986, 986, - 986, 986, 986, 986, 986, 81, 81, 987, 987, 987, 987, 987, 988, 81, 81, - 989, 989, 989, 989, 989, 989, 989, 989, 990, 990, 990, 990, 990, 990, - 990, 991, 991, 991, 992, 992, 993, 993, 993, 993, 994, 994, 994, 994, - 991, 993, 81, 81, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 81, - 996, 996, 996, 996, 996, 996, 996, 81, 989, 989, 989, 989, 989, 81, 81, - 81, 81, 81, 989, 989, 989, 997, 997, 997, 997, 997, 997, 997, 997, 998, - 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 1000, 1000, 1001, 1001, 81, 81, - 81, 81, 81, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 81, 81, 81, 1002, 1003, 1003, 1003, 1003, 1003, 1003, - 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, - 1003, 1003, 1003, 1003, 81, 81, 81, 81, 81, 81, 81, 81, 1004, 1004, 1004, - 1004, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, - 1005, 1005, 1006, 1007, 81, 81, 81, 81, 81, 81, 1008, 1008, 1008, 1008, - 1008, 1008, 1008, 1008, 1008, 1008, 81, 81, 81, 81, 81, 81, 1008, 1008, - 1008, 81, 81, 81, 81, 81, 579, 574, 574, 574, 574, 574, 574, 574, 574, - 574, 574, 574, 574, 574, 574, 81, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1009, 1009, 81, 81, 81, 81, 1010, 1010, 1010, - 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 81, 81, 81, 81, 81, 1010, - 1010, 1010, 1010, 1010, 81, 81, 81, 1010, 81, 81, 81, 81, 81, 81, 81, - 1010, 1010, 81, 81, 1011, 1012, 1013, 1014, 503, 503, 503, 503, 81, 81, - 81, 81, 317, 317, 317, 317, 317, 317, 81, 81, 317, 317, 317, 317, 317, - 317, 317, 81, 81, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, - 317, 1015, 1015, 451, 451, 451, 317, 317, 317, 1016, 1015, 1015, 1015, - 1015, 1015, 503, 503, 503, 503, 503, 503, 503, 503, 156, 156, 156, 156, - 156, 156, 156, 156, 317, 317, 96, 96, 96, 96, 96, 156, 156, 317, 317, - 317, 317, 317, 317, 96, 96, 96, 96, 317, 317, 317, 81, 81, 81, 81, 81, - 81, 81, 724, 724, 1017, 1017, 1017, 724, 81, 81, 619, 619, 619, 619, 81, - 81, 81, 81, 619, 81, 81, 81, 81, 81, 81, 81, 510, 510, 510, 510, 510, - 510, 510, 510, 510, 510, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, - 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49, 49, 49, 510, 81, 510, - 510, 81, 81, 510, 81, 81, 510, 510, 81, 81, 510, 510, 510, 510, 81, 510, - 510, 49, 49, 81, 49, 81, 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49, - 49, 49, 49, 510, 510, 81, 510, 510, 510, 510, 81, 81, 510, 510, 510, 510, - 510, 510, 510, 510, 81, 510, 510, 510, 510, 510, 510, 510, 81, 49, 49, - 510, 510, 81, 510, 510, 510, 510, 81, 510, 510, 510, 510, 510, 81, 510, - 81, 81, 81, 510, 510, 510, 510, 510, 510, 510, 81, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 81, 81, 510, 1018, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 496, 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510, - 510, 510, 510, 1018, 49, 49, 49, 49, 49, 49, 49, 49, 49, 496, 49, 49, - 510, 510, 510, 510, 510, 1018, 49, 49, 49, 49, 49, 49, 49, 49, 49, 496, - 49, 49, 49, 49, 49, 49, 510, 510, 510, 510, 510, 510, 510, 510, 510, - 1018, 49, 496, 49, 49, 49, 49, 49, 49, 49, 49, 510, 49, 81, 81, 1019, - 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1020, 1020, 1020, - 1020, 1020, 1020, 1020, 1020, 1021, 1021, 1021, 1021, 1021, 1021, 1021, - 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1020, 1020, 1020, 1020, - 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1020, 1020, - 1020, 1020, 1020, 1020, 1020, 1020, 1021, 1020, 1020, 1020, 1020, 1020, - 1020, 1021, 1020, 1020, 1022, 1022, 1022, 1022, 1023, 81, 81, 81, 81, 81, - 81, 81, 1021, 1021, 1021, 1021, 1021, 81, 1021, 1021, 1021, 1021, 1021, - 1021, 1021, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 81, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 81, 81, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 81, 1024, 1024, 81, 1024, 1024, 1024, 1024, 1024, 81, - 81, 81, 81, 81, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, - 1025, 1025, 1025, 1025, 81, 81, 1026, 1026, 1026, 1026, 1026, 1026, 1026, - 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 81, 1028, 1028, - 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029, 1029, - 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, - 1029, 1029, 1030, 1030, 1030, 1030, 1030, 1030, 1031, 81, 81, 81, 81, 81, - 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 81, 81, 81, - 81, 1033, 1033, 81, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1034, - 1034, 1034, 1036, 1034, 1034, 1034, 1034, 81, 81, 81, 146, 146, 146, 146, - 81, 146, 146, 146, 81, 146, 146, 81, 146, 81, 81, 146, 81, 146, 146, 146, - 146, 146, 146, 146, 146, 146, 146, 81, 146, 146, 146, 146, 81, 146, 81, - 146, 81, 81, 81, 81, 81, 81, 146, 81, 81, 81, 81, 146, 81, 146, 81, 146, - 81, 146, 146, 146, 81, 146, 81, 146, 81, 146, 81, 146, 81, 146, 146, 146, - 146, 81, 146, 81, 146, 146, 81, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 81, 81, 81, 81, 81, 146, 146, 146, 81, 146, 146, 146, 132, 132, 81, - 81, 81, 81, 81, 81, 529, 529, 529, 529, 525, 529, 529, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 1037, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 529, 529, 529, 529, 529, - 529, 529, 1037, 1037, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, - 529, 529, 529, 529, 525, 529, 529, 529, 529, 529, 529, 1037, 1037, 47, - 47, 47, 519, 519, 1037, 1037, 1037, 530, 530, 530, 530, 530, 530, 317, - 40, 530, 530, 40, 40, 1037, 1037, 1037, 1037, 530, 530, 530, 530, 530, - 530, 1038, 530, 530, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, - 1038, 1038, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1039, 1039, 1039, 1039, 1039, - 1039, 1039, 1039, 1039, 1039, 1040, 585, 585, 1037, 1037, 1037, 1037, - 1037, 585, 585, 585, 585, 1037, 1037, 1037, 1037, 585, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 585, 585, 1037, 1037, 1037, 1037, 1037, 1037, - 525, 525, 525, 525, 525, 525, 1037, 1037, 525, 529, 529, 529, 529, 529, - 529, 529, 529, 529, 529, 529, 529, 525, 525, 525, 525, 525, 525, 525, - 525, 525, 529, 525, 525, 525, 525, 525, 525, 529, 525, 525, 525, 525, - 525, 525, 525, 536, 525, 525, 525, 525, 525, 525, 529, 529, 529, 529, - 529, 529, 529, 529, 40, 40, 529, 529, 525, 525, 525, 525, 525, 528, 528, - 525, 525, 525, 525, 525, 528, 525, 525, 525, 525, 525, 536, 536, 536, - 525, 525, 536, 525, 525, 536, 534, 534, 529, 529, 525, 525, 529, 529, - 529, 525, 529, 529, 529, 525, 525, 525, 1041, 1041, 1041, 1041, 1041, - 525, 525, 525, 525, 525, 525, 525, 529, 525, 529, 536, 536, 525, 525, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 525, 525, 525, - 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 536, 536, 536, 536, - 525, 525, 525, 525, 536, 525, 536, 525, 525, 525, 536, 525, 525, 525, - 525, 536, 536, 536, 525, 536, 536, 536, 528, 525, 528, 525, 528, 525, - 525, 525, 525, 525, 536, 525, 525, 525, 525, 528, 525, 528, 528, 525, - 525, 525, 525, 525, 525, 525, 525, 525, 525, 529, 529, 525, 528, 528, - 528, 528, 528, 528, 528, 525, 525, 525, 525, 525, 525, 525, 525, 528, - 528, 528, 528, 528, 528, 525, 525, 525, 525, 525, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 40, 40, 40, 40, 529, 525, 525, - 525, 525, 529, 529, 529, 529, 529, 534, 534, 529, 529, 529, 529, 536, - 529, 529, 529, 529, 529, 534, 529, 529, 529, 529, 536, 536, 529, 529, - 529, 529, 529, 40, 40, 40, 40, 40, 40, 40, 40, 529, 529, 529, 529, 40, - 40, 529, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 536, 536, 536, - 525, 525, 525, 536, 536, 536, 536, 536, 40, 40, 40, 40, 40, 40, 538, 538, - 538, 1042, 1042, 1042, 40, 40, 40, 40, 525, 525, 525, 536, 525, 525, 525, - 525, 525, 525, 525, 525, 536, 536, 536, 525, 536, 525, 525, 525, 525, - 525, 529, 529, 529, 529, 529, 529, 536, 529, 529, 529, 525, 525, 525, - 529, 529, 1037, 1037, 1037, 529, 529, 529, 525, 525, 1037, 1037, 1037, - 529, 529, 529, 529, 525, 525, 525, 525, 525, 525, 1037, 1037, 1037, 1037, - 1037, 1037, 40, 40, 40, 40, 1037, 1037, 1037, 1037, 40, 40, 40, 40, 40, - 529, 529, 529, 529, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 40, 40, - 1037, 1037, 1037, 1037, 1037, 1037, 40, 40, 40, 40, 40, 40, 1037, 1037, - 536, 536, 536, 536, 536, 525, 536, 536, 525, 525, 525, 525, 525, 525, - 536, 525, 536, 536, 525, 525, 525, 536, 536, 1037, 525, 1037, 1037, 525, - 525, 525, 525, 1037, 1037, 1037, 525, 1037, 525, 525, 525, 525, 525, 525, - 525, 1037, 1037, 1037, 1037, 1037, 525, 525, 525, 525, 525, 536, 536, - 525, 536, 536, 1037, 1037, 1037, 1037, 1037, 1037, 525, 536, 536, 536, - 536, 536, 536, 536, 536, 536, 536, 536, 536, 536, 525, 525, 1037, 1037, - 1037, 1037, 1037, 1037, 81, 81, 592, 592, 592, 592, 592, 592, 592, 593, - 592, 592, 592, 592, 592, 593, 593, 593, 592, 593, 593, 593, 593, 593, - 593, 593, 593, 593, 593, 593, 593, 593, 81, 81, 81, 503, 81, 81, 81, 81, - 81, 81, 503, 503, 503, 503, 503, 503, 503, 503, 670, 670, 670, 670, 670, - 670, 81, 81, + 800, 81, 81, 81, 81, 801, 801, 801, 801, 801, 801, 801, 802, 802, 802, + 802, 802, 802, 802, 802, 802, 81, 81, 81, 81, 81, 81, 81, 803, 803, 803, + 803, 803, 803, 803, 803, 803, 803, 803, 81, 81, 81, 81, 81, 804, 804, + 804, 804, 804, 804, 804, 804, 804, 804, 804, 81, 81, 81, 81, 81, 81, 81, + 805, 805, 805, 805, 805, 805, 806, 806, 806, 806, 806, 806, 806, 806, + 806, 806, 806, 806, 807, 807, 807, 807, 808, 808, 808, 808, 808, 808, + 808, 808, 808, 808, 81, 81, 81, 81, 81, 81, 809, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 81, 810, 810, 810, 810, 810, + 810, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 811, 811, 811, + 811, 811, 811, 811, 810, 812, 812, 812, 812, 812, 812, 812, 812, 812, + 812, 812, 812, 812, 812, 813, 813, 814, 814, 814, 813, 814, 813, 813, + 813, 813, 815, 815, 815, 815, 816, 816, 816, 816, 816, 81, 81, 81, 81, + 81, 81, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, + 817, 817, 81, 818, 819, 818, 820, 820, 820, 820, 820, 820, 820, 820, 820, + 820, 820, 820, 820, 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, + 819, 819, 819, 819, 821, 822, 822, 823, 823, 823, 823, 823, 81, 81, 81, + 81, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 81, 81, 81, 81, 81, 81, 81, 821, 826, 826, 827, 828, 828, 828, + 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, 827, 827, 827, 826, + 826, 826, 826, 827, 827, 829, 830, 831, 831, 832, 833, 833, 833, 833, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 832, 81, 81, 834, 834, 834, 834, + 834, 834, 834, 834, 834, 81, 81, 81, 81, 81, 81, 81, 835, 835, 835, 835, + 835, 835, 835, 835, 835, 835, 81, 81, 81, 81, 81, 81, 836, 836, 836, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 837, 837, 838, 838, 838, 838, 838, 839, 838, 838, 838, + 838, 838, 838, 840, 840, 81, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 842, 842, 842, 842, 837, 839, 839, 81, 843, 843, 843, 843, 843, 843, + 843, 843, 843, 843, 843, 844, 845, 846, 843, 81, 847, 847, 848, 849, 849, + 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, 849, + 848, 848, 848, 847, 847, 847, 847, 847, 847, 847, 847, 847, 848, 850, + 849, 849, 849, 849, 851, 851, 852, 851, 847, 853, 847, 847, 852, 81, 81, + 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 849, 855, 849, 851, + 851, 851, 81, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 81, 81, 81, 857, 857, 857, 857, + 857, 857, 857, 857, 857, 857, 81, 857, 857, 857, 857, 857, 857, 857, 857, + 857, 858, 858, 858, 859, 859, 859, 858, 858, 859, 860, 861, 859, 862, + 862, 863, 862, 862, 863, 859, 81, 864, 864, 864, 864, 864, 864, 864, 81, + 864, 81, 864, 864, 864, 864, 81, 864, 864, 864, 864, 864, 864, 864, 864, + 864, 864, 864, 864, 864, 864, 864, 81, 864, 864, 865, 81, 81, 81, 81, 81, + 81, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, 866, + 866, 867, 868, 868, 868, 867, 867, 867, 867, 867, 867, 869, 870, 81, 81, + 81, 81, 81, 871, 871, 871, 871, 871, 871, 871, 871, 871, 871, 81, 81, 81, + 81, 81, 81, 872, 872, 873, 873, 81, 874, 874, 874, 874, 874, 874, 874, + 874, 81, 81, 874, 874, 81, 81, 874, 874, 874, 874, 874, 874, 874, 874, + 874, 874, 874, 874, 874, 874, 81, 874, 874, 874, 874, 874, 874, 874, 81, + 874, 874, 81, 874, 874, 874, 874, 874, 81, 875, 876, 874, 873, 873, 872, + 873, 873, 873, 873, 81, 81, 873, 873, 81, 81, 873, 873, 877, 81, 81, 874, + 81, 81, 81, 81, 81, 81, 873, 81, 81, 81, 81, 81, 874, 874, 874, 874, 874, + 873, 873, 81, 81, 878, 878, 878, 878, 878, 878, 878, 81, 81, 81, 879, + 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 880, 880, + 880, 881, 881, 881, 881, 881, 881, 881, 881, 880, 880, 882, 881, 881, + 880, 883, 879, 879, 879, 879, 884, 884, 884, 884, 885, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 81, 884, 81, 885, 887, 879, 888, 888, + 888, 888, 888, 888, 888, 888, 889, 889, 889, 890, 890, 890, 890, 890, + 890, 889, 890, 889, 889, 889, 889, 890, 890, 889, 891, 892, 888, 888, + 893, 888, 894, 894, 894, 894, 894, 894, 894, 894, 894, 894, 81, 81, 81, + 81, 81, 81, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, + 895, 895, 895, 896, 896, 896, 897, 897, 897, 897, 81, 81, 896, 896, 896, + 896, 897, 897, 896, 898, 899, 900, 901, 901, 902, 902, 903, 903, 903, + 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, 901, + 901, 895, 895, 895, 895, 897, 897, 81, 81, 904, 904, 904, 904, 904, 904, + 904, 904, 905, 905, 905, 906, 906, 906, 906, 906, 906, 906, 906, 905, + 905, 906, 905, 907, 906, 908, 908, 909, 904, 81, 81, 81, 910, 910, 910, + 910, 910, 910, 910, 910, 910, 910, 81, 81, 81, 81, 81, 81, 911, 911, 911, + 911, 911, 911, 911, 911, 911, 911, 911, 911, 911, 81, 81, 81, 912, 912, + 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 914, 913, 914, 914, + 913, 913, 913, 913, 913, 913, 915, 916, 912, 81, 81, 81, 81, 81, 81, 81, + 917, 917, 917, 917, 917, 917, 917, 917, 917, 917, 81, 81, 81, 81, 81, 81, + 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, 918, 81, 81, 919, 919, + 919, 920, 920, 919, 919, 919, 919, 920, 919, 919, 919, 919, 921, 81, 81, + 81, 81, 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 923, 923, 924, + 924, 924, 925, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, + 926, 927, 927, 927, 928, 928, 928, 928, 928, 928, 928, 928, 928, 927, + 929, 930, 931, 81, 81, 81, 81, 932, 932, 932, 932, 932, 932, 932, 932, + 933, 933, 933, 933, 933, 933, 933, 933, 934, 934, 934, 934, 934, 934, + 934, 934, 934, 934, 935, 935, 935, 935, 935, 935, 935, 935, 935, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 936, 937, 937, 937, 937, 937, + 937, 937, 937, 81, 81, 937, 937, 937, 937, 937, 937, 937, 938, 938, 938, + 939, 939, 939, 939, 81, 81, 939, 939, 938, 938, 938, 938, 940, 937, 941, + 937, 938, 81, 81, 81, 942, 943, 943, 943, 943, 943, 943, 944, 944, 943, + 943, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, + 942, 942, 942, 943, 945, 943, 943, 943, 943, 946, 942, 943, 943, 943, + 943, 947, 948, 949, 949, 949, 949, 947, 948, 945, 950, 951, 951, 951, + 951, 951, 951, 952, 952, 951, 951, 951, 950, 950, 950, 950, 950, 950, + 950, 950, 950, 950, 950, 950, 950, 950, 951, 951, 951, 951, 951, 951, + 951, 951, 951, 951, 951, 951, 951, 952, 951, 953, 954, 954, 954, 950, + 955, 955, 955, 954, 954, 81, 81, 81, 81, 81, 956, 956, 956, 956, 956, + 956, 956, 956, 956, 81, 81, 81, 81, 81, 81, 81, 957, 957, 957, 957, 957, + 957, 957, 957, 957, 81, 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, + 957, 957, 957, 958, 959, 959, 959, 959, 959, 959, 959, 81, 959, 959, 959, + 959, 959, 959, 958, 960, 957, 961, 961, 961, 961, 961, 81, 81, 962, 962, + 962, 962, 962, 962, 962, 962, 962, 962, 963, 963, 963, 963, 963, 963, + 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 81, 81, + 81, 964, 965, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, 966, + 966, 966, 81, 81, 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, + 967, 967, 967, 81, 968, 967, 967, 967, 967, 967, 967, 967, 968, 967, 967, + 968, 967, 967, 81, 969, 969, 969, 969, 969, 969, 969, 81, 969, 969, 81, + 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, + 970, 970, 970, 970, 970, 970, 81, 81, 81, 970, 81, 970, 970, 81, 970, + 970, 970, 971, 970, 972, 972, 969, 970, 973, 973, 973, 973, 973, 973, + 973, 973, 973, 973, 81, 81, 81, 81, 81, 81, 974, 974, 974, 974, 974, 974, + 81, 974, 974, 81, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, + 974, 974, 974, 974, 974, 975, 975, 975, 975, 975, 81, 976, 976, 81, 975, + 975, 976, 975, 977, 974, 81, 81, 81, 81, 81, 81, 81, 978, 978, 978, 978, + 978, 978, 978, 978, 978, 978, 81, 81, 81, 81, 81, 81, 979, 979, 979, 979, + 979, 979, 979, 979, 979, 979, 979, 980, 980, 981, 981, 982, 982, 81, 81, + 81, 81, 81, 81, 81, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, + 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 983, 983, 983, + 983, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, + 244, 244, 244, 244, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 984, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 81, 81, 81, 81, + 81, 81, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, + 986, 986, 81, 987, 987, 987, 987, 987, 81, 81, 81, 985, 985, 985, 985, + 81, 81, 81, 81, 988, 988, 988, 988, 988, 988, 988, 988, 989, 989, 989, + 990, 990, 990, 988, 988, 988, 988, 990, 988, 988, 988, 989, 990, 989, + 990, 988, 988, 988, 988, 988, 988, 988, 989, 990, 990, 988, 988, 988, + 988, 988, 988, 988, 988, 988, 988, 988, 81, 991, 991, 991, 991, 991, 991, + 991, 992, 993, 81, 81, 81, 81, 81, 81, 81, 994, 994, 994, 994, 994, 994, + 994, 994, 994, 994, 994, 994, 994, 994, 995, 996, 994, 994, 994, 994, + 994, 994, 994, 81, 610, 81, 81, 81, 81, 81, 81, 81, 997, 997, 997, 997, + 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, 81, 998, 998, 998, + 998, 998, 998, 998, 998, 998, 998, 81, 81, 81, 81, 999, 999, 1000, 1000, + 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, + 81, 81, 1001, 1001, 1001, 1001, 1001, 1002, 81, 81, 1003, 1003, 1003, + 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1004, 1004, + 1005, 1005, 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1008, 1008, 1008, + 1008, 1005, 1007, 81, 81, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 81, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 81, 1003, 1003, + 1003, 1003, 1003, 81, 81, 81, 81, 81, 1003, 1003, 1003, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1012, 1012, 1012, 1012, + 1012, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, + 1013, 1013, 1013, 1013, 1014, 1014, 1015, 1015, 81, 81, 81, 81, 81, 1016, + 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 81, 81, 81, + 81, 1017, 1016, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, + 1018, 1018, 1018, 1018, 1018, 1018, 81, 81, 81, 81, 81, 81, 81, 1017, + 1017, 1017, 1017, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, + 1019, 1019, 1019, 1019, 1020, 1021, 582, 1022, 81, 81, 81, 81, 1023, + 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 81, 81, 81, + 81, 81, 581, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, + 576, 576, 81, 575, 575, 575, 81, 81, 81, 81, 81, 81, 81, 81, 81, 580, + 580, 580, 580, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, + 1024, 1024, 1024, 81, 81, 81, 81, 1025, 1025, 1025, 1025, 1025, 1025, + 1025, 1025, 1025, 1025, 1025, 81, 81, 81, 81, 81, 1025, 1025, 1025, 1025, + 1025, 81, 81, 81, 1025, 81, 81, 81, 81, 81, 81, 81, 1025, 1025, 81, 81, + 1026, 1027, 1028, 1029, 505, 505, 505, 505, 81, 81, 81, 81, 318, 318, + 318, 318, 318, 318, 81, 81, 318, 318, 318, 318, 318, 318, 318, 81, 81, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 1030, 1030, + 453, 453, 453, 318, 318, 318, 1031, 1030, 1030, 1030, 1030, 1030, 505, + 505, 505, 505, 505, 505, 505, 505, 156, 156, 156, 156, 156, 156, 156, + 156, 318, 318, 96, 96, 96, 96, 96, 156, 156, 318, 318, 318, 318, 318, + 318, 96, 96, 96, 96, 318, 318, 318, 81, 81, 81, 81, 81, 81, 81, 727, 727, + 1032, 1032, 1032, 727, 81, 81, 621, 621, 621, 621, 81, 81, 81, 81, 621, + 81, 81, 81, 81, 81, 81, 81, 512, 512, 512, 512, 512, 512, 512, 512, 512, + 512, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 49, 49, 49, 49, 49, + 49, 49, 81, 49, 49, 49, 49, 49, 49, 512, 81, 512, 512, 81, 81, 512, 81, + 81, 512, 512, 81, 81, 512, 512, 512, 512, 81, 512, 512, 49, 49, 81, 49, + 81, 49, 49, 49, 49, 49, 49, 49, 81, 49, 49, 49, 49, 49, 49, 49, 512, 512, + 81, 512, 512, 512, 512, 81, 81, 512, 512, 512, 512, 512, 512, 512, 512, + 81, 512, 512, 512, 512, 512, 512, 512, 81, 49, 49, 512, 512, 81, 512, + 512, 512, 512, 81, 512, 512, 512, 512, 512, 81, 512, 81, 81, 81, 512, + 512, 512, 512, 512, 512, 512, 81, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 81, 81, 512, 1033, 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49, + 49, 49, 49, 49, 49, 512, 512, 512, 512, 512, 512, 512, 512, 512, 1033, + 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49, 49, 512, 512, 512, 512, 512, + 1033, 49, 49, 49, 49, 49, 49, 49, 49, 49, 498, 49, 49, 49, 49, 49, 49, + 512, 512, 512, 512, 512, 512, 512, 512, 512, 1033, 49, 498, 49, 49, 49, + 49, 49, 49, 49, 49, 512, 49, 81, 81, 1034, 1034, 1034, 1034, 1034, 1034, + 1034, 1034, 1034, 1034, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1035, 1035, 1035, 1035, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1035, 1035, 1035, 1035, 1035, 1035, 1035, + 1035, 1036, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1035, 1035, 1037, + 1037, 1037, 1037, 1038, 81, 81, 81, 81, 81, 81, 81, 1036, 1036, 1036, + 1036, 1036, 81, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1039, 1039, + 1039, 1039, 1039, 1039, 1039, 81, 1039, 1039, 1039, 1039, 1039, 1039, + 1039, 1039, 1039, 81, 81, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 81, + 1039, 1039, 81, 1039, 1039, 1039, 1039, 1039, 81, 81, 81, 81, 81, 1040, + 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, + 81, 81, 81, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 81, 81, 1043, 1043, 1043, 1043, 1043, 1043, 1043, + 1043, 1043, 1043, 81, 81, 81, 81, 1040, 1044, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046, 1046, 1046, 1046, + 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 81, 81, 81, + 81, 81, 1048, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, + 1049, 1049, 1049, 81, 81, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, + 1050, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 81, 1052, 1052, 1052, + 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1053, 1053, 1053, 1053, 1053, + 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, + 1053, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1056, 81, 81, 81, 81, + 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 1057, 81, 81, 81, + 81, 1058, 1058, 81, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, + 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1059, + 1059, 1059, 1061, 1059, 1059, 1059, 1059, 81, 81, 81, 1059, 1059, 1059, + 1059, 1059, 1059, 1062, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 81, 81, + 146, 146, 146, 146, 81, 146, 146, 146, 81, 146, 146, 81, 146, 81, 81, + 146, 81, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 81, 146, 146, + 146, 146, 81, 146, 81, 146, 81, 81, 81, 81, 81, 81, 146, 81, 81, 81, 81, + 146, 81, 146, 81, 146, 81, 146, 146, 146, 81, 146, 81, 146, 81, 146, 81, + 146, 81, 146, 146, 146, 146, 81, 146, 81, 146, 146, 81, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 81, 81, 81, 81, 81, 146, 146, 146, 81, 146, + 146, 146, 132, 132, 81, 81, 81, 81, 81, 81, 531, 531, 531, 531, 527, 531, + 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, + 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, + 531, 531, 531, 531, 531, 531, 531, 1063, 1063, 531, 531, 531, 531, 531, + 531, 531, 531, 531, 531, 531, 531, 531, 531, 527, 531, 531, 531, 531, + 531, 531, 1063, 1063, 47, 47, 47, 521, 521, 1063, 1063, 1063, 532, 532, + 532, 532, 532, 532, 318, 40, 532, 532, 40, 40, 40, 1063, 1063, 1063, 532, + 532, 532, 532, 532, 532, 1064, 532, 532, 1064, 1064, 1064, 1064, 1064, + 1064, 1064, 1064, 1064, 1064, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1065, + 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 587, 587, + 1063, 1063, 1063, 1063, 1063, 587, 587, 587, 587, 1063, 1063, 1063, 1063, + 587, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 587, 587, 1063, 1063, + 1063, 1063, 1063, 1063, 527, 527, 527, 527, 527, 527, 1063, 1063, 527, + 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 531, 527, 527, 527, 527, 527, 527, + 531, 527, 527, 527, 527, 527, 527, 527, 538, 527, 527, 527, 527, 527, + 527, 531, 531, 531, 531, 531, 531, 531, 531, 40, 40, 531, 531, 527, 527, + 527, 527, 527, 530, 530, 527, 527, 527, 527, 527, 530, 527, 527, 527, + 527, 527, 538, 538, 538, 527, 527, 538, 527, 527, 538, 536, 536, 531, + 531, 527, 527, 531, 531, 531, 527, 531, 531, 531, 527, 527, 527, 1067, + 1067, 1067, 1067, 1067, 527, 527, 527, 527, 527, 527, 527, 531, 527, 531, + 538, 538, 527, 527, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, + 538, 538, 538, 527, 527, 527, 538, 527, 527, 527, 527, 538, 538, 538, + 527, 538, 538, 538, 527, 527, 527, 527, 527, 527, 527, 538, 527, 538, + 527, 527, 527, 527, 527, 527, 530, 527, 530, 527, 530, 527, 527, 527, + 527, 527, 538, 527, 527, 527, 527, 530, 527, 530, 530, 527, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 531, 531, 527, 530, 530, 530, 530, + 530, 530, 530, 527, 527, 527, 527, 527, 527, 527, 527, 530, 530, 530, + 530, 530, 530, 527, 527, 527, 527, 527, 530, 530, 530, 530, 530, 530, + 530, 530, 530, 530, 530, 530, 40, 40, 40, 40, 531, 527, 527, 527, 527, + 531, 531, 531, 531, 531, 536, 536, 531, 531, 531, 531, 538, 531, 531, + 531, 531, 531, 536, 531, 531, 531, 531, 538, 538, 531, 531, 531, 531, + 531, 40, 40, 40, 40, 40, 40, 40, 40, 531, 531, 531, 531, 40, 40, 531, + 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 538, 538, 538, 527, + 527, 527, 538, 538, 538, 538, 538, 40, 40, 40, 40, 40, 40, 540, 540, 540, + 1068, 1068, 1068, 40, 40, 40, 40, 527, 527, 527, 538, 527, 527, 527, 527, + 527, 527, 527, 527, 538, 538, 538, 527, 538, 527, 527, 527, 527, 527, + 531, 531, 531, 531, 531, 531, 538, 531, 531, 531, 527, 527, 527, 531, + 531, 527, 1063, 1063, 531, 531, 531, 527, 527, 1063, 1063, 1063, 531, + 531, 531, 531, 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 1063, 1063, + 1063, 40, 40, 40, 40, 1063, 1063, 1063, 1063, 40, 40, 40, 40, 40, 531, + 531, 531, 531, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 527, 527, 527, + 527, 1063, 1063, 1063, 1063, 40, 40, 1063, 1063, 1063, 1063, 1063, 1063, + 40, 40, 40, 40, 40, 40, 1063, 1063, 40, 40, 40, 40, 1063, 527, 527, 538, + 527, 527, 527, 527, 527, 527, 538, 527, 538, 538, 527, 527, 538, 538, + 538, 527, 527, 527, 1063, 527, 527, 527, 527, 1063, 1063, 1063, 527, 527, + 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 527, 527, 527, 527, 527, + 527, 1063, 1063, 1063, 527, 527, 527, 527, 527, 527, 527, 538, 538, 527, + 538, 538, 527, 538, 527, 527, 527, 527, 527, 527, 527, 1063, 1063, 538, + 538, 538, 527, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, 538, + 538, 538, 527, 527, 1063, 1063, 1063, 1063, 1063, 1063, 81, 81, 594, 594, + 594, 594, 594, 594, 594, 595, 594, 594, 594, 594, 594, 595, 595, 595, + 594, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 81, + 81, 81, 505, 81, 81, 81, 81, 81, 81, 505, 505, 505, 505, 505, 505, 505, + 505, 673, 673, 673, 673, 673, 673, 81, 81, }; /* decomposition data */ @@ -4534,118 +4594,118 @@ static const unsigned short decomp_data[] = { 78, 266, 79, 266, 80, 266, 81, 266, 82, 266, 83, 266, 84, 266, 85, 266, 86, 266, 87, 266, 88, 266, 89, 266, 90, 522, 72, 86, 522, 77, 86, 522, 83, 68, 522, 83, 83, 778, 80, 80, 86, 522, 87, 67, 515, 77, 67, 515, 77, - 68, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266, 12469, 266, - 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266, 22810, 266, - 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266, 26009, 266, - 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266, 32066, 266, - 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266, 25237, 266, - 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, 20013, 266, - 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, 31354, 266, - 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, 21106, 266, - 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, 19977, 12309, - 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, 12308, 28857, - 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, 770, 12308, - 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, 21487, 256, - 20029, 256, 20024, 256, 20033, 256, 55360, 56610, 256, 20320, 256, 20398, - 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687, - 256, 13470, 256, 55361, 56890, 256, 20813, 256, 20820, 256, 20836, 256, - 20855, 256, 55361, 56604, 256, 13497, 256, 20839, 256, 20877, 256, 55361, - 56651, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, 256, - 55396, 56799, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, - 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, - 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, - 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, - 256, 55362, 56876, 256, 28784, 256, 21450, 256, 21471, 256, 55362, 57187, - 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, - 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, - 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, - 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, - 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, - 256, 22577, 256, 22700, 256, 55365, 56548, 256, 22770, 256, 22775, 256, - 22790, 256, 22810, 256, 22818, 256, 22882, 256, 55365, 57000, 256, 55365, - 57066, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, - 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, 55366, 56776, - 256, 23491, 256, 23512, 256, 23527, 256, 23539, 256, 55366, 57112, 256, - 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, 256, - 23662, 256, 23744, 256, 23693, 256, 55367, 56804, 256, 23875, 256, 55367, - 56806, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256, - 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256, - 55368, 56707, 256, 14460, 256, 24240, 256, 24243, 256, 24246, 256, 24266, - 256, 55400, 57234, 256, 24318, 256, 55368, 57137, 256, 55368, 57137, 256, - 33281, 256, 24354, 256, 24354, 256, 14535, 256, 55372, 57016, 256, 55384, - 56794, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, - 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, - 55369, 57044, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, - 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, - 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, - 256, 25300, 256, 25424, 256, 55370, 57100, 256, 25405, 256, 25340, 256, - 25448, 256, 25475, 256, 25572, 256, 55370, 57329, 256, 25634, 256, 25541, - 256, 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, - 256, 14956, 256, 25935, 256, 25964, 256, 55372, 56330, 256, 26083, 256, - 26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112, 256, 15076, 256, - 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, 256, - 26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451, 256, 55372, 57283, - 256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757, 256, 55373, - 56429, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256, 26946, 256, - 27043, 256, 27114, 256, 27304, 256, 55373, 56995, 256, 27355, 256, 15384, - 256, 27425, 256, 55374, 56487, 256, 27476, 256, 15438, 256, 27506, 256, - 27551, 256, 27578, 256, 27579, 256, 55374, 56973, 256, 55367, 56587, 256, - 55374, 57082, 256, 27726, 256, 55375, 56508, 256, 27839, 256, 27853, 256, - 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, - 28024, 256, 28037, 256, 55375, 56606, 256, 27956, 256, 28207, 256, 28270, - 256, 15667, 256, 28363, 256, 28359, 256, 55375, 57041, 256, 28153, 256, - 28526, 256, 55375, 57182, 256, 55375, 57230, 256, 28614, 256, 28729, 256, - 28702, 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, - 28845, 256, 55361, 56613, 256, 28997, 256, 55376, 56931, 256, 29084, 256, - 55376, 57259, 256, 29224, 256, 29237, 256, 29264, 256, 55377, 56840, 256, - 29312, 256, 29333, 256, 55377, 57141, 256, 55378, 56340, 256, 29562, 256, - 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, 256, - 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, - 55379, 56374, 256, 30014, 256, 55379, 56466, 256, 30064, 256, 55368, - 56735, 256, 30224, 256, 55379, 57249, 256, 55379, 57272, 256, 55380, - 56388, 256, 16380, 256, 16392, 256, 30452, 256, 55380, 56563, 256, 55380, - 56562, 256, 55380, 56601, 256, 55380, 56627, 256, 30494, 256, 30495, 256, - 30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256, 16534, 256, - 55381, 56349, 256, 30798, 256, 30860, 256, 30924, 256, 16611, 256, 55381, - 56870, 256, 31062, 256, 55381, 56986, 256, 55381, 57029, 256, 31119, 256, - 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 55382, 56700, - 256, 55382, 56999, 256, 55382, 56999, 256, 31470, 256, 16898, 256, 55382, - 57259, 256, 31686, 256, 31689, 256, 16935, 256, 55383, 56448, 256, 31954, - 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, 55383, 57222, 256, - 32099, 256, 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, - 55384, 56872, 256, 55384, 56903, 256, 17241, 256, 55384, 57049, 256, - 32634, 256, 55384, 57150, 256, 32661, 256, 32762, 256, 32773, 256, 55385, - 56538, 256, 55385, 56611, 256, 32864, 256, 55385, 56744, 256, 32880, 256, - 55372, 57183, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, - 256, 23221, 256, 55385, 57255, 256, 55385, 57269, 256, 55372, 57235, 256, - 55372, 57244, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, - 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, - 256, 33510, 256, 55386, 57148, 256, 33509, 256, 33565, 256, 33635, 256, - 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, - 33738, 256, 33740, 256, 33756, 256, 55387, 56374, 256, 55387, 56683, 256, - 55387, 56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070, 256, 55388, - 57290, 256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761, 256, 55387, - 57265, 256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396, 256, 34407, - 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, 256, 34681, - 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817, - 256, 17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256, 35031, 256, - 35038, 256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494, 256, 55390, - 56678, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, - 35925, 256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123, 256, 36215, - 256, 55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284, 256, 36336, - 256, 55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786, 256, 55393, - 56813, 256, 37012, 256, 37105, 256, 37137, 256, 55393, 57134, 256, 37147, - 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, - 256, 55394, 57338, 256, 38283, 256, 18837, 256, 38327, 256, 55395, 56695, - 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 55396, 56645, 256, - 55396, 56858, 256, 19054, 256, 19062, 256, 38880, 256, 55397, 56330, 256, - 19122, 256, 55397, 56470, 256, 38923, 256, 38923, 256, 38953, 256, 55397, - 56758, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, 39362, 256, - 39422, 256, 19406, 256, 55398, 57136, 256, 39698, 256, 40000, 256, 40189, - 256, 19662, 256, 19693, 256, 40295, 256, 55400, 56526, 256, 19704, 256, - 55400, 56581, 256, 55400, 56846, 256, 55400, 56977, 256, 40635, 256, - 19798, 256, 40697, 256, 40702, 256, 40709, 256, 40719, 256, 40726, 256, - 40763, 256, 55401, 56832, + 68, 515, 77, 82, 522, 68, 74, 522, 12411, 12363, 522, 12467, 12467, 266, + 12469, 266, 25163, 266, 23383, 266, 21452, 266, 12487, 266, 20108, 266, + 22810, 266, 35299, 266, 22825, 266, 20132, 266, 26144, 266, 28961, 266, + 26009, 266, 21069, 266, 24460, 266, 20877, 266, 26032, 266, 21021, 266, + 32066, 266, 29983, 266, 36009, 266, 22768, 266, 21561, 266, 28436, 266, + 25237, 266, 25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, + 20013, 266, 21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, + 31354, 266, 21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, + 21106, 266, 21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, + 19977, 12309, 770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, + 12308, 28857, 12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, + 770, 12308, 21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, + 21487, 256, 20029, 256, 20024, 256, 20033, 256, 55360, 56610, 256, 20320, + 256, 20398, 256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711, + 256, 20687, 256, 13470, 256, 55361, 56890, 256, 20813, 256, 20820, 256, + 20836, 256, 20855, 256, 55361, 56604, 256, 13497, 256, 20839, 256, 20877, + 256, 55361, 56651, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, + 20917, 256, 55396, 56799, 256, 20981, 256, 20995, 256, 13535, 256, 21051, + 256, 21062, 256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, + 256, 21220, 256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, + 256, 21329, 256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, + 256, 21375, 256, 55362, 56876, 256, 28784, 256, 21450, 256, 21471, 256, + 55362, 57187, 256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, + 256, 21576, 256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, + 256, 21859, 256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, + 256, 21954, 256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, + 256, 20999, 256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, + 256, 22578, 256, 22577, 256, 22700, 256, 55365, 56548, 256, 22770, 256, + 22775, 256, 22790, 256, 22810, 256, 22818, 256, 22882, 256, 55365, 57000, + 256, 55365, 57066, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, + 23142, 256, 14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, + 55366, 56776, 256, 23491, 256, 23512, 256, 23527, 256, 23539, 256, 55366, + 57112, 256, 23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, + 23648, 256, 23662, 256, 23744, 256, 23693, 256, 55367, 56804, 256, 23875, + 256, 55367, 56806, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256, + 24034, 256, 14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256, + 14434, 256, 55368, 56707, 256, 14460, 256, 24240, 256, 24243, 256, 24246, + 256, 24266, 256, 55400, 57234, 256, 24318, 256, 55368, 57137, 256, 55368, + 57137, 256, 33281, 256, 24354, 256, 24354, 256, 14535, 256, 55372, 57016, + 256, 55384, 56794, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, + 24525, 256, 24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, + 24724, 256, 55369, 57044, 256, 24775, 256, 24904, 256, 24908, 256, 24910, + 256, 24908, 256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, + 256, 25054, 256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, + 256, 25265, 256, 25300, 256, 25424, 256, 55370, 57100, 256, 25405, 256, + 25340, 256, 25448, 256, 25475, 256, 25572, 256, 55370, 57329, 256, 25634, + 256, 25541, 256, 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, + 256, 25719, 256, 14956, 256, 25935, 256, 25964, 256, 55372, 56330, 256, + 26083, 256, 26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112, 256, + 15076, 256, 20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, + 17369, 256, 26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451, 256, + 55372, 57283, 256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757, + 256, 55373, 56429, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256, + 26946, 256, 27043, 256, 27114, 256, 27304, 256, 55373, 56995, 256, 27355, + 256, 15384, 256, 27425, 256, 55374, 56487, 256, 27476, 256, 15438, 256, + 27506, 256, 27551, 256, 27578, 256, 27579, 256, 55374, 56973, 256, 55367, + 56587, 256, 55374, 57082, 256, 27726, 256, 55375, 56508, 256, 27839, 256, + 27853, 256, 27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, + 28009, 256, 28024, 256, 28037, 256, 55375, 56606, 256, 27956, 256, 28207, + 256, 28270, 256, 15667, 256, 28363, 256, 28359, 256, 55375, 57041, 256, + 28153, 256, 28526, 256, 55375, 57182, 256, 55375, 57230, 256, 28614, 256, + 28729, 256, 28702, 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, + 28791, 256, 28845, 256, 55361, 56613, 256, 28997, 256, 55376, 56931, 256, + 29084, 256, 55376, 57259, 256, 29224, 256, 29237, 256, 29264, 256, 55377, + 56840, 256, 29312, 256, 29333, 256, 55377, 57141, 256, 55378, 56340, 256, + 29562, 256, 29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, + 29767, 256, 29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, + 29988, 256, 55379, 56374, 256, 30014, 256, 55379, 56466, 256, 30064, 256, + 55368, 56735, 256, 30224, 256, 55379, 57249, 256, 55379, 57272, 256, + 55380, 56388, 256, 16380, 256, 16392, 256, 30452, 256, 55380, 56563, 256, + 55380, 56562, 256, 55380, 56601, 256, 55380, 56627, 256, 30494, 256, + 30495, 256, 30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256, + 16534, 256, 55381, 56349, 256, 30798, 256, 30860, 256, 30924, 256, 16611, + 256, 55381, 56870, 256, 31062, 256, 55381, 56986, 256, 55381, 57029, 256, + 31119, 256, 31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, + 55382, 56700, 256, 55382, 56999, 256, 55382, 56999, 256, 31470, 256, + 16898, 256, 55382, 57259, 256, 31686, 256, 31689, 256, 16935, 256, 55383, + 56448, 256, 31954, 256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, + 55383, 57222, 256, 32099, 256, 17153, 256, 32199, 256, 32258, 256, 32325, + 256, 17204, 256, 55384, 56872, 256, 55384, 56903, 256, 17241, 256, 55384, + 57049, 256, 32634, 256, 55384, 57150, 256, 32661, 256, 32762, 256, 32773, + 256, 55385, 56538, 256, 55385, 56611, 256, 32864, 256, 55385, 56744, 256, + 32880, 256, 55372, 57183, 256, 17365, 256, 32946, 256, 33027, 256, 17419, + 256, 33086, 256, 23221, 256, 55385, 57255, 256, 55385, 57269, 256, 55372, + 57235, 256, 55372, 57244, 256, 33281, 256, 33284, 256, 36766, 256, 17515, + 256, 33425, 256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, + 256, 33469, 256, 33510, 256, 55386, 57148, 256, 33509, 256, 33565, 256, + 33635, 256, 33709, 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, + 33619, 256, 33738, 256, 33740, 256, 33756, 256, 55387, 56374, 256, 55387, + 56683, 256, 55387, 56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070, + 256, 55388, 57290, 256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761, + 256, 55387, 57265, 256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396, + 256, 34407, 256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, + 256, 34681, 256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, + 256, 34817, 256, 17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256, + 35031, 256, 35038, 256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494, + 256, 55390, 56678, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, + 35722, 256, 35925, 256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123, + 256, 36215, 256, 55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284, + 256, 36336, 256, 55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786, + 256, 55393, 56813, 256, 37012, 256, 37105, 256, 37137, 256, 55393, 57134, + 256, 37147, 256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, + 256, 37909, 256, 55394, 57338, 256, 38283, 256, 18837, 256, 38327, 256, + 55395, 56695, 256, 18918, 256, 38595, 256, 23986, 256, 38691, 256, 55396, + 56645, 256, 55396, 56858, 256, 19054, 256, 19062, 256, 38880, 256, 55397, + 56330, 256, 19122, 256, 55397, 56470, 256, 38923, 256, 38923, 256, 38953, + 256, 55397, 56758, 256, 39138, 256, 19251, 256, 39209, 256, 39335, 256, + 39362, 256, 39422, 256, 19406, 256, 55398, 57136, 256, 39698, 256, 40000, + 256, 40189, 256, 19662, 256, 19693, 256, 40295, 256, 55400, 56526, 256, + 19704, 256, 55400, 56581, 256, 55400, 56846, 256, 55400, 56977, 256, + 40635, 256, 19798, 256, 40697, 256, 40702, 256, 40709, 256, 40719, 256, + 40726, 256, 40763, 256, 55401, 56832, }; /* index tables for the decomposition data */ @@ -5304,70 +5364,70 @@ static const unsigned short decomp_index2[] = { 13005, 13007, 13009, 13011, 13013, 13015, 13017, 13019, 13021, 13023, 13025, 13027, 13029, 13031, 13033, 13035, 13037, 13039, 13041, 13043, 13045, 13047, 13049, 13051, 13053, 13055, 13057, 13060, 13063, 13066, - 13069, 13073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13076, 13079, 0, 0, 0, 0, - 13082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13085, 13088, 13091, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13093, 13095, 13097, 13099, 13101, - 13103, 13105, 13107, 13109, 13111, 13113, 13115, 13117, 13119, 13121, - 13123, 13125, 13127, 13129, 13131, 13133, 13135, 13137, 13139, 13141, - 13143, 13145, 13147, 13149, 13151, 13153, 13155, 13157, 13159, 13161, - 13163, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 13179, 0, 0, 0, - 0, 13181, 13185, 13189, 13193, 13197, 13201, 13205, 13209, 13213, 0, 0, - 0, 0, 0, 0, 0, 13217, 13219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13221, 13223, 13225, 13227, 13230, 13232, 13234, 13236, 13238, 13240, - 13242, 13244, 13246, 13248, 13251, 13253, 13255, 13257, 13259, 13262, - 13264, 13266, 13268, 13271, 13273, 13275, 13277, 13279, 13281, 13284, - 13286, 13288, 13290, 13292, 13294, 13296, 13298, 13300, 13302, 13304, - 13306, 13308, 13310, 13312, 13314, 13316, 13318, 13320, 13322, 13324, - 13326, 13328, 13330, 13333, 13335, 13337, 13339, 13342, 13344, 13346, - 13348, 13350, 13352, 13354, 13356, 13358, 13360, 13362, 13364, 13366, - 13368, 13370, 13372, 13374, 13376, 13378, 13380, 13382, 13384, 13386, - 13388, 13390, 13392, 13394, 13396, 13398, 13400, 13402, 13404, 13406, - 13409, 13411, 13413, 13415, 13417, 13419, 13421, 13424, 13427, 13429, - 13431, 13433, 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13450, - 13452, 13454, 13456, 13458, 13461, 13463, 13465, 13467, 13469, 13471, - 13473, 13475, 13477, 13479, 13482, 13484, 13487, 13489, 13491, 13493, - 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13512, 13514, - 13516, 13518, 13520, 13522, 13525, 13527, 13530, 13533, 13535, 13537, - 13539, 13541, 13544, 13547, 13549, 13551, 13553, 13555, 13557, 13559, - 13561, 13563, 13565, 13567, 13569, 13572, 13574, 13576, 13578, 13580, - 13582, 13584, 13586, 13588, 13590, 13592, 13594, 13596, 13598, 13600, - 13602, 13604, 13606, 13608, 13610, 13613, 13615, 13617, 13619, 13621, - 13623, 13626, 13628, 13630, 13632, 13634, 13636, 13638, 13640, 13642, - 13644, 13646, 13648, 13651, 13653, 13655, 13657, 13659, 13661, 13663, - 13665, 13667, 13669, 13671, 13673, 13675, 13677, 13679, 13681, 13683, - 13685, 13687, 13690, 13692, 13694, 13696, 13698, 13700, 13703, 13705, - 13707, 13709, 13711, 13713, 13715, 13717, 13719, 13722, 13724, 13726, - 13728, 13731, 13733, 13735, 13737, 13739, 13741, 13743, 13746, 13749, - 13752, 13754, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771, - 13773, 13775, 13777, 13780, 13782, 13784, 13786, 13788, 13790, 13792, - 13795, 13797, 13799, 13802, 13805, 13807, 13809, 13811, 13813, 13815, - 13817, 13819, 13821, 13823, 13826, 13828, 13831, 13833, 13836, 13838, - 13840, 13842, 13845, 13847, 13849, 13852, 13855, 13857, 13859, 13861, - 13863, 13865, 13867, 13869, 13871, 13873, 13875, 13877, 13879, 13881, - 13884, 13886, 13889, 13891, 13894, 13896, 13899, 13902, 13905, 13907, - 13909, 13911, 13914, 13917, 13920, 13923, 13925, 13927, 13929, 13931, - 13933, 13935, 13937, 13939, 13942, 13944, 13946, 13948, 13950, 13953, - 13955, 13958, 13961, 13963, 13965, 13967, 13969, 13971, 13973, 13976, - 13979, 13982, 13984, 13986, 13989, 13991, 13993, 13995, 13998, 14000, - 14002, 14004, 14006, 14008, 14011, 14013, 14015, 14017, 14019, 14021, - 14023, 14026, 14029, 14031, 14034, 14036, 14039, 14041, 14043, 14045, - 14048, 14051, 14053, 14056, 14058, 14061, 14063, 14065, 14067, 14069, - 14071, 14073, 14076, 14079, 14082, 14085, 14087, 14089, 14091, 14093, - 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14112, 14114, - 14116, 14118, 14120, 14122, 14124, 14126, 14128, 14130, 14132, 14134, - 14136, 14139, 14142, 14145, 14147, 14149, 14151, 14153, 14156, 14158, - 14161, 14163, 14165, 14168, 14171, 14173, 14175, 14177, 14179, 14181, - 14183, 14185, 14187, 14189, 14191, 14193, 14195, 14197, 14199, 14201, - 14203, 14205, 14207, 14209, 14212, 14214, 14216, 14218, 14220, 14222, - 14225, 14228, 14230, 14232, 14234, 14236, 14238, 14240, 14243, 14245, - 14247, 14249, 14251, 14254, 14257, 14259, 14261, 14263, 14266, 14268, - 14270, 14273, 14276, 14278, 14280, 14282, 14285, 14287, 14289, 14291, - 14293, 14295, 14297, 14299, 14302, 14304, 14306, 14308, 14311, 14313, - 14315, 14317, 14319, 14322, 14325, 14327, 14329, 14331, 14334, 14336, - 14339, 14341, 14343, 14345, 14348, 14350, 14352, 14354, 14356, 14358, - 14360, 14362, 14365, 14367, 14369, 14371, 14373, 14375, 14377, 14380, - 14382, 14385, 14388, 14391, 14393, 14395, 14397, 14399, 14401, 14403, - 14405, 14407, 0, 0, + 13069, 13073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13076, 13079, 13082, 0, 0, 0, + 13085, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13088, 13091, 13094, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13096, 13098, 13100, 13102, 13104, + 13106, 13108, 13110, 13112, 13114, 13116, 13118, 13120, 13122, 13124, + 13126, 13128, 13130, 13132, 13134, 13136, 13138, 13140, 13142, 13144, + 13146, 13148, 13150, 13152, 13154, 13156, 13158, 13160, 13162, 13164, + 13166, 13168, 13170, 13172, 13174, 13176, 13178, 13180, 13182, 0, 0, 0, + 0, 13184, 13188, 13192, 13196, 13200, 13204, 13208, 13212, 13216, 0, 0, + 0, 0, 0, 0, 0, 13220, 13222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13224, 13226, 13228, 13230, 13233, 13235, 13237, 13239, 13241, 13243, + 13245, 13247, 13249, 13251, 13254, 13256, 13258, 13260, 13262, 13265, + 13267, 13269, 13271, 13274, 13276, 13278, 13280, 13282, 13284, 13287, + 13289, 13291, 13293, 13295, 13297, 13299, 13301, 13303, 13305, 13307, + 13309, 13311, 13313, 13315, 13317, 13319, 13321, 13323, 13325, 13327, + 13329, 13331, 13333, 13336, 13338, 13340, 13342, 13345, 13347, 13349, + 13351, 13353, 13355, 13357, 13359, 13361, 13363, 13365, 13367, 13369, + 13371, 13373, 13375, 13377, 13379, 13381, 13383, 13385, 13387, 13389, + 13391, 13393, 13395, 13397, 13399, 13401, 13403, 13405, 13407, 13409, + 13412, 13414, 13416, 13418, 13420, 13422, 13424, 13427, 13430, 13432, + 13434, 13436, 13438, 13440, 13442, 13444, 13446, 13448, 13450, 13453, + 13455, 13457, 13459, 13461, 13464, 13466, 13468, 13470, 13472, 13474, + 13476, 13478, 13480, 13482, 13485, 13487, 13490, 13492, 13494, 13496, + 13498, 13500, 13502, 13504, 13506, 13508, 13510, 13512, 13515, 13517, + 13519, 13521, 13523, 13525, 13528, 13530, 13533, 13536, 13538, 13540, + 13542, 13544, 13547, 13550, 13552, 13554, 13556, 13558, 13560, 13562, + 13564, 13566, 13568, 13570, 13572, 13575, 13577, 13579, 13581, 13583, + 13585, 13587, 13589, 13591, 13593, 13595, 13597, 13599, 13601, 13603, + 13605, 13607, 13609, 13611, 13613, 13616, 13618, 13620, 13622, 13624, + 13626, 13629, 13631, 13633, 13635, 13637, 13639, 13641, 13643, 13645, + 13647, 13649, 13651, 13654, 13656, 13658, 13660, 13662, 13664, 13666, + 13668, 13670, 13672, 13674, 13676, 13678, 13680, 13682, 13684, 13686, + 13688, 13690, 13693, 13695, 13697, 13699, 13701, 13703, 13706, 13708, + 13710, 13712, 13714, 13716, 13718, 13720, 13722, 13725, 13727, 13729, + 13731, 13734, 13736, 13738, 13740, 13742, 13744, 13746, 13749, 13752, + 13755, 13757, 13760, 13762, 13764, 13766, 13768, 13770, 13772, 13774, + 13776, 13778, 13780, 13783, 13785, 13787, 13789, 13791, 13793, 13795, + 13798, 13800, 13802, 13805, 13808, 13810, 13812, 13814, 13816, 13818, + 13820, 13822, 13824, 13826, 13829, 13831, 13834, 13836, 13839, 13841, + 13843, 13845, 13848, 13850, 13852, 13855, 13858, 13860, 13862, 13864, + 13866, 13868, 13870, 13872, 13874, 13876, 13878, 13880, 13882, 13884, + 13887, 13889, 13892, 13894, 13897, 13899, 13902, 13905, 13908, 13910, + 13912, 13914, 13917, 13920, 13923, 13926, 13928, 13930, 13932, 13934, + 13936, 13938, 13940, 13942, 13945, 13947, 13949, 13951, 13953, 13956, + 13958, 13961, 13964, 13966, 13968, 13970, 13972, 13974, 13976, 13979, + 13982, 13985, 13987, 13989, 13992, 13994, 13996, 13998, 14001, 14003, + 14005, 14007, 14009, 14011, 14014, 14016, 14018, 14020, 14022, 14024, + 14026, 14029, 14032, 14034, 14037, 14039, 14042, 14044, 14046, 14048, + 14051, 14054, 14056, 14059, 14061, 14064, 14066, 14068, 14070, 14072, + 14074, 14076, 14079, 14082, 14085, 14088, 14090, 14092, 14094, 14096, + 14098, 14100, 14102, 14104, 14106, 14108, 14110, 14112, 14115, 14117, + 14119, 14121, 14123, 14125, 14127, 14129, 14131, 14133, 14135, 14137, + 14139, 14142, 14145, 14148, 14150, 14152, 14154, 14156, 14159, 14161, + 14164, 14166, 14168, 14171, 14174, 14176, 14178, 14180, 14182, 14184, + 14186, 14188, 14190, 14192, 14194, 14196, 14198, 14200, 14202, 14204, + 14206, 14208, 14210, 14212, 14215, 14217, 14219, 14221, 14223, 14225, + 14228, 14231, 14233, 14235, 14237, 14239, 14241, 14243, 14246, 14248, + 14250, 14252, 14254, 14257, 14260, 14262, 14264, 14266, 14269, 14271, + 14273, 14276, 14279, 14281, 14283, 14285, 14288, 14290, 14292, 14294, + 14296, 14298, 14300, 14302, 14305, 14307, 14309, 14311, 14314, 14316, + 14318, 14320, 14322, 14325, 14328, 14330, 14332, 14334, 14337, 14339, + 14342, 14344, 14346, 14348, 14351, 14353, 14355, 14357, 14359, 14361, + 14363, 14365, 14368, 14370, 14372, 14374, 14376, 14378, 14380, 14383, + 14385, 14388, 14391, 14394, 14396, 14398, 14400, 14402, 14404, 14406, + 14408, 14410, 0, 0, }; /* NFC pairs */ diff --git a/src/hb-unicode-emoji-table.hh b/src/hb-unicode-emoji-table.hh index 1dd0b32..aa297fc 100644 --- a/src/hb-unicode-emoji-table.hh +++ b/src/hb-unicode-emoji-table.hh @@ -7,13 +7,13 @@ * on file with this header: * * # emoji-data.txt - * # Date: 2018-02-07, 07:55:18 GMT - * # © 2018 Unicode®, Inc. + * # Date: 2019-01-15, 12:10:05 GMT + * # © 2019 Unicode®, Inc. * # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. * # For terms of use, see http://www.unicode.org/terms_of_use.html * # * # Emoji Data for UTS #51 - * # Version: 11.0 + * # Version: 12.0 * # * # For documentation and usage, see http://www.unicode.org/reports/tr51 */ diff --git a/src/hb-version.h b/src/hb-version.h index 13db8ce..783e37b 100644 --- a/src/hb-version.h +++ b/src/hb-version.h @@ -37,10 +37,10 @@ HB_BEGIN_DECLS #define HB_VERSION_MAJOR 2 -#define HB_VERSION_MINOR 3 -#define HB_VERSION_MICRO 1 +#define HB_VERSION_MINOR 4 +#define HB_VERSION_MICRO 0 -#define HB_VERSION_STRING "2.3.1" +#define HB_VERSION_STRING "2.4.0" #define HB_VERSION_ATLEAST(major,minor,micro) \ ((major)*10000+(minor)*100+(micro) <= \ diff --git a/src/hb.hh b/src/hb.hh index 5b66ba8..ec24c1a 100644 --- a/src/hb.hh +++ b/src/hb.hh @@ -214,7 +214,8 @@ extern "C" int hb_memalign_impl(void **memptr, size_t alignment, size_t size); * Compiler attributes */ -#if __cplusplus < 201103L +/* https://github.com/harfbuzz/harfbuzz/issues/1634 */ +#if __cplusplus < 201103L && !defined(_MSC_VER) #ifndef nullptr #define nullptr NULL diff --git a/test-driver b/test-driver index 8e575b0..b8521a4 100755 --- a/test-driver +++ b/test-driver @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ scriptversion=2013-07-13.22; # UTC # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see . +# along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff --git a/test/Makefile.in b/test/Makefile.in index 2416988..d16a571 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -138,7 +138,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -364,7 +364,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -396,8 +395,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -514,7 +513,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/api/Makefile.in b/test/api/Makefile.in index b317eb5..5f6f922 100644 --- a/test/api/Makefile.in +++ b/test/api/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -356,7 +356,31 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/test-aat-layout.Po \ + ./$(DEPDIR)/test-baseline.Po ./$(DEPDIR)/test-blob.Po \ + ./$(DEPDIR)/test-buffer.Po \ + ./$(DEPDIR)/test-collect-unicodes.Po \ + ./$(DEPDIR)/test-common.Po ./$(DEPDIR)/test-font.Po \ + ./$(DEPDIR)/test-map.Po ./$(DEPDIR)/test-object.Po \ + ./$(DEPDIR)/test-ot-color.Po \ + ./$(DEPDIR)/test-ot-extents-cff.Po ./$(DEPDIR)/test-ot-face.Po \ + ./$(DEPDIR)/test-ot-ligature-carets.Po \ + ./$(DEPDIR)/test-ot-name.Po ./$(DEPDIR)/test-ot-tag.Po \ + ./$(DEPDIR)/test-set.Po ./$(DEPDIR)/test-shape.Po \ + ./$(DEPDIR)/test-subset-cff1.Po \ + ./$(DEPDIR)/test-subset-cff2.Po \ + ./$(DEPDIR)/test-subset-cmap.Po \ + ./$(DEPDIR)/test-subset-glyf.Po \ + ./$(DEPDIR)/test-subset-hdmx.Po \ + ./$(DEPDIR)/test-subset-hmtx.Po ./$(DEPDIR)/test-subset-os2.Po \ + ./$(DEPDIR)/test-subset-post.Po \ + ./$(DEPDIR)/test-subset-vmtx.Po ./$(DEPDIR)/test-subset.Po \ + ./$(DEPDIR)/test-version.Po ./$(DEPDIR)/test_c-test-c.Po \ + ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po \ + ./$(DEPDIR)/test_multithread-test-multithread.Po \ + ./$(DEPDIR)/test_ot_math-test-ot-math.Po \ + ./$(DEPDIR)/test_unicode-test-unicode.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -822,7 +846,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -926,8 +949,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -1095,39 +1118,45 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-aat-layout.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-baseline.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-blob.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-buffer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-collect-unicodes.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-font.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-map.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-object.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-color.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-extents-cff.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-face.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-ligature-carets.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-name.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-tag.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-set.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shape.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cmap.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-glyf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hdmx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hmtx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-os2.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-post.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-vmtx.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_c-test-c.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cplusplus-test-cplusplus.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_multithread-test-multithread.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_math-test-ot-math.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode-test-unicode.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-aat-layout.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-baseline.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-blob.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-buffer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-collect-unicodes.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-common.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-font.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-map.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-object.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-color.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-extents-cff.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-face.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-ligature-carets.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-name.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ot-tag.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-set.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-shape.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff1.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cff2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-cmap.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-glyf.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hdmx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-hmtx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-os2.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-post.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset-vmtx.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-subset.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_c-test-c.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cplusplus-test-cplusplus.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_multithread-test-multithread.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ot_math-test-ot-math.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_unicode-test-unicode.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -1419,7 +1448,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: $(check_PROGRAMS) @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -1686,7 +1715,10 @@ test-cplusplus.log: test-cplusplus$(EXEEXT) @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1764,7 +1796,39 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/test-aat-layout.Po + -rm -f ./$(DEPDIR)/test-baseline.Po + -rm -f ./$(DEPDIR)/test-blob.Po + -rm -f ./$(DEPDIR)/test-buffer.Po + -rm -f ./$(DEPDIR)/test-collect-unicodes.Po + -rm -f ./$(DEPDIR)/test-common.Po + -rm -f ./$(DEPDIR)/test-font.Po + -rm -f ./$(DEPDIR)/test-map.Po + -rm -f ./$(DEPDIR)/test-object.Po + -rm -f ./$(DEPDIR)/test-ot-color.Po + -rm -f ./$(DEPDIR)/test-ot-extents-cff.Po + -rm -f ./$(DEPDIR)/test-ot-face.Po + -rm -f ./$(DEPDIR)/test-ot-ligature-carets.Po + -rm -f ./$(DEPDIR)/test-ot-name.Po + -rm -f ./$(DEPDIR)/test-ot-tag.Po + -rm -f ./$(DEPDIR)/test-set.Po + -rm -f ./$(DEPDIR)/test-shape.Po + -rm -f ./$(DEPDIR)/test-subset-cff1.Po + -rm -f ./$(DEPDIR)/test-subset-cff2.Po + -rm -f ./$(DEPDIR)/test-subset-cmap.Po + -rm -f ./$(DEPDIR)/test-subset-glyf.Po + -rm -f ./$(DEPDIR)/test-subset-hdmx.Po + -rm -f ./$(DEPDIR)/test-subset-hmtx.Po + -rm -f ./$(DEPDIR)/test-subset-os2.Po + -rm -f ./$(DEPDIR)/test-subset-post.Po + -rm -f ./$(DEPDIR)/test-subset-vmtx.Po + -rm -f ./$(DEPDIR)/test-subset.Po + -rm -f ./$(DEPDIR)/test-version.Po + -rm -f ./$(DEPDIR)/test_c-test-c.Po + -rm -f ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po + -rm -f ./$(DEPDIR)/test_multithread-test-multithread.Po + -rm -f ./$(DEPDIR)/test_ot_math-test-ot-math.Po + -rm -f ./$(DEPDIR)/test_unicode-test-unicode.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1810,7 +1874,39 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/test-aat-layout.Po + -rm -f ./$(DEPDIR)/test-baseline.Po + -rm -f ./$(DEPDIR)/test-blob.Po + -rm -f ./$(DEPDIR)/test-buffer.Po + -rm -f ./$(DEPDIR)/test-collect-unicodes.Po + -rm -f ./$(DEPDIR)/test-common.Po + -rm -f ./$(DEPDIR)/test-font.Po + -rm -f ./$(DEPDIR)/test-map.Po + -rm -f ./$(DEPDIR)/test-object.Po + -rm -f ./$(DEPDIR)/test-ot-color.Po + -rm -f ./$(DEPDIR)/test-ot-extents-cff.Po + -rm -f ./$(DEPDIR)/test-ot-face.Po + -rm -f ./$(DEPDIR)/test-ot-ligature-carets.Po + -rm -f ./$(DEPDIR)/test-ot-name.Po + -rm -f ./$(DEPDIR)/test-ot-tag.Po + -rm -f ./$(DEPDIR)/test-set.Po + -rm -f ./$(DEPDIR)/test-shape.Po + -rm -f ./$(DEPDIR)/test-subset-cff1.Po + -rm -f ./$(DEPDIR)/test-subset-cff2.Po + -rm -f ./$(DEPDIR)/test-subset-cmap.Po + -rm -f ./$(DEPDIR)/test-subset-glyf.Po + -rm -f ./$(DEPDIR)/test-subset-hdmx.Po + -rm -f ./$(DEPDIR)/test-subset-hmtx.Po + -rm -f ./$(DEPDIR)/test-subset-os2.Po + -rm -f ./$(DEPDIR)/test-subset-post.Po + -rm -f ./$(DEPDIR)/test-subset-vmtx.Po + -rm -f ./$(DEPDIR)/test-subset.Po + -rm -f ./$(DEPDIR)/test-version.Po + -rm -f ./$(DEPDIR)/test_c-test-c.Po + -rm -f ./$(DEPDIR)/test_cplusplus-test-cplusplus.Po + -rm -f ./$(DEPDIR)/test_multithread-test-multithread.Po + -rm -f ./$(DEPDIR)/test_ot_math-test-ot-math.Po + -rm -f ./$(DEPDIR)/test_unicode-test-unicode.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1831,8 +1927,8 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ - clean-checkPROGRAMS clean-generic clean-libtool \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ + check-am clean clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ diff --git a/test/api/fonts/AdobeVFPrototype.ac.retaingids.otf b/test/api/fonts/AdobeVFPrototype.ac.retaingids.otf new file mode 100644 index 0000000000000000000000000000000000000000..8cb3005aec5e82a0ede38969f5184ac42ccccbbc GIT binary patch literal 7000 zcmb_f4NzQFmOih$f#v~8heYE~OkM~fi3vzZg3&mu#3UOhBxC}E$*zA5G-*npv(Wq* z1OiPr-M1T>|E6OIVoYK=iMm#8>DEk*p)_*5_ji4`g`Y|bMCq4o^$RGMI|Lgw17IuOpn~VYggXeMKnr8zamQ9yt}mEz_yyt z%7~H<5}EJXi}tf$pLG(cL(u6gD!wi6FV8nWL6mX>+K&{M6qH<8{xM`J&1nCpz0qEm zQImO;D76CZwdFPTBjh#x4DBG=)s>L{Y{RX!XiuYk*6FZU*rL`{jHjWU?*t>M)bt!t z+63B}&Kh@fVi`Sy_G@U{YV6HN$g&?~+FO9cT6>M-55MgA548UczXy)E>fN!QQXbLG zTOrp>lt7Db0o9(G$)CPOj4Ro9MN!ORAw56}8mSTsiS>==9=eBK!8`XbM}OjcoiiUH zXA26M5MB#YilQ!~A7j{rP3dS`Ob|Y0-eKNh8F{x)2w#8DcKz$E&Xdu)pe=EF>sNUL z=bJo{mFn!)uk$?4lLKvQ)M=8pQA$ocnd%OE>2@e%EwK@Iu&x8U({Eeo%V6J6AQyZSlP#<(oymEHP{fI0LjJJm8_iN%LWq>;U#)shWT@v(M_zbJbUcsvjb^GNnCqmbc8OJL)03Qr0e@F_ z$QQCDv~_fJKIRo(%)%20^#m}}Kp-3r`elm3wwv9LAAd=7j%uoJaJAasiDaL1`on#; z6;sas=o8(8L0i&P`k}wgTvPDC-OZwI1R2A`e8WhTQ&W%c)6~&UB(Dt#JC>=A3xS-~ zg^stL77+v?IH;+e@NN)6X&uc_Pe+fR9TKfbwdW~KJr-T9w*44W=v<{f{b6~v==v)p z&aJ6qzQ+&mUI3{IOG!oE_z|D6;&mMe5=$4 zpFg!pj8(!GN~o_v2+!E$KpVWM8;CUhK#Ue@OU)n z7amO5i@xpAOm%RT`gU8vt9il)=41FpFjP}iQ^(yI>P*UvDSKw)O!kNCr*8T5pI(0d zvxp*V8}Q>l5v$S>J>R1o{V20D-ZfAAV=={>fDO)RKSr z$w$7UV|`wK+wqXEZ?el5?hm(ikBWg|;rC7k!<~bZ4PD0vo-Ff325l=^qtmsK7bC-w z40#Se;A-yaBIH1>1w|IweAQWslzOUW5_P*wVzA z-eKWA;l=KOC$u!F>Ev|HiF47R$a~S@lP{jM&V+`OmrvaOaB8whO?g$+j@NpFOVxM9 z{Zl6V1(&A07!^$?oBX0P(Ag7Onwt9VuptxOc)>}-KD!uOtg0xM^rg$RRaxtEH}Pl# zEo;@H==rABQ`pjET`{bH#Lr6(i`a8wt;+jg0+xe33KV+nVC#cVKD_X*FUf4i`9k#e z4?p>5{{GzhUQ%pdEYadJ^OnB_l1RPk=eox}v^jq+^ z(eGgG_w+gFEQ!hV1!zrTGJOep5&a%`gT&<$GbG+6@nMMyO+n{6i6s&>;@iaMGiMKMwrf3Gz1c_+|&VrLkz}V;XwVVYIQDW32 z=PTGES}1Xi#Pt$ylekAB6!0h#QzY6XqK5FSkeDfPEh8e&wU#DvwZtrmyBTBujjG^y z0x4b6@ADM|9KMJwlb9_rU0za_Nn9^6TVk%nn=ud0ND}aNi7F+7zCq$fi3y~Fvz9UT zJ6xYA_A&016#Fe<1;*auRY0pyn}j#_w*Q8 zF^^^S?m8E=lxF8)H@<(`HN^3oe?e2ycmOL8LuQkrgjs3|m=2=7NB=4hQJw<7O_oG+ zf+fLZ;%MsraxXjuJGK{Lo^~oXz4J%Zw0T4+(hMEt9n&~eG|WuF%QNIXg5#M@rZ?i@#i3J5Z@y^{5c= zO&r}AuPFJAO~fXQG5GS%k6a=6@|^9)kL{HkKi#?wauecjr3D;&j;hjqaHX6vDQ3v>6lto4h zkyO$ZtQqM6MpTyYyv!qid;weUvp8q=SzH%qDs2HQrViS#%u)_Bluu|q5&kE#Nbz?} z9~t@zuQP*2CeY$|z&Nc#?dh~-o=yVYfpbCUCt|I74SEs!j_WjPHIbe+XbYnFtU>dB z@S;H{(#`ZEgHFPF`nf?{u^+r=(8+WDC@RMK+~B8>6;YHvD5-QKBBRr3WI@z*dI4Rh zFwhw2iJ;zH88np!0}9r&FfVV9<+cu`*`RODIG60au-cSEEOH)1Vc)({#X~ zO|-xiG-xv&Fhvd8GEXOg>P){f_=%Kje#oGca7_0aw3Rkn;&d`)SY9>wDU@gV*r3x) zBMH|V^a9$P6!&crElB!zgMTAwNx#u)1S8S9z@QaMwJtGe6IrdAL7Tx}YtR<5SvMPW z0xhxbFz7_ew;nX;BvP%0pV$>QSR)2Mc`gpfSFZIngP#JMUl?>MZi+D2_-eolVQmd)F0?2kHJ?#i6%sTItt*NL--!*8=MfI)L9{YJev9+6Y^@csJo@TY&Rx zI~7SPK58lL!Zv-mjcjN-s1g>~j@#&4gx));6p}j3wo3Y-T{6OcL`3K0p^sB~#qp@c z&4Ky(@P>a|XfxzBu>UBmvG0}OR>Ni)BF%Ev+k*EF_&yhlYx8zaUxP)?ivwRb{9(^E zjH={s=aZxND0rMrz0Z}Um5|OK@!D&m3UT2v*)NU0j~08Wdr}Na zuO9Z_4p{{%L-&Q_6`u=7w*gZ2tqOhX5xM`1H@oD_Yvqjp+_3clMzJFjHLzO;+Ku;G z>Nj4ACFrBaf39AO;cq4EG|Bk#ymbxEeL2Rd#SHWa@T@o!9Q}BVim}29(Jqpe&e5B* zTzH9v4Uk=_Qh7aS_;2*uJ*$u&>hUc@tm7Hts@5~3;lH{9S^4(?*MPfSwz>{X)f9oFVecsdcZck8pQLr!F34E_5WagLWgWJCX=OX8 z8Ij>?uE!g%-6~}8h+JJ9S)P9}G&uI(KCT+Fr&nRTZ@tV#Iigf4GoZ=6 zF012uR2{FJBN&y}4*OP(FVFEXR$LJ(tnjkkaBh8Fc|R&d?6hHUTuIG0JHPXt@0{Pc zz31Kn2LS1)M35Uib@fmW27siy=q+hzX>QZq`Yj4zC_=oap>5R@uV?JcM0^slySc5b zBGkJx1wiOT-02Vc24S4Pg!m%je*b7lE1cxgKTe-p907agWEx?{MH z`5>=17#cHYaxTPp9;E&OzmIDKiob@~6!eV^@>PNn@fV2Y&Awn4f6DYH)_)7};=zI8 zP%H=m#Kd179O@c;ulvrI0J_`AXF2c?j9nLg6<0tu6v1;*YjH_h`VwZ9n0yf!)Tzu` zW{+5HOT8Kp5s2vt00;mB&|~DoT-@2VRye zMU)4ye4(SDP_N_`EUL<@tXx!8pycW^lq$EovLe%(X0c}ESGXTtq{tbTOrc0Jz4Xb^ zZ#eFklc6pC@iW60M$cXr3ucm6A6E9yd=!#f$3K1bgR`rA!-0mCZ>ndH&7{1cN_#sR zfBt;+25cMFV9(dF=PYQ7O4&I`F5atz9ZC0lH6Soxdl7iRk{Ki>Tx62OETkjW2V3O} ziD6|5ujE47q6BfJK7dHPi^LOa#fzSRhoG?uG?LBmG*I38e;{mRa zgPgZ-P5k(A-|nxcm9t+FPkM$YArsm`ry&4*a(LkLK%c}AXGM&{`gJbGIc2%7&%?M*7vr6b zD{;7(;FRl`kYC@bDqcA(hnEM!a=qN^3otQXTXCZ+>@AZSw5ffl+f@gv_1b66F0Z%R z#Y9SjConqf#RMA@32@b1W%pc6=WLRhP|%{TRM`%Xoz;50c85c*W791voA%fpUayPk zXE`F*=lkZy*(N!ezQn~0@eFM$tF<%mhQpMvO;sFhM>uQ`V+Z%~^uu_Hga0~e|Lwp# zP&dWxXu(vtC=NS06o=wKhF*`08J$gSY8_H^AVrgt71g;|vXd3#Vs=Ifxd}Pkrk<|F z-_Sp0fQfeXG!zNf2EBHsAX#~0O2Ye=@KKj@oUC?YN`?+KQVbsZX($%1dC+ezWl#!H zPU1_sXc~w5R9ba;zFh)CDV*XOA6wwCpm~Z{8y6R8meBfSRemP<#C6Zql+Ghd=XU1K zOC?LcWo>#LJ6<86EGhdB{{Wav9 zW0A~8Jy|I=6@~ND$V#oPD$df*N-dAaSpmK!ldysK?-pHVslF@1%0FF>XDnNmAdDiji8Djllz?%4CciK!w8q zC2$0GKp4j0GJZW)KnLuGPIwlo_!>9|QP>CPG0HO22^Rhk$btis#cHsKdqKiEw&>?V z2KPRs>8Bw@e--C5E98cnl(@SEn|XmSPG)2{^@qG`L_-AgRN(% zYZKV|eWA@@!)Fo&Giy0Ebq#H%{}OS8dz6u*+K{V7mVg`UCHT_GS)uB2F83J`COe*k Y@|&OnsvhE!r*X;Cxa7@pnN14t4}b>!Q~&?~ literal 0 HcmV?d00001 diff --git a/test/api/fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf b/test/api/fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf new file mode 100644 index 0000000000000000000000000000000000000000..906bdbefd595a64a682884a2ffd18b7592f7d530 GIT binary patch literal 2736 zcma)8dr(x@8UOA+?k>9w)N`-0z0R0{64yPm}?UEir z4ivj_QKsdZ?Co3jtUx&# z%Gz90fgR+D$SNjrp>3vIbHwU+#8RRt*=J`R{LFEP1W@fm1(Sz(KE+GIP%c0@ED!P2 z*Wnh*T_|fQkja3esKrLs$)%a!HQ9_Nn`2#)In$YA;)vy=AgV5iI&nf197I)9K~#+- zh^mzaQI#@rjYc|MJUxKLsO_X8e|de|3UF0?;v2jS5;P&Go0-vsB9TP-k#(!)4MO&6 z!U*YE1S$zocyQmqzd(Q)MBhTCPz6-WcGh0VSu-s>6S+PjYAsneGO_7ws+lnsI(T!g zgNe7Lv7DXdOuRXrS!LmQdvthsety2eMBEH%Y;O4KwM@R1w=hX&hndSmw>Z|uGkfsJ zn3djoR~i^E!&n`RiQzd@x;fXxWixEX|Ju%KV|a_1dEaIwn;Ut|0mE(S;Vj3nXyKSN z)@kE8tJz_g#mAFn$kAdlo}+z5?Wrw3-E8Bne4*F&%ClIv%WN}q*0hC<7|LdHCcDM4 zu>C!g&9ty3kz?@`c`Iu(9V@RKCX1%VWk-A#>!|Smo8mb6s~VqZhw8bI*D^V0?69l>hb3 zU*5PjcK60u?XM1v3O-l0LqBD-%Dx!wIOVU^0R#>oNPMvkyJak{goqjyiYzSLQmb(B+zest+se!$tkFHhf5*y(J`Q;JJI5V8-5#{GiveK9{} zvWpH}b74$0e5AYJ{M>SeyF8%JKbty`bw>F-X{YY#gd(dhvnC_>CqlPwA~c#7au!Gb zFhPsmvQ4!6QvKk-vI$y9oqAJOUQ=CKmQ`1u8GOF8`s2#p^4_HropRyfQ(eA=&Caqb z1N}i+{)@`Ns$r$@&IlbC0EyyOx_Yp7Xn2{Ct~a^T8#0ulj1G)~@q3DMji0sjwPak; z?=LVEZLMr7ZZ33{oOfMnxY(rpKn&O?1Z-DiR#~fU$E!{qZ?8IKEz-B~t!(R&m{NWB z;F+5pH&eUyB}RKfRdL17D$C028jG6kt`cRPqOG~R=}EV{++F4>ch&2gi<RWn4dRv>@FE0B=@pV`2_07lR_XHnBb8_p4?PEYhX zpDFkEpJzW`-g>gWp*h4-o>yU9KDC5q3fiuQ2-p5OsTV^OZ9i`xJTb@6+Ee>1zCUpC)6v$FQ_AF;DreF1!h-JeMIqNNT^|1QmeSW(be|yI7Fp0m$ezfwI=dt-{*Cx<$O9UZjj?oo`Z z9;(M%Piiy|NzmjI?T>ysZ2v&KLR3U_jBZenee&1-KllA@X#=z3)3+~*GW{cQME5-{ zx_&$&4@2_&i2N~qU*P3J5AEBNC-4u1sXwSG_vH6d_5AktRezk_o?KEgDf-H`CuN8H zwmb!?^bxtczdP&io}*KX#Ybwp!XIV4(L{?wD*cLTB==lWCm~;y_q>!k2$9rI)T%wN z0FNtBkbpd{F-?A0=^VI%S&N5 zrJdzvFZsxUrw-5RX;?%39<~Dub|?f6tdI#7;DLd2I3r;_L_id*eZg-;E*8?!KNZZ# z8!^g({$|KU%0N8WAPub?;*r(lv8AJBl?RtceKdsQFW>VspvN4V!4sK_w$+{;^D!G9 zqZmj+d#ZS!Uo}^t7R$(L+hL1UC~S za!|v)B1K^Qdi+JfW~_JzY=Z>kUPkod&7rM(CEgpAfN?t^1^3~w0;?x$2G4XJI}tJe zTVp{l-g6c%3>D?kEV6l9l8t5%w~4_ z(jWDQQ3Nq+4E2Xe38oq({s3c;XdskeY7A6O6k?5-NQ^NC6BDzIYgoTKyHrAqi8HzP zobNood(PQA8{NJ=N@esM$uwtudpm!&V(G6$^cInHI2vn+?5*oBC6c>fdpd4tX?j8W z3iuP?LrGmr1h(|_0M`OHCt>hC@A;HSsRyo28qT1%gFXh{0zAji2GgW$gQ^HVuc;Y& zM@3>Ka02JmrLByU|B@nby$nBRq$tD~doX78*>OFlnVD_2wY*dB?K`B|!qZ&EUZg5^ zm{qZt{7{a_YyI+HdvfQ4M5WfBT^>mG{_HAh6UrBJ#eSxO6vjOI*S8|!NMnJTr!rjQ zj;$qhL$eQZYd>F?u=eRZHk5I6Bf~eEam!9yw&v&wo-(JuAM zW_R`JPS4nx3uBinr$(b4p!dn4?VD7G7YEfvL3aKJwP|A4cPgV+NeotgATa-z@|s|sZ{A0>zIlTS zA-S)-d||MBcx3vSk&*`|1Lp8rZ9!9RKX{2ifM)P_D8>>(ZUBO7-=pJd@cA zULI6?$31By(bruW+4@aZ&MKc@|MBdpA^Y9XhnE)l)a=gTz{I7~XU>OS@v5HpQaxjv zD{~b&7S27Q&b>I5HNRJh;WkR1>e#MLQ$4dE|AS=tXISX^m7}=(1$n3C&Qz%-PXNj! z2`e61^08ORgXAO9F5t}t$+{`RYG748vaHCGq`)W6n0eNe+Rdh^Ngy^sVIq9%qBo)v+9N7d%An)_p{O&e z1}fMkDyLgTU8XJcdr?>JiSbZ^ttr~Qw3MBsQQ7pAu3Kfe+YBB2O~0uNYkxy8)7V%wHNV+V7Jk2 z7`=*~A47+2)Jjok_cGkgFJv#jFTao#Mc$LN)2%gw`bCvulK*fgVRPJ0O?1OCVc`qA slU|Jz4ODXw`66mRE=T?vc>d-28yn+;nE(I) literal 0 HcmV?d00001 diff --git a/test/api/fonts/Zycon.ttf b/test/api/fonts/Zycon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3a6761b8f7878021758e049c9ec79831a4268c4d GIT binary patch literal 21036 zcmch92Ygh;*7(f5ckh;LcJKDh_LALA&!+9B5jG(SA%qY@h>;RP3qe8=kY18d1VKba z1w}<4Hb5UDPko4r4Y6WFrKofe>768d@BiH0Bm~s=z3=z?e*b%S=AJoo=A0>KX3m|N zyVIuJHwH;j6CzQd|G?zbhvp0`MF^K5gvv)v7%{nA`RjHF9|M_4<6X>sWW#WI?p1_DfI#S_)%_3g&+o4*WE{&a5DSHn zXDBhjW8s1{VM=iwcN!tFFvKYw7xq;ljEY);ibDuKWgr{{J};N&Ab=YSo)n}3$`yW+ z>rp+S?4tY&Air_iRN!UfxNsgs2yfuI5#{9M&~p&rZ-Cna;bM9k#{w)7^hS+>2`Epv zjyo-mKqX=kiUWKPaF2mw!0i*)AtgLN0-*$ymd~Xco)UOgAu5!ADK7|Mn;UtOJj<^OPUXgi8sr;Y%8NoazYiCA4)okmEFj9TFqt1~l*Z+V&)e9g@NG z*|0+jgyN&a4lxK{HisNSa(G@1IfS4^u0X|rLnsoSnvg>%0-lbLL!ia@%5x!ykP_jm zVaHb?zB(l2_%_E^SA`tZA;QMw37Nt*As~s}A zRw#makya*ms?`a4tfdO;oZMg7r0bQc6d7$cq@L&pq=iFqzE zM$TS{k$UjMDvyS(@hIIye3Z)&{KTb?Cf>I=t-(yE*+KSo+N0awusdwz*D;oucE81A zp^6iX32mPkjXdxJ`rY#S{DPU;N=Lvv~?3C7tEDs zFs+Ayr68b6Rkyi740TPHtZ$p))g@EUKqlILgzQk6kg@iB$RfGR=CrrJ8Etctr4EZT zm~M4gh)<%UT*2*z=qMu7t@5zN8kY*c;E9Z3f0DZ+cf>%2&@qpR-NHfY7;B8lON+%c zIH4e$%F3p4s0ouaS)$A=QMSnHm-_tDOlf=ulb*r&7=NldB~_iKE=blVL0#y|;*If; z9b>h};(^RqYMpim)SzvQ#c75*b&QX4>7kaR?^St}Q17n$B4eb`67HFF3=NIro)r@l zGte!JiG^^DJ2EC#>WLiYQh8#OZdDx=!mW>v8VSXUHaje%pr8(i%{dC>SV7)MkZS_@ zbx=J~NxI}=kS|S&D)ny2ry^aRQ3d&q^hNl~p&a5&VOII1aZolv7MU$556*e!xrk7q zq2Mq#>_JgNKlNEhkF`P%Ergk(4mF~gXc2lDZ9{LP9cVZD0UbhTpnoHmKTYV@I5Yei zX&Tbw@mmQwse^9j@%vSN(n<=2RsupjNtegtvXXwCUn5MW{Cr2$>HOe8Wj)|v1cdPp z#yA+!?A>4(M*#!lD8!PX(G+N4;B$41uaJaSai_!KR4a8tx7&m5*psHSXLwVw5AZNP z^4-8s@_4(dBNU1ebc+XmU2+87V0$;1e1DO0kv@N6uTws4>DbW%9Gg{Z=|c}2A~cLj zpFH-}`q;=zB<&Us$c~TcQOzFkY4O(%CV8rZh)POqE_WB1@^1Frvb#!CP$)0#uP~|1hT>L$+#C+bWe{`n>Q$jib&_H5 z@6JJE2LAh@QGLg~WHOnsJI;aWKKOKH&+@$9yS-MuotmSM9d`F9d$ph-QIeq1;vB6$ zH7a^Wk*a)-C(3Q4OalW-X@4pO zRGH=|gENXzD`XAqj(O6-Tc)xL@E@t(QNbNEHg23TYvacI@xR#Kcu5Xh73Imu@HqYc z*p8SN^>Rk1W8`{Kl#B;tQJqhi*^5ysX{Rs1Of(#3mv>>#K$xaIZg+~;?V;Tsn1Df{ zVA2iyfCLzjT3Q$abXwX4^faB~1vPVfyr88a0=L^Ari3V*J@pAeq0XE+~D(o z8*Bvr2XbN755fGzAD-_?9ViqpPYrY+N$B>abg}DX4Kh;PkVcEUvg_4$(z~GyemCv$ z`%=Mv5PG#b_=V{30|{k%n=O&n7#O)hua+q^GE+pPI8v)62}&M83n>9XkQSx1B#yv% zHDl1wi8h4oh0!l9ZaEgh)9b}HePp&IhLmaaj9K6|(FSP`je;Oa3KNXTD3{1} z8k0t?cgA_5B4rA_-XM!JYa$tu(lMSS35BMI)IggYN)Z#OF~`Xadc8sx8Rdy{>eY}= z2kDI>hQRm7WJc#Mt*BU(m$x-D^SgrV!t(OM?1JwyGq>jDEvl$knj4)NV=J|olatMs z(%`f4W&`2q6&0n3Qb`$t?iCxa)w*3CMWoT>v@`MulgT9)=}IG`F?-Wsl&jp)E{#4h zwopJakt(PLeXfhpnBz50S*cbecUjC5hOr}tW6=?Mnox_1z*-uBhM{p_Bi#oUQZv{` z4}x{H7Hp$UU=tzib?_PriV`*~LnEli9i8H_hm;Idf;TY3+7ec^P6g#PQX5iGJM;yi z)+Y#2fzOYnT7E1AMeTy2J2)L$A+6N8l`gGP=u?sq^g${fACC2h06+r96M|LY40R6p zFuX%w1BIujtuLqK60%sYDKz%ITbF*1PCF^1_N`#Ad)gnjZ|u}X-h3qDWiRy5P>~Q z5a5ZfQUdS^nBYV--b_lPq?RPQSENuzR@KxFA!X|a{Wx#cmrCiBVn?}Mkzytcpm&js z#z2@;6!vmQ@pzT;%T@D!97Me(EK4Esa#PBLC3*d|R*Oz&v1xP`t5#z(*SlA(I{i4i zdEG8tF?lk(W%p`a%Q}X|+ZvX}4{JzGoUwH2j6~DYHxrkyTem#Xw2pj5Bo>QAk_chP z6UI0RcTso_-ghIw`gX%umxD^t-DnJ&jaHyF=vDM4`UL%ge#aO`;dtB!*Wd|w0bY*R zs%hQ9@J^qligFGqIM~MC>H?5*G-LRFF00iMo`n1AsqC-WXq155>{zb03 z${rdZ!em0Iv~EfGN(&7`{FDi~;*GzKcb$$wsw*4nP(z1W3d-9h7pf6PF_6xWV&Rb} zmB&EQpqQ>s$}kxq`QmhCtg}{u3~C_Evx_pU)!|y|n$aN^eo&uXIrn$!JYSii;gu(F z@VV{Y?p@q;T3*MxD503)n&~tnI+$mK%Eg-jogE7J1Err1*%`dwNg3wm<1+?7C}6lC zyp)iRY1B&4TfTleWw}B$;hG1P3(<${A->B%RfK+>#K5z&hIvZ}bbzN%O$}9Ah%(fm zkUjW?8iFs8E|fz)VP_MBa<27+@DLl$WLIv1Gcbfo2;(6SU2rJLEqqEy90>As%I&Hm zXmP4ALL!n%VbsKHMG{eDBzUYeS|^o8SR5K{GO@(&B6KEy+fYlAIz!?yM!N*tM%kiO zBF0r!W{PjWTijQt8_39F$I}7@RViWQsz?PTVTkDB;s%jSE{~6&ObaB8%GUP%ZyQo% zW+uX$RW`4eOr_Rj5v!s~Tsn%91*r`7{VGSk*4#57ElzRS7uxN(H(ACct3{NRkicXV zt=0Io%HkZOA=n=45fZ60XKWoQiyygVd?{bw>fFfVv(-T zgEMrs26GncAs8_|IWv7ltl6%!+H&oV#LTQJ@=3W`{a|^lUMG!8_QVbi6!a7XW-RR2^8P)U z4auf46;lqi?HXB4G4{k9W3Pv^?#;0ciPu;n)UpBD+WFq}H0rg%_XcVgS9@yA>gnYb z8}LNES>z!IDG@=6Oaw9YaLNLj?457a-~1@>T%I~HQpV&bCO<;HM@=kGjF%|l%RUuJ zDC(XGl?&`rMU=6}u@?ERN(|a7fO)8g;5fs83ByewlvO9idh+lvS-W zv{fn}4)hqVl1SxJW05arEcKy?ktrmeKu$(oZd8s&TjufPI9>X-cRa_dDktd0l944D zYto`(gWr=9y*$fWU8|BAlgrA=rxA~c9GH0W+scP!Dp&u&GuxFSD^Xb5%WQ@vJCP{S zXG=RQCaF===d8gW56nxe)VR`3)>4@+CRi13l4~hSuJYVtj(s>$W^Y$XRE)hg)(|~n zaJns1&@eGQws(XGEXSuBOM5S=a(#EBvB8{cMf*J zno0a;)HX`5vy0V!Xmp86Zfd(vws`Q}ZnA_|6|CVU!ZFQf>6~blQ6=6?Umaq7|8^B`TfC z_WWvRPn~tVO|JLTOi6y}veM+*!8OmDS*r(2;^Rh2q>{nQ8fHDJhF&a+kVxN4Db2`O zH^Y^ioY?Kh}oo9?UFj`uc zoHFg7TejUGOez^IF=U7hB8fz#k4htRk2B`;(*L=BQNZ#_|1k?7GCmET_`k5Z^Sxe8PN1#2GLlj6y$I~%26eNWZGp3#Du)U zU6TiI6xr+U8Mn-nRyJqD+vZ{^l^*NKigi`(Ge!8b*!v~s#V^(@l(3_V7i(k;k?2UB zYE3S8YNB1Lc%?Kgma&RtDsAk9`)XZ9a<#EEzj^)Qw2Eg$${JtJRFT-8Q$0nS+%q{P z7TzvEh~~c!klNmfhEtTd80eiFIL}GFva1H@I$U z^+Kl9KZ|{0Xc>(8QO5lXd?l~FAuI98i6zGPtrZNd){RN`%^qMV$V*|wMw#Rj zcRZ!l6dAKNRMp;>!uVdJdh~Er8s&rY%W7iTXNC@ojSwj*Np)k%^NI0U@scXL2V!W;_FIKM9X+>1b;d!U*SE2Yg{fElI$gNhdFDMoR*042PmAeDw?>9(duQd#?P}_ zJ$k*@ZZt#{Y8kb`P?0fs)yjU>cvyL1VoQ6xDT{E%dghotDH?6{a%*on69t2v+G^~( z9QGe#JsM?l&w6vROkq(n@?LrsEZs<@5>ae~#x9kKq#{u~qjA98tP?3>C6OYU6p9q& zn_w*PotfXkX$0@Q;13jq%qRhQLvI-=PA}LN?vQCkr#Sfq7T(HJ*%fx&X%h2BmoNmb_pv>snU17hy^>tn5tj%e2wR>4*abm?ETJ#7qN+kMC>?U;QKXUl?m#+n zI*>+<(ozvt*cD)lrD>dCNdX+Pq`Ge+5!>qPy@wCu{p{(Fcd{q2VduwK+x{c*O4T%V z(*o7(yMlL(Te1|tqp?~w;K;QYSFv;IGj?JFdt&Fu>}jke*5KW2QqOG-zfO8Lm+gT+ zEW7dWLpRvhA%VpLiD2K0LVDqB;fp8^R(^9~U#1k+8Td6Zu&s3Vu+iv7U}3_$1Mi0n zX7It@gVzf1u}_(iPCMO7K8-sa%tgTHU=@j98*urQkO?7R=$)Q1j9fvqPmi{^M*4j0 zyQ}VhvaCokymF&n(z|F-ok%-y*sxS0qbaAqqy52+>chirG*Lb+$;@b;@wBJ3T${)) zncqm=J%*B+cqTdAHRSjqP5Jg^8Zkdpu>6GB)I zPwPp@36GqBwQvvI$%G#$U`NVId2|q@{IES0S_bD4d=kG07RCKml8^RyoIpairMOe$ z39U)pR#fuxigam$`^7a4g9kshZqSrb(c2KCviQrXQ$lg?l< zMW?zGEZP_)6CJ%~^{hpKfHvDAlTs!+&+8UBEcG&VgGuU3ka(pISyHjoQl>QNZH#cj z`iS)Br)4_4qKP9XJ`iBi<75RZCy$Jy+;o7-tf<}YV^V9BR1X@vBw8hbW2um+3u%Kkpr_{7 z&YV58g)-$O#fhQ~dPlm!P&U7MGeY?&j^E!W=YlRbqb0C!xC%Xno`jXL7h!E|3;Gw@ zjy^!UV88Giv={A%-NIw&cXSS2hTV)HCa@4ou>xzc2|I8M_To&OhYN8juE5oJD6Yfx zxDijmGx2=92rt7c@uPSRtdzWnU&Y(-zwu7|DgF|Fi+_Ywlf!&Z_Xu?YzEPotbwW)@ zS)fsc(C8sefrge7pbSpl@%xm?gia?XGWeDUBB39aveQ7NdJ>^1pamS!6gU&n7#>M&?2q~^g; z>OUpag(Csqks?H4=UIoKaMD|xc}`(sk1&JJ4d}TaG5`;k2XY3vbMd(WIsx2 zp*KJ&dC0@}41fWEA`1N(|CtVI0qFQ2&pzYHTvq30;{463ZjNJ*laeb$*Ybos~Nqhpe8T7T%Oyj$Zs$t#pe$kq>IW) zEJ-UVNQ)~U+_P$!4}iP8<$W9Tt%Hr?x?cY}ivyV1Ki!*ioc*oWsD%9X`wUI@%wT8h z?HY|>QrzRy;}T3Q8da^}dYd&$vf+!N=r=hzFWEq>jyYSGGqe?&{s2++eC78MjDXJw>|2P+OgfkGS132d-R|P+7$u+$^ap zVYe@dE-oV;QRfC6!5^4ZuL*CJdGn;i^Zk+xfp%Py+cTGRRq2yrg0pkg(GFZ+MJKp% zrqrU91s_opN|_SZ5_(Ea5sfAf?b5iN?TTc(DLGD*fGtZZmrgb@hT4|gdrFH<6N{tk zDlC~b+JK4i*_1N3jIk)sl+_Wbb;YZfmdWy_HRY8z)Oc59rq&ORiRoMXNu zRMdmHwd%$I!4Rp{(!6Zi7bEd*sn~~rldlu zuSifD+?3IwRYZxUF&P$RanKZ5Ua=vU(XEttIwnk1e(&m1^BXUszQ)zeTp*SF%*SBz^FbDw>edtEtHi zW$R^)f%GZ*$;Ix`4SAI{Wl6<_L~T++Wqn+Et|_-iu~W*n(!~Ydp>%pubg?wgWHUu; zi<4p)k;7o3C3@PSHVsH-G&-#*Ws6YZjgB-F538t~j+^V247&3^^4Zt{^Cf0Tl)^pn`!7#w`8^+u!^+$NzLa2`kZ)NG5?94`LX3 z{5lvPh5SekV{(S0>WpD|A3lN;l5GjhJz8FTPwebYbsH%^x2eejn0z#cI*YItqq z;K>70j1dlZT6%&&dDlg|Q@BD-@U)&R@4?%c6^;Orp4? z1!Kp|nlnFILiV+st+S`u>!3N?zZSB_=I)GA{1%?TPZl=AA`$I?*VlH$A@Y z{xrEj>72VXVbJKgedWEKQy++a`c>z$Ct{-gCK2dg?YOyf>+-B(lgt!vms|SHVCU#e zDoex=qcl#bG}5pqCRfLU&Gi_1Lbyzr4rj?!&=y$5|LiK2z%C|8Oe(N&S@6Jj!F|Df z-v{>-FMszPJ2ChuH3na8d-?<7t)2Kf^%{F`a3+43okT3f4-rd(v!mG6xRG5Qgq;ea zU)vb=5wLw3q!6AK{t?Ye0fd#Ri=$9J&mYv2<3w}!^;}v)X zk<8BiX7>zTQM@--9sK9+PsT>|Npkg);{!IMu}@B3mC0nCS03#w{WAT-@`-O-%guKB^TFY`k!Zw??J-1SaP^-ZZy42J(pU>~}xkxZ3gkZ8j zPge=~(=ED?S>=MF3BZ6M?HaoZy0;6=3L!KNCfFy34H|A3KdDl8SNRBxKltc8dmu&o zy2h&sUARZbQ+oLAH!lzCTV0O#7OT}}wb{Uj zht*1r+;DdPTVu9WkGQdD(e;scZ5!XdnIQY;KZutv$B&k_ZzIU6=}*7B@nyV;m%$f; zm(eLS5@0wY2`&2?)HJ5xyeC-Op>vi1V`%dyJMaY1Z0LXmpaokyU>fvccLywnwmQ-Q z%TPIL4a0DZkAV}(A^vctkHIw^FadBw2TTGyvje68UfKZ*0A2&I1oERonfPVUg-K{K zng!$gI5=t8fTkfEdIhDREV$EbDwGOq2Pw!0*pWbGgA-5E8Vj+Fz=6l`@qAg5;f!W6Dnp4O`6*B@lYnk4(DAi%XE^na z__RC1=`g}hg1X{QF@(!>dpNc8MDowMznQ^Z{kg|M5jYJv2e{{c?(vHf+z@c9e(v$> zwx9EUSq5%pNc+G;h?~Qo4gZS^1CD{2g$~7=s#0vWE-F3_6t^n%PdHqa_9q-smHsCj z*$?=I&QXV1@%*TM!0!$moE3*Ceq2Pb+5&SMT-!oE!cPzv1pCBs;zi;g#V4f2(q|*h zk$dFDjFHJ@HZfl?!9bX>!@oVmBfDdE@(8#BA^(jA%t%>(~& zb}IO%+4q|Axdtw^N$|@HXlOJn0qjBRn(}cLmVv(lH-P^E-UR+Zychhv_#pVN;y1w` zhgX0v!&y!FFi?HggdIbGWi0Cee_%++6YMmAFSENr$Y?I5NpNrj8tece-*gCx1O|^{ zAi^Kw&EW6D--G`HJ^=nk{66^O@Ppt>JA{1QBybKvp`s>pqk;Es_7eD0*~h`pV{5^W zX5;@4tCc!xSbSU`;FS2ZF2KHyFRB7;J-#dsuo<|W2(WI9+X8Gl7GDmqW3c>8fZdAK zCxBjJKDpR*3>i<%i8>iT=dk8<0GDI^g#dmENBj}MUtj?n!25AK$-`I0JpQ6SfcxXq z8lb068s{8023QX!fxiz+uJUq~=L75;SaT}CsU-U2ODrd_`S={ei2yo}HNOY&0L+{Z z;B`3idH_~Zgz(~f00#v;d@X{ht{IzDyOYiKxbQ4ykrFaoC)d_Z@ zTXz8ZA%BPZqsa#L$svHl*XLVMH_DwIlmR$y8$d{VsDlcjy%o3UKHqW&UDPeQ)7|(T z0?vVs8{NV0YBzqTyYUOrnQR0y-Qt$o?4BJWGA-ISajL6#s=i^?uCwcYNZ4$INz|A2~ z=o56E>GE+LjwjpUTaqT~+Uc7SQC$(}Fgi+7pYOUM7*u}t_!W6)1ezB>O{DP1!5f0c zao3NWj_8aKxMGQG7j6p5N^hJ!N5IPVF|-R>d>3fuGq*JNn{F+Afv^2%>*&rFWV*$9 z`M8ybQ0Mgx0G)LFvr}6R@pQ`$b&{bA-RKT=qeDF1id%F{H#(kkCqElc*K&)_+l|iF zjgF^}kK;!Lg2uRGEa;lQh%TrLC_;~OE4h2XCR)tRX+eF8&_+1_egWPPpFmB-u%Qiw zXc-)%dk0=q-)cf{6>@iR2^<3x(k!y+9~;&bax=JrToE^(>(f$%u5uAv1iFe^Il2YS z?gyz3L3J;N*UXzJ$bT>c3(a}B2(3e#o6wSeTnT66Oze;B4Nl0BoQM;!Ti6fTcVH%} zYWcq?1y;iuz`repotwnX{clTwvvJ~oD21Ed&tCnDQY0sJwnbNs|3^ST&R)EDb^tAm zSlRQ!6(oIZ%PDQ#eF4;rXH5^F*O-YThAD*T<<)MAd^8IlJ$_C$Z$W3C*U=M4G+K~G(jqI} zwJoz?=V$H+?xw8GkP<*k#FM)6(<~nl)2~wU1LXMAg9m@nAaY?+;{PstqWV{!969tK zVnj4M*1Y`nub=rwk8c>8re}_RhJ^d}{dRH7mVdwU!ke$WvUU5rq6n0DOlP|IyXgvw z!i>(NU1^O*XB$fD#k_LvH@uv*L=ky<^WArL96z*AZNQgo8e3NXvOc8)JsGL>3CElNx79*Fd3XKOn})P4lvFp%JJF?2VYAK;z8fCh0Os@O=6Ap1mb|W&;o8DCi%?hPW%U!-Q&WdYiPyXoH7%uy&k1sYWKG}cp*FI$(m9zUZQ4opC-`kpB zyuHm4*DHWliz~uq_tz&hD-ujr;pqb%l_NHMZ3-Qlk|06PNi+plo=PHY#UocR6N1tPV4 z=!o(6P98UE+WY`|oS5A(rvR;l#fFE8d1Dsjqo+|bF}`*(On*Hm4)A9gg;I^+t1ph9 zIdbU0!Bd|6GZL$~{o1KZk#YVst18NwkuKG$HR?!2T)%Rq_3AJCQEMw3Y(LAYs@lvS zu3hu=b>jRBYaZJzNRr{R%19}Ne!D2K#uiphTu_6SqSYXJIa&;-t6zX`N;bjd@Eklp zgRd1Ihi|AJgEzdLFoUc>bKyJ2&FCrb%<)wvZnb(}BzNJ0Kp!1R+|;D%MN&&fbQCR) zI4gJkdh^h0pMUbnzOVKkxOVdR5so~jzjsDI^Z>jyFNKr;kHdFaTj7hy)u;uy^4~}< z(axATXV&z_(L)B@U0oUQWo5_osUAKsRaC?&IW_0xQn?&%gyf-DKKx+wRq4ssHa;ZOH1XfEj{;~#^*#a zx~tbG%$y`gNi{PYg%Ri44)BTqcD@~M@ph)4hZN`RY7ta|BE6*giK?86>_Hw^-IU`ccd)*UaPHuM$x8tUw0 zm@KzIeZGKJiRE4zD9XO1mRNFoAQz3_D_Yz3wKLSMrJgxc%>cx@x)^jE44I&rRw1!0H#CU4z;#U$$_+{XC|jPK?OPd@?#aE7eckz#-zwF<8BC_o$(n&?Fm~rVe3So3=c2Ztmxo#jR%OGwt zw-8(vmj~)n&&}h8!gBmDlPCU8Tz@|dWqx?1=?>;>q# z|3v>r-@)?2m!OTGfU$E7H19mtqSK(Y7h!}qVj-L*_yxW^Mxeow=s3i`hF*xP&2+u^ z(!(2{-~7?*FK>N!|CU|f9XZr?=J;=CKY9I4p;3PB*;TLq`_WY^pMG}Dqg4Y*Ojx?K zLrio|97e$LZ?C-8b-l!P&~;NMh@z#Stq`LR$5QZU7BCE>Vwe_!KxY<(S|Shnnv4=m$2V`r;XNVT^43gexX#)EQ z#FErx6ca#iwvaJ4=hw{vv{AvNhSSMH4+&jDH%rJ!8I2;74Cvg|h0U^4d%wMi_Fgw5 zapc#js>=$-8S2dfUNFWCpMt!4;pX*bioJUA=9z`foWB)#q@P+ayg*p}55J@C~8U%1fGa@jepzd}dq$f>CbqIA{l8yWuRruziK*z1A z3ZU+EnyOoLl8v|MtlaH%aj)E>vvuQ_aRq!BhYh~Gwuw+TehBevI=AjXS4$vRw>|`3=e4))7S-ol{+{koH*S0D z{+^Cs`{}$7bx95I;%<|BwVT}2|3Pj>MJKnNz~YwNz#aVJ*8epftTo*x*VdK0+xf+< zznxC=H*#%v$d&w!TulW9yG?L$m-As-d7b=0b(b@YYC_lYu>r@CpT^e-JE$&_`S9(W zp8O%<>=PZR%c6WRP1cb|%-^mLqsTS&W1hq!Nq%rda6|{yH71{{8JK|pxWB= zxl!CmQg`^2wj-gmZPCM|_FPnMN0_?4?GsXPB|gv*7PcNaN0M#MxQ_6eF}xtMyC6*G z!`f;&`K34MGYYAH80p5Xka6z)Ze(l=7$C3IX#W6Bs-Tha?G^E~e`cxCKb`9zX zE3f}>j=Zt)ZMq{YI`Z`;vh|CDqK+`}$I&*j^~?>ZEM6{oOi>&~M$E3i-Vr`=O0Ofi z`Ucz)zOeU(lDyfwlI#dy`Q{i5yU`hvj_}PRzhm--L<_5{0@yFKz`WsvcD2GdXR!$p ztX2x?LJ$NOad5}UW_**)XY1K}&?C+H+$46GknRzV&4+JgUq$|AG%kRS76dN_Z*Vh# zga}>{((yn7GeVPK>xJtAV@7`PK=3=_9_875u5a)wA>B93fqtg>GcMxHclqpb_D6D? zpnY|K-6NzWF#Ccr*F@+H7hoR(9cgM35XuRPH~5Vu5xQbS8R;SI;<>>7_lt?znwy~eVD$!o{BzuK3aZ;`)*l1(H9-GZA z5G{M?(X}tHd3b3{FEG+3aAUY(f<@2#cry!?z`Mzt=vz1qxf?9*kHBtuvPsb1ns9W- z!T>i&u>Go*C!2N>F=zaJYY;N*3 z@~BnVOqk4l`ha107%E^7yn=j#W#~sR@Sej{Eq%b+*bZ{;#|(Z1KMaRKb?7TR!rqK- zG#9a_!03};4bWc5Fy)DhDsdi8vMChrQT=Yr%HhLez~ZXvX<7`@mn; ztU?ci{}g%zjL3(8CN&=;^uRUpgCXQPbf?A+ct#bpf?obXsm={?twMF4^fL;`z2gEE|jI` zPOQ%?$j%I)m8zNL*`>wQ=`*&#{l0rm|09Vg++xFim--@(RTtKbKHjOFyMKHNw+;<$mW zWD8+ya3q_=2H0z&*M2^8=t65dd#Q+<4V!E)vg_F&xXLDBoY$L_9vAn_0(hC7&WeLq zf~`U5H2>4hN`oxR1b49oz@@#y~9IMp9Q#b0QZJnNX~oB0d5$`ss-GuAon6XH%s8)Oy||7eF--Y55$A0ayU;l zkelDWgdN(8Sb`s-bm)3hFHYR{JDhHt-E>ru^V+_Fjot(kTf({cj=@p`(0`rh}Ua@aOHyrrtz9&eC3p8_6ATVD1f= z%etpQ50qdZx3v9x>?6;yP4LXbzCw02pMX!;T)-zGckts9ih>q0+u##Je!+w$3T`}b zdc20viJ`d)67~!N5 zw<-$eYG_la<;_rqRW0C}yTPIMzLUIdKue%)ep7&2*b<=TG$At3HX1??G^4fvHMc3y zHmT{3B>C)G_5s+Se}Mf*Q$FsC=Yl^Q^Jfua*_QyW!XJUZ8;=Fd$84-f2=7{<8{|vD z@tSc3+`v$N!f+)Y7pk9lD4p1bBc)<^Eezd!+mzv{Fn3HvCvhrFT_>T(ZGsa@OW{sk zL0}4sO%%dA9n`NH(ihq=4d+URU@;D`EGQrW)xfqe@)}^p&$69!Z-DCqwoV`PW;1UF Xy~X=nDQIJ#06ZY#j_3gYzasw+?$LNn literal 0 HcmV?d00001 diff --git a/test/api/hb-subset-test.h b/test/api/hb-subset-test.h index cefa4e0..3e759a8 100644 --- a/test/api/hb-subset-test.h +++ b/test/api/hb-subset-test.h @@ -48,7 +48,7 @@ typedef short bool; HB_BEGIN_DECLS static inline hb_subset_input_t * -hb_subset_test_create_input(const hb_set_t *codepoints) +hb_subset_test_create_input (const hb_set_t *codepoints) { hb_subset_input_t *input = hb_subset_input_create_or_fail (); hb_set_t * input_codepoints = hb_subset_input_unicode_set (input); @@ -56,6 +56,15 @@ hb_subset_test_create_input(const hb_set_t *codepoints) return input; } +static inline hb_subset_input_t * +hb_subset_test_create_input_from_glyphs (const hb_set_t *glyphs) +{ + hb_subset_input_t *input = hb_subset_input_create_or_fail (); + hb_set_t * input_glyphs = hb_subset_input_glyph_set (input); + hb_set_union (input_glyphs, glyphs); + return input; +} + static inline hb_face_t * hb_subset_test_create_subset (hb_face_t *source, hb_subset_input_t *input) diff --git a/test/api/test-ot-face.c b/test/api/test-ot-face.c index f2d2fca..9ebcb4e 100644 --- a/test/api/test-ot-face.c +++ b/test/api/test-ot-face.c @@ -110,12 +110,21 @@ test_ot_face_empty (void) test_face (hb_face_get_empty (), 0); } +static void +test_ot_var_axis_on_zero_named_instance () +{ + hb_face_t *face = hb_test_open_font_file ("fonts/Zycon.ttf"); + g_assert (hb_ot_var_get_axis_count (face)); + hb_face_destroy (face); +} + int main (int argc, char **argv) { hb_test_init (&argc, &argv); hb_test_add (test_ot_face_empty); + hb_test_add (test_ot_var_axis_on_zero_named_instance); return hb_test_run(); } diff --git a/test/api/test-subset-cff1.c b/test/api/test-subset-cff1.c index 3ee2702..8b4025d 100644 --- a/test/api/test-subset-cff1.c +++ b/test/api/test-subset-cff1.c @@ -290,6 +290,52 @@ test_subset_cff1_dotsection (void) hb_face_destroy (face); } +static void +test_subset_cff1_retaingids (void) +{ + hb_face_t *face_abc = hb_test_open_font_file ("fonts/SourceSansPro-Regular.abc.otf"); + hb_face_t *face_ac = hb_test_open_font_file ("fonts/SourceSansPro-Regular.ac.retaingids.otf"); + + hb_set_t *codepoints = hb_set_create (); + hb_subset_input_t *input; + hb_face_t *face_abc_subset; + hb_set_add (codepoints, 'a'); + hb_set_add (codepoints, 'c'); + input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_retain_gids (input, true); + face_abc_subset = hb_subset_test_create_subset (face_abc, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('C','F','F',' ')); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + +static void +test_subset_cff1_j_retaingids (void) +{ + hb_face_t *face_41_3041_4c2e = hb_test_open_font_file ("fonts/SourceHanSans-Regular.41,3041,4C2E.otf"); + hb_face_t *face_41_4c2e = hb_test_open_font_file ("fonts/SourceHanSans-Regular.41,4C2E.retaingids.otf"); + + hb_set_t *codepoints = hb_set_create (); + hb_subset_input_t *input; + hb_face_t *face_41_3041_4c2e_subset; + hb_set_add (codepoints, 0x41); + hb_set_add (codepoints, 0x4C2E); + input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_retain_gids (input, true); + face_41_3041_4c2e_subset = hb_subset_test_create_subset (face_41_3041_4c2e, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_41_4c2e, face_41_3041_4c2e_subset, HB_TAG ('C','F','F',' ')); + + hb_face_destroy (face_41_3041_4c2e_subset); + hb_face_destroy (face_41_3041_4c2e); + hb_face_destroy (face_41_4c2e); +} + int main (int argc, char **argv) { @@ -307,6 +353,8 @@ main (int argc, char **argv) hb_test_add (test_subset_cff1_expert); hb_test_add (test_subset_cff1_seac); hb_test_add (test_subset_cff1_dotsection); + hb_test_add (test_subset_cff1_retaingids); + hb_test_add (test_subset_cff1_j_retaingids); return hb_test_run (); } diff --git a/test/api/test-subset-cff2.c b/test/api/test-subset-cff2.c index 9367965..7ffcf5e 100644 --- a/test/api/test-subset-cff2.c +++ b/test/api/test-subset-cff2.c @@ -138,6 +138,29 @@ test_subset_cff2_desubr_strip_hints (void) hb_face_destroy (face_ac); } +static void +test_subset_cff2_retaingids (void) +{ + hb_face_t *face_abc = hb_test_open_font_file ("fonts/AdobeVFPrototype.abc.otf"); + hb_face_t *face_ac = hb_test_open_font_file ("fonts/AdobeVFPrototype.ac.retaingids.otf"); + + hb_set_t *codepoints = hb_set_create (); + hb_subset_input_t *input; + hb_face_t *face_abc_subset; + hb_set_add (codepoints, 'a'); + hb_set_add (codepoints, 'c'); + input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_retain_gids (input, true); + face_abc_subset = hb_subset_test_create_subset (face_abc, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('C', 'F', 'F', '2')); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + int main (int argc, char **argv) { @@ -148,6 +171,7 @@ main (int argc, char **argv) hb_test_add (test_subset_cff2_strip_hints); hb_test_add (test_subset_cff2_desubr); hb_test_add (test_subset_cff2_desubr_strip_hints); + hb_test_add (test_subset_cff2_retaingids); return hb_test_run (); } diff --git a/test/api/test-subset-glyf.c b/test/api/test-subset-glyf.c index 0e5c293..4671156 100644 --- a/test/api/test-subset-glyf.c +++ b/test/api/test-subset-glyf.c @@ -80,6 +80,29 @@ test_subset_glyf (void) } static void +test_subset_glyf_with_input_glyphs (void) +{ + hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf"); + hb_face_t *face_ac = hb_test_open_font_file ("fonts/Roboto-Regular.ac.ttf"); + + hb_set_t *glyphs = hb_set_create(); + hb_face_t *face_abc_subset; + hb_set_add (glyphs, 1); + hb_set_add (glyphs, 3); + face_abc_subset = + hb_subset_test_create_subset (face_abc, hb_subset_test_create_input_from_glyphs (glyphs)); + hb_set_destroy (glyphs); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('g','l','y','f')); + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('l','o','c', 'a')); + check_maxp_num_glyphs(face_abc_subset, 3, true); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + +static void test_subset_glyf_with_components (void) { hb_face_t *face_components = hb_test_open_font_file ("fonts/Roboto-Regular.components.ttf"); @@ -257,6 +280,31 @@ test_subset_glyf_strip_hints_invalid (void) hb_face_destroy (face); } +static void +test_subset_glyf_retain_gids (void) +{ + hb_face_t *face_abc = hb_test_open_font_file ("fonts/Roboto-Regular.abc.ttf"); + hb_face_t *face_ac = hb_test_open_font_file ("fonts/Roboto-Regular.ac.retaingids.ttf"); + + hb_set_t *codepoints = hb_set_create(); + hb_face_t *face_abc_subset; + hb_set_add (codepoints, 97); + hb_set_add (codepoints, 99); + + hb_subset_input_t *input = hb_subset_test_create_input (codepoints); + hb_subset_input_set_retain_gids (input, true); + face_abc_subset = hb_subset_test_create_subset (face_abc, input); + hb_set_destroy (codepoints); + + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('g','l','y','f')); + hb_subset_test_check (face_ac, face_abc_subset, HB_TAG ('l','o','c', 'a')); + check_maxp_num_glyphs(face_abc_subset, 4, true); + + hb_face_destroy (face_abc_subset); + hb_face_destroy (face_abc); + hb_face_destroy (face_ac); +} + // TODO(grieger): test for long loca generation. int @@ -266,12 +314,14 @@ main (int argc, char **argv) hb_test_add (test_subset_glyf_noop); hb_test_add (test_subset_glyf); + hb_test_add (test_subset_glyf_with_input_glyphs); hb_test_add (test_subset_glyf_strip_hints_simple); hb_test_add (test_subset_glyf_strip_hints_composite); hb_test_add (test_subset_glyf_strip_hints_invalid); hb_test_add (test_subset_glyf_with_components); hb_test_add (test_subset_glyf_with_gsub); hb_test_add (test_subset_glyf_without_gsub); + hb_test_add (test_subset_glyf_retain_gids); return hb_test_run(); } diff --git a/test/fuzzing/Makefile.in b/test/fuzzing/Makefile.in index 7675ade..6ecd679 100644 --- a/test/fuzzing/Makefile.in +++ b/test/fuzzing/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -134,7 +134,11 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po \ + ./$(DEPDIR)/hb_shape_fuzzer-main.Po \ + ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po \ + ./$(DEPDIR)/hb_subset_fuzzer-main.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -378,7 +382,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -441,8 +444,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -477,10 +480,16 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_shape_fuzzer-main.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb_subset_fuzzer-main.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -617,7 +626,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -691,7 +703,10 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po + -rm -f ./$(DEPDIR)/hb_shape_fuzzer-main.Po + -rm -f ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po + -rm -f ./$(DEPDIR)/hb_subset_fuzzer-main.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -737,7 +752,10 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/hb_shape_fuzzer-hb-shape-fuzzer.Po + -rm -f ./$(DEPDIR)/hb_shape_fuzzer-main.Po + -rm -f ./$(DEPDIR)/hb_subset_fuzzer-hb-subset-fuzzer.Po + -rm -f ./$(DEPDIR)/hb_subset_fuzzer-main.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -758,7 +776,7 @@ uninstall-am: .MAKE: check-am install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5748102301614080 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-harfbuzz_fuzzer-5748102301614080 new file mode 100644 index 0000000000000000000000000000000000000000..4cb979d94c68e86cea724b45678f4468e0a02589 GIT binary patch literal 213 zcmZQzWME)mVF+NbWH3(5%Py)1a)H2sf$<-6c4|>YBm-LkkZ+TosH2seSW&>>#1aKo z!63%U3}JvwNMy(an!*OeAk&aQ3Y^^lWH~T0GQf-l@qxzL7BK7uvOwU!1JGUumVXQk dy+9tsSdeiLV?iqL0Tzb$CmFsnGVmxc002Be7w-T7 literal 0 HcmV?d00001 diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5739000398086144 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5739000398086144 new file mode 100644 index 0000000000000000000000000000000000000000..0dec23fad3d427bc5ca05307b3e6f08155e7f209 GIT binary patch literal 620 zcma)2O-lk%6g|)J3myC11btxTA|gtqT?L6T6qH5|5oq9~#srOung~Hki#7#qT17!i zA?P=>Y}d!4`T;=^L8~BwnC=^+BBHvFciuba-23k3g=IO6I#htT5R@eU%2o6fzyo0Q zkIx2XMzqHTz%~a6!&Af$pQz5t0`ZReCvCX05jd@8FRE@ zg4$YqO@`wz3k+j?gpX81{~2<~V+k3g;f5dm@Dh441eLS`5{6SGkN)VN@#j-M0bu-B UP%f7%w0YE~W1(N0*zwJN0~4vTOaK4? literal 0 HcmV?d00001 diff --git a/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5760768497156096 b/test/fuzzing/fonts/clusterfuzz-testcase-minimized-hb-subset-fuzzer-5760768497156096 new file mode 100644 index 0000000000000000000000000000000000000000..063aab2ebc7f2667782a22e8a9f32329a1bf7020 GIT binary patch literal 210 zcmeYd3GruOQ~-ki3eIkBMj#dg1A`feMg{+oxJ(MH48pQNb@e_o8!nZu;O${;KY^j$rV z3W(|#gqR9sDln2@fx>@eQ^6WB1h5zfv_=cr8X%tmi!zuH0~Tvwa sizeof(text_from_data)) { + if (size > sizeof(text_from_data) + sizeof(flags)) { memcpy (text_from_data, data + size - sizeof(text_from_data), sizeof(text_from_data)); + + memcpy (flags, + data + size - sizeof(text_from_data) - sizeof(flags), + sizeof(flags)); unsigned int text_size = sizeof (text_from_data) / sizeof (hb_codepoint_t); - trySubset (face, text_from_data, text_size); + + trySubset (face, text_from_data, text_size, flags); } hb_face_destroy (face); diff --git a/test/shaping/Makefile.in b/test/shaping/Makefile.in index 202db22..0e0237a 100644 --- a/test/shaping/Makefile.in +++ b/test/shaping/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -138,7 +138,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -364,7 +364,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -404,8 +403,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -522,7 +521,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/shaping/data/Makefile.in b/test/shaping/data/Makefile.in index 78cdb1a..1170e86 100644 --- a/test/shaping/data/Makefile.in +++ b/test/shaping/data/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -138,7 +138,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -364,7 +364,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -400,8 +399,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -518,7 +517,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/shaping/data/aots/Makefile.in b/test/shaping/data/aots/Makefile.in index 7cc5193..3e94bb3 100644 --- a/test/shaping/data/aots/Makefile.in +++ b/test/shaping/data/aots/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -608,7 +608,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -650,8 +649,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -796,7 +795,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -832,7 +831,10 @@ recheck: all @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/shaping/data/in-house/Makefile.in b/test/shaping/data/in-house/Makefile.in index 590807b..eb50742 100644 --- a/test/shaping/data/in-house/Makefile.in +++ b/test/shaping/data/in-house/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -538,7 +538,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -580,8 +579,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -726,7 +725,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -762,7 +761,10 @@ recheck: all @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/shaping/data/in-house/fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf b/test/shaping/data/in-house/fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8cc4bb0c5a962f4cff6b1d82366f4e25f3f3d701 GIT binary patch literal 1500 zcma)6O>az57=F%~JDsX(X*%jF&Cph)QPmk!L>JZKrV(be@e!fSw9}5X)0s@`n-DCd zA*@JBLSkbfh;(7$4`{GJLg>z>3w9(;qjNpy-g~$a!kIbueV+IGEyo0r4=MO7zaVKh_Ayaq61WR0PiXpOa6M*QPTgCyZ}a1^H+4 z(!p#`0+o12{(!tVlQ@xMKQrW4$U{SkOez%HxQq3kGXITSc6cN|lVWXuoc0Y6g}7B} z9kiw}m%3<8G!l&jBf*+r;Yl*tkxYJ#x5WA936toMi$#HcRj5HDHo-&}4q*VtaS_*; zeZ|V?y5>lDVX(3&;K30O_WuW7?(y;F`CF{lr^*v6T1v{wO1KAH`P7w#FD?*UwdShU zoOQuUZMml{(giPFxmO!r*+p1rkp^0B(?Dv_qk)#)8VC(c4Ss5tY7Hl*-bEkYq8zo9 ziv3!etM@@!B-+M5T{v*4yyY8wzA5GS24lCBeBb))&iA_69f5k|B54tQ?Ilm)Fi?og z)0{VR7!8GwK;ZuOI;$;E|64uPi6LKz>+rMKsNBaC+Z`#o5f*LK&h<;fZ%D}-qgKc{ z0g)MtnWDAob=?c6hS4DEsJ2fe7s(07nNQW3kGs-6ZzXTvD)J&q0jV-r7U0OK#t+S& zE(6%FqKrB8@3!+OEKp76=q1W<#>GCgV${V3)?mWLek{SXi;GY%D$tHBayW@Rj-VfD zjPPJ#tVI)=iA-9v)DI#>)`21PFk1+lsTri~{24WDvlNEuna43cd+E88(Iea;-me6s zmDhGw$=F_ogGbI=krvF;Ivbv8k{!HFXok7R{if&+aZ@l*Wb1l`Y*L#oM!7%&J zvM+UJU0vt-cSUES9ENq9@qb#JwvfUXI68EsY5kV4lHq83yFFKaY3(J{?A1)j)Gpx{ es?0IDyc&F82hy25iq-d;^(@CbmrwOkXRjX%W#R|` literal 0 HcmV?d00001 diff --git a/test/shaping/data/in-house/fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf b/test/shaping/data/in-house/fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ffbbc0e294258f0837a96f945ab6baf09b404cbb GIT binary patch literal 1924 zcma)7YfM{Z7=FLgbJ|k6;<#;5a4oR%V=$msb|DVLbu1zqRZQmMID?kLD3D$TOj)Ex z{}?lZMq@NtOlEYMF8k?{nccF4DCp{9bQpuoWQoonn%HI1o6mPn%Qmtfo|E(SdEW26 zpZ9zvMnoohjWpEjX@6!n&Cz>AS`pISo_$^3^OwGgfIkcVtH=97+y3R9y+pb?@SZMj zgDrM7;wI8efcN$V<*_nLX%PG;@b&>YJVrX)B;5ly4h&EF=ML@o4fszY_D8@c_v>BX z{{wwJWUc@NMNZvj@aMs60>Q|HaBk&G@Lk}=!=rsNyUePH1n$oilqbe$6MGDt$1{(} zL0{!Q*Eo?_0so<~(QstjTkk?&n!)}6N!h=FUldoUn4Y9fWF`yroEE30%u-fPWu>CU zT;p_*q}7&{mfLMEr^Bi#(Fon?lafDu@?Tbvxskb<`8gA3Mz$xu^xg7O{MM@D3&)ofZ;d*@j6w|dfUYVMnetr7bRiQem75*YIrAsYlHzJF5^aNEtCE4_12ThlajkF4K=wj{17Xl-=dJd7Pu; zKtg$Hk%UxSyp!#~8!{pmF{`z@x=L5;vfHS{ojKEV<&(`ueL=D1cUJKf6YpIAfqf`s zZe@NcA|ahk$FeKPaXtEjCa68gCFpdx-I>qUIkwk1Dg%<&wD@~Y ze>xcQl8~H326fqabQcrCl$zXDm~ME;S?wcAPR{WX-#%t7df(t`-qQRy53QWbo3YU`CGH)7N*Tly_lPI2HGbEwUA4qoCTvUIB82N>1Omv|nh>|D>Vm=a& z#xGA-mxp#4%!a5MLszG1hghjlT)}J;nc<&HG>X(nA~k~>&5b%1)wkEQ8A+$Fck|pJz_bmp}jPd!{P%v66RqsC)Xmod-ODo z(ilym|AY800~CSOMvc@&b|4RSMNeN|AEC`W!ZHxr@@X;Wd4iAq9sWfNBv%wDh z>M^SU#exAde7hm6{JiF|)m*j2vK^Roo(mK10`Z*k`fWgYeeRW?11!z|0aX1{Ko9B{ zL%tEys@BF=ek)cPuB%vSW);NitHGo`x;}2jP*)h4b34`cek>k|*Ce9D_!5CQrvCuh COLnLL literal 0 HcmV?d00001 diff --git a/test/shaping/data/in-house/tests/indic-syllable.tests b/test/shaping/data/in-house/tests/indic-syllable.tests index 4c7d651..264983b 100644 --- a/test/shaping/data/in-house/tests/indic-syllable.tests +++ b/test/shaping/data/in-house/tests/indic-syllable.tests @@ -6,3 +6,5 @@ ../fonts/1735326da89f0818cd8c51a0600e9789812c0f94.ttf::U+0A51:[uni25CC=0+1044|udaatguru=0+0] ../fonts/1735326da89f0818cd8c51a0600e9789812c0f94.ttf::U+25CC,U+0A51:[uni25CC=0+1044|udaatguru=0+0] ../fonts/81c368a33816fb20e9f647e8f24e2180f4720263.ttf:--no-glyph-names:U+0C80,U+0C82:[1=0+502|2=0+502] +../fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf::U+0A20,U+0A75,U+0A47:[tthaguru=0+1352|yakashguru=0@-90,0+0|eematraguru=0@-411,0+0] +../fonts/f75c4b05a0a4d67c1a808081ae3d74a9c66509e8.ttf::U+0A20,U+0A75,U+0A42:[tthaguru=0+1352|yakashuuguru=0+0] diff --git a/test/shaping/data/in-house/tests/khmer-misc.tests b/test/shaping/data/in-house/tests/khmer-misc.tests index a7a1c6d..1ea7609 100644 --- a/test/shaping/data/in-house/tests/khmer-misc.tests +++ b/test/shaping/data/in-house/tests/khmer-misc.tests @@ -87,3 +87,4 @@ ../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+1782,U+17D2,U+179F,U+17CA,U+17C0:[uni17C1=0+288|uni17A0=0+928|uni17D21782=0@20,-26+0|uni17D2179F.low=0+302|uni17CA=0@-4,30+0|uni17C0.right1.high=0+288] ../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+1784,U+17D2,U+1780:[uni17D2179A=0+287|uni17A0=0+928|uni17D2179C=0@20,-26+0|uni1784=5+635|uni17D21780=5@0,-26+0] ../fonts/3998336402905b8be8301ef7f47cf7e050cbb1bd.ttf::U+17A0,U+17D2,U+179A,U+17D2,U+179C,U+17B6,U+17C6,U+1784:[uni17D2179A=0+287|uni17A017B6=0+1216|uni17D2179C=0@-268,-26+0|uni17C6=0@47,-29+0|uni1784=7+635] +../fonts/ad01ab2ea1cb1a4d3a2783e2675112ef11ae6404.ttf::U+17D2,U+17D2:[uni25CC=0+635|uni17D2=0+0|uni25CC=0+635|uni17D2=0+0] diff --git a/test/shaping/data/in-house/tests/macos.tests b/test/shaping/data/in-house/tests/macos.tests index 7855c0d..db4a31d 100644 --- a/test/shaping/data/in-house/tests/macos.tests +++ b/test/shaping/data/in-house/tests/macos.tests @@ -35,3 +35,22 @@ /System/Library/Fonts/SFNSDisplay.ttf@c8948f464ff822a5f9bbf2e12d0e4e32268815aa:--font-ptem 9 --font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid282=0@46,0+1147|gid658=1@-89,0+1006|gid3=2@46,0+512|gid4=3@46,0+1319|gid332=4@-19,0+1319|gid3=5@46,0+512|gid282=6@46,0+1167|gid813=7@-69,0+608|gid3=8@46,0+512|gid332=9@46,0+1309|gid572=10@-29,0+1045|gid3=11@46,0+512|gid813=12@46,0+638|gid282=13@-39,0+1197|gid3=14@46,0+512|gid658=15@46,0+1006|gid282=16@-89,0+1147|gid3=17@46,0+512|gid282=18@46,0+1147|gid649=19@-89,0+1091] /System/Library/Fonts/Apple Color Emoji.ttc@2e09b1f3d42c3821cc6c4ac5b6ce16237ab0d496:--remove-default-ignorables --font-funcs ot:U+1F468,U+200D,U+1F469,U+200D,U+1F467,U+200D,U+1F466:[u1F46A.MWGB=0+800] /Library/Fonts/Zapfino.ttf@99a1e15163c3e9567d5b1019c45e9254dae63b08:--font-funcs ot:U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+006F:[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|Z=6+416|a=7@-21,0+264|p_f=8+433|i=10+181|n=11+261|Z=12+416|a=13@-21,0+264|p_f=14+433|i=16+181|n=17+261|Z=18+416|a=19@-21,0+264|p_f=20+433|i=22+181|n=23+261|Z=24+416|a=25@-21,0+264|p_f=26+433|i=28+181|n=29+261|Z=30+416|a=31@-21,0+264|p_f=32+433|i=34+181|n=35+261|Z=36+416|a=37@-21,0+264|p_f=38+433|i=40+181|n=41+261|Z=42+416|a=43@-21,0+264|p_f=44+433|i=46+181|n=47+261|Z=48+416|a=49@-21,0+264|p_f=50+433|i=52+181|n=53+261|Z=54+416|a=55@-21,0+264|p_f=56+433|i=58+181|n=59+261|Z=60+416|a=61@-21,0+264|p_f=62+433|i=64+181|n=65+261|Z_a_p_f_i_n_o=66+2333] + +# 10.14.2 https://gist.github.com/ebraminio/4b731a82f11a662b2164622ebb93086a +/System/Library/Fonts/Helvetica.ttc@992d29a0fa4ed91773457c29b661e94843619cde:--font-funcs ot:U+006D,U+0300:[m=0+1706|gravecmb=0@-284,10+0] +/System/Library/Fonts/LucidaGrande.ttc@63ba1b1de4709bd832ca76bd62368dd99fc34269:--font-funcs ot:U+006D,U+0300:[mgrave=0+1912] +/System/Library/Fonts/Times.ttc@ebb050e4fcaaebe9992efbc7b5660b60ba18b518:--font-funcs ot:U+0066,U+0069:[fi=0+1139] +/Library/Fonts/Khmer MN.ttc@37687fe0bd2548e08e29c92a30e476367ae6356b:--font-funcs ot:U+17A2,U+1780,U+17D2,U+179F,U+179A,U+1781,U+17D2,U+1798,U+17C2,U+179A:[km_qa=0+1230|km_ka=1+1230|km_sa.sub=1+620|km_ro=4+712|km_vs_ae=5+726|km_kha=5+1230|km_mo.sub=5+0|km_ro=9+712] +/Library/Fonts/Tamil MN.ttc@e1df5e056be08937fd65990efbafff0814c03677:--font-funcs ot:U+0BA4,U+0BCA,U+0B95,U+0BC1,U+0B95,U+0BCD,U+0B95,U+0BAA,U+0BCD,U+0BAA,U+0B9F,U+0BCD,U+0B9F,U+0BC1:[tgm_e=0+1702|tgc_ta=0+1598|tgm_aa=0+1149|tgc_ku=2+1962|tgc_k=4+1592|tgc_ka=6+1592|tgc_p=7+1370|tgc_pa=9+1370|tgc_tt=10+1596|tgc_ttu=12+1833] +/System/Library/Fonts/Times.ttc@ebb050e4fcaaebe9992efbc7b5660b60ba18b518:--font-funcs ot:U+0041,U+0066,U+0300,U+0066,U+0069,U+005A:[A=0+1479|f=1+682|gravecmb=1@-551,588+0|fi=3+1139|Z=5+1251] +/System/Library/Fonts/LucidaGrande.ttc@63ba1b1de4709bd832ca76bd62368dd99fc34269:--font-funcs ot:U+05E1,U+05B0:[shevahebrew=0@51,0+0|samekhhebrew=0+1361] +/Library/Fonts/Apple Chancery.ttf@4ec49cba0d4e68d025ada0498c4df1b2f9fd57ac:--font-funcs ot:U+0054,U+0068,U+0020,U+0074,U+0068,U+0020,U+006C,U+006C,U+0020,U+0074,U+0065,U+0020,U+0074,U+006F,U+0020,U+0074,U+0072,U+0020,U+0066,U+0072,U+0020,U+0066,U+0075,U+0020,U+0066,U+006A:[T_h=0+2308|space=2+569|t_h=3+1687|space=5+569|l_l=6+1108|space=8+569|t_e=9+1408|space=11+569|t_o=12+1531|space=14+569|t_r=15+1385|space=17+569|f_r=18+1432|space=20+569|f_u=21+1733|space=23+569|f_j=24+1098] +/Library/Fonts/Apple Chancery.ttf@4ec49cba0d4e68d025ada0498c4df1b2f9fd57ac:--font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[T=0+1497|e=1@-62,0+699|space=2+569|A=3+1431|V=4@-37,0+1377|space=5+569|T=6+1510|r=7@-50,0+803|space=8+569|V=9+1376|a=10@-37,0+1014|space=11+569|r=12+853|T=13+1560|space=14+569|e=15+761|T=16+1560|space=17+569|T=18+1515|d=19@-45,0+1006] +/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0627,U+0644,U+0623,U+064E,U+0628,U+0652,U+062C,U+064E,U+062F,U+0650,U+064A,U+064E,U+0651,U+0629,U+0640,U+0627,U+0644,U+0639,U+064E,U+0631,U+064E,U+0628,U+0650,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=26+713|u064e_u0651.shaddaFatha=23@0,-200+0|u064a.medial.yeh=23+656|u0650.kasra=21@80,290+80|u0628.initial.beh=21@-80,0+576|u064e.fatha=19@200,-570+200|u0631.final.reh=19@-200,0+702|u064e.fatha=17@200,-200+200|u0639.medial.ain=17@-200,0+738|u0644.initial.lam=16+515|u0627.final.alef=15+647|u0640.tatweel=14+449|u0629.final.tehMarbuta=13+713|u064e_u0651.shaddaFatha=10@0,-200+0|u064a.initial.yeh=10+656|u0650.kasra=8@80,570+80|u062f.final.dal=8@-80,0+822|u064e.fatha=6@290,-160+290|u062c.medial.jeem=6@-290,0+1069|u0652.sukun=4@0,-200+0|u0628.initial.beh=4+656|u064e.fatha=1@-252,120+-252|u0644_u0623.isolated.lamHamzaOnAlef=1@120,0+1282|u0627.alef=0+647] +/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0628,U+064A,U+064E,U+0651,U+0629:[u0629.final.tehMarbuta=4+713|u064e_u0651.shaddaFatha=1@0,-200+0|u064a.medial.yeh=1+656|u0628.initial.beh=0+656] +/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0631,U+0628:[u0628.beh=1+1415|u0631.reh=0@-202,0+700] +/System/Library/Fonts/GeezaPro.ttc@ab26ea45dcaa5e1c5a958e42af10e10d330e7334:--font-funcs ot:U+0628,U+064F:[u064f.damma=0@250,-250+250|u0628.beh=0@-250,0+1165] +/System/Library/Fonts/SFNSDisplay.ttf@6e9677c443f6583228a63fd147663cfc635924d9:--font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid283=0+1055|gid659=1@-135,0+914|gid3=2+420|gid4=3+1227|gid333=4@-65,0+1227|gid3=5+420|gid283=6+1075|gid815=7@-115,0+516|gid3=8+420|gid333=9+1217|gid573=10@-75,0+953|gid3=11+420|gid815=12+546|gid283=13@-85,0+1105|gid3=14+420|gid659=15+914|gid283=16@-135,0+1055|gid3=17+420|gid283=18+1055|gid650=19@-135,0+999] +/System/Library/Fonts/SFNSDisplay.ttf@6e9677c443f6583228a63fd147663cfc635924d9:--font-ptem 9 --font-funcs ot:U+0054,U+0065,U+0020,U+0041,U+0056,U+0020,U+0054,U+0072,U+0020,U+0056,U+0061,U+0020,U+0072,U+0054,U+0020,U+0065,U+0054,U+0020,U+0054,U+0064:[gid283=0@46,0+1147|gid659=1@-89,0+1006|gid3=2@46,0+512|gid4=3@46,0+1319|gid333=4@-19,0+1319|gid3=5@46,0+512|gid283=6@46,0+1167|gid815=7@-69,0+608|gid3=8@46,0+512|gid333=9@46,0+1309|gid573=10@-29,0+1045|gid3=11@46,0+512|gid815=12@46,0+638|gid283=13@-39,0+1197|gid3=14@46,0+512|gid659=15@46,0+1006|gid283=16@-89,0+1147|gid3=17@46,0+512|gid283=18@46,0+1147|gid650=19@-89,0+1091] +/System/Library/Fonts/Apple Color Emoji.ttc@60f77161021b1b87e99c3690e1a9b56341cf8792:--remove-default-ignorables --font-funcs ot:U+1F468,U+200D,U+1F469,U+200D,U+1F467,U+200D,U+1F466:[u1F46A.MWGB=0+800] +/Library/Fonts/Zapfino.ttf@99a1e15163c3e9567d5b1019c45e9254dae63b08:--font-funcs ot:U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+005A,U+0061,U+0070,U+0066,U+0069,U+006E,U+006F:[Z=0+416|a=1@-21,0+264|p_f=2+433|i=4+181|n=5+261|Z=6+416|a=7@-21,0+264|p_f=8+433|i=10+181|n=11+261|Z=12+416|a=13@-21,0+264|p_f=14+433|i=16+181|n=17+261|Z=18+416|a=19@-21,0+264|p_f=20+433|i=22+181|n=23+261|Z=24+416|a=25@-21,0+264|p_f=26+433|i=28+181|n=29+261|Z=30+416|a=31@-21,0+264|p_f=32+433|i=34+181|n=35+261|Z=36+416|a=37@-21,0+264|p_f=38+433|i=40+181|n=41+261|Z=42+416|a=43@-21,0+264|p_f=44+433|i=46+181|n=47+261|Z=48+416|a=49@-21,0+264|p_f=50+433|i=52+181|n=53+261|Z=54+416|a=55@-21,0+264|p_f=56+433|i=58+181|n=59+261|Z=60+416|a=61@-21,0+264|p_f=62+433|i=64+181|n=65+261|Z_a_p_f_i_n_o=66+2333] diff --git a/test/shaping/data/text-rendering-tests/Makefile.in b/test/shaping/data/text-rendering-tests/Makefile.in index ca784f5..6bf15ce 100644 --- a/test/shaping/data/text-rendering-tests/Makefile.in +++ b/test/shaping/data/text-rendering-tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -532,7 +532,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -585,8 +584,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -731,7 +730,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -767,7 +766,10 @@ recheck: all @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/subset/Makefile.in b/test/subset/Makefile.in index 71f7a82..16f5c00 100644 --- a/test/subset/Makefile.in +++ b/test/subset/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -138,7 +138,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir + distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -364,7 +364,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -397,8 +396,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -515,7 +514,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/subset/data/Makefile.in b/test/subset/data/Makefile.in index 957bb34..3ca3360 100644 --- a/test/subset/data/Makefile.in +++ b/test/subset/data/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15.1 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2017 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ am__recursive_targets = \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - check recheck distdir + check recheck distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is @@ -569,7 +569,6 @@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ -runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -609,8 +608,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(srcdir)/Makefile.sources $(am__empty): @@ -848,7 +847,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) fi; \ $$success || exit 1 -check-TESTS: +check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @@ -884,7 +883,10 @@ recheck: all @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TESTS_LOG_DRIVER_FLAGS) $(TESTS_LOG_DRIVER_FLAGS) -- $(TESTS_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ diff --git a/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.61,62,63.ttf b/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.61,62,63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..52dc47457e65cd613c5cea2d2d4a4c05333cd755 GIT binary patch literal 924 zcmZuvZAepL6n^gA-Q1?A*Zjb=ym@WTT9Q}yS<$cfloO^iAbKduW0}zc? z=#W>uW3@HtIUEb{trXqs@+p3#ai0j!5-zJz0)7~=1kiO8j;Zk;sGi-hw2{uY0WQ~5 zrMQ3BO&_HEM2a~)6flqJ2MAXX&hq$z&GDzXQNmjY$9o%G3Z~&9Y$R;tPa;C+epJlVz^DT0w zAxX}6IBeGB6frR+X{FV%#x6@qiOIU0c=Mqf{gWK`emL0ZY8wkoG=-iB7B#x`g50BC z4NA_oo9$OZB}%|uwEbLJXh4lUQx@M@zVX%l(n^wx4sA}53_vVWNo^u8XJ$vqqD^#2 z31T)Y9VI5)tPVkXGd}4z4UYP`ldnflofz3xGJLd`7k{dcds+-wxZAEiRTuPkrUupA z!6|U4pnm44pJf1(Yl|gji1tVqvL)OUb-=H4^%{rtO%wGm)nCEqy|=y?hm2jdo#*?G zG?(wX?B=pLWL*4l{Kd7}V-LsW&;#NI1au)8JE0FF3Pj8h!G-h|XDP;Vc{ySCNAcO7 zxWey9WzPfL`z)?veui^?n@?MqG36Np1Wj}wVbgWMEtJD2w4g)CLj~iB@~SbEvS~g| z-E7MHr!G^Z6WX|LQUraU-bSS}7QOBfsu^vBda(f0_1B7ui;J)x3S0)LKy_3f4+-2Q zmLROvUnd~ZRMW6TRyv&+1M_C`g;ZT4FVM&0E={9d(KM|;qLY-9rHA*$TT$rjqQ&xg ynmS?>OoUkG;+dzJh=CIgsH7F7VbpbVo3g8`-DLF;eZUe* zEHDC#wg-uVNTDxqJ@k+SMGuKS6x3S}g%3s6gVnvA|Me0S9XOox``>eZzjOcp0}enb z&Om^_%a9JXCG9I7ltfTx1`FyfZ zjr|;$I|XnIhmv&Qnvo`{UnJa^)bwnbhucKomk3v+hN3ENp^fk~VV9<6)9~Q~;md@* zgR0iYKX!ekepbINJ(ST+4KdQ+$i9PzW-bb!#QmrPO}yUMn=_j?yKDuqmkY3pLg}rc<3SBMbcddFxr5dR~k?mwAB=!B~D8G zj_9~NB@NFGzB7L4Z^j>ek*DOb{?Y3b=d+Q+w_{urhx(h}N8aA+zwq*@QhY(&fQT`8 za0rrx=)g9IjoawX2I!2{^2(~n>3sf3dD}Ovk*&gKpDQ=BWPuAWE!X~9aQfv8K_}gp zWx^%I#0WG7L_c~MPf5xsqmn(#wZ>kj{~uj8ks#*iRU|-~kOCxKzY>Mlh%;K7+T#Da zyS<~M9Xp{S>VN^nOD1@FIxcUiZzGOhR{o{lZVlV1Wq7DOvkCp SGIN0K;D3xwCxfTy%6|iQ) zJGMKnS1(L#niLH28EtAQv!k(1=eNmVP0&;37G z?=pFBqu$g_4JEQwF9H#o`AzyFAHi0P1KXlI+{$P)l^jbXQpuJBQ&bUG0a4Gjzq z1-Hl3ds0dyI2e+~`~4T6EW8zj&rkJJ#r9J3)!EKFIcoGw-c@cIkMu~s{p`wO=eXJ| zWslx2bRHOiTZR5>QwKl1o}6KOtS;j^LYRQdCOW#}?sA56aWb1kWs~Q?#>W$VnP1rA zwF6&%AJ}DWR)ze}_3-aiU(DMi`Z$v<(p8k?DQFIHWlc}b;M@2Pt%r@nzSuu?!55U| zws3I z;pi}TRtC%ZX*0Z!2(8S|@~fultmZ`p&)`% z+khW@{zJrZ|DYg$PM!TN_F1GC2*?Z#oyUBAsQ@_!#2f{Zy=27WvE4g301MO`irPqiCdk!qpl;>cXWi*2TYsM-b z@7XxHJK&u%Qr$YiYbixUy`kJ@N6^-_G|ziDTq7S)lxaJuL%lph*JiTW8B8OOd=wr~ zjI9e^pYlKo)Cuhg!Qvl)?i{2iGsrd0b&Az3t}2I&=Y2nX`VTvO%0EQvLkl!?^PFL8 xhh#?8pjs+JU+}vnkVBQaD(aj$6i~utRAA#0Re|}7;a!FF-&0|39fG~|`~$CscWeLv literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.63.ttf b/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints-retain-gids.63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ac735b3cbdc72e1202709cd3e631eb96d3417601 GIT binary patch literal 716 zcmYk4KWGzS7{;Ibmt0~=TeVSXYeS=Pvmwz~q=sI7hp4oSP2I)2RTphJ|dh|K4RT;9B*{yyM3~A#*jOD zw_>suDSTz@7mjLxYN7OM86i>zRZKB$W(Ii_aUB&HxaPh|u~XicHyzo?nPEsSO=4c zqP%8#OcY}TL1Ks^8ab`#HipR(LE{5_fpI39nD7T05-_462(8~~J0`}{+~4_r-~G;a ze&0Dg=K=wMG}s0_1eP`ymj*kYO9kL>ptr^A_XI#D*8zkU}d;G23py>~s-->*0pt~m+^MeohW9)rkV{71zw%eZp=!2+tF>v6IUE_ZfmOvKd z!&4DkL7^pm9<@nS`5GwHXw+6Lhi#ej-Ekry5z>)d^ZM+n$@JS7+qTDW6$ZHm5vSouQwsmb+YKr5QGh z)iyb&)b-#TRhewf;PWNZv+p0fK*+DBgB!fN&h(t$G;&GEji#)4O+65OH>fo1`e4u7 zBg;KKzJ<$P(MFC(Q(xAkea(x0{&dA!+y>YiyCx`lfK-?YZISd$naN9+D33LZ#qmnb zSe$vhY#s?eUbY^Io|UZ=c~-W`%sOh8!s!#`P+kh#CTPiQV&&8sc?Q)|W^pO$mONIV z!IDu{>JpSIqZb0klfwZL`epdV=LhSTpWbl8Ua#(FJG$bR<_iS492riYFEn$=E99EwuYSxrfclX4D93hhqHJCs_==hQZ6 zs#^&up~b$CQmb@$d{oGZ_xPeU>6Hp%Ba0sHt|kEfkVNSiv|Sy`K*e_^+et-ws@Xnjx~S9#dhb+GXZY z?W!FWx~rYk=%{PdYEYsbC7K*Gzs5;Z9JByCvm=~G`jt?lHe7}K{ zEmIZ6D*Zzeu3OT_s+{DYRsBN>G;84ksFsJJfWKOeesd9pB8U))DG82r{lf`WfH%4U3rOr+WI-nBiL7Dp41?lK5{xWm(9K|g!6^nY2HBaUmyPIU zBYN40-bh*&8_VE2gX}DfTf<<0!B-4o3>IWza5sZu1>?FA*uf}-Blz_WK_6VgFWnMo zhTYHtPe3_W31=Y!`{5i$S)(mr6hGg+w_RVXx3gPemu&7HL zrs!CzFi0>O9=aG}FdF$<9~+E6_6NjQR3wmyiT;g-M2%<+LhJe3vZ?V)zTY{&^PO|< zIk)%p0|Ee6m;@d|ZJm|X;lUR&0r)Dk_WFaq5KM7bksz6&5&0LaAw-)IO7@Bp4K;<;sD_^JMujUtcwT|7TE7zj=nO#;h*6m8;QpD%EC z_tgUc+$H4ogJ>{a(4E0^%m-@*gW(BF4sqi-#)CLK;`fmjVE*&SO+nv8h^ys|$X`b; z@9_ouxH;2r`20cS>q8@>;Y1Ju$Yq;Vw^+3pqM!+sJRluqgFyq6{_=F z>9!WjGCNpOL5vnGTd7%$D$BHLowK+^uM`&7)vl?jsjDqk3ia7aZGC-Bb&kVkcVrh; z*FRXN$l3NBzEm_l|H15+g#7qnc&~rz!szAkg=<1_+`R3SaxDH{Sninm=;e17p74zZ zHf?=PT{siZd{q?>ceniT$+lhCHf+b9Z(+}Q&>9o-3$VCUuOfCN-tX0b#DMKZVYy0b z5Gj9!iXyc$j5?N&s@AazYce^d5Nvhn!jwcUWaW1Hh$UY-^dkPC9Pik?vhLRvAW-8Zk+7@vlHY=!PI8 zLKSRhc`}CM`0W`t-;v^v8LQIINx3K8fET97QLG4bCv-LV=z^5wzkz<1Hk~>Z!RlIC zo7&nofd_ox*FzkjKjQ=kGLSc!gV3O(NMxMCR5u2rPSCNZ;9@qmS0l2FOqx)7@%@yd z)T1Q$V9cCIAWzD~Y+`n)dNxgv^ktHj=u2;w&!65r1y?IIwyRM>j%f2F@e+M8FKXm_ zcDgBX$#T<>my%vL6NI*t4U6$ z+(Z}KRl4YvoSNpQ`lTAN)@O!RrmD?wQGL0a8d4cLRqBx_XpsoZ*QqK_IvI&b5$xbT zU;H>QP@EDoC{D$R6>45LHM&|m)g~;_i6xp`w6w`h%`RGo z!s3dSkZC#6sh;=XZ|I*lz;u^-9!mL}Ax)wR7AsHBi}>EsHrC||7xhff%h0Vx%fKt0 zhcf=A7wwh`3Kb9|B3D6THi9^3Yp5!cL@-pq9BFxIt<#R`9H+LdFHLHE$D_4HIm{;P ze7vz@71MO}uEJGTrs?$S*ws{DoXlbx?`^HmV>a`_ zz?PJsny5SJ?!jn+THNr)R!4Y8hl|9}IcJ3s|yc5hq z1K5SbAmSX`^(!HpybU(}B4p}s;C!YQhqnw)uwcZwWD}XvIs8|%KnIM#F5F?<9nc2@ bFb2aorTfq;xe~kCJ@!9~O}+s*oP6uwe1hF? literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.61.ttf b/test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.61.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d3a67eafaf8f881d114e14c836c303c1d7a9bb77 GIT binary patch literal 1808 zcmZuyZ){Ul6hHU9*Z*aGo!tt1u)W7)V_RD~w^Cs)P-8p5MOL;6?=8w!*8PF3uCNX! z@y}GiwhG&xd`07(W=rKq6oKWDNdE#5fZ|p!M9g4mIB9{?7TG zch0%zp7-u85CCw&4DgWd?hUqP#$Iv)aIqWFNab&ULQJFHpp^C2Y|@KFKq6F@2_OL^InFC!P|i^l)Dgt+tcy^) zPgA~=7WG`E!^@HiVz%zSl{&<%dY`sDs5GoKtE(H(BUt@gS- z-m3c6@I&iWxyn<`H;VQbKRx>uAwPYV**|pb!sL~M7q1BodB?7|)l>O%8M)`!=dXTr z@rlG_a?6f4wTtiPE8ft=@0Q^xHVud^TXI<>~fKD zYUQRQR{{gBjz3|A6^#IwZ@Jk!h3lke@s4!wx~;`JiPVNkii3X*l0rYEN(>R#w2bGm z=eBKkr2J#Hmhw7F4*2!)!ZGqXRs^QgrZxf!zU0{IVR|8>M70Ksi4p%}Rjs zez}wK^_@MMs>_CKY)cw)r#zNOQlY*m@xid62W1Mq+FryyO`#E8T2hB~y*)q$mIfox z+t4w=zH$PTMN{xzfSUYWGUXfM+76A*L?s%D>XM?!F}e`f=t5LdbUi@LOEqGx&+T1a zs@CGC=H>vkmNN8eG$K*Z4TI(D)l`Mf7=~ov4*uo~|K{@q{%eT*(|{d_&6Alprb3}A z5;LfZs$hkBG(c_su3jyMB`R2=-A@~10qXG6CKOJ8b}gBejb8111mD-tycK5qwDZu& z-%RTgRk2ukc3#B3m2GU7%ltGlJ1;}OmTiKlbRL@cn^CkoeH46P`IX6L^bGNtD zOCnf(Fh{mNyiW0;I>%{SH#8PCzUR?UeKoTQyC3iHtzeod>|edY#WeH&r#f3DrdduM zda_+*n)Uh7_{JKh+4^GPhGG``!NIQZDrR%MoZMdWbKb}qLmkYv%p*E&W~Nniw60z0 zW|}J!YFbr{72}VTssg-eEVzNvd&_OEA(OcQ1}`uO){soDo52KwlMFs#P+(A3L#9~7 z6pNT*5mPx=EsJIF8-u!9^c!GslEK#u3Jf;aqVoiUpp1SK2zU^n8P32A7%&aj@CM!v z{qPD5!cGWr9dHS9Z~`u)mnT069_}rWc?BFoJ9vcSAmW+zn3qEp`2gJJ1*kCJz?-Qw zIJ~Lxv#nqg zYJxT@S_cF%K4FN)7-H~&yBm_W22B%r@j=8N3?#mo_`rh+Bw~Vu?t0Elt?1p%cg}b2 zIp>~pXYO5K08j<9AVR*YC*C|Y{`wjKp%<>JeY%D+ph3{VNx zFj5TFD8bN99tv>rDsWGnL(1U(xKi-fJZ{=VL?VV(h>S!=QgnGlj4S&5B)C6N2r=%9 z8rpT`j>*M9;gNr7)1xdbL^d|KBf;&#Ry7oCXxSXu=nk&k-rOpwzb$>6_nu$OGwavI z_urXMKYQ`m2SV^}>BrMYWmx|DcOV|YR z3I}J$Y$ilPnRVy>>Z@x16RJHJ3~>2&a2v^MtozPAW%-)7$uo)6i%IMuo}m51WsbrL z+kk7jCrW;F*?UhZJ>_j$UB{j#R}iJQ*n3zJxX!q?W0@NqDSi(lly)Vx<4--Tj@?~d zyCDGsFd#z-V8ne!02SCrX{E>a2 zTz0Vh@k-s;2@d>z?P2?%Hh_=7LGR?=v{7K}q`AP#$M~D;3tqABK#Vh8Ra4_h&iZ3q z&^gqA@#PqI>76PUH>Ztf3_hDwcp_;knx>}sQrh54Nkucw7?)RT z#9EJzuXCz(>s;O%;~pnNkHHfP2h*}BUyl*d_^f3q7IyFtU-~a!VDNuK;z0xMKx%=_ zrZE+Yh^CMsqD3^U&`id-SMTgGQdpvfCHi!}B^BcpI&Vbb*9#47PPKZB#RR^u!37V@ z^%{$?MZB3e6&}H2)wzWL?%Rrux?H34#N2`k`;9^)B$Y*I6mKTc?vHYaLXic8C@TgT z;(V~Jsa^?yCkpdy&tu!PFsk!{v1i8?TNAsVY^h&MHtE3A?a^w|T&?=X>MGLYmtN>- zR!DQ7KJt89gf!2qqv@SBq;x%ll*hP>dI7M)QpiHo# zhD}q%G(}8P#B{N$j$#RJ5p1YKzdnLf1m6*q33kT3u3$tLs4E%(* z!9LgzZ$m#k2Q5N7T!JE;gv;m^F7-oL_z+Z4g9@n)!qU4Cz%v_`*TKW=90cVhsFZKu z&EyOL>gcrM{{aI!g^n)Z4d#b#$l)2x!4y8-FbtzG4HJ-oL+E9X@@~ literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.63.ttf b/test/subset/data/expected/basics/Roboto-Regular.abc.retain-gids.63.ttf new file mode 100644 index 0000000000000000000000000000000000000000..efd7c16fb7d344e3c25cf7f672d786a731aad379 GIT binary patch literal 1732 zcmZ8iZ){Ul6hHU9*Y>q5TRY2uJ+{44HW+Q$9J9h)pvHDE7unnv^Bw|gZTB}Tt*nD- zqAsGcya>~T4+cbyF=mMdZkyWwkq?h$ z##6`tihTkgN&swSJU){F86Lv%0**V!r(YPm`B~#t)bC(lnn<-C}`QAnDni!2I z?@ayhBF0`p9-2Ud;|t42IKCeF=805x&b9(Y-M{OE<(D(tc=wzPzik z$z8h(I7Bt>YEyEq`rUe&$VlYc-Fglfclb5$Ps%Nw%PuZn;Vu{V5a!n1A8LQNxg+%G zj%vZT3EYo#hC(|!>el&MT6~+VYu9?}gx!fV@p8U4x`|=ws6|0wE5$bUEmNEmNT>@be5}UfbK>zZb%gfP@uR0mf`+ z1yF&#PYzO-g(Fe%i!^60+bt5lq8v;%>KhR$BS{C!Zd@M~rGyXJ6Qz=gr4K4~(-%wr zW-I%kn!qk{2=sCLfR1UTE~4RSG{_HePe zXHfI$s-YUaNki>XC*nyiHJ2q0j2e2I%3(;GL>$(pO?=YhGO6h{^iC0@&beZ8^RA7a0Q|THa~!=Q24wG8GK%! z7c0~wL2eK94QWv<(TgQI0(@&U$g2Xp6@@d9+rk!9V@SIc#{EhZWLOy1F2PpudPY~c z4~tb73NBo?ij8KuCcwiB1r-ixxmJiMm!MU=9zna)&%qCQ<`VoY?`DY0?ymM`#Rak- zmf60?wtGFOE(_Yeomyp`H$fG~3(94|e%T zlV2Vm*i}!OeK;CwDQ9sUi}i&X$X0bCx!?42UdtPaZnCZMxSVz?Y1Q2wTQ<5$s|k0u zHk4ys1CN_kLB6)ih7&ONEx)Ip&E!W2ULk0!XW4u|L7HHZ;37eZpsAkCQp7Ap%u>W` zzNV3434SGLYDB*gf<=Pw2ucKd8qqmT(59ka8iCHmHaHLSV89&wh_}IhH~=Rh2G2kz z{ts3l52xWWdU;l3;1SM&Dte(x>H?2+3S4+*J=XQGmVFFvYZ0og*YIXCn*fb;TJhdz xK&Q~u1-!wWFbHXQ4to~+AdJE|%)&Ip;V62QTWRY4y<}P{$nbiRLBMlf^A9J}j;sIx literal 0 HcmV?d00001 diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.default.1FC,21,41,20,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.default.1FC,21,41,20,62,63.otf deleted file mode 100644 index 1bd287d3d0a4160eb31fbed83aefb18bd5e5e33e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3784 zcmbVP4Qx}_6+X`|?+aNd(J&S-@U$WXliPpYEoV*L;~T{ z+8zzWGpePJh_bI@{{3($5OmkKw19pEZE+Y3=hvloK(l;KIGWlv>5NcCl=B+qGopcQ zams82Noh1W7KnzvI`GXR*l#7u+8WoAsnILs!~WYKSIuo5Qo+kBI!jt6FZ(Bn;$Ok1 zYZrF$p5}OW$=%;)Y2w?MisWD}K5$q3-Q7=Mb3f!uvNS6IOKA3)MDPPWi4LdmEs}^F zFFH10zRDVfr^zSG23L_pF++4XG9b$~b?vTt#qtJvf>dF|ac5NK9fc`y`2dTBKRaH+ zpu#7jd||G=zd(~&hz7&heX>o9G?%8?bjE}=5^}N3=F8-!80-ld?8UF>d7BofK&Z26 z2jvJIHZ4-U&}GvZ6V^x+6wcXvnHD&TY&w&E;b^ewELtQ^w&`rj7i(-V(%YU+Ifu_pCHtnEknUic<1U=iPGblH+%CB`L+C!>85KF3!32jZN zqiahb;q#XJ%9nDUms$&04soe1hp1us%5|YcGNQ#)Yjs#lwQI3%wZdEOtthWr8Vz)Y zwAAL%wh$IndKXt#RxNy}F*=HJ`KX*K&{QhDH(La%nu4TJ8-+moX*(q;1v-jRr8<r+l~%(-6kJu!hc_B^VO2YY)W^v?agLRKtc;mnHe!utTJ6C4E#M~*trxL!%u5mB z3R+GLpe9(nr*CPOKA>-DH9&7AtuuX1!hiOXGdXTM3|`8NG=^wYWSC`MGt*VrF$!-w zq0g%}W8B8EnHDOsYB5#fTSW^$gJ%~*4 z+;aVW7WfoAh$Y4gH+6z%_wPIAO#t``z#ikf4L$ogex?`!waD#L7`ZY_Fy5b?Bx2zz z#3AK6FrK$y&(Xmep~S%L7Tz9vi9i2xPdb8qQC=-vhV_N&`g+Z7e+=$!DD!|S@h_+(Svuh zp~*VdMd!N}a z`foeT3#U@?C1qtjJw4t4JK}BEqGj_-)SgHxtgZS{cl)nY4-Vy_*~ z*z<{|B6WDdRM3}zj}6pHFVKs$hhCzybb;QbKhno!(5N5@F5$6PulB!x;9AyRx&O=k zHLor|R-A8al#MSM2i!yQyLz*vKQF&yG)uSSB99`fPQ|U4=$XyujakN2DM!?g^tvyc zKXl^F!dXtE@{U(`7b^2SpYte2Vt9^JDl7Ucy9RaFz}aGF-NoE=(T%)+=qJ-Ici!y< z9*}MNu`45GnToVmR-T>XREo+yvpvf3!Q=10KA5%F7&4xajjhH$_f7eZ?w9m7!=KI? zG~Up^rtcgycFKydC;j?Nk8&yPyrg{RjI>7%o;;gc;MBjHdGgfBGLPc^rMxelv-?Bo z3-az#Njdb!^uHXhQ4Lq)@}-4JZ-qxG@d&4el=$J!XX0Cx-nmYNpXal1hprI5!B2ES z*x20iz5NH?`)JpN^od^!x8Bol4~Vy>rQ^f%M&hzgBX`^%==taVUhH{m&Q&8{GTi!g z_r?$FbVbs8FcU8^LGBL`C?|?=~7S5d{53? zkG}r&ERS)pSI?c*ojWwonb)Xi>6^Tsyw;zN47q=JRyM9w~w# zyB7EsudIJ+Qy`+Z%ycSg(XD!vj`LDH8ti&{x^MMwby3gw&9$2+j&4u=k(R@&rW;cX!E1b8x!lp6uD+}c>TOpPT^Suc^c-DMem?!#%kEBP lzO&`!AGa1Nj@|h2!aqF+{#QBX(;DGz@`{ToOPEP({|y4?W3d1L diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.default.61,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.default.61,62,63.otf deleted file mode 100644 index 328c6ee880b2dac7431489ff9ed0a5dab8181b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3496 zcmbVO4Qx}_6+X|;KZ#!wN-{^;QYVjw{ITE!H(^V{q$Vk$5m}tZNlFSMIQENeg8f|k zQ$So~Tw?C&AUdn%=7w54B@ANw~zE*sn092KQyA3is_X3IZF6h8!? z-o0>;_cX@aZMU!Fsp3UUMY1s$Ke#LY_BQ;?djaycJk<=q6dJvq2!5a^(dHJuNe&|0 z*KIp6-)@e=Zt@FN;7Sfrw2L+yuQk$O=%ed+v@<}DP>8~|8%s{!QCJI?kFZ?$lkM9W zWcWl>Ce&D(0o8Vr*QGm{pnhDt5kzG{sFx!7Xyo#de;>uCi!56}wu4>SQ{s$iYxDBloA(0VO)Q zFO>HCn*2@eoac6P0m~uYXvrZ8bZ#A1(wVrLl+D#KRST=hDS4Bx$+xMgwLKAYxazG)4;OAk9*SG|&l*GWDP=VMx=I zGWw7qi$GFGG0+wM`ff|7Q3|g9|(6hB}SWiMK zQy(lOz?J1Pc%#xJR)tBCKS{pTbF2(vWzz7nA8S;@Y831DfuBaSKE%o~wM+gNnS>_$7Kd&IG2ai~`mq~VRz@X#=pVDJ{{I-%fb0}J z7(_f~&Q>tT86Ag@(?;GnT64udjKCiJXS6a-ITp?^$F`iAAWlgy<^jV#<735g?;RHS z6x@v^#tS!jm1lSEyX;K}_zJ-u<9iG}`?+$a7y;eL?c*4^GHn>|%uWWea1~OJavd1Y z`!I6VqNrW~`n`8~vJ%OE%25PX_{Lz%W5~}kLd=uGCzMZe2k_0eNf75)#+l+dX2!kn z1gJq&GyseZLiz-x1Nb^{7YstS)zA%qBU2Yv^#KE{(PPkTmpx~c_t6N(?U3*q&b9)t zR?x_&F9lB-hm2bjuW_806f(j1j2Q6;L2-6JeuZV=$h5kwn=w!khV^l@FsyR@lF0ZZ z#whk-KN*>6_`$hczGqfW7VEH=91GXhyoXpG#cq6ureTrKYZSa$@c7nbv@&j&Zvpn` ze<9y@UziCRF=e1@o|65BM=I)O-br!z#aQGxI?xy+?6G-+FkbJ)jY6N-app|BJ;vh# z|E+kCpgqX{vexLvxCL(>8KWH^^TSI^=tE0OOGmADMgiumXa0Ci2rY~z7#2Y+E#h*% z$4?-;jRZj`z4sq1B(>Rc%04J$y#KL93vl&fEWaOS?SWTzYbVySoay%(( zF-0Cq#(5Uhz=V1-(x|3o6_T_ZRwt8MI<91VU21AJ9goH|+26FOseyaH(Kr9M9qMA5 zmTGHkoSvTch1d~aSWPt6H^|d*EhY~r86`c1t-IBvCimf)E7zKF)cUM=mY+IQCJcdq4zPxn+xj&C@n>U!@wuQW7Q?UfexPGvhUNtd$jOVaaiIG%MzPMy)} z-TJp&r%s=$^Ge5lQvT;3cFDPd{?7JFX>Nm8s__b^-a=kgM)n?k z@vjFjWKaHFxb`dk`l5KPG@H6vcPr)8>DCR;J9^o$TpZ zDsR!;e0Kl*k@;8W&(1%G-kD3xyYAxUftO!#bZoRB|6qZ%=zdRHJX}!l-r<76?0L^Z z3AqI!zp{SYV0iCSGf#ioTk+z;I=AH6sT@21i#LC)Z$46)D|dxG{VUm-I7E z*(*iQJ5q_ry#Wnh>srM zUY=W<6MVVPNSC8i*^bLn@!2bS@(S;i@ HNWOmqFBkst diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.default.D7,D8,D9,DA,DE.otf deleted file mode 100644 index 4602847a105c2a670d7b8cf1ca2224d09b96acb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3612 zcmbVOdu&tJ8UL=YubtQ-vKQq}NBE7;?YBCXrBu@?Sd9dxWntZA#IgSA_#0^Qb*b?v6=nB9o%_uYF# z0%DKit8>nGzW3`KpKwP4JUWs5t#Bk5+WY+AlSC5Xx4$P9 z%}7_=1w@4t*guhoMSFd1U0r~m!`P4j!t*udJYc3TOQiJS;<$80Y>el!?-x9M51;;S=JP zR@n9>n$JWG*5$^|f@NAkWj5@b!=oS$(j)sLVajhGoD@ZP-aA?)r!}knM@7k!U)nZqI5vV)20k(QGJC z9jb2RJU3blOb5Bjrh^pTyk%D`n@ehG)#6TQdXJVKRM!Wp1M92n8&lE#n5Or|hGSr; z3v8&XtFO7EGCGcOg{Yd=W2jVhb5{$fiF!$+Zi)ep&_T+P4mgEXrB;-s2h=QO%sFb( zdO=x53BWq=4HU#TWPSmP-qaQ_B~zfSrge}Qq9phefObHC4kJs0m|0s3w5LH;sT~?p zz^ZCFywPX?Ts;(1zd(VxdvHd;nKr%L4j#?a8VCOY;IoJ}fLJ-^Mnw1^ZKg1wIT~-u zThdjx$y-uk$Zerrrms2p&t7sSXLTol)6GcJh(<+*nHDfJT@Q;Xc+(Gg=IX;b%(0mo z>cF*u>hRT5&FAoJZVW1X;yOh!bVSYB=h|@w`hnA6^KL7gG-Kt8vBx{Hu*Q{DQON-2hit9?e-G;D>b6Dd_wsoH=)1zHi_UIt2k4<$IiSLb_41_ zMZ@T^4p4W4x&vPm?t%``wwSVEU{q=bS37!uC0b3G^|I&O8 z?69BQnOXS3xtzIYW=|H&u$LSQ*Vej+m>!2UzC*Ln$mcZ<+(F>@*5q#GzMZ)R*rWf| z`GLFYnTQ!v4zkuM88JQ5P&eyNO2RMhMUJBhgL{NMwr&va*E?b3kY_&5oTazbd|cqa z6%P`O`}tqiUOiab$cd|$Up`LY9rO-OPETWxR}8Py{8Hgp5#dF|beW3GU9CA=Ixhm| zfj1Lf!gvRRZA{w3XRqIomdbMsm zEe_`NSSqKsrhBw(M$1O^Sg)E)t9l})?o20n7tw))c)B;JWmOH7tlFaur1fkvmJ2j% znSh;y@cn+C!?SHedDxvF{hG1}LXebb6M*=-sD!6)`I+WBC>W)}0mK}uY z7A>u-?RXBWE3G(I2JCodohT((t(~=X51kgFiu`>Wr+jYjyYgbc*Qht#Myb)~l`c<;^Gp3+<=Zar zmlhj^-pi}~-qB?qFVSK86`i5y=>>A3O1LiGLWQqL>!j|F4xP*Y^fl?~Z^X56`D$4{ zbA8oR#wBR#W8d4N{LDXA_+MEzVU#O|PyEr>`C+T@Dq_^tYIyflDMqt#+?Vfmi&Eop zMWl=opHU)4M2UD@DgJD9V)tPFpA#i#-_Ms{E{Y@vfS8S84OUzk*)r(VFfekxQ}zGg z*q~VRhB)%ZR?$-O!K64oS$ge*vPrQ!cAdYIxW6 zmD8 diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.1FC,21,41,20,62,63.otf deleted file mode 100644 index 18a9bcc4ca74c7ebbd7a146d3f7036c7f9afa2b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3640 zcmbVP4Qx}_6+X`|@7YOAC`pYnL6ZlC0u^zBOV|=RjSz?$5#bC6D2z7v561-i8T%yx zM3ri-Hm!)#{fKl@R{||eu&r#YqeFsrps}^<8X$#HX+vZJt!u}aG;O+umyvzvy%!P? z`zf~Wz2}~D&$;L4yVuvjwzeP@(z7Jf1C32h+6x!H_bO4*%S7_?!BBNz?O%KL5=n&5 z`e-VgDQHkWB`Q3R`Rg6=aLm`z-VXW|v;`et6g{uJ2b$$GI#R}#2`8jFqLQhYPfdll zWXRnLlJaP3I-H6>HSmp@u)m(jvpJ*ZjFEE`!2Vkx*Q{+_O2zQTn@0P@$Nx#P{Acj# z;^`f{r#0THzx8{MF29SZOfKf)19#<*Zv725UxvKiquT-4LaTQZ!4LE#yNaZjNFj2) z;Cd4CW%ejNO#$g)aEldLE|6WW0>}z2U8ieUvN%YKNRx(L*GE*|QJMso_pn&{lj}Pe zH26eREIfs_0LTYws z7nMi}hnA^D>T>9UacdNcNhck?N{_l`I<%X9;R-smhvv%@9lDUpw3TvXfKFl5s2OF6 zLYk$F)rT!v43gQ@0onk+o~rTfvA%u^-?rwrG*ghxp}ElLp(NIKfLa0jIkYTwqi1VP zu%3ogqvf!W0$0<@;f+pRSQVwX_Bry8pJQbRE7O*jtyrU5Rufpi3H&Ug^&?h}c_AWP zLW?N~YMjN}`nGn}UHZ0G5PC~#mE~&={DcprE1a}q<%+S# zD>38x+4Ty6vaw+Ap2oh_*ez@AY3ne}*y(~M`<8@m4l&;k-deF6S5`wM{pg=?tp5KP zG=S_3JZM8acFx8y#~IxKAA794akTb|O&Eba_|Ir%oN_FjVUBGyGa;Ok7R-Z|ea6R_ z<(4}v@F}<(ONew$#!Mf}>F*RxJkxSfkmZ*)Ds|C|^!%FfN0H z*KoGu@M;W=eEKr*lyS(owegz7dC4FXjL(=Ae+U$3_p?`61CDH~qq;c@6;W8OJ%M;j*@6aqP@_9{ww-r3TH5sjp z+tFKqJ^EkB_um(0LRL&U=-Q`bo8^&?y4iP95`HljIgSQ2#t3_C-yn?FdvO!c=XIPp z+itVMbY4oG;BA#x7a&;Mh0-v-{T`ufr}(b zntbmcYe;70r&9hQDPQ5Ge5Jg|D-W+Vk3EDppMGnOS&uTg(SuLt}rHyPdp7S^AnXTDmqQlSvHS=obav!kz`TuQ) z*&T+Fsjsf?>FM!@*%5zKPgT#EtMw#}4sAs|7teNM>n1&IXv^_*)@Ipp%QA3b(- z-d%c%;dne>i`CL2kV}XBGF8q&i&7l?2yX2P_kVl$EEB_4* Crcbm0 diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.61,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.desubroutinize.61,62,63.otf deleted file mode 100644 index edd389b41de72da8b3e4cbeb6e399f7c679c0f24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3400 zcmbVO3v3)$6}_{wv+I8vn~e-^y;HUMRms@d+5tNO)plcQ#duw>?dC_E@$Ptc>+H-j zJN`vMMgk#0lmZ3CAR(m+1PB#^21paBO-QPQK#3DjOA#Tos1ctk3K9~`h6yp}&Wvj( z3ZG_2@4fr(efPfmIq&U@_xH!Cls-iw-Ph6CDSzkOHym~}k6Hhe6wyzj3Arc6` zUCEr9r#j)UM5V7`z9plnsYv(G5a_R?tm$yt*n<3c4-<%cl8FQ-oC zDcB2=ifAES&1oN>{oHcc-$hjNiM&y;=6*>r?7s$b+1)lE)&J@r&hXHZjejRm{4@CU z#@T(mr#s$iy>+?75YJ;OQh>Sm!Cmn;x8P^VS0QgLF}wggq1y+E;0JmV17*S&NkY7z z4{X7Fvo{JmDJDDwZn-3iK`{{EwQd?*eROS)x5w!*QYjg@J{RI0g{5%$Aj^e62EKwp zhEGJb!U|tgpd~CsgJB9|=FuXppk+QCT(m|)E;jo75JgCbJt0^M?Q`^LpBAWI=$S(>^~$j|7(cbeMh;i2HO2HHk}nx|C|g4xcWkn7G}iD@9q{ z@6%P(6#AY=BcR&QAADM%_l0iwbbywHD}7o7{g6)wsXE+}FviTJCMQ(AAorR^pOzlm zt(q~VG1j<&^Sr@Zz;cM!`f`Zk?VAQQvye4(*;}14tfZlj%j=XzWnE*-hMYR88Pw<w3#Bx&;dNm)F{$^=&Gu9v-7W4Kn+Sic*56VWP&m1Ew32p^|*ii28Y z@m+mSd+im-sn`qGWwE+LwOU~qi?F@L98>xZ#0*KoEqc(s5= zK7Dz3$~a`)dU(y^yyTGy#%IcnKLLuf``#-o14o|KdEJ7GiX^O$pe13I>!%~*V;Ixe zhy7$^n(%{jIe*VAoGjL1FF6*jt#=QxJdNG>4mDws&ubdIDe(B#WVAAF=WhY_=zk$! zxhKpd+?Wc`^-jqi*CPXU^X{Z9{9-I}9BpWf5%$=-K^U)ho{|s-7fcWf&W%K zNYL)*e_4Ml!?+P|9vNd0AM=xQbLiE%xw+^3cSZ%~tmplBjf$2;6I_cR=4Np@-{mJz zFhGJJEW7(3EF>$7byU1xC_Yd@#d`6v3i0MP=fneery2j;A=y7)^6HI`RNJ#lDJTe% z_WISB5^MCI2HAqF%9g37w47>=%EpM?mNJI%WSA;gTCN~>=}E)P8>VV$DLJdlRz{Nt z^eoR37MM`iQw@eG8<3cC(iqb%GpiMp4kJHhX44rrO+rD-}PU`KJ!2wLRb_j<(S$ zAu6Qa*>|>h^rynrU)a}X#jDGT`5UWl=0i5!ydHVou08!X=?kG#55MNrN>0SS650Bf zF1uW^r$b#%`L?x^)8QP66obIzWKQ*H0DtL?o~)xh+Hr^k!!7pqTQw)NlF z9JdFjBj-;)|H6srGohNvXP=ZV+9yMH<<{RiFE={6Nj|rt@2VSO1L*k?q={Ge3LfhxYn|QKv4f?$E3qbyc68zLXv>wq3HHo~XWZ z#Xj&>%}e&n(-B*|e$8&RA9>=MQ#~-Cr-q{Y-d*;y5 z7o+JjQa+a&+gTUu`L!+D!B^jS`{h@tnXqz-Od}syT`e8_WR2wVsfpyTaR%1%LEeO_bsY=sr?P%9-tB$i9k^TPn z-jIOUqu4s<{LlaWI>*PMuC5T}(~~6A9WAY`YR&8pji|sNlD`}Z2ZE12JNy)pMED%& zOKNH99d8~{{uK64#-m!q*WS|u_!*2%aUcr5qPz;2>1*OiW3)IXohMrMPwdN++Gv_Q zod79^;Yn%9=wp*#TMPXMi1NOa*0aX^Zzu@+U7)L$S(j4rLe=xbJq9s3e3XCemc@?vMhGTl#Q4(wjSqaYVs9K45ol!89Voe$|>(o+sBQH9jzz%DA5 zVh$`*yENp$?j<}5MWnM1-a{K)YaQ52KX-*3IFIV&c1@0~9m?0em9`@Ex(fe$uXM^IMWh&>o6jeV%{-t|xhQXP#yzB&zZfT8ye-QW#qV*$Ij=2dDK1^FF1ZauI z>+-gA)lKrYR0wk0XpiM<7XGuBoXJJqao`Lq(iEamkzuC!txPw-ViMjAK%Tk!v5sseEc(ybK6+UsDGzzcD=%Y z>|U^~r(ib#YZ=R?EyFPP&JZNow*+Lfi1~KJraxw7cMqhW^r^kNdk9GyA!Crnm!Ik=rj~<;pZ-y)ipk#KKibgUWT_ejdci zRg0l|A;`DitqZbQt1J4Ty&t0wTDg8HWPAu~ z40hO0?#vAQ;9M@;Gm9sSW!OuOg==fyLrjms8sDKAXyo%61MVPjd~0&Ia^Ei80_@TM z>U{rg^-S1`DGOQql#E#(>8P81Cnew)_aev9jKMv^9@{qv_v@{&F~~C?XU^8!W<4(O z+lmJX#@+lY>#PM>+sTcqmtQ_^;9c|vP0!C`k5>$@^ZZibR}tYw#B`a8tX-Wo+d3}+ z=7Bd8UB-9=gKbPZ!);l{W_}Wv_$@vXxm_elQrWG4h(TGGTSd9MrQAJ5l&g>*Dw5~+ znWyi;drtq?entFh`GwivmWYdYl3S9L=*5|!KUnQNAre_tQ;m!ki6*tofU5Va%@Ms9 zPm6h4s6cVPoah^Ha}J)`QNWYj)=C}m_4(X78k zPan)AVsS$aR@YQ-PW(ftGlAvXl59u zTlJKocHlXzuCwD<=Xc^+coK0M57RH`EImu#BM4wRbr8kExP#Z|BOdl%5jrjQd1`$P?uv_I~#F z+WE@YXCC|E7aEll`$NyQt}+`;uUTsLSC)=G_}wihIxDtSE2XDS$1Y4O+UZw}*H@W) z#9w{lvzI>-`9FJcH2(bx^Tb@fGW_EB%NJIPJ?3|Oj~qDqqk&5ClU#vvOqgO#|D1WBxk4#^{@AeC@R~UC+IG=e^6s=a zK3#hC-Lh%1K@@nznh!3BO0jyw8FOu=S>P%CgK%y3PS1VbS9(<(5#$xh%Y#)_UA?BK zvbaN(l_b&*LIs2F-w3s}zq<4 zLh$35$(#3o@BjYazxVcSw7)+}<@5;>>3toYovQfdXU-7$pC%GpqOqpP&cBTxClUzH zu0$?gC~KGACMv&*@mDjccrwsEI0*V#w6z&b_&+7R44V1NGC5=KybD4r(Y#kNUX+XP zEs(btB$d$Qd_0%>*ejo@hyGnezTE|_XiQ(G2<-0#U$xD8q+0(Q9&@nj;eV1S{sr@N z?ZwZrO}oF(O?(MMkvu$$2kwfm-}*arJ`H}GPjdornD*C81V8X4(c>46kVNG9 ztmiR|w>Z7&?l6!7r&qiAMsPLq8!j!-gYr$6_Rs?FJeL+hFLmiMs`j?Vv@t!AQe*LaQSH^WzEpZ_ zG_FTN;YfHL=Xss8fcaoIx_q#r8#ZlA>BX#;SDn=v%}8kZJ!*3(9BK}?uFJ(oQkpTG z+MB|HmeAUkmez;vsfia1)cZ`)Wtjyb9_F|1@YfWSQDCTuU8$zrc^EyPhkv32i z)Etesfb0T1 z=tn$G&So*k86Ad?<96OST4%*5dSDO!Gg=v^91CZdW1GoL47;Qo?MuD+@aJPfohqoPPK|gq#Y}qJgRO-O09$F^3pl)nvz>xh zvuNbqSAeICL&mLx*DUr+0hwTYChhoRpg6nly}~MRILS0$RC#d1QPH zeHwPyPe!H=KRA~&=gjQRVj1?5W8vC5=MeMLu*PSo4voBD)0msU9G{wuR>tkjDZn26 zFXV^r3o|i0rXpmWU9!*iNJHJ6Gbszd7>gW7I~rqzJ$6nI#_PRi(~#$NoH<8tmwmaw zZ!0b&Xp8t)*6sc1AEPqdC~(0dA8sHXS`4)bVQP9Ba}19mhn~JTef(BABw5CJ1d^%3 zCcE7k+?gQbG`6wWZMX|TlhgP{HiVWygFnKQ({SHn@9<2&f`k4Zk3eM}5(Htvy??C1 zX(%nCQcx(>R#2%5UwE;MI)6fs$KbnrWZ6lZlscGHm@3)l)5#a z5^fH!=5NIQuK8~kR%8sL(ALy6 zK0Y3bvm>E|mTOwMS{=_C8MQA}OzC@Ix>L&=Y7ef?YJ(F;L&%M1=K4fcg3uU#Jo5-?Yr-hoTj66-;!(mZuA@ZzNt&wsyeiQj6O44HvCWmQnI^qb41Mp-e>mns4) zgXWNV=JHgNSCJ0O%F>{6_R87UzIDZS*t%}5m#y8_Q-K@uq#2XUAuCq$U9rxYpEUPh zvG&W#;-K<{3)1K1P^?vh<-t#Y_}R6#arYBKO!v*zMI z8iGGrcGaqptbqB)z>c@NOhqye%3YSSvr)1-tkZ$gkk@>`+AosHuss;=6g30lWZpSg2&@Visj17AON@@(CALcvsR`qb`k)K-=*1&%yGvLMJ6t6JA@HU}5` zm68}xgG&06RLCXA9$y&g`JE}6Wxu|5+7*Uq_2cP-&t~#WHJcn?= diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.61,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.61,62,63.otf deleted file mode 100644 index dd908c242b3524230584dfdac7ed83c14ab151a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3340 zcmbVOYit}>6+W}Gvup1-PUEt{u(kK5j_ssM#?IDGWILeRZroaNy{^}GlP1I&?~ZpD zXLpv_u^mT+Ac2qor9_1vAXQ2g6i}$34@w|E8k$tCf=~-cZG$NMK&^PG3K9a%mJKoA znHkqk6duiv?!D*U^SI~n-McqAF_ENN`aH>W$KcSA_~@1TE~3Z?QQ!y3R7c`K+d>VI zMED&}7xWUvq`wl?zJd9^oS|o;Bh%BMpG4c4!$RbX%B!H6zd2X1kJcxk;EVSYzJ zKU$*T7)Yw1g^GH?_|)rPZiW5BL^Yo&nPq$VSCqj1+rSs@wgIL2?{BrgFui{FKS-AU zgmt>|%2#<$cf8(v{p}i4zKp3%0ba!q?#jQu4nJ$Y34U*l=>_01-9AVJKhTpLh)5?% zLA+lH?8AJoH%f;nA+=ytRb)9R2LdeXroq)m*MI*&lI|m&(t)eXA>L8i0GCfOU;0Df z8yEz9B5IV{d`*egGZPJlDU6v%%hX02eLA>CMnNui`|BZ!QW5r~U@f#?r7!rjM9tE$ zPY0-8%KEfSBhtK22iM3bl#wp_>mj-)(CX7+dMS|f=^E;i*ZXuWHOhlNtx`fh;M415 zA)oN+dg=;&-=h&wW9aujEzw6p@B4IsHip;vv<$k%r-RfG?n#;RR@x9Ly;v4wmN{-@ z=a1-CLhDR)_Hmy3JOSo|z1`=7l^obJWmx6BSrndh&a~5JaY5|RI<+00J$(gz&M@s+ zZc5uG(!gH6fIGiY|sUaf`(C+G`JR( z++KHi8F02x4z!K+Uh2TN=zba?vtmtiH4ETvrESnyq&(zvpvGapjAqdSdbTzM>qT${ zjlx0!t3ouw8E}+c~V+Zlpy-BamU{X>O)_uwwz<%t4=}W-%V+ z*jx+UklIPz_I`7zBLcI_YROqUP*#?KlH-STnKb?N&JN#>y3Ak0&wX`g!$A zf%356?Ow#b9oWrs_w;m_X6(#ElYPrWw~Ux?2XAB8jVmiqNe%sjzSaL9gEo*|f(H|b z$IIC&<~XCX@Nv=28%OI&9Ki_e!GA_8Qk6@+*vg-mV z*iS~L1wS~KEBDOm$zmP$l4If8diN0Xv)GOAPzx6Myk@bsgf+f38Lf=lm0N&4`d`S` zZVNLhH>NUly;E|`^~glsygMlmzZi=gM?V^4ggy3d5XS4RR@p^iB8NI%|y!@2^&Zxtj^}HX;=xAv)$+ZY#`E^{*xA;jE z43H#A8*lvw3r>3_MwPpyN>d$Gn&tcIbox(&d|Bwiw)Biq(5*RP&WiqwIfEy|QrR{NWieb#n^wuRblb>?d{NjrLrfO) zJWJVFgnBX4VOqij#}a9CzGz!{qpS^@r6nt$&DkQ+xubI%_X)S}`fodI$=P*vuKM^Jaa|67e~A1$FuU(p|B*i?CSgE_+i6Y zxBoX)^%D=|i-($@9#_shcj3&-vA0hpABtDgcIVWlkE_mijz?d)bo%)p$6F%R?yH&; zjjPJnLh7a_^@$gi$3vNO7wq^?Mk>~nv4cVngW{+4T{kVDt5M&EQAFaGWBrk`$pquQucqt5T5`~N)bsETtuG+b35 z-L6yzt7oH?nXq$b^)baMRF6fg4bCyA!Ff!npWGa|J0c?WUvgeN9(Cla?>W8BJrBND zZJ3-aW~SpO-cg*Xp76g8z82oxRNvatRA0FiJ$Wb9NK$Ql>jM+%Pg`wG&EI})Q$&p( zFiv0k*~>q4cAkn?V`2TEVIPdCPdu#r!nqI(pWnK~Z5eDUe$&c`1Qsmk~A(`WX^svD}3R^6rkB=*@~M(5PF$n>|KJsel@ T1V2Ihr3!Tgw$iwCnY4cc0b#ft diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.D7,D8,D9,DA,DE.otf deleted file mode 100644 index 5422d32284e55d220c6beaf05d2c6195dde407f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3464 zcmbVOZERE58Gf&?ubtRn)_~It>f|QjtBlyeNhk@ZBBX?7q;ZM^G(a0}>>Jxl?CaS# zAD~K9>h@!s(D*TF{AfkH?Z+y0AKF+~CUqNhtdo$cPNRZ#TBNOPT05<4r&Y(J@ z_#IE>wW9Q{zlx~(D(25*buAt49~lAt9NP9Q76M;Teg&HO>$7=tCX|sb6Rj*_UYFNq zisTyvNfk6-LCfn;zWJpM(0`n$>hndTY%cto;;=sizG|EGDD|IvDuM5uuXfs*>&@GRffzqW%BSUesEX5e)I3pc^3SxD#HoDVcNZq2!5a^*%Oe?kb-!> z?0Ew7{mv*oMRBPat3gGUy|TyS1#eNmt)lypJqg-P*J#%B!2&eN*QNX5@;PQofA)M0 zg9@Jzx3tlLDwnw3~bkSY+(H74Jm-f@oJqeetqIP+eOIK5!+~d+gipxh`dZnz& zr(HTk?Y{3gGyZUXqG)g+?B%Po#nV|C+Rq8`oQs9=T zX!n}UOM|nSvY<_@cTo)AwEaa%yQM8^OXk6QkhVf%nsV5m1$6-W%V;H_No}9Nv*j_U@QLfBp_z!9v(L5T42)yVfX#cYaL$gEE5;rl#Ek3b z)GG+38KxOKlaOTJa*!<}=6k{0Agpm^Ra7#H{!v%!|Bpcv$S%Tz zA;jb4YzcFm(J}ZqZRd@nb#_c(1oq%Rqm^;Wv2cbtw#CdOaZ36zPuThyA4{71Z_~i1 z;7%+tUbv~tJiFcQqBk1wr9mI#dlWtUxpbx&0lmoW;~2RzT^MiAP8qRq6^h_;9T?9O z7`bX0R4)Pf{yRKbisV1#C=D%qW3c8?^V*g%S$Gqd_+5Syc|9aaQtjRUh{4%ZSx1!zq)KE3RqEy4E9Chj z)`bY(bH=}pDV2s*XXcL9RJPnlUP)5)w{OIw@mBWLLp4Up_sxhW^r;SlO zEl!k8JzrM)3Mr#hG)kJOr`23RHM6>Uu#n?f(!?Uf3+b3qQVnoQYRZ@_n5CRvj`kSE z6Qx`xYpU_qZLM3mkK29wf3vVTYnsKbSZsQFI;ycF(Ug&oJ-Ah!&Y4;DfL_*1Q!w3Y z6ijsh&tY|w6UU~g8_(jCh^izh)YSga?w)=9VX;;Ck6p5wtTjqVTssvOYd`#r$TU>K zJLm8BtAU^u-#6Ue@#t$JUSGL?$9&iyY>Wi0PRnntw#I_Zk)ZNbU-02Zt2#(@ntnkS z>3RA#`A`&kjDA2rp-c2nsqy_AwUy%B=J}#e(EJDCw?*B>e{78WZ2eWMPO-w`_u=99 z`b1C>r+j@@@JNed^;j>3E2Dm~+Im_MdFy1@su3qejd)rKeJtK>3cO$bt#-NLts75% z_pvVJ{ISG~z0HBod~?_N!TPhWXYy>yY?sSUhz7Ls9+HS7x#=*IVc3 ztCgu&PQ89*tvFN=63i1o(^@*02p;61%5E^(-)PzM$ zw2P?K{^M7zm}tW+KJuy+wc2<#@|1{KaVuuEDWS@x@R`*N!C-CU#-@ms`KU*%tq+F3 v|0AnOtT{HMgix7IQ6=g`Cb({WqygC`&uJR=oTa$ui*(p-`{;=D5yk%vkT~w{ diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.1FC,21,41,20,62,63.otf deleted file mode 100644 index 604e14045765c95402808c010571b62f017c414f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3480 zcmbVP4{Q_H8UN1bJ3A1ZlJ!s~XmYerpdy#VC2UDLjU*5?B8t;Efx=jWV_$49vCo_@ zBtfZ|+G&54Qgu_+N|k_iFv0$?wUn*W*aljscGIdgWn zyg;EIkW@mG^NF1P$v3{R9{Tqag%1>rqBZ{}MPYv&eAP7@kg8{QpB);gc;KHTihsd8 zU4HdTY}4(pHDCKp*braCP^19Q;(@#3udn?bI-dc*Ic#_Vcue;jB7z_Ik{DPfJV_Gb z{bJx@jCXpy@CZePdoa6P62+hx2n4|^b7lQc>-M%7Z6j5f3(U;RY*APVmya@A_*393 z=v4SbR3+T&+ZU*UnP^Z9>lHpN(!I3Gr-Mt@NXW$l{=7^I<)KdqvKK$0$9-C$YN6Ao z0~8U`J}pw0FzVC6C2J%~2^ai%neGd$_vsM*C=m1MFl`Yle7cOP#CD%vPEqj_KD|Oz z#VMbT&=&cd9*y9tT79&>h4b9vEnq&_wLTxLSlf?K`dDUB;F|4GKKd3fn^;$!HQ%f!}tQ*#l zKCWXyqqeoNvFZL>Dx*^!U58S}8>a4U!HzP7_ol3v>>>N}VW65?qrC z?lR0GVglXgEfY$HI4Nnm^TrvhFCe~7DTw6+9(EU ziN@>lo^uVAIvzMI7Mco<9S#G3xM57|Z%+uUVH^E{K-V8&YR}G;b z=h$2gjaapn8u2#K{U5-yr7@`RiR+X=vk*0BpKHe%7{;6do3~rxtQ#v=j6Lqhi0kLo zD-O!Tf@eJsyLGT;x;8x-rWrew)B>yQ#DQMvngEbE#KMM%)b_(xM-pQ@NH=ibP>|+&sipLna=fZAK zeW+**80!OfH@LlcTX7cjfw#kzjbTQmcC6|K23VrgrCBd~&M5DuJ?M9W!)rL(I=os$ zBk#TfJY^g*Zautav0nw;|2MMVG1R1ZfjkSKmT?m@I#y7G-v?Ln*5$3#x`xbkLXZ{Tw^tX5f3I<3JgjKixu?A;D zX$_U`5=zzORH_lTm5XzGomcL{ozHlGpJY#0JTY6Ww12;nBtZz5kNozpqxo!oLq~g5 zi`M(sjcid(sFs;X>A8eCtQtdVYswhJHDsb_>A9lXnNJ#K!7vk+o>H@U)yn8KmKv>ZsNc-rsQcaW-z;p*SXQCAu5N5> zOiQpMTGGhXZQ87kWvz_bs~2_iAWU}{c}wla)mh!(#j!#2<5{>qaXJOM8z;eb;d6Y^ zL?*G_AEM9Gv=9+?36H(|_Nr20cH>+@wrOrg`K4WT;UCfw`G@N+IaQLQ*uPWuywhnf zm+ZrGr?Y%-t>m;jrVzi$j--{qskTer#6c6xcs`aPkLK+%-MBPtsMEReg3dwi!<-p&Gvl{ zzUNf-_vcdsHB(n5dskEFU;BO@dg{FNgq%9}1M7RMAN_?gJn-zd_t)584xM}D-1BEw z|M^V2>Xi4iwbVq`+b0hzuU>rq#qZXnFG_`6YV?uS(e7W_q8su| zwbDy-SCp@xJaMMxJB1U&pDG;CtJ5bBe4{#2x~SkUz!VN+{BsH5e?njr^$M?%CT^v$ Iu$KD&4e1p2?f?J) diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.61,62,63.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.61,62,63.otf deleted file mode 100644 index a0b2c2f7b0ede852d1302752a1c5b9d6b4cc4717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3276 zcmbVOdu$ZP8UJ?o_Re5qg4088FY!&4@D!|%i%n&lO0gZ>ShzmNXFCumW_`E5JDJ

Uq$GkwN&aZ1N<>t&qEXc*O-PU$8bFC?tI$?Tnzm{GsDk>4kSkTH_UKaF z-?zJt4Wf^5tC{&`zQ=rz-^@*BWF$i?=h;_~R`D?}>?h-531ZB6f8KT}5} z5q<}9WxYZP>2E|U-ot!%(a`hpf$?$B-$L77#KOwQ)ptNM|K4KRIaD_zts-jpG3Ixa z^+Oek41uH?TGZ6b##b&qxeoRZ5Y>IPVpW}mUr`$SZvkKU+sbOo-rvq&7+<~PAEYRM z!8(2L_S3wlKVI*={$ZV^T*Oo%nOE_HyUK5_!_T^JfZthX1px$1zmE{X5A>wSE2U>i zMZ8bRyD{GtjM9EeOZQ;4UR9KcBFil6r@_}p*Zn|GhVCbwa`OB_ly{WYz~$r2m;NNb zfI+|~qGoA*s43BEW}?9`#V`wKh1S#Bkd7>qQIU%s;d+$fWWt^lSpn^L=&_KNs72}z zX_*?OLP#q#AWesKWSNXgdFfoZ9;MClx{!|1TXH6(>!?jx9nvePS?LYwdP*yMLwc1W zl%pZtNNv&Y2Q&g|j{Y&ECHhSCYDmkpHnu9H70~yDbcC8>9a(GI&KV-Bn^iGnTf;_S z`k-#7wNyIQ#d+=u1eg!@){qZYrf27vVOL9*DFW%D<>V}LMr_kk+O||jS6QDjEN9X< zWI&)@+uq*Zao;VC(J7QGO)1)jCTQy?vo=uOlqZWO$N-(CIjWKax{Og!KgyB=*QSc! z>pm|J&PFPNcCg+_t@vjBPXlBYt!chy8N5xj1sbzdf_xFwFzi>+Y??vO*7{)G1Xs`? zER?Y-L^HgxXc|&EGQ?*|TRw+m7Lum#3 zEwn>wJGJBMp!+_BXUk&{@QLfBqdAD0v(L5T3`}9o!k)KV;gTOKSByO##f#bG`&}TW$Twu4~e_Y_d6%P`$ zyZB!=99Lr8fj5u97{SNuxrGJv`ohA(i{U$?0dv+1ek`M-<rTz+~1&Fd&E0)H{NO1KliEb&sHD1N=@#iH58E~)p-AM zT1%(Gr$MPIbm7=~-YDz#l&~g6cix)7lVPsv80D(yH*=O#v&6Hk zgGH#D`Buvo7C5%ZS<|LtmyD{`YgOj#QlaRGbZT2_3-@WiZ~JdMY%DrXrL(nlc6L_N z*%2*gm0LG$5wj(yD29!yVb5UeKFf5(AfCBmLlDOXEsSUJsl#dQk^RKsM7~HLOY1+r zytY=ky75{i>e99O`1@}2xxcH=M1OMcdtS5Z#oa%|_x!crtykS6(SEP~k*%uN>z#_% zCSvZL-lM8p_72CrCik%0dBYSp1hFw@Ob9SNiXN5#ybE#cLWJHS^=iqaUg6SV!z%``(Q`_ojL*nm>Kkc_Z<)U&g1# zzxl%hN%#5K=`*KKyqfs)4|;{yFx1nPY+UDl=SckR^Cw<;Jy|%fR?7M5{fYG8uU*BB z{QQHDUO6>qe>eHsIrV#`@sqm}-WpHRyf1j|^O_q^HrCF^Nj^$@q#Cu!n`l_NNZP*v D`H!(F diff --git a/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf b/test/subset/data/expected/full-font/SourceSansPro-Regular.drop-hints.desubroutinize.D7,D8,D9,DA,DE.otf deleted file mode 100644 index 805532868799ece5ed8a5e11557045b85a28d3de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3448 zcmbVOZEPGz8Gd*7_Re+^hq^h}B(1$PNs|V9?{c=&*p5&gH*QT_pUGX4I!)`W@78xG z`)-fD^+!UbR4V)^D9|4W@}pJx5~31qkqD(h3XqlnB2raEql6+XK?9;eloqL)3u|JY zcXu5-QTRx1H8bzbJMZ^1bCXP`lT=Gjl0qNp>+jcEPsx8Fs&k0sOUYC$@#u5YPZ3Fk z-=R#=C`<1|YKUsz!u-j+X=I~=qobgoMcbCgLfvQ8UxH@-hJ4YPtW&o8EY(`^xWXEQM_7Ky8M5~#J#=0Vy`Lsg!P-8%cmhDlIiygswn4(mIJ}FcS>7Ub60WDFpG!W1- z)l0d6R%lR~3h26VGr6QYk2S}Ow1j9hWSDunm+3B8EW(=!$n&mojI$h@ zr=b(Owoxa(E^5CC&z8ra!6&Yhf#x7;&OX z9}B+q670rc&Gu~iGE6gerXb0_6(Czd%(sHKVOZnJYN(`+{-HqY|Bpcj$S%W!G~)4d zwuCv(=s0|w@$$ye`a32u0(5z$|t!O_~zRrg>$UoOz|8u?_SssDvgRJ zfw45W`@!9VuNQYg8oXVeY!WLP^&AXZPkStN};9)3h;}u$Z__;z5FT zC;!U^V;#mp3gPPImrn@mGQCZ63k#Uz6~p5Kzf|~DM0gP~U!j%Wti$Vlo##Pw!<&gN zpuLU8Hs*pB@+@Pr@CGjN8~h{+$s|cqRl_T+N|8aQkg&Cp1ce1 zIqRPXRq?CUU%dR82665-3Q3Y`p1YXP6Y<~)QK)E!=GaEoEE@KNW{qpTS!)bWi^CPi zELOCEQpU2&mTfp@Rx6Y=CvR$dO9h^#94tb-l#N-oW`SdC8EdNK*afqq_gUq`b|IH{ zv_yPsyp{We*LVCk3!C$fQ|^w%W@ct|gB{T`Rxx&Ot2R?`^4cD=V%pO%-EWl~Z3xd{ zZId6zCOwE}@kzvKJVrmG)ASsDhr-Ao4)7WJmvo<0kiK&1Vq>*@dGmZZENK3{=sD4J z`XB0-!av#YmfNJdQStle$h!k#g({AQ2iz40+ElmCeIZ&Mi-_CZCsa{%k3`)DaYQtT zC)D~6#XCo%qD$0>CXu^T`K@uL<;{zaz4UOmdg5U6>;3E8E;r)d?vA&7{F^&Y3^(tJ zt0!}3=Tzh5FPt~mx%>2Y*NT1aH=>Umdj92! z7V-URo%%K7t9y5^b+>=wV{UD8{U617m|gq+Z$z%88ts|CBjP3=9O>wM=#)q_SMS(9 zAC0)V5BkK~=4UUDM8Ed~_inM~U|PKixg(Ghts-*pHTQ0JjavV$KQ+#YEut)fZAd~b)M#iRxpbkl+NJ>t@~2&GN-0fSn$ncFJkn&EgeEf~nYI+< zVL_lJeee*AqC6~E73EO`<>4YIvg(2&Adh|Ts<``ib-&$pQU>XsJDKtl_uJj?+st=o z&g-6g?m54ECwFWW6*ij@e0iVe5bBqUP+W@5o;hM=!x!ZUQD%hD+$py5 z3G(?sA>9JFDV=^tVD4e=D})jV-|3+pu0EgB*MR;A+Gr05H2wOVfc`PS5Apc91qznh z4gHq^pWt^a2%xw!AgNTi#WD^*eLNwi1Nb(C;=c&6A+Bd78UgWO(BoS0*JsItKsx z5BkNdzHtm8^_$lp=&`B;q9;)$-N2#@QUaV@{wYMKKuFdkn+AMw^hwP|BdGBpRfFo* zuXhBHSn~61DA$~4E|v#+R+AB_+_@%-_(U?J>{sx>C>HL?)C)Jq_W@64MeYwGpG362)wZj=9Z7 zfjGr0k~|hY6l;*^ICLzwP@(I;2#gOvo%2{Jf`F0)I7hvl3sQ%gA0m=W22M>WlIRVJUea)fD=Y4pe}^XPjzl|u4{umf{J zhl}<*g4LL<`d10?GMMwwcrxQ9>9BK<73j{mGT9(zK@-GIwua$?UOHs@@jRB-v(+pv zwb~1a1Y1z2UQRBn;CR_;qaB7Kz^D^mpLXf7b!EziF z&gb(w!EP$e_*lk`XB1jWC*agdHo*GXDi$=5K^N=u;c=|rU&DBv;DQAoc9zYkhbY~+ zi1bLoMMOYDVv9u&9tQ)p!L*O|(+n3%$3B|lAoXAws`vREl|DL@mLD|XVw%AvHH?eK zsevFnk9Km{5p;SWHBK%ayM6Tm4-U~BcF|Q{NEj(y3TA8RpaX(}9Z*iO?w9xJW_Qv%0OfOdMTyiV*RrE|FHbR3|Aes72@7ZIN@f4>*dD)Mep1I7yg z02l;uO^7C_=YEhkla%C;Gw2O)AydffGqFK;rmdjluH}rzAr=KtJqjW(aw8AoVE2C+ z+6ZJu!%-GWze$e*%7R>AUx{d-?a(U(_B8Ut6C*2PkQ1~)@JH?rQRf0ps_2&k`B;<* zSDkp7z@pciN$lwdU79#z9Yn)HFO15;e+XI-)xw>4D**3|7-uPX@PibiVGs?AYQV|~ z{4iv?gU6^4EE%w~i%$|Q@#}^jK9B_O;)X+iGhA6H8)lr3@{kRv+ee7{>-Cm#SN~`) z8}u8GrocEsn1NS}8beNR`7Q&WcS<~9#fiCKV7|RN6B+~c$cDK(P&N1?HdWxq2VN^d zV?v{#jYcCOVlzDd{YY=O#Ndr&#sQ6km`Qa=ZApHrLB_(E|1AQ%V)jWzNwp>eN9r4` zryZy$R-&UbFm5J{78J*f_8~OER*hJBf>nYF(|?7>a=Ea`eeRuUVuS<}EXokG zMDk6>FX|or{T;`3Cn=DS*o$sj5=@fyMKUNxxl4QM`g`Akgsgp%!{}PWFfSi8vTDg1 z4v8ZY2?tknr9^#)V0;q417=C|B-8njJCfaEu{VaylK2Qp$v6SfvS=P~PVhx=Om+j0 zgft=}dzl-&)r+;m;FFAtMGsYCg$OEpS1OqyEABd^+R8#9!1hihzk=6M{yt zOi)8GU_ljd*L6l*%icYJ>?~v_WyBnjUAH&WWF_{lV>`^N1b7=nLTqpMTylp8lKFe> zgk(3w|50Qv@Jrr0WDlr>sCsviDE^|md@^L7?5t#MC&M#OIy(d?5D%C7_`KO_@*JMTRRqw7Ko@M=p}iN z?rB~?e*o}A_Ar+?e>+el_y2ibvAFJUuSrO(g%i9JL_5JNSwqqF=K%E6Vw|L2L5PFo zviIFYA|#fi+9W!njqc1*oD;qK=87OYcywsRu6=IY?^eiXeA%6Iy zP>c+|IZzMW^T0$jMG<{u;2Mn~GKh*8WD%o0qKgq8(#UTtxv^^yd~yiDEiOS3-Z%&~ zFW(VwNJ2J^5oA3*n&gQ6zQ|n7&}&a=hD56Sp*R={J`u#DOXyqFLk*-xizg^L8|K=ok*T3c7!|z?HRgX>U(b zBgN~AJ&Jvb{fYyMgVF~fih|E8VybQEb99xmP-PS=Qwo}+*K|jzZ;p1C9hHA0Xtdq? zuRZbo{@BQn>vOci*+_<>J0VuscYTVMC(QRJ*A^d`WLpW32*(0Dn3~iADMsQ z9~Y@^$8Y7`4*m~Xp+I;vLs;QA9C}Q_KfRZ?^YMIj5gG<@L(VC;$I7K34zN(`93Zslr0_7J=#*5TB;%-tmx%w`8b3&I@*jc#j z(Z%_O#8bAFlUB}a@-@wG@-?r|((P#NYTMqTOzhmza=7j7wt0fiB5)~!{#WyKiS2*q zb58TYhgBc!Uo>1mPYCz>3XOAXndMdbK)PzhD~Ffw(SLMg^Dka8?*H}XR8?DN>kF-0 zTc20*TZBQ{PsUsl@;ZlJ+N1M+Ihrq;ctshHWE9n>Uj%DXUcUBR|HxoX%C>87^%q*! zz>-xItcmSXb*a0qXf)9JhBf`JJ#qhc+FROBRp-@F>9#}^PnPpZYBqI3Hc0k=vPm+J zY>8~WY`g4r*;}&XvJbVc3H#oB^W=#udyV07&4unH-_nJgA#w5F_-<`i_)z$e;nVe> zwZGTibXk|U$i6Ul@wkTY!SKHDi{b6fJDZuB?}G{-vDP!UvlVK0SaRxa-1aye5fP{p7MR zr0CJ5pkT>tj8LP^wYTK_AE0ldv(dthR((NxgD<7hL-y9lTCZ}@v^_} zeQo2$j;+tPE7hz1MDYXvDCcXtOSBI+E80TgN-k+qSkOE@${;+w^K;Wx{h3qm@;N7s zC7&vW&7U=NntuFDp5n(YGOqY#(-+~Nhj+BR)%v0`(jL(MH1L(6d|#NhStuCr%U2ik z+4=mO5q#VLwQ<#~mD3xiD}{j*1-bB`keD?3ZRhD@C%5i;$Iw={w!UrQxox`T9m{tv zf9W@8ukh4y9xJZ~k4(r-67CmdnL@z=!+}Btzi{_gd;*`Gl=wAIS-un!b{W*ITU**& zpKoh_q*<5v=cP>x8W$NFYgf--%_y7H>o4;BM^`_#e%zl|T;PBDiTz|`(B;Ih)$@Oy zbD2N*F|Rq-pGTK@!?}X@G177DLEm2(KVvvk8G82nvA^SQ4@^8{QV!?A|0xcK0s3H-rEJ z1>_kZ5P=93@Bcki4t z=P_r_Idf*_TYG7#otVgCq9P+k<>%9+=?CTzLf$4sud_QcvX(C$Kb(+g6ZFlTXfGL~ znhg+%_QFT+@;L*QakKLPmjORiDLUQJ7sTs8dJphHmC#}87~M>W!3ucKN}oJelPP2a zUJ7`u&p9_hbj1J~-0;!*oj&nMta=aNpg-nfKnlq>my;|)x*|WF1Nx#DK1czV0q;2n z^r=q^9RP0xJXRoTH4y}%i$kgoy2PkU96^Va}rs*^qH9C1Y$R(K;O-qrc`L6dOUz% ztEm?@kC=L5BXuPDC?bI4J|}-8jNAn6!-R>Wq(E)ZQ&B0?ENfI%PPvuIHPVjqhaEA;wfVkhCAqA-flpu9U z)qXkX5kr=Ue()+qw}LT>Tkq*s=4Nw?e%T|}hH3Z2q5l}sF9toX`x8M_st7_}h3-!; zaQdAjS`c&{;vVdl(xY!im7eqduI z#M&i*twSsUu|IYqIt;j-Tp*W(T!BX&Qhm-%hp)#U7QQ=tt@yC&J8m*xd+GXu8!u^F zd$!Fm^Run}HP>Rb{KdA3W`@X(qq-Z`G6iO5+W@y-`wpM)myOqz~dGP#um%l!e!mhAr^M%%o{({GrA#jvUb);;w@-koc>rfUA^Wd9SMCju+?WW?`& za^IHc8uZ(be)B7)?e^DG#e;hq>Uh;oF6`+V!`#PD9J_j)sapgVdxlLoyZ-~$_1(@l zu8+8uWo~JUzC65dn~J}v<2{%0=|gyGZ-f3b)^7`|W|joz*R`(Wx#m>9{Hl(f;zP`A z2pf2u5B&3}Y`*-@dD(nG5gWjV=vp;A)?7BRxGaCxm|rAu>h7VkN@>+p_dJ?o;4JH+#N{TSxcjpuRQd2ILbTNm!0y?Nf( zZ-2uy@34+~e&sB?syoV~KjxbAw#FU1_iSs-Jdw_f4rbKHjA)wN%(U;!Y(CZOYC6|^ z?%34k4^DPE)BMppj~>48=5LQM&5`CKA0F?#`R`4gABrKJa|wy7s%c`KS`*B1hW+FV zYnGNRRDY2PO>LLV3m3F}p*r*81#Mi~RWgM4F|!o*El>HNdlDlyPI?)J^CbQ)OUg-0 zN;ULJ(#CC3EoRFa&Hu+VgLTZKeuQhz>DaJlGY_?GJ;Ek1P4A>-t5z;co}%5bpdnQE zxc*3Fv zv%X3D^3lyZw>{gq&GJT{Z^vKJ$MAJ)VD)SA*JuwK4jK=hH<{q=P-p6ReL?4cm~T_x zGMq5JwQ+~ZbYj!Cb~*@>o^eD6)yvrN!EW7qabrF+8c+5}GV+n{u#v{(?Mt7ZW9(sQ zH1hNUmTv56SZKVh@?FCpjp2b%Q9>NiVErj4P2?kTRWPjhN??g!sMwrqh30;1HT9vo zGCASVI&RuDFqv=Kd%<$4Tg&k`*|4K2h3{(m%>G%g$=yazV*(pGKV{iRt1s65q3)S= zzg@pu-`W^3KOFcA*B|4PxAXk2AN}%imXpV3WHDV=W6Fx3EuXS#ik>Hq=PLdnk4qTz zhU-+*(Ovt0pIl$Fp|*bBdr!wN-LrJ>(q}(8d!7kL7}Z}29vU+ufp_Ln89aY(@+)IC zY~HW`!eUu!LfmC0e3kx4Evs_RF|NKoY@n*uDxyR!Y>&Ex>&$fBno@sr&7Hu)DsPC=c}V816~krh3O@Gc7N-an>W%2VrzibP1Iy8v@t{vR%xvxt$Eh`>3c(;t{;5!CLwp@Ex&7dqvi0^)9ZQ#PAOVI z@YWAcY=qz}@TW!D@Qa*QIJ4o4Gq>i4U$kfX-tY@nkkF^$7yYq*aQF?+LA~;aCO9U& z*4E{w%^3L6$O3rVO=goN$866cQJ2Z=WVM*-*32&^K# z$?6EKzJo_YhLQu3el0PRuOhIH%p^A>u%09cGa_&_X%=cDuz@U&8Ww?#Bq8ch1nwXd zM7{JwA=0M2ob*BA4_674846+eeS=0SiR@a*nXCb94Rv`R%><+ zuBn{+9s+@6A31uW7z}wNKMiviJ0d`(B)cU49K3I&XtA@}OYyi1 z^HuvjE>IzX4u>T5uZ2T?1s#VHz3DjY5W%qpiiS$3AI|wy^ol+>)Q8fkSCnONJ#dC< zyGA;D}%G{n1+>pwu z@d^c#g8NZwu7lbfsdQwn!{$h*lWe79?GsArq}-B{+@ez3Xa}{I&{6iHJX@*FUIbV^ z%`KWj3v5Ms=~RT99@r$#4Fttdh{8?G;|q8_q8qMwqWIIc(sE$M+gvChx;*6`7xiN3 zoE2g^4TwRXCxpvIx!%G2eIB^%DR>3O!0&+sfHVlw>X3++M)^m6vqYR6as@pBIb;cW zycQ`~kzvm-yk|L+QA8pEQcHrwLn=rmkqITw!J9>_B$H&5^jq*ifO28CkVqL30d{~? z2>3zNgP;$;PKD+MN}8fqhW?=>1D+b?u>eQAHj5(Z16p5Y#2Tdl=J~>BvK7rF2MW1PIf0wVV`z_4BCt>T8nxsK*9?> z!F#Ywkhj8$tyd1NHq9CPl{7}nRWt^YmpVJSPvjV2ReoFI(oQLLum)7!d>LFe5) zmB1w{zVO3*+i4au7~+uwb9Is`(1$$bpvMbZ%Yb4b1K}M+27tv@Xz!f+zqa&FP72!4 zGfsGAuoL7xO;{-+t>QM`{4#b`|c4C5P)rvspHu7pST!?+nRT2L7?EQ2uS zRy9bXZ61&f!JPk-d@O;ym0(5^=q!S)bwGC5$W*YZ0QAvSizZL?9hz1Q)HLA2d_j-& zhS#HbM1s6Q?*w2rA;{MppcDg+xkMpbEbtv0u@rR_0!;>4zmnNwKvskYJ&HODQLrcDP9zJ2P8|K0QA@fLDS{{3XdLd*$?^jExu{>JggwU2)6nIrK>1?WNB z$KB$@oW%8o9#pK{Z$94k))nZ%wU0gwuQdwu^1_R&79$x_M#LT&p72Tu>kh&AXulI? ziFEXI9{3KuTcAi&@GRPgS&HKXfGUw$fVn^y<}p@-%1EYRAJ(!8&{nI&j)G1cmns^{ zl?Y*0wy#v2p`=tDjCRuCdz{6k}Zunrgse%**x~fRzO+ zDb~vHDsA^PuEh3r?0|U{0&WLOkoQi_g?DK{&)=^SVl|}ymSt|xi@OfifHH_fdld=i zU%1Mrg6FZa;@VDycBFzMhIUMX{!)mJ9aem)g6BenN`R*ba2wQYl*Opw+Ob1#o+4pW z;4m#8XvjYW+5(^=59$`ds@oMyBy*Ll#Oy`ChijS#vOfU%gf+~q%-;bJ`u^YdD^=G0 zoiPb1v2cNQ%xD*A#WfUOe@@7LQLz)_6$Crbm+gBKT8Nyu$D(ye4OixHo+G{D){4Li z9yU?@WpIt-zji5;T`3t^UZQkCWpXcjBEf##`=!7d7(wmRX`5gA$JQQKDYP! zAMNe_dh4lGXRR+;U$r({e+|~$wbS224d3kHvUqbT{&#VopAbugt3SXE9q-ULrokP$ V{U+SbjCW`PneYnOo(@mHe*z}c8gT#s diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.default.61,63,65,6B.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.default.61,63,65,6B.otf deleted file mode 100644 index 216ed170ac54c739aa8dfff8ab0ec54274dd9535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5500 zcmcIo4Qy0Z7CvwOT4tuDMT;y*d#Sawq)ZDGVgQY$rR}t}({xG^G{Wo5>vZhQd*hqe zmPWU0V)h4r2+67|yYXiYZp3xf2mzzA>*^}t5`Xb8x*M_qG$y-fcGsCQK=(WEy_Wxt znm8}_y>rhw_uO;O`R;jhU#O=iM1H!HoOFF-bF;W>jpJ*g;u<2C6bjca?tOfBib$#> zqK&&h?AauMqiOI5~47=u4TFOp$$a6Twg1Ve@@>2g-4`gS}|Cp3*I}SXvFPkCp5n z`!n@xXj&Db>q(|TXKLaXJfn2|#(o%07)EM&ZSBa&NI+(_KtxN{R@aD;xG^BQm9(M{L#k7r18eiljWKXhwe^5${_ZSQ=Qiq`q$1MUC1n#nVC-hAu~yq^u7L zt^fZ8Ag&5yKoM)yIEN!_ASxKHMr$=)Xprb4q7A8r9#_(VOUJQ$R2$SpXE59vT)(Eh zK~xROsw^r+JgR6hT}}<8t5=9Fc_<;80-_c6L{*1u#MK(nqASWEG#in)L?Rx6-daUX zXlhKXZ*Ayo5mkL!N=s_}8YGBdR7)g8qn1n#sqqL*Xs{91w1uPaGA7!1M5SnBhJwJh zn-&IS6}b^gLP;vBk**O5#V`F+^19k0W55x=Nu9E4mD)Fd{k>VJ1AiK~BqtJSdCS22}9wplQ$+ zW6V@srktw2C=iX&lv3L>fQ*_53~T+yh^#9D48%%N)5sb7tD8v-2RlS4g*BMU9hO3k zID@i90da9-(Rdmu?i*qZU{Szyc|%wP!{uUCLpT_&5o?1zt)VqNVr@frcSC1SaCKOO zxDWxmvv;dUi$y6e)L<1tMD3|tC^h1^5 zm`*8?cz--15}Z0Yrqqa(q9@~N-YzCSvHoNnXf^vW&Vd>S000AB45bxDy>UU@0(Owo z5j~zV(t&h55zzElZK%29yzNYlq*01SNvAl)Xn+h<{~c(Hsg4#=J=ILnOF=bI6#9Ln zfDU6+8u|()@e~v!l_HSpu*Y}Vltm$_GVL1RFQ-~uBjy!=#-z1?IWh@ZwK?MmyfH9J zP&e$S(R3Qdovk&)x@!8_2@6SZ1n+0gI$ZU%0xNE!RTKhs_6(N2Noxzw8*hyYVccr!#XLGz5I4ORi0K*IU9fpBX8>A; z84DHbos?B~d50U^aMO#Ko;Bg(E-`>-+H3h73WMni0K67?B zw;Z2A@HEW%eGw2hqt6-TY^_0$^K0cZ49dcaHM@#=YcZQ{&S{Ndnz1!xW}dOis0e&7 zJaz-O8djviW+zY^20DVY9$vM>p4j}88`mdazNrh+DrhloI3ks3aWf(saKq6_VKr&s zbp<3{=rfiC&=SDC)%KKabU-VuMhA{^&OFs*ro$yBc!DxzX&g7AkpXu}z+VHIk-BaYWJbhAoR%p4)lwts^gO ze}4blw9okSji!f;35^z-QQ~;>{B4u7?|b6aS#L<-u&&A7`UvRV%bh(e)eC+Dp}5vZbIxhy6xs@fylCdj8dK_ z1*t~2q8EWJ#xYle0UK$|<60JjwNW#70ycSGVOr=nGsLKz+^M`m&8#|{Z7Y`698t{6 z_AE^c0XIM=jmB7J)G!7bs0UXF)geeCR_TsxP-*o85x#;Q18-=>}# z=4ut}s2(#GyvNQ|P|kHfERDcp#^q!U;L5_4R5fG7Rd+Jdyb~w)aTx3BKtBXeSodtp z9p_l!$X~1yay1m+$+IZz@>_>%Kp(uCtRfcvtSVoQ$a7`oyn~IcvOkLf|%;BZ4Mv$(kW!{dIV@L&`dATY*<+DwaZ>@Ro+9^{*!@z#q^W&rNa-7 z<>b4GJ!DPJHhafXt1??SXL)RDM{otVY6DkOe)BR$ct=gXDR?#38|Bh?3!I1KG(6_a zrZ6+tclIrTCr2&@42OW-4&>*|yZ(ZAySlaRtcUXlCW2j|j#cRf*9I-5fNGVmrQ{N>r$^lZw1^|{W zdF+eEd|`{CDtbI}abcH^lbz20;N=84B`L3<`0ttGOtCL_UFNeAU*;;0k5HqU7~A&8 zAW6cf9k(QfHuk9x=lpw5%-Sm*-#gy5*LghWFB#u;;*L|hJlTqq8%lETWf!`~i#)mK zPxh8%xO3`_yi;|3CY^cjB>HvZ$I&~vFvq>Z3hx5%WiMRiy=>DwJj=a>Ro<(;(jSjz z_I&CT-ok4h8_w<=kv>1_{Cwuo^0{AUe3>P=U%UV1$@OJE$+Truccmxy z-ISqIk}LDqv62s7-~QA~Ww-8gry?6~@10Z8^g$;7r)61(=e~#Td*spCnc8cQ=Sp)k za=x4+*OY6?C0(_)BNzjj@u0 z2e$8dsVutRorrHR*3FsUBIdq-_@8^89#MZ^_Tql`AEN7bG|kDC<))YCg1Od=^Qufm zS>f16*<~O3X1snRv-ud%Li|NhYUB%b3RT6KGI>!)JuR0`(Gtf3v?{upq#~03a~c(i SzbT%&3EvbazvN987U_Sm)-<^Q diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.default.660E,6975,73E0,5EA6,8F38,6E05.otf deleted file mode 100644 index f548f48da7f44cdb48ad014d0c957e964c91be25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6780 zcmcIJ4Oo;_*7t?^<9(4(7&BJjN~Vx7{D>`vB_o86AcG8$f2qUF3yjRnJIymBqR?gwRQZbbmHm(z6bnpLQQY5$9lRexfZtOK1CfIxx)2gnfRC(o`4*{W za{}PWfJeKmi#$kM3ZRe!AC24U5<8<+I|0u_DC!H3B>VawLsKAc;rqIXAz|IqkDM?6gKfsZy?-O?V9)~^mg#F4o0Ij%3}$!AKj1IB?uw&_5AD{h)n9zU1+H9W}K+oRyK8oyxxBu+c76iP++o zeWFXoCbv!UdL*yaC)#mxt53}4Gv!|E)!+ZyAaq4CASZk zfV1%E;7Ugua1g)_8C$W>Yqg6mtG5nI)&Jjg4mbAIinzkID6r@j~M&wLlUy0x@U=It=>EQ#4bcIVO@Lp!^R@ z->US?onQO$w$gAE28jWYM_Lrdaks?}=UO614MzzOGVRzQ!@0E#V*%7o9}*0pnTy~S zgxSI_hrh1+ltv!DJnS&{&EZR>hr_?2k@`yqE-$@uKoc0*H&0K`2GZ1*qBZp8zDhk| z$dxy>S2C&;n4IkcJmbnR*zwF5DZt;$^ z1tS_LYHDAyMOyDC(OXE=u8Xh!Z5~lcBx*_P_U(JNZo%!NpU!^%lS94T2S3q8{hUAl zHre}j?A~*+E+Ohq-yp&>M9`7fsYl~q`RJlG2}_FCteu*;@m}8A-O=^cQBrwy>zj2w zmB0VKdk8U|CJ{$J>g?@~ed%0m7m8htV!rbPIs*Iktvl5pX&$F1AEVq7-^!*HtM2F9 z7H^PS{4cC}vE`YyJJxO6u;uAry|A9B*Atq-)7v#|zixZ!$rp6wyY9X(ipV6*vS|wo z7thjl(BJ5DNaaVG&ZBx--WPuKfU3B17 z;JE(LHEL=sC3kC@^8Ay%)8(W7O4Cy4s!yGPzR)^+U6(G#6qVDuRx z{0|w`8{3~px-W@(@x=+RPTN&gF)WqWts27z?jlD0yX1VHmOP}IM9;sY4Wu2@_j&ss zIYSD``7xTt#~xpnux!no<{2$*i`%5Ne%;xFEp59KceS-X^->&l2A@C?V-5udk(v5= z%jPv&AJN4uC9NakiHpSb(vKe?L#Qi@r+c)smd$OdS-vHI82RJh)gaMBs`Wjzl@ySw z9$H083TO#cY1{Wd`Ray)g&T*(EL}{a>L_1%-!E6}@o#S0x&P_I+q-mRs3ztREuiZs z6PI=xjTu3sM@-w&xZ~mW#s7QqE22I{2J7gzXUPTan>6A>s{WH{)Ak)Zw{FTjkxB#$ zf`T9eSUrn`&>SQp zCwdswqh)A0dK9&w4QLbEhJJ^Rp>DV$|BAlh!Z?Aujni|9+?^i!GfO(ZO=|TY=zjSh z&t25@Rh<^@=1+S5I9Irf&+4=4JHLdOr|`lkKH$*qp4m~fxlSikP)#N;=xrUzyg-~& zM)Lx7(jk+HpvAn9JA!}Np%V^Ww7fQKB(D=*Dc)IS879z&l6c`n4lgX(RY1ZY-Y291 zZ5+Qu(6zNZ)0`koqPNeyPoP2}5rpofc!7L*X@;Ior)Dx;+c!r=W)m}=tvyqy4}3;H zxRTds;HuH*xQ#wqN}=E{f)B16e9MQ5er}5@>1>NfjDfbjubrud7KECh&~{ z_?X>e8sp%LmU*{LxQN2TzhqZi@6PCT1AX66`laB}MgtzY_!t!aHn$$B;fb;)YzE*( z!JeCovbYCeQ~=V|KiyRbA!ETLGs>I0>xrCjPyZ@}RI9kW`36qQSi%y+K7qpQI2}IT0ZwgPJcf_H{#FC-h82b-7orE z?(&>gw1D8%zeojQt6+Z`CL3&wvpOo+*p=_74>o3x8y3hKSb^ko!N&aY1iU#}3$8)6 z>W3rn^gGx$wBICnel#-&-nOGVkp(586l8#0NAPY{e1Vdy5QM{k zb43UaN2Ac15Uje6M~&`9`$FRyq(^@X!CEvQ^@m^`isR;m;0V;k`9m;|n!+Z8U;)L2 z9SXsNxT3IkLvR#|Q;i70(daf+E{l>X0xW%BH8lit$e>ON!C@#$T^fSJQL%b%2v%Lk zqeedU^PzDKx?7VFg0<*~W=aUwp=_-#1V?bc)lLY(Jjd(455WS;hC~V4GbpT`&kn&+ zC_C~*2#!Vxkv}N#U|2=MASKIGgCW`jb`FLJUmK4`QG@Qi_5gqGzy1Wj=_x$$LJmEY zGYuIT*|}^_<=*n?3ncTT2P#Fc?2z0z$X#j)0kx9PCb<_f%#f3n>$28~lCRp}bW~*- z#u@Gzo1JmbEtQ5$`mYrQKV8a{`K3AumzXS5OtUJAj5xW@>bBxh*m3oNpOTA9t@Tb^ zV8BzL$iT_PR-eP2iYI$Tu?{%%p>lFM9X8;5P;@&bcMYC3#aJ>KCs#=x$t6`wK!H-k zE;*ezUvjzX-3}Y5kU)n;lG6N8y42vQOkxzC$_7MmY>}d&*6N1p1&dD61*M9dik+g* z2d)QB+3$2(tDK^oQs6b)mz{Cwsio0@3EfRLr^m71ucZo?0x6K5Q4O z9Z*HF(2c^x5Z)1aC=`^cs^;zqzc#07!?lP02FhmBKtA4p^RLU)DL7(3v zrkB@3M3o}YB31hutX`4Tec&t6Ekhy4?DZ;@oyAm)%^p~T!dx6=NX6H(EYpB*t<3I_ zq3)}yXN4gw3aY*&qXnBRNqCacVzQ*-2TkQu%oXMML1S5&v83GefCZb&aK5>uz*KHB zmjG6XjU_X2k*TC06^l^6f=%Kgk5`ms4E3eM<#9ShI~1;>_|vxHYG7qGs_YSMj%tSu zJ6Y(gHDW6Eh+daNX4^$6T4DVz2b8c1Uc+MGc0d9^8hCNNEV5GA_anaF{e%eg@ze&}L91T|i4wW^4d! zd?1BU8R(axdC@}nGHr#R-L2SJ0vcQ}iqUAWMuJzF7xajL8E(Ka+|yQ&VK%d#Skz#|tw$6ss}#^qTHc z(0SuXEpYi1U$|kt12hA?K(oLC7uZ?{`WR0&=y8J9Dxet9IB55vv0!lq^#8i0*K=af z#yn$%<^!8qbXaVef9haNf;s=w3~(skXAx!5ssN0|HyBR~K*3xI&hCbJ(_uERGG|bR z!7R7xL6X_#09hH<{Ga4w8RV@5E0REG31qDWvcrUCfmKDI53hb?#w^#N*`+{D1}>H_ z%p;?qITVjbkT=Xb9$1YG`I-xqQova*VaOH(e5ZsgWjcz1<^x%`lG&3%R)in(DASoA z+IvnVnzoR>2Z6&4BP`QvfNK_LG=jC05uS&|$Di5^W62PEws$3n5sQr!k_~1h+gVH} zn}Kn-6pI|-#h^7zGd{9!|H;#zy}tA1<2~pt-_aS0g)Ao|l%{xz`J2r@bzt_lp6wj= zCI=(T_NiAnSx&P3#XP83*`Yt)ckEjjVSAtXFu2z+tjh_F?OGN|S(%ZI_}~}ZDM8&b z%+Kt%!YUb^dAb06$GlslNMrCUvyWvdo5urG2`vE32D(@tv(un9lxb{?onxNJTf$v%PebH4j556{LFAV zm=LZRwEoLFTgw5U4A^?3o}bFGANwo?R>l1FubihoWwj#gsB*;@Y>!<#L0PP;K~n=* z%<^*J3}7b{pxUB!T#!4k%Mz2@Q@G%(NK>Lg^RA^x{4vx8oC z>##GR3gR$uiUjj7c*-Y%=h?~1_I48VlN6j`%#H_Pyd0uqh8*a0!6~4z(HCe&=~(r=!<~Lc$jVxth#n$iD;3Ml`MOi--BnG1G3)(`NYmJ zyRv=@K+O05zF)Dj@2`)Eti-|w+F3^1Kr7or!To22>=zX~S-iYp2lM5?-NYoZQTKAUkMkiKMHo1(;VLt3FG8g-MVaTDSYr)_8v?Zv*>N9?=X z-K9weVj$S)CsdPwu}MtZKob;ch*qKkI&~mERH2p>X`1#Ww6Rg`A2!%wVtmeZJoJ5+4|dQ-~fUKW%95>=eK3pEyNC?-BV2;)$l_*W)Xe5CsN7 z+r2H`zuEs?KomHRS6MPA8&uQ$De#lP2Q!MCTJU$}B5(nGT?T~E;stLKmD~t?MJ8vD z2U;lwybXA1P98VN*9WkqgKx9sU3QZv!g7VyO$=v(l>4FdQ8 z@D+Pl-**7f(s8^>B?<&clBDYs`ly*yx@0XOYgS{wk{->KXCcQn}{k5ynnxk1%zq|S=gqWQgX66BJ|<^x16d8JEMrLn#zkOY}kP5TB=Dmg$|A>lKQA-o2p`k zJ^k>hV5hw}_v$qT#BH|LjBA3lEYm1E0}=Z}1=yl^CcdocgmWc5^Q;q%f$)AtH} zg|CSURMd_`IQwSrMP@yHLx_t)Onv;WYR7altR>q|Nh zlpZZVT5RIkv<)gl4~wyGOS>O7~E+v+gh^gaHoao*S^bKM6pu)yBSC(#a$PhCG9t1!Gdo-hUpo=8!G3Fu)? zrc#~s%#2)?WtfZi4V3j@9|h@Q5BAea+V8=ED`ZM&J-y`7OR1Xv>A^wTP17D+M$4pK z9=w3wlqNj5oF4SGd2j_S^S$oD3#D$~?>xAYmIZG1;3`^#o(#_g7QoWq2ex>yMB$P; z5B5=INuLM%si))~4-Q-*Q$lvh3m(0cZYizx;2@nW?egFY8w+`w||I(e0$J?O`l@TXSnp z9#M3AIGk07n!{_u>uzm{teaPz~j^bkQ42bj5aT?T(825m}SPN}@ZdY~dLz#TF(gaBR1uAtP%z$%K+sayYiE z29Z^48?J|>HIdEALs`XI-C>4Bx1x!jQ7xs2dc)N3Rg$)l&142=XVPvE>Fk7&5td?$ zlrpU1MCH(}6#5>;lwlNRq(+lWgr#@LmTb!-vgnH9_SGMA6nbpTneoevQLE>@7uXYq z(ln4kM4bykLLaurWK-cg0DPrr77lf`*K|(#M65@|4eY@Y?r{Yg#B7$W35)rarBn-d zfT2;oBw$mx0n|kkB9^EV8>5L>qCsqr4Rpn~4v6j1{{Cq1Kx|V&#QQ~iytgAZ5R3N$ z>lD%6yF_=ax1&KQxXZvMW!x|o%M!S2s5v96Dk)rI6y@5sieZTIeZ?}Aq&lo7MV3P+ zrah-ASG{-)UyJN7_$}-?*-DzKVOwEK&4zU| z-4yTanN!ZxPC6MhK_;n`rVQC6=y^QN6rnZLLJc$UT0l{p5;_f$0yu$L7UUJmVH6Z2 zjgsJ+(8q7t;ibT-cl6qzucs#b#++Xm5=CucXJ!t()y|4zu*SwLLH*Eg;W23s-mI+? z+BL_{UTDaHDrgm~(PY@^T*1{>)Ydp>zB?<9d7Ee()-kaI)v;Q@r?a~Ipz~@<22!@;3k~}%^1^f*;?at| z$}|FfEHex}S!f*sCroSctfO0DaRlR+xAaO$0d4FV8IKK{IXWC$_Rk1tI@bKU8K64e z=ZJE&wgTh$y75c^a&yI9UBkLfSj}|SbmuV4xi#uUo^zG6BK)=Tu^)M>V@Eo4_9AN& z$c`B8fK}blC-!}Ra7XU-oqgceLyGf;J+cyy>Ucy)-mrHJ?8ZXAwt~|KoO4MaTf%sE zd6u${9`J0;)tt=UjJXPa>`~U)?$ut_iDuH%w;d81D4gkONbP{eD6HK~VwX@J{n^u? z)g$&?yE?6#dCc7) z<7FDtxR<4&ZNiD2fKFalI2wkX2ys>xE0uSsJ6(sP?fTMPBZYNYpDXERz#WjW@Nh13 z)^H9)X#l@CxO>7}caiHJSliL?ul~kd<)OXWD6E^WDTs${he*gVr0*yk;8H1 zZV%!!d)9y9Y}XD)PVYM#ITm>(@@C}Mu;!|heh%0D+Q!G?^uzqWxq1GiDw6(l8DH1@ V?R;q`zMYF-!bM^Jb|z#u{SQL!(ggqj diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize..otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize..otf deleted file mode 100644 index 7c0c5fdd851add492f7d8b9be26f06514ed33c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2340 zcma)84Nw%<9slp$v3Gde6M?ggL0AnfYTynKGtoFLXvBbyhoFXre6ZZD+(mBpy0>sp zKZXu9lZY6{C>s2j#F0{poqTAbO+sQtI;qj(7o9Y*DUK$!({@ZJt#9ES(*L^yW1UQ= zZ|A-L_wW7Rf8Tq%o;7PcAV3S4p=fDIiTLZ9cY6Tf3V@~6Q|T^PSM-SmAmM$~)vWVW zEI0ocIk0`j25(Rbm6txpSRIFIzbyF@zmP}KzY67t{iqP8CHAAd59KU>P;as%!wHmk zvY?>U6asTOvTzPNuSh{Te{Sg-WYYmmRUtL3k3SCu=z0O|Vk6=uZuzbVkcc8=H8Q+Z zSci54Wg7runE^Pkn1JKB>6L1O=9M3pluAhn=T^vd4fT@7EM>+6MtYl&Va()=43m** zHqtC~o?yPS<<8NW0QL|L)}(~(9W$Z5wabw)13W?|>c+=~*+%(PW3BML(E%aLsF?;< zoCEzr;dyF)jW5(tjJox`|U=om0G7sA%7U(;y;&vJ;w|t_JTPM-=>+> z*TWq*Ra2pFG_8-j)i+Y!XTC)R=g9HVO=HJ-BP;r>lU_1%6GoDF`c`zElQ3cIx7M+| z+89qRMN!ThxrI_RmomxmgEJ)Y{MG(X2cACl@ke$2L+9GhB@dmxdUo}x>jTI7-|qO` znbg0@sk=K<=2a1=@qqJM-U6O%wp=Sf5}7{##&w=E?&!5=a+4bsyj{H9N-)jlj=&mwi z=Tp8`eI+ZF=C8H=hRzxyu5;8yU?m0WE+g(@noj>g(ihRirDQQ(@-bOL^3T(JD{1L; z61(+i@T$M7zB8n!4O&UjfRi>w_w&TTrni)ma_WU%EEUZ zdXsYdmJJ+8+j!o4+js5AP|uf#hHQg-og2&QW^Y*dLCy(kI=Jl2fwai^rwBYV+&y&k z#%q7DIf^flRTq9bNM;QN28sLkRTq;#zeqe6{(718Tu$vBPF({jL&N0eNR^YWrXI4| z8hy$_s)>hITQ8J2jT`jSv7(EAv8MD6kL)#wGrEx8=4oCt_0VGK%-G-3t#xc7wri(| z@EWn($i6|^&hI?A{lxJZC&|`9x|RHp^o&(ln}4>oX=I%dn9q?4Uw(G#;(vqLe3R|zi${`nOw#Cddea`V zCZRmB5_97$?85y7 zdz|OMg;Jb1frH~Gcr&czQYU!JJw6Gbb2Srs9_DdZU@52&f@aVl0CnI89p~%8UI2NJ z4~39(mtTNfG1f$dT9A>i#HcX(%Me5=LMbTVMXQE*Y?NX)A6n+baCOu#0yjR9*yBQv zNiQv2#?~5AA=>}LGE6}INl^$?tSs`C=bRh!*3$X zJ&fyNS&LZHZ?MY|^S?EI^wMLsP;kAIHWxgC@8eNis{|VmkNK=eoO(p9MT-j-V1F3q zW5#(%|Nl(cKEh3h9l!Hz|Kdz$m=co(9OHUMIWUd%dP#yg8AWU_BmT ucMx*@mBWV@GXtGgs`*In1glVl7Rcy9h{Y&v$1MCXKbc>8}}cp@Uz1J diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.3042,3044,3046,3048,304A,304B.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.3042,3044,3046,3048,304A,304B.otf deleted file mode 100644 index e51866acd622d4c3727c2a669481ca8652cc18c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6248 zcmcIo3w#q*x<8XNZGcbkn8_za@7lpfIQsC-Mg!}dtKeTyH4r=z27&P@)GZFcYnXl z{LakxI^X%u_x;bAoUxac*@=!UCu)+Jlb1(x46CjXG9Z(X*w5{b)G;d?z9=Pxu@XY& zPq&v&R#yW>3@LEay8O<-{3F6wgd{8kerF}?boco^`#sPfK^tEQ0^NWjnqg&U^yD#H!M6JFG67orBLTm5y+5^(neu20I z;MGKhQusl?nAJCq6VmU^YY+6;`UPZ9vP!vu1;iN#oLc=UM5iG{)vTHcd|~v-JW0kd zlR(-JRJVS;BY-3;H``7!t=ZN>b)aW8j>u%rw=n3FsLZNg!h@1nxF<6&-W=ZtJkAR5 z4-%h3t00m_g;tYcq*qOJw3ejBX%)H;b2u(Tq5Cp@wcjapKa$oL>x=R9 zS8eQ@rqJ;uP4|I9ClHhFhD;BDS(y3{R_I%C4j?hN$rDI?|A{$#pg!pJR0{M}I>tIW zEd}r6XqKBVXQ`t;B(VMvwQ(*!7~q3Wfpyanm4XnMn3`HwS7&jenZ?EXQ%9!II;GYh6@HIgfJKPd|(tIaJ9ZoI;ww@ZFGpIa9TddZ!bi`D8)DY~@ zY?Pu0l|6gXbT%0B@*Is?mpBxnk{4V&SBsow!kBcwvx?<~3X9KMKE^W6GJb5Db^JY@ zDj|78)JcV))6M#w!79pE{C^4Xa#W~f=`_xZ>2L^;73j{nQ~4m}K@+4dzJ?QmUN&U; z@jRB+^Hn@8wmI@`v!@ki(GgWn&Pj(+ubbsPL1&;cG%}r*IBR?~*Fy8bA01KT6uevt zog8G@DzMCf!ufn&7ud~UIUmn?=mPGIUnHtd<730$e^3|`DhOB_t$V<7r5ZT zhlA%w)kBmXT7W%<(E=2(kk~@mL#300+ECWV`dLm0rBEL$2#|WP4AuL5&T=0c8krlk z&_b4@MKzq8r6U4CegW$es59uQgw(i%6zcKS2P$cZ6{wr7@Iu0{bi*iL%Lbhg6!dV{ zxKId@PH~2ug0sp=^Rr+FFSW@I6*cs^nU|YEjl3rih57)ST2=`al@aLRD}*{{kfk7i zT(MjTYKHL!w@)jhGqOrcvx>`XlN{7uN^|VRxwbN!y%@MWnpHfD7TSt)Qz#3I2V!Cu z27+uTL;*@(f57Ku-4^O#*&mOUR)8tOF%)23-U_da`ml6P51T>*Y|!rw;c}7j3G?@R z0j)Cc!5VO0006)sNNYkYqF(qx-YiOzL$07VAcQO-ug}5~m5e57B;_VO4yY{R2K#ct0_}iaA+TqOAD)!h2uEC?4T3+sJ7t|4 zG$Ulc0>~$lRJiKo%K{d?-YjxYKj=ovBi2DQ0`#J!6#R#v1xYR3(OVvP=j1qx!Gj;9 zlnjSxcv1saF5rg~%N;x=`C!R`okM(#1qbu()mg{{s7E@?)k&(r zAKFxaA0K!v2aSb{gEpRwg@~>2{QD!l-I9Vg%#0J705M~Au(p_=Dvx!!)8l))K05uoBc1zCogwcFZ_kt? zL`?8xl$<5ZH;!M>JNogC!|@QLG6*+Yd~Aw*^GO2rxS@~(r`j^;8th8xC3e^JXQ0;YgX z2pVD;QG*!BB4u#dVRx_*>gnHpwaOJf0Gi%d@AUIy82e$)M#8KxUw_YjD#){CVMUe6 zxxh7cYX`+zSAeHFh!}C%y9eOTf;%ZE=LmP*-b~|4>|MtWm{$?-c8CORZ}(huhX>63 zy>>#}4e37=nH&7#TL<@ma)_#T7m4C8y2~d+=5c4mwVe#lY?((6RGN_InR(zSv zXF-KZ!KN5^8|>NG7psPA#}3k5xra@rqq;oMq5Uj)7J?RS&^HTF-P*BOvQS1Pq8IZX z-P62){s7ED_cZ5WF+KiXh)Vl9AH2sRoyN+5a~@jJv1e+-FH z!8ZryfqNd9P%|ZBj0|3*Gew3l5tAxnR!0mm(jz+cjions4}nh(0l38_Xu=zZke0^n z@unnV*O@`q)1ym{Ot~*ITlX+1gv^;wz;NeO^wl+wyxc4ZpqX%bzNL_(D>q(HQ}x1RdZL)YMP~$22YXH(t}cB z()hPrr;nf9y8CTYd)?al_C@DjGBkEJ?r41F*JrPY%sV30UJV|doS7uuFR4bVckG)|f$GUCL=<`thee-ZwV@b=c9x4o>5bOiK24SXeO z-3*@Qv1k}(l%+E%U!>)e(}<$FU~NWIQyL#vv-g7rES|b?J(}xTJL?%yn%au z>IP10d+AvHW#jQL)~$QP-2NNQvbm2p6c}d;|Gsy*dHHKgk2UOEazNPbZfj_*4?o?! zcfY9m^S;+NZtUFpLWefK`d1m3#X}#9x^n|Xa#=K;%R3(#a5?dac=%ntd-DD_-#mHZ z%06>ArzPK$q>IONwKqsj+>Y?M$~6sG9?~4{J>Fus!UdiYSwp=Sq)gLhx}Ow=WbegEyUG_>HcWuZ)yxKC`-f8Z5W`A47V`p__^ zOCo0`?bXH$7b6pXJLTNevjZbnFC}(}f9ifkpSUxB`D06RO^K)ME2pkp0A;Ce_O+}} zGi-0`YTwqXP29P?^+@|$?F%GBmLv?5jK5r9NbLBlm~mPR?h%uzRuQrQTv2T)?l>PeHQ2FZB zb4?qMZ+NeLXWNTyTiagHid&>1`cEcYlCpO`d}*)2`{j7CV9FJ3JW(->?!gGv4SN;e z8M_8X9?}ilg5;@zQtKKZG$;-TLF*sZ4fy`4`@hrQ(tg_ae7~qv{(3%( z9EAS{Pr^U6x%l=}2cTVr|0>m_f$W0+uReIsGw|vCuQ%YWi{H<$&w=mfy}I7mp;8=ZZ-EKxq$ldMv1U;%OJfK#d7gXlDbL^MRq0KOpn6y}f&VIoMQ zKy~w{?;Zgp*|`&}WW0I8`cW!h*J>P57(dS>pidH!81V@_DAB?_N!W37d^hkoE4<%N z+zK55kt|ne6&XSr6k2_ojfRXNFDY^@F_JG8T1V!QE``>Ucww$W_aN;;twKkV`iQX# z9Yx|J_A7Kxp&;S|g^nii>Ol$}L+(>&K|Td_4~X=vda^&QWEzC!CsrcSTWJ%l%PV--45h}8d0p`%D=^3#( zGE}Y0kNS?G|DYV8FtfVDk zK=dyJvpmTgq(y*#I@Bgr`yJv?Q}{{q?OtlLdjnuwQSG+-l}EbCY|hL=Ol5@)!4Az* z6+Nh|6DCd*{Q;NcrD5x0n?h7dL5JjBh@5FuMwZ83B}&0^liO96VH#l?IXu%m@}5qW zkX!+3r$N8nDSGVwDk_!#e+h7TX|PhHQ@t)shb;(Mf$m;sn&hVvX#CV6ReOVeml!bp zbRJ7;r7DRQS#0^1SyKzLX>yg_Yo|k~%PC3~e%OWr!?I|xz1mH4O*9|;(d0sV(B(~` zll-Ds1(rEbIJev70K4g;*DZM~=&bzgqDeHlO!7${saygLWY8(O-84t?c&fcF2e^>H zhfR`FYaz-CIvINmp_5S{LShSK50!Q=)P{;~(Ia|;ffVW%gF#3=SO#j{ZhM(q3=GTl zn`nXPrG?dAr%021erdkw2vWP>Q3CZK3B+KnPfRPVgo?@tv`OW`8oOVl zAb?zn-T>4LH+5f%@` zBrfv##Xx`plw2O4+a)?p)Fz5Q9V;ydQ-ou{Cpui^E(djE>FgC^3iXM8k1K%7MaC!0 z-{S(b%6tXZ!0Q4401W)JIv^tIgFnifNl9|R;dl9h0aL)`Hc9@9G;3brUCWu|5Q+Fm zE%6fh=-B{<^)T-qkX8L= zwUa9Fhc@Nl#|>V~Kw}~!pp7KMA!0K;|M5s~x1`_=Gh>GqgqX29SX<0b704tQ^It`P zOU^!46st8AIIM5Do;IMuSP75rg>lnhG`~D%xDV2Zt!laQh*d;|>0iQQ3E)qp^@Q5V} zXfeS(Ux^fb6oM`YeZ4ZWCqZ8kF3c$U%u&{!Tdt-<@i!eTydXiOSAf+l@R$wJP9k(J z6<6(i24u-ldtAE`)Cg-MDSgAJ#Fd3UaRjvR$Pu|9i{WU{Gd=iH+q);v|5xkFM?1)o z;O}S15h5lek}78j^Nr(A?jHTfbBE#%3n0PRC*QP0Oyc^&49ZdNGal`H=L$%0?PCtZ zYmLIZ+|Y2<;u;RfBcdb-S9qm_eFtECjNcBkL_KCY7jlQ$Es%Rt$SlT(D8+Gnpq0pc z;2hu!ag4h`rGhk+;a*k&-fHFAQSgc5QrSbfTp>hd_e#YXO7gCQ)eh$}Jcbj-MSo$- zFaoB4O#m8V8Bv26$R?$5Sz&ju5L(f*=~9)W@fFZ?$9kuqpTgLWb2bcSh57nN_S2v| zTM<@NshkU3W4CrttaUkfs)2|Rm)&~+?ku>IdgUD9uG^hyT#4Q5*aq_|1l|gfpzZCR z3-9oNnZMUgh`S;Ery_HLUwrG}9#95Rb?+i!{DpVq6z2Y)&nuPJ{p~dg$hB~QcSN)Uyy6-PuRlAWUzFp- zdify^%w_kx2_r;HtTsl6+VIXC#yRRMZmtO2!NYq4?xy(WMU3Ez>V8w;Y{GAppT?W% zE+hvaVyvtWM#lXeV{^k3Ggko^wgPqwp+2|X^*?&Idz;KB*PJoGVt(D+ZvG8KbH|(h zE-jvDRZ5djUO?j$j%|NxQ1 zoW=)yCzaDEbX9%^`H81={K47UJR#iB(hT1%u;Et#b6&V%OmpD-2R4X;1U?HlJnyd` z6>i`MBZptta{M;&2{kQ9>c3oSJ~fEGH#;7~&^0$&*fh$@== zkz65N!T@2cFik#6S)6bjaRqB{9b5n1hgLW$;pr965C5Jc;$446cb|&y65liNsgp#n z=yy5pt%O`DC&_#33*f*BrPlmf^OEM}oKGr0-CnE;13`!&Y5~5;=&%e{!6TfBctj;L)m)3w@|QcO85uG+4(o21 z%Ve6J=>*<sqM0SPsFmBk| zyk|p8*3P(wB`X)KTDtm)xW;A6)-LNGdv0dY6N^g|*S)&#)%Cw+JvXqpmcMRq_#p0q zAUD+UUQe#yyS{b(u5~Tzf6>(PpHIcbezmM&(V8U*YZk6vu-dC{sIFdH-QS+MvB{PA z)OgLBwzI2V>%U{?+QwaptA4(6=9-y$K41!0@%wpf{K&T)Cl4OpweR-{O*I>8n-;(S zY~1qJ<$IPt|LK`?OgO}-{*r(Hr19~*506OWd5aQW%h#~QzxfM`VM+0^mzj|L1&`U6 z5WVV4fekpXVhgVo8XtN}(-ded3&ua%$PJrDB=AjpE|@O$?>PE48+$mh@IB4Y1wVga zM*oSknZU*@NnG)9!^OrwG(NZPck6fSLoGhz!@j?8{SiK6JJ0L)@h=}^S-EU(2GjM6 z4lVfL`?JC|`)8_acJ^l@&*P7z@)e$hH^*t%rr$Cfi)K~vY*5lid=S@gP1TZ#3En4N zPx@B3rp4`kdheDOn)TZcfBh?_?f>1$;!%m6!$T#;x^YZh!+uu7B3AULquGd~e8it}GWp6sj$D~sOq{p(-OWon5 zCe-IlpM8CbWA}%8vYE!YkIk*KFVn{^Wz9@~itCw&#h>P%PGr5ghezeHD85%W>#;fY z6_0PtiDQ4ftbu+VtlZean^`U^>)>UqD3=#;wQh6U)30xQBX3Jw?9#ao3>#L33&vSXxB<9gg;jx2w%%CY->vk{Ly!fkkzh;^fte2i&Im52% z4)Y$LaLqYO%Z}Zx+gj3(rLZU)i_%ArKRBbEX-~{+KiTd$c((oQky-5@9`Aj+{o@ml z9=P!K?+!7|q4q-`9qqIEuLt`)7)|kMm4MES&I^0+uq459HslfmwW%g^l79POu3q z{RB_f#%@v7vlT7I|7Ds{I_6S8!Zl}gY;3!c2RgSNVpExh$7xrrS-m1*rgp>9=0M|P z`j>XE-LyS%+oq;%&&9K0p)ZX5c`JKfD-JW3^8Y)ejU8V<{-Z~X^{dv@Hzd?Il&>vo zY+lmrU$<2M&aWGrcPBo(dE@q9#)rfr9iJc48-JFX!i6ElTNZC$&|G`v_{HxI{JA~j z>*OyU-Mn+#^DWyus$`ySyQ3-CKHK;#pW~2#NY;1jyTy0A z$KKkG3w0}@7Q#=2RG_4lfTAD~nifP-5&@wU3Q1_hZ}=0XimC)6q&8Hg+$HD4{bqO1 z`L6(pTfNzve-L4zZ@3NoL&9p>XiP0h! za(-;j^sl*fMUbu|nTFlTsk?YZ>ALlPDW3&g6|PV55ah+ZQhH>1{W$uz7KtvVxI?=r zpYCvIH&xT!4xM+JjE9!fGtRh|%IFJ+&ZqS><oIpbcs!dvdp`Sh~4!=VePF~7i}XGqWIU+vI^QenZ@4qZfzg&beDXQu0+!bXQK zrbgcz4qZa!zLOSRid~e?yu_hT*;z_?r;V3T@yz8ddUD)QqcKx#6-ycxH`eiesc4Sq zgNg`^r%WZ05&J zAsfR&ANqd|P&Hx36tPNE*&QJhUcq!NQm-3A2geX$eMB=2RZ00T?8m-weOMPgflx8P+34KTh2Of;*@wjNw6NwQ`4MT+v9U)y`G!84HqLXJ-i%uR; z;MgupLrm5X8==INgrb?LIuTb)6RwA3YCIm72jfbrw$<>9E=3dFBU(feHAzFiMG2ci zHo`HuCT!M;XnZ^w6Dh?M5oJh)!#H%+LLXHO8Af47WF*Xku=IL4C7bfFEIOJ|!TSQ1 zLWhkx(|(yYs`k7@`ISY~6hb^W!Wh7&fa%KSkO+h-#fs)oAXFz-2l_jLtNO+2=Dxn>p8mkf zkO=mPmS9h7pg$1oL9b0T_pA|Jfu7bnp&)r+ld>UcD5;bHl+;8rt|}3~2r0^iZ52Zh zWjLmiN?09I!y?Y1lcP$VNGe7`O>w$d_{9DbD$r{6qZ|WG1poj8LyV*pM!k8C-~5h~ zQ(;3*nkj!ujr(;YS|4odJ}aH6g>*{NI2oi;lwxF}`fo*BLJhQ-8mVrYUJ9z2B9I>> z1#}3rQjk|Dfv2DVX%q(6fIhy<7B2!$jiuMb_;RYpHD+CYNaVEnt(gh%YONK=V2z1c zg8HC8g=Www?yRj1+BM709%x8lRM0|Lqtgha!sss~{~3Kj9gx%@7qXsgE$fY9MjRu? zS-r)W-+-%;ny}+mT0ucjr>|h^%V}G5)_i+b5c5{j0M;?E1J$xxz^A8l_d@5HBQZ#s zmM=8yH^=kSRftCu_KLSQ^s&qk^u(cc5F9@(MO#K!!r}%zzqzHSOA2UX&&X&dZ06{2 zY}r4<7}K%lcSV3|d7mT7(OQKb$JdT$2$YQ#dvy)#)?+opTGO7xG-GSTiacYLQQ`ki zc^#(cw;ZPHIQQ5ut%!VRLdheaKqk7VmB$^ zwF#VF^chP6Xz}CT;aJK#y1_FsSF@1aj=2gh_9*LYadIziMKkQ^TMY>fBaHMYq}D=X zGpubVu}&y=KDrrWHHbauu8tUSY;tYZY$e6`P!El z;oN5*+PNmMuQ(cKE$48`T9HRgTz00|x>H!6?U%7j=Ch|;;XC$jmo;0!vuq!ul-Egu ztJ5v$g`taa%+(;~AdSbkmPMg$+=`umPF`178iuS0F)DMJ$~)Aps>9K?eQB=|!Md!^ zmb4LYJ!Dd7jAcd*W1yM(aRpHw0wkg{?>{mezIO*WIa|-vb0LhK>$6(yiv9IX>Zxh% zRzXJfTfX2NJ5@nB)Vr%V`T^8zp370=+zDc|)tV8oXq(pt9?P%6vkP37VciO>I#sb0+F+rQ(aV0f zYnlr5CxIufVG(QpAyDl5Z|_%O<^Aa~Nm;Q7Lpvin46U3)cK*pgzhc?R@iJfs`!e@# zVhdT4qs`Va*RISq&Y2&b&IqpHc5UEl%5PrA2xnC8O~Jdd-zXQxoBu2%r(iKhHi?zF zzO!v{JlS(mU^ocub|XHg-u36a+qL@}-rV?Z!;XfX4X-vl4QtML)1Sq~F%jo2yIChM z(EP-)4Oqy-dzU~L;DqjiZ#W}{r=~DAO;0^G_2|?iQ=6R=C|LOMR|3Kr+y3!42ia*7 zo?)l)sb6s#+c503Jj)_6?|g(f7k+SzlFV zsFd=t6g~$O)5r8BO-YwX*IK8eKm;cY)f_){68*lnl69Mk zhqCh;uZ;|^DSx`#^W<}XdGd_~haT@(S&_Z%)~eoY;rxqs)xH(_to(@sWvk>Z``+2N zE8X?mifmo}O#|zVfd$3c*%KdTmVGF_^o2Y9`b63OeOq?EP!ZYdiL2|(H47HD|22@$!iS>AwBxYYs>+9Zv83 z#GU@@MA`eVZF%a2id*)0lHv8Y4J@c?eLr3B^NNhid*8$NJ@V-Mbp16)v*p>@*`ll~ z+nQ}p7gVOJ%Cpy||5o<(LvQW-Xu-kVy;)a9@l}tFX10$>pC5LAKKF3?a__&>Md>TE zzxMpgn;lGlobF6(o@#IQC)w?ujhSZ_dyB~>Ni#|_!dJcZcm#P`{dxO_I@+-eUtO; zv)9^d?X}ll>)-pFePS#rF(NgpLsFEHm6L;??5?_o(7+Oel*DLCNZJGr(n*>>PpBc!?P=Doh&r6?8rNdq~a1NQpW z4#v>m2mJ6k%w8300lonEFeHJyM4|{&j@mWzv9ULiRC*O!Q1|w*Reg2OAbK^_tqcQR zib7Z`{Ggv~*^kE%3O(F2sMiqc7Ay%O@dg^;rxG}+^ds<2j!?*okjcR32W!a;lqwkq zt)U>g`%~Se5YlI78d1iK9j}d+x_g(g5hWS3bP{G0g~Wz@0To6HxDS(TzB|4Hcs46` zAB-F#9Ri*#7HKIOfmVpL>^>bidLHc)+Z9NQ{w&f;Gz;~Lv^>bi^2y&4+ZE_(MT|%*(J@7yNUKnqQYF&;B)?aV73uzx{;D5DIuxb#XZdCR z3nUw^jP^Zk(E& zl9s^kqp;q}mvh+U_xd=e7aLp_-s9#yW*=w8ag{!w`}w4#nwlD&nW^b4yfZ020oT}l zmAIJma-KP$mczSzxDfDyr4wDa}0^MEKB;JF0ka)0#uXg!7 zcFwE&`8XE)`6?b48ccbHsipaP99Ly_nehm0w{pDAV|G`1}&*3~~ za0+@@t1YY%Je^?nntkRfGtSe)4qj{!42ojtb2lz`or-@X5Pg0(msC;-85Iy{;wyYL zW)Fv<0b<3uypS{IuSZCt$xwieZkU6hTo6=9!1qv=qQj3iX0>}E#pTru128GT^f0{% z8%)D+rru;QCE!Vhl00K+37(`cF4h;87{-~fu^49=3$qO+24f*`Iapsf1?L+IvlB1} ziwAt-=DIzc*NXv4cBk86=d3zx;<%sp6<2^NgQM5YS?m>d3wE&7nQdGGc5@!5-OHAX zfKQme(++4AcpJ-s%MJhl7c0GF)jW9cG-3 zGLaFe`$q`c>$8^lQ2$^rBlH`G%3vH1%)l;qjUlG@Y!`ve2U{vZ%O}Lb1@rBb>CkA% zM>@>ajH^C zhZ*r;vk*{g0(2PARPZVv?BV5$CQo%9nN|eSIM8CaVG$Vt#V$mI2i&mexM4P4z-u~4 zihyTW!hjYX-19_FnT-OF`Jk^$Kz1(l<=|owWj3?KwdWABX%X#B0u2|mFr?c+YbsdO zgSWW|&&1rTTh>Ec9ORy@T^@48a>I*#gQ#RHi`ir&Fb${RksYEK^oCi+$MzjKb>^G* zx9>mMg--ZdCkq}jOzBp%4V(pRF&wkqpi)E{Yh!zv4XpWv++ncE#>Ik#3L!%bm3=Ff&5##%9hU82 zEQ4cMVO(Y}s2N1S1kmw9VOVCUVHnV(61a@8I~WkQ4Oo4(%F=KUBz?Xm}m{+|8RC(M?E6;&d{f~~Q8J1EO_1z4&9j~Ooe_5ilCu$|N;#E9*>eUWA>v2Pul zU|t2l8^IH%d%xv^2Q0A2KWZmryCMFEJhOsb_S9i}Ksk8Tw~GYv7u@BCLFC!a%GUNU zs51qgam!|ojHheCb!*P5o`w!?hR}=Wlvs) z5w@cGo)m00!6(Yk<4yMvlD*(D%d8tlX8Swy%>gxwoDDE+1nd?-e(pW%fAVa1txi6( z{9N+E(!yyy{oI4Ntkxh^JBLD*n_$%}(j;2WRUUJA#F2R%n8SeFd;r2MhDb z1qXOmzzgKP7%c3(|Jvwa0Xxid`1LMk-zI+glOS0Le20(>dgLLBNhSoI2s~M@jtLBr z1Y$x0vC=@4j6SWF{#g5C%Mkbs;f9+sOy1Bu1g%{BrY0sD8P&1S*4wKd7BD>)n5BM- zX>3ss4^$0AN*E2i(xA`Kb<`_)QZiOJNExhf7_s~O_YST9>LV*0l-SvoogV%*2gHY7 zqWjLo4>dnB?1{OYi}Tnmj}}6##B(I1GwX|@6J_ohvns#bR3v^Rl1Si_ix6j{BwX@` zkekxOvPJUWQT5T=QAZ`$j@~LdD!oS4+FJ*2FSv715g6VxQ%lbU66LqT6m)-2nU*l- z&WFl7$>jn~&h-GFeCrx;J&BZY8e%=!apJ~FBI}Znux?U%uH{qm_(zdMQchT2f7P(Zr<;tfG4DFuL@HlANJqv}6n! zb&`(yIxCGX{W?31K3hnhrDK!0RyvRbWV`wsx7k=RXRGPGMPa zp!nFdPVVu<*+Xk6s%xIVfnV(>VH=2M$IU~3o=Idp(adk$ym{Bg4Y+ya8)uV z@K-90{v0Vh`$`uX+GXz|NoOW^hhOL>#>2j>cb6(4n`j)duWz2kSe1u(mmuwCHcNv z+mlXzP|&1#w1|$S+L#Tm?DVXiPvl>JKti{YP!)Nfx)uH8YhuGT*nPZt=3(2GzpZ^{Z^LP4m`x8~l5hz1^^N<+fFu z)@*p=H+xqT`D#K{O$}S?W9VQ-({G#Jd3~>neBaq~IiF-I7EYLxGjFP@h5k-Env`8o zw6$t!NsqMk6p2yL$^WB`SW-8CM>dhZyifHhL0uFPM;>+1@LUqAbkiqHG_`p2+WDLK zM*qRi{eRtkQ`J*`CSX_YoYIoNzDl(Q%-&LU-cczcRAGVBfs@)_u8>oG5qVlsm*LO# zO!T(;Pu6x!SroPL-?xu#$#It1W?A_4ul#z>>kIbnY$_EdP#yeo*Uj~0kV=!)LFBEU9Q*iq`|-1_9c_}p$g?E$Kgo#h$leUnd5hC>Z;w4R zVMlpsREO*Q^nEtfGWwF%(vtpe!S-@f)G7C8Gxpn6sXbrUy%)A|xpUqHR3#G6A~Cf<7DxKcwd zcda>lt?Nj4ILSU2h&&hB5?K^+Brt$X(au~rv(~&w6|sOc64hC%B2E(BO}`vR!l{#n z=8#ajOF4Dnj5^yZ8?vIvXMd4Hzb;at?V^n&o0NCaa#EO03#m-meBkv%YYykEjfz+> zk7}xD|FRc;y?B>@eckp0Zyep+t|EgJ5l3h?U7bsu$_X@LC=DArVMFbe=PE84T{tw6j4=kjD!cGwGsVW&^O7c3Q{Zk zCIu@0pp;9O6tq^Ba`}=XBJKtnLq}>!EcuSceoE3hX&ONWifBSUNqCVCq2G}q>2$P# zjHa2VNhV1-O;Z#RYo&E$$vW)?A|I_JcG)ke{JfHkZP!w7&xSTqO5`+3v1IwOB{5SJ zzgp1fZCI$tQTDsFnb}G1dZ3+FqHbq26UB>6X(AK@WylzEI z-HM9(@`lFwjhd1S%O(w07R6mmB@pJ1_tB z=zq7Tej9gXV)K@bJJ)U0eK7L73D;E`6e5wR2M4fv#BTNweLp-fR3twOr>p9rO`cP) zIMDw<=z%|})lddBs0ZF&5cz}lp7ePCj?m+4HmlVgO&j~1?})x#f=}~?S%c`aAz9)-_ZA!zwc#2@;6{zcP#(_ diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.660E.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.desubroutinize.660E.otf deleted file mode 100644 index 35d9eea4b3f2747adce02672ac4c98bd1af45098..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5196 zcmcIoeQX@n5ud#~`}}b+4v8U36X#*2iG%F(#W)d)Bgn;$OY{;a_5{A_cyzH zw&OSzAaSeRH}huRym>Rfd3$f;Lql;2(S78nZ5>@*;^JSTw-D8SO5|T1Pqeh2jIUir zBt?km;O_X~PXD(-(ef2|R3vkC?^R|Nh;s9`IeIhuG#uu^83%T^z75MkCxi$>x$>AjUem$$;Z9; zVO-$BORo`CzdU{2Osv{)EIA_Y0gVB2^!@%1;9VJ*!@j+c_PVWfC$&mD&|3}B?5|>$ zB8qlykJGl1nvoj6G4mkLC~Z3!mV&I}TjTpH8i6$sHAqj*&YuO(tK#SNl=WyI1?d5g z_R~5#?9qXFI%TwlUhw+MsgC~T(Lp*$Gag+*E2RS-T}f|9lOA0~_xZMZbTzH?o%HA> zQm^m#9$iB#12=edEnS1W`jO^Jc>0Gxk4H-sE^F{;AJvo%c(kAT%I@^&z&xEYvdfig^fXUAktAe&AoM zPv~Q2Qdu8%ThT3RA|Y!Qbkk#5+4P!?;Yg&doiWw!DngIdnmsv0@$EZyE2gFDnsBuT z5+0G!?WC?9VlI4hYkN)}RdjnKoK=Tg!<)jJZ)%HdUeu`Pl4=QA*ruFPaZ7{ok0rWe`*!t4MdPTf z$zq*QQ;ME8Wg}y4Xcq(WSXOj~MK|n;#y;6rwI;FCRFqL@b|7)tteS-09!1OQT3YPu zj`r^qjl;U3=kyUB5=1biXS1S1&*jE6H3<_sY$SBOc@kcxMGucyCwjO;L123w3mI8M zZiJFma*AeKO(Ltcq079leC*e zIy-4(gr(RbrHrTu7^iNX&<`o545u(6HJ0Q~czT;`$+kQyi|#0P@WGg4&=X_KY+PoY z+OQ}P?MXvv8Ok7|4gwSUh&?Wwia-ZqrDzs%#{Qa45)-jL5jU^~N4d{cXcBWM+ZYy$ z8%wDcQan7y7{H={>4s=R#1ai+do&SCG>JX2q3-yuA+aYqI2i38itR{<_@L;B_jksI zV)1@(T_W0lhv<#2h1nhF2_2BsLZ6h^&$Mcl$(kgcSt8nzX-)NEKc z(=G9?z6Iq>9i)>%lVp-gY08j|-TztKtrVe+)J9FS^d?YIyft+iCIxf?qb%qvltU{h zMj9m{HDQmRvLj1D(&*T=(Z7XSaE&`x7#byOVP|9xvJK9R% z(dUeEwswKz{JQx}fO4_o&aPqJ7R+WkbGl=gW^9c)nP;prD#Bk0kAuLijuq*!*$>nv zfQ}gLgIB$O@2bZa6vyR$~FL?T`$BXDkVzC5&gc z=PBFhgUrTQ%|Z4~j8$-PMA>GCS9@6}n@P{!9%yLjVWg*_wGS4f@OCGO148-XFP=nS zBXZBRt0PC88{Hf0qLM3%ZSoAPk#js!5k=P@az0PQX$g+QoQl7_vRHwVZC1Hzk%)3Fx zLmKz-UY3TnNhfy#HhEs*SQv3K#HcJ)Dz8v?b{)>P8%uYN6y{}nuBMBC+n{6NW-K#m z7z0rn!WGBv5F?RZa`gOY^2iBDO1@rh=V}iIR;^NQU=P_jmR!iamUr|^x!s)s}M zh1F7_-d9-TFRTa@Zw&b_-FxZz)%ZkU;1R4XJM#EydgOs;YU)=~JhTRVGc%!v!oW3! zMChAS2SRHLcP^zMroxfFhW<#O(u}l9+UlHeVkw*wRC{vnH2HO(C2@k`LnZ&M|9Vbt z3;x}f4yy~g7ma!IPDN8pHMzJDvGNXh$mPJ>-ZvXb!nYWoB*mwTp;H%DoRU5{H8pU` z|4A`aH+AB|Jr_@u7uHT6s4Jc;G?z`)mKR@~-d&ex=Hgqyi;-c6&YznGADQ|D+;nr1 zxti#?eE*sIPv>tqt)9-eyubJCwSPOCkDvMYgZ!}%mLL0Y`4BDJbzlDc)ZV({?ZtTh z_Tcol0{Q*UQyeI6E!Nfl?EYVyPu!g^`}=S6)xXSFSL9zU8s(GU`~Jk? z`n&rMKhm@2iHRrf`q6mBhp#{K_^~y|e)`z2URhbg0jOMB5TSL?PK{k#xPjZBTw8qf zVSur$>*4a_RmZE3|2Y)Gz2rz}>4kfie_l5yeY5J_>NkJA36;m+$S&^3H!?>D&(cr&A6!b*`2YX_ diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.3042,3044,3046,3048,304A,304B.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.3042,3044,3046,3048,304A,304B.otf deleted file mode 100644 index 9e1041df29a214456d78347d87c6280065044794..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6132 zcmcIo4|r2mmcK7;+K`l5W{i{ul1m3l>$GVo1^sAOo3@mutxavpe-YB;H3?1L3(4!B zfC9D%w4{GP#NwhL7DUCN{1F&H7e&!^Tv*Xjk(r(Sc6Su_&y4fUtS|78?l~{7{1f+^ zneUst@7{aPJ?EZ#?m54EU+%LvG}uWBSwj*?Nm)e&y|``n6hg+75R&AzJMs(Gb$nS* z2xB3HES+nwpPjHAC^GgKR2o;n8C-fo_?nQkcHsAVS*Lr{Z`mtAe+XrU7dleLj5-bD z6M>)P4G8UOp4kuMPXV76aJC0YavhLNHdINRGr+!`mN*D}KOw1K2Klfsyp9xrKNRG& z73_^#H5TZx{|x-3R_lJ9hP+VVf=}Tarae1sZjPBmf=+9WEI>etXvk_2@o^ZfPs z{lMd@upUeN3atW9Iu$yBWRY%#PP|D+O=glIr9X-2$$u(zGFeK76@bvSTS6{&iaFlWN+(AhPA&|(o)*6|q%>2_7E56fVyY;v z2zscNr^rEMFP$})4TXI?N8{Rc4u$aYf{W)`ku%?4P!w=Bv%Jt`_WK$O%+t*?rWIOd z+|j7wk}pi1R0uiUY`__6rhL=?7XTke1uskIa6Sx&Lx8BjaL%32hbRw{5Owh_oDlM{ zVe=2iu|C2#^R(9HsI)DdQ*EW$%}&lqv#8I_@}7`0=ndx-(K=^~pO%|xCD^0cHBQ0D z<ar-`%7&ca6pV1U zxUdsEeaIPh3eILHt+c`kUT>2PDqx{*n${3_Bjo7p0&Q-TH9co<)HR@T4t{;w>8-8wZK(SYwZGBZL2NMr7Ub7@QG~? zhS+eJ0+f7#px?*3&D6oNKkO@Q0#$@#ILNwuO+FX(W9pn9HkSt3P{0?)?IPn7)*tWz zT4mmYIpBN%0DwV=wuD(kz3{!bnUx@iT_Imk2%Ez`znKqt^6eEhw{2%qMtBk=5fUOk z;vrrl!0G=olmcQQQ%NDoy-rUD%1Ydz-$+=X9WW{k`YZ`RONote#0An2*u&Z>%iJKz zmhB4AKa=Fc(Yq5VcaY-7v>4U3VgEH6k>YAb{*KfwZ{uuf*cDD);l6IllvhbMX**UX$E_! z(*$<>V6_n>W-=Yh3^ENowm|#mdwR1b1#1`?ClmpE#_V8jF+R=E$HSa|EdqRU^f9BD ztvSG9e&hLc02Rkde0C1z&4<}S@|^K8NF%mdZMVn>H-t)`ZbSd`cfd&UXh;$EVEd+~J@OCz#ODMa3$2RE8 zhTP-c>Oj!YWaYkuHbWVRWnI(G((!{vk?no*+nhvJ5yE*g_oR zY2a0mhJARJdB9pk&K(7tI4_kgG|3r4RF3RaTp=%?I+*QvEaP*yVP3Qs*Nh|JADyycm_0rS0krL9DngsJ`*C3CoAslOlV7G9y#=59`rXrcI>d@8)V)J z8L9`JTHtMPX5(1Q8txrC^p?vbY%(2}Re%ij7eHGLQq)1)EO>R}#9~Rij7mf=#yx(f z`2hVvz!RQfZh8FJJ^^vw?~M$Q8mwgYx+AU`+W_1}B9bN!aHUFR)_Ek`Y%rmeP1ZJxh7K;O*a15ijVAr7~V%c4Dc5QVrwPvX?*%cj9-5@BbK*sDf_} z%sqF!FrlO>W{8d7m|~1gU}8p9%#;vIPn7OWNw~J^+P(?!$sq_;a+*52bpq+>+?{I7 zAodg!^bHTEWX2qK#g?W_zEYhsDb_rOB*Rqji6E6+Am5N-W;`=PzA@R{aO?01ksG(u zzxCY|ZbW!V#cRUf<|cUCzvYq3?`_?8jCtN{mSaOc*PVscaBsw{BoAyH7|75O_0QBp z>VxXT>Lco-$_F8afzK;)s7uKw^4NEWlVX#uF40TpV|nV! zX-U$-t8?`tGT)s^{?5`U)8hH7z*{c=9=NM{5^||AF;=5rDlv6MRkfNY-dX$J2Xw;r zP_!exd*!<2 z>mS?Dkse*WdgE%tg4&K14W{1LdtdK6AdcQ7rVspad-td5lLaYdl{DtbzP){ele8@@ z8(R#{!p;3YQ%{My>(J-xj~Jfcu`#;yC)(6ZZR%yG`0skDLV6%iS{pDPe^4zxeL!@G zsbX`6I5G1JX`-Z-)Xghr8M!BYPX;#(=BK~7W$!aDKc(4z=D%MPlMH`2TX+9tZB%OB zAu)sFQm1G|>%Cg(;fdN*@%TGbD|YEW@QJF*laCzwMf##c5;-?(NRul5?($3e$~6x> zUT(CndwAWlZh!akZhy~Hh3UKd4)yQq)$Hy)(f?-uGAZ3E30aci*UQrXBo?0)L)qF7 z4zHXlk;kOF{gtMrtz2i5A(*3G`^t&VA;X6!xBt^Cro;cTJxklax9|DBoqf+~#2wNE z{YUp-kV^MXzA%*T`)Y<*_0UC4Dp4`as4+2`lGT63`J>oGY@2>`<*~cJ)kD?)W1_>Y zc9Lme4yv@ONvfGDyK13|RdK2|y?ge-W5>>%zIebCE$gZDWcXLF5R88mFY6CQk4KLi zKYr@7fp-VGzesniD0#fBBYHG?F#2M2SI?fF=QM>$eJgsFwPi%Qmv+xHb_JJr3kHuT zx_OSN=Rx)Q14p`#8Fmgvd-j;Rmuy_@%5Wr0Ned@UpP5l0>Ps#dPyKA~S4X=3t?M_Y z!Sf$&`=#OQ&mO(clwbTv;YwpC+Zb&!yj1*J^k~n~r^kuo_kH@An35rCfAWPisp^5% z;S!^GK(|XGyT--xrTzLvZ*{D1UALlZTuFztVr4xfAP^OLHcv}`p?7!Rt3B`ci!-0S z(4Uhd?UHu6+>!Rk%2iK%J}>?B`ESL$FOH-#P^J83-|29TR4sFg*PH! z7*2h;dGqV0{(n`kUi@H3m0`Z{_d{z;YhGRTM#tXA4-329eI31#=o8&T2SwE%4!pK? z>)_7k1~fXc^>U5=r#Zte&!b@#Oi2 zS&KwQoVn7p_E+6sM*lIoyZ7gPFKS`~LH*wazm_!bN%OZ$72|&O>f>Tjxwxc2Odh8* ztzW!uLDvF}H2xteK^iOlIAg|}uCu4k?A-U3vA=Coq<_UHFQj)4cJAqX={M&uip<+0 z)m#dloL!P3-7Tr|rHXdrkxI3=V*l4-nwXg(GS;u8w0%Zh-_G8FzUTS}?(0ck-QC`` z(%99yVfhA5)2%aIoffOtuX<2SY!e@86IE-+J@fg!I?*C(GsKM2*QSLVH*8pJ+(Whdg2qGiMPzL|0W|+Ca$jsbv?nOimS~ZG@ ziXkddt7d78Nz*os`Mo@oT1}0OiB_A{rcLwGG%>MllG?ts2XlzLz3(0H6Vugpt!KBjm>=k64;ZNp=6sfolHn+ART{jnL)M2)%& zzxLQM*xVaC8XIXSF-H*r9QOhFD`BJ`v`-c0l}Mr1u&<#}p#}E*!W{fgpv7LPPNc3@ zSrG#=bp$<9I3$JLis+?TjfxVQl9$)g(qeNXo6REy^0ISii%)5!HKHtrR{&d?6jW#x zxQmX}<~r6!HGukL>ZVHA?G*#=a1)j4|Iu*1AXOSgIydOU!Cea20OCP!o)o4MP{PzB zH3yZjPn2yD{oqxKZUtjhx8ByR&duQ!gNjdS)o8cHA$OJ-6vIBxorxeSHH0Crq76j9fVIz{#MrG&qZ0+euw6MZ+ywJkTKj&tPb##iQt=(W@Hlu|n7%eRSO`dPz zlN@Z4g&2Ndc-rtx$-9m3?XT8B(!)=PB6g1E>diG=i#PIT z`sP^~B43^{eQB>#VRoqxaQn4C1J;+z5sT|(y_MGcxlmm+yUP5XS2w=)I!)RC(yNc0 zOXBONT8kf^`bcSN z6FS$f-MThuVb%IowQ1X*+y2~+AF&}jSwheM?eF+y!Wf0ew(+44?l`vNNJdO^^Va4h zci}@_zO-%A4O@=Cz4`g10|&Qu9!igiqcL&U-0TA@FXQ*-@{NJim!=umt{*WMi(^fR zEIs2lJe?c3p=tHZ)Zl}@2Se>g@)8a|d~DAX-RAvgKKVW~CjI4n^`ucToxJHF7mkdK z`(paF0_%mo=uf9*_v!dECOUox3zWX71^XXEy;W@bxdK~wK`UTn?an?5(O^L(d=vpf+D|NN9_`NLd=-*!W<5H%VSlsIF0|$=n+e>$kJyiJQ`zJ1* zd+~j9T<;LJ(7N=2rETuDX4ajN!U8PuB7bityPF4S3_oUC^uUsJ4d2;YlE8lbsiF4* ztG8a@-K><=UEp=Bs+3o8y=nLHhhKQ;#j-sKt9V=!kD2$)?`}BO`pCK?#}B=H;Ix?y zH}X>6HH!sIbNH}y9-lsEZ`LsuHubcX%YA!KvAN8UnX++9`^MCT z#+_@r<<1ApPaod8Yk%6lU0wSgOJv!-A6xn3PWHG_%(m9@zn(Jw=3eW%&0E%Wq^|3z z-&)t%y}CQReU162Kj`c}oc8GMhxUIju~)1z@nyYc>wUR7T*$26vugkH?$)d4KKjec zADk}uBa>l&?f9tkXPu92|L+}# z&AmM#>o-Gx;O5u(g8jT~K@^ve3+v=Wrb#!G|SIe8qGA z&V+BS{p zTiAUqENbJ(J#XJ*focTROfY^RTK6rzYwF*KPImRDlO_=XecqFUAmAegasGhWcZ@B*v3HXC3;d0Z5%O!RYv;^d#Sx_$x-=tJ0|t_ z6LKql;l~$Vx$yF%OFGAd&Z}BLaPSwaLO2Wj8Btbyk<$)m6?}2#_A>27dzKv4Ua*45 zztdjy$Bs$btIa{*e*GjI4_@pW-tVx4zA~}^-u9B^WIcJ3j3PENju1H8sJ!hu14 zJiFlB@jHU}BXAUOZiv7-l1Vxuu>K|<1DQgej`SOemHaURo5=m7KLVRcqOddqN0ZY+ zYXpuV>!PMcU<*l%IuU_~2o+JkjKFauQJ)@xX5 zP#uAFq|&e?0_$($F%ZS@WTf9n?lGoDU=ulMERVouQfM+q;Ar6`)6@tYBgB~h9)T^S z5E4bRXGqlUn8FAgM+#$KkHGOHHTJp+4~1Ez4pFmAKNO-pVCPVX@Qwa>5;tVZjU(C< z|M5fGZHJ|SGgRa#m2b1#3yW|~72Wah10?5+ne)W3?30328-dq}1E|zPbY21lz>%h4zVeR2nhqKXz>V`onHbtJEaXDu=7wv1o2ZG0kd%vmMQ( zzQH44b`h<1H~VR+jh4ePlx9`B6<;ui&I*fS6L6Nm+1l^-d4O-e81zfQ2D+%cxM~*7 zs*^%eK&qF30*6(vK7FSTo0UbtKaXg^NVtJY1l?9#2~F~4thnJ6$(qsM2|wXjCESj3wF_(}}QaMVY8!|K`J<*2025X?bkuGAQE z=#4DPx6wN*^ZI1C8Pql7)d402_kxUK7j?KY=!{~Q!<9qlJ8H|Fb8G4R;+mS`s#?cP z7j@Rq5@%JZqt@Z90<4S{S1qI!j;hieD#8s1Y!X+7!lEowxPkZrA-_-b!qr9;zus0_ z53G2Lkwc=#SMT#sKZefTAm-4J7!LSkTrTRh2Ie2|!6iq<8!!ezA0z;zL6|nnB3_o1 zulUUtakA_Q`$CFrlYM@h6mH0KmQ~)ioJk3hNQktOF!7NF(nu6S$rJDv5Ie~yg(PPX zo&ZoW>=qKKBO<^qkdlF4BmrnCagZSK05uHy@atA-UZ7;DdKKuOLh|5gQ6C#{3}~~d zk^!J)t0T66H3~>kQUm&Bc*A4`d{J8&Xb-A(R)K~9^inbwtdU4FaCrb93p?4(IE8)M z4KipmwrDNtZ2$>B^n`E2@dJx9V zgVDn3n3@d2m|M*tiMIJbR)#tMJNZ}xc`Lz;B+yv}S?hxAaF9h{RR!pyTh=aE6gaWC z8mL*oh53RW$%NOZdPIV}LGOfMHZtUE5m2fD$6TV2EjIX;M=V7hl|WNKHmGLyERYr9 zL64%&lE~WgtI_mC^vws3AoO6SHvrcn&{z!C&LVUv6*nJz1p2Zd_PBN>h!Ms{ipXkN zi7N|r;t0qQP%ZL-7d2~8Gd=nA@i)$Y_&-OUIeUS;ru<}qY9Z!?L~>Oxp}%qb*#o1$ z_SmU}GXnIW?Xw3tF(+|-p$AnfpR%6q`{`Ba!L^S*)Yck>dHLbRRg007)e*5rfk#^@ znr<1!NBi9{OQfTxOTl;O-3nEjf@je_%u*aD1XPJE1Iz=uFpsesG)6KF`>>WZfVNgO zb`*5txK!0puSN*7a$u$63?;SdV6-(~YGZg|T-2v=Y8fyGcw~4nmoaNF2Z~88JWi+% z4niA-bX{rkbUq7|0b6g?^L07)Ri942wkB@V1(7tE^?a3@%Tyf8NV?U)b!wGbUAtoT|LFNO%!08bU*4yf5Ei&4Y1 zK4JO8x>0=E7h#T>_xw8HO&XvAA)?s8s=5!?*a&Y z|F8R%s_Xvdn8<1@JfIyj+5=i~4QcDo4cRZMc4EB3U z=?#M`0xP&y8?c(<&P(Bo*)p(G;B2%V~hG=WTb9&FEnXWah-kcpYX diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.61,63,65,6B.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.61,63,65,6B.otf deleted file mode 100644 index 06d28b67eddaef43ebcf95cf1eb9c0211318e975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5344 zcmcIo4{RId6@TZ%P8z#u(lrHIntTmenxfQk+q6OrL%2zsI0|EdIHW72@3A^~FqK?Mky#$eEvArLSSNZW)qVAZ4z_7A(bt@nF(=QM58 z36SvVyL<2Z-uJ%uz4v?X{9Sx>G)^J9kt*o&?yXzJ1ufBk5!JU7Rb=9cj&)-XK5Y<5 z5hB_>79Z)YxDFI8c>uTSWKK4y+^k0N=6)`U0BtBk*^F50QksBn95FCjYW)(WU>Tii)G?p|=jy-C2GfUs^mGG^*;r zSCEf;@x#2zn@_$-6nysh(o!sFIGUUx@8&0how!5iJFpIv?^fTH;0N5NbPcVOwxBo2 zLf((d}>RWc;*=p78nu)Ifjp=qlPxC6BJAWzsH>UO+EPGag+-H~KF1=pZfg zz2MOcr2*f29$ibzDpz`R9WAQtfqIMC?PRrF$@&!elUv#Q#o7f8=lUFy*_Qcd;e9v!648jdg9v(R@>O{YiK zQfKHjkFKM}&`F1`$1WNdUg*)M?5wBCIsJ81yKqytZp@f!I%A7R#Jb4Z&UU_U5Yd!A zu872pWh*&L#I&St8oDXlN=me4Y}?q>(J?(e9hO-voYZq2tJ}r2YG=fVVkzbxh;7w1 zTMPmJVpT$)GLy=xu=^B!vL+I;W+@Zj+ z1CEA_tRXf+$tpQTv#oZKRcsrshom)=&C26h#ai8ChQ)xQiNPr?rHD4e)UQ>Nwvf$a z2Chlk?IN9>F*3qZY>`qXR5*-7*DCZqiYdb=%t%coxf7ONAzQL7Ps*Y%iV8jwa};{R zm^15_S)*3Z3q*UyP&!64h^T|Wgg#+U%cdgG0bePag_yCurW3?OY*54v?7g@WXPP0C)wR4hvXN@~u?s!A#>5{hzeTg3!K8IG2r zB-IHuDY6_oIjyt{Losuz#p&YU6Z_ApK&!*2IR=^v000K2n6eZ`y?vJ7!k&|@q^TOV z6}HrDSU1xh@vVbrq%(DsP6o}8Nh+l&LpG}aBWUX=LTjm$+GptvprVw5{5UC~6PRT| zUZEVGf?}jm5~C*c@m+StQW$A-^xEj(L>;)MohuB9vbL}@Gl#L&&Wh8p#>Ol`BhYW5 znY0IY*0vSeHOI~&Xvm>g&?;D?(-fqV;8#)jG+t02BsIt-oF`k$defMZMUQy~w-)mw zxH_o|JMN*)6bChT1y^5L+nO`xyR+h$w}r;Aj)@(pj@1G_J*9gXI#2J(K+1M}p<%z} zu`peNcywW}cxyu+%S=E|7Fx$K5~dAk8)-c(j^O#_EuAYVpp88vquH>Tqrq^EB?BsBCe($kRI35`)$+e>1X zP=0v-z36L0>^XOJ#E4^~dvje>a%QnkUV$ZYjzucG=vu>?#fwio_4*qhJ%8ZI!*9|d z`!`oQ7BVJuTH|<${mtw5msdaZ&`amPDxrsM@1K=qOmcp)2OTRPYdC!TmCw+_xz9dy zb4_4hSv1aC&SA@0k$Y@hZl<`pEv(P>%h)B4v!{FDJNE8?Gh4v3Y#*bP*D)}v)3xA| z(8W0BYLM}e#(iAN($F^J#7;mbuPYo46HbH}mE}z39qLZi;b^UDoGHx(K)e zG8P(RnNh*;#Vg|V}Jwi>%)e|?#HYCF4CkWr(K zFF40eRZx!g1T;;_>%z&NZbR}mL~Zk2C_=ee?SZa3q(+2NUEJGP^L6w!$z<3}AniU^HB zW(a%?HJj&h)HrwI=v+_y%r4G(JUyEcT*2Miz}1xByo?dfsPdbFcjLZM&W*S58A!HZF-O+G%3R;swk)3P zxil~w2X+S$pHuJpv)=96{>U4*yd60hc_#95YR{ZHiGI`PP@I1FK*~pgZ|2l@#y{ioLHCUAd40a7SJ4zx zP0l|!Y~o~R@;`VvOBIq-wXptA`TBf)uy|Si4-LWmMS&opM)feZy^leXgikwuN!r{$ zG_v>8VyNNR!7pw&aWGJ5Ilil*_;z89|5#n1_~h}ihCDMTUadM28F%RX+sDC2j(rO5 z_?jYfwLKTrtgLCSsVy#Uso5lIYA^Zg(vO>0{4*cSuP^?@|Bpa%JpVzyKd<>)1I6za zpYq>Qcw%j!mVA=5puQkNt^1GFFD|SMwcd4X>EbVLSn_#8;onP+Eo!*yTWn&?+W*t{ z^1s{H@a`)I9(}&)+CzRLx%>LDqV9{6X zDfZ^8oAWJ=D_4Ae&zncyU;g2*hKs(Y;9dRx_ws)Z=v>=)t}%O~vc4YZ)%qEDNrFGx15|L%(m>CLcKR){$rP13zmjwpU#}w%Z(A9?a+V zHN0{7mrwt?>CQkf|LVSm*N+@{=J}@7VSiTLW$#$Ns#mOd=fl50^VqcZ^QPwx`+t$z z`AE<5VpDNZb1_!z%U4{KZ)vLKuXa*5U#JDh+zJEjD5ZRzv`IQa>wOoawb9ii)sgg{ VlgN7hZg=7;e77rqEh{Il^gjtG^xXge diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.660E,6975,73E0,5EA6,8F38,6E05.otf deleted file mode 100644 index ce9d2870143f6aa1374936155a98b6daa3c68366..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6472 zcmcIJ32;=$vGb(8v`@$aXEBzMG{_v1kyZzS2!stf5G)c}p%pgcr>Cd8r)Rokud1?>Skg?Q$;hIT5_;nEnMVmB=Lj+GwmUL&4qqMjG$E#aFg9zV zy>fK)9DqnnEPPBZuhYNkcU8Xx{6~NvtCyTLF<(gE0VxRhka`%1?H+Ry=obO+Tkj3d z*G&^dz^?-y?{&`i6JrH{W*vMCKBreY5wF_`ILMFt(l0B)&SfNrkY317=YqVLrpG8D zkK=lM=c2p@0=hk(2Y9?dbUGpkLQjX>7;s5roIZ!sr({%0b&Vcp04dXZ3#)nyt5?S+ z^%j;3y@eG~y@i$0y@jPZ{#0!A?WWuN5(yFg@G-{gTiO%JnkBEsB_$AhY%+{>cE+Ya z7o~p$zdd66VV4-&7rPPNi7|=@V7Sl8-w7j~Abog|><Lls-da%!JvOwX6C$k^Q=x}v$|w&W?DL(=ML7>N=cCdbAhcy z_62D<7>f?jb~?aHHGsMm>ZHMdvqthd0}WKJ{r{G8`)IIUq7!^>T-*@^9bmezCQ}Yj z87Kkjk{f-&fLl_m5&2+Kibe%xRHHsHtnSTLBl&{vU`V4q;DwCQl1~b_T@NS1RJktT z^w%pSMi7kMx?3Jk>@y&P<(}oaA~Rj&CeiX_qS&-TFR~#!l*w_~P-Uk+#JZ^j$=!H$U*hRCgVjJL9?RhV7w z06gpFUjggL;E2V2H}YnVW%t25w-D%$mS_#_(ER zU`gT2t{d5TKGed7vcaeM;LnP3`LfT7bNQfhHi!>3hV?w&Qa!Pvx@7j~pF7@^-ZF&~ z2bnwmv%FuTYtf;~x2K(z9?zKFXC5cb?F%={>q0DkGmG1G$CX1*5U`Q3pH3z`12x0tw{i6-`I?l**%zA%4P(!#P;YsMyT7-|mh3m>wy?$m!|SkBKa z=bNIdz@5H)UE_u`QKb`y1 zq6544y|L%$Yt#4F9G2U*zPw{o`?I@h-fZ}->F~#UZfs&bO>yk(P01p?G5pB5UDXqM zrJGGF2AaeDSb^pD?CMA(dsbJ-ul~*$&NyZ12y{Gmk(IEk0}V~fmM>0PylVRD$t`UQ z+T=AM)8(TrZM&0qwY9$div;cozhb$_nve75Gi>7tzVTeaSiZW7tuEur1g4bmedBLF zampAM?#8BAW-gxDDd5z=vqkVXMpK+U;cFbvC@W1E&%=GWE?k4{AWp>^84v+be>;K!faodiaTQ+8& zNoS%1d>_YpgcB@RvT_WpNp~e1x=_#TFTODFCSCTIUl@k+0T!0bzT(O6(?mvWoD4UQ z;EDVzmYAQKIK(_4(ZH5&w0y+$c}C{eJ;U`M7}@ZX7Or$`KEWn1egDLzD_1N{nqv6L zqE@A4vFX5$)oojox3sO>@@fK03tzSH-FCLyAf;KV_}@<${`icgdHKrbRY}dOYFAgc zv@UE7tX*U}wZElxNAmXe^;`EQgr#yLpB*+?re~ycp?}4O1zYE|hQ2=g<==ku`N^C= zr(PZ3{_>XH8@E{B8t~P)uT62^E&9>77WhDFATf`UWX$b7Ng^3Y^2jr!n2aS8$aEqR z51B(6$zt+6d4aT$^<*R2N`6aDk+b9yd7u1=d;@pEEx{;=e*T0b)4Ww~4IMsv@Nci( zFm+U)7oRep^Z#Ln*w38P;k2B%24+t)i~Y@Ew{iEBeWjZkOyUG?$To`>*S=J<$UI{P zm__d4Jw`LpNX=q?AM-)CNj!GL@ylL)%_i~9vYpkAULt=s#Vnrru~}TWtC&U4IUr^L zZLoQvXliTOzB)-Pv z$QaJi@eyL4d85eFOIfXF)AXgC z@oT&Kj-LFQ=r_g#9!cT|MgNzuj_BdKT@^JM@KUW8W{@0V6pV^My7Onc0})bCTxcgF zXY6`0FWTR^f)L#bVdN~UU__RvnbbK8~2+ zYB9{%RU7AS^y!sPUd-$4B;c2v!$Q^yeb7I-uc596d||^{4?NOts!S^ zoYwIAayM!X_3^<5v4Ivu`9y1Ij~C(ngH79mZpH1l;TdzZqi3g0^nY(<0jym^o+J*E zLehv8LYlxEOtl3`5w_jo_kcXyJANO7K-b_X;9L@cqe*|VDgx{7;n9;}S8?hil9D?@UF zOv`PKF}A4_N(*RegVX1v{i*xTV>K|OD+2|d)itumLyKgux6$Wzfe0C7IAl2^1kdm~ zIu>X2r(hT766&2kc!^WVBYEN3t)x?r6byptfl~>2JkDy5q@)!Gth7|}(XvKg zjYL!Z0eQCM3Q}jlRS$1}S1_H{c|!hrsz^avBh|X0B0$&mr}A7W-~^>$Mops&2SL+u zPQ@8?HaO{+0;nDawSRMANVm6ZkMRkl$MYOkb4_VQv|mCarbSP3mCpF&G*<;Ce#f?5o8lIHsZ zlA=(kmE2yx$1T-B5hh7LtShYrR;;%azvOb)x?R+Ru5;E&>C`U;ylw@Li&}ue{=IG} z$5gxyec*FL06-W7Xrm%wSr`1C-K-HKE3SasA5^T0+hdgjb(!{(vImYcDIzlQlMo3I zH>o4_BuFTE4O$M#BH1LDq~C!D15^OFg-oj9u|wg`2oVMNCE|si5*zUm7f=Hr55G>8 zRs)n&Rc;W*hmlP9%~O9?;OLTORcCsEmZq*a53~uwEJ`Xtz5*>k=E4`Hm4I}gs%JS! z@WLo113()Y9$x{FBLQZ;52tWXJ7Es$j6G_La_eA*2Sx%9VA(J~3x2sIA9h?!3W*({ zdsoopbxF&3V7@lX4)aEliLg!pR&=XcQ?Th>*%cu3{*ij%3aYm7!G61FR(NRUfCgUB zwE^TIPc6vtfYfTBSjk{$L&zY|I1BoJT+@3wDM&-hIH3hWXY>yG7VXmjV=}DyuSS4d zwLW?jy)^+a^snYm2S8e^Xsi2R-Aq_5psuOSK^SAJ5oV%pZkVgUp8u72tc19gVMj8^ zEQhFdKy=v1RM4svPHaiZaT87KFJzHL^#;TnT$wHa90&;j&joe^GO&gR<-#&2Y-1#fN-g)r! z1@dn2_+(W>j0u@!s8&LI?PJzBq#Sue2Cc$_W zc*hPWzDmUlz(bY5Qx3QdayHIIui@FT!)UQO!=}O-tpsSuKLz?ypdt^-mO!h!8A~Gb z)u_biMZ0S`%?;7-hj_vqR-^9U0T9~$pSLSj&;7kVQB+^JKsrXW3#8&1($1d~qF++= zM1KW9542_1-Gmw+YNg%-~vXz-)>)FNH5gOV>?-yU}ixAC5Qc z1CgwN#^_l;tc>{`b@M=vmaBspwnOZefq(Aa_20YOee1H$ue_XfIO|B($*ea(oBMA1 y2dG+Q55;2V68zu7L;i$#B3!=>6*|_?x28c2-Bk&9F=Gu)z^W6WdL9VWjPtP4#6kA?Vw@DkQOU)QmK{$0BO{^P(mbrCH;4Z7G5dA0Xn zFMyu~zG^?q`z9c|HiDsAp-_kvMY%3zPTFa0Ks8dT;dG2@xygcRGv&@^4Mg=8hHzum;U{jOBM&~?(6WM(k(F4RosG0& zQr=q1$UKhWi_ROeLCy^i92{HErv;yeqn5>$=-{Trc7ob6gXt zX~)%yjz}13)3!`ob+wFW%e$_%v9oh(YAUKSTQqGJJJ+_0Dc#MBQO(ip{b1`i4Oa}q zSYnNL(=}1y0YZ0#DqLI5XhqeY5N7uO9j6<@&1+(Zq4VJ>7dl|Ok?AyTVS-|dv^ie1EFu{nw5>act$Wr+)aeS5`EXd&B3tLgicQVGwDQ z>i4D|zOZlUrvFkf$oW8Lo@so%GS6IBK3i{v8-e>)WGMJY#5+w0SeQDJ{+XgbjXK8m+@55MtZ?tucjvY zrw@neZkqMs8d{<3^Wj>0U77abI(i_m$%pG{Mc{-FFHr^qfAZl5S`oU@hZ|`r>Le@| zs)eTShPL~#LeZ*L9}ZAM)rb!VX{hQh9}Zo{Q$=poFZ}gtx~aOwhr@KTdccQks5@Na z!?nsQ;Y~hVr_|Ma>cjQa4d;3KED1bO*X_d%)E)V~4>wXvK_q-86*9J(BW) zyy>P*V?SfjTe^CR>V#&x*=Ru@?~1OEZn(KSwqa4BzDi$N(Y|`C8J#vKOfj5D4J7vL z7>tXy3Dr==YN5{+;I%zsM4c>%zNi>L6A*1fs;e9AVwKZ3!1aG&yI>g%@9MAMn)5DmTlgnrCp)g={)*b z+HDuP!nBnaj^>JtmetYa*mbLgxnHwYD1{xF$uuuQ)7w->b=3(~48-w9G@6hCeKPjU z*=0_twTt#@ciPfA$MW!~Y|<$+>rSb*#(f#K(hLWUmi4t|=S?MsMAE_?B=eBR&@Seq zY+Y0=E-a%v=*#1i+_-Tmbmi7~N+eRPVoN-gNVSVyiLrs?jxn(-J~|p79!qRZiR7s0 zO%C@Z#uCY4VErOKe1{lJ4EMDQ4euAwNjqTKn&Sxcf4yiGbS;Ay3r)Mat|ALoeur=@ zEv;wuv?#Fa)ST8XEX^+J4yTKJslfe(F;-2&UGgHhZdwW^^!>zO_NPJl>*PzbW~Pf}IL(%4dV3h=*qW4{=UC;ah<>Sf97Wuk zxRD8&!-(1xq9Z|jpw%GciATS)dr$Gi-VspSz{PRH7Fmr)mliP*H*6gXw{Z}!J)n#L z=U5VmmMF#nUsIMb1e%MzhK%fO*sI~k7G;^ee(n{dH`BhnUEnaV!jYZ>*B(fWL)&d6 z_6hBgpFEAVHu#=%*MyJQH>SVWi%QNcmdPhDM^S2|!-}3ZELog<;n#1z^}(ypymdFrVvZ>u4r z#-uGc$L1?2`#K9rQ_z^>vQh)MvT!9eq>Z@hRxHh#SjpoQ?llBF2~C*ya>+wiNMOq^ zRtdQpiZ7&D26DOUa19uTR+TE^#h+K@TVZ*wteo4en72rrG1g-j*2mzTBr<+X;&FIr z6gwy5N9zZT`R~9y2rBciYz5DX^b3~^hm2=3;KNZohNj=$LHuPXyR(ca_$eiqL z){d!OW%lBn>AAU#;0o^52Ck;uc{xTnqbi+(Z{u~8tH)b(K_olSm_2LZWUlY5TLCj$ zE{7OSB6f%1pZQ+@nci+3jlK2gJF(-jmtwESehF=^==2My-q$uh7H1#i|CcTDr!oW=BlQ57&Y(QWiwf(Ixbql~BBXi!TAgVqoJ6~hvc>PJ3xIJR zvt7h)mR)`+C!=@)`mX~pED9(=t?y09Mc2t_7i$qOZte3T%3hSyY8l=zC`Y*xWeWge z838yj8Gz%s;blrlbxX5ca+ymGW|d0Sp&FOUEG7B~J$aKgMIXuODF!{&s3)4}IIHo| z+D9ED0pbHV@Ck!9w~U15##UQO5;(1?sO#&qj@IW5))!h|>{)6}(<_Gnk5hpeZ15fY z4t-oQH$C5@R7u4iN!EN?eW4PlSAEr9P0Y>CnUKlGiDJ}4EUOP{l0PUG%Wg#tD5^`7 zJmOfdrUj-t9N}=-?qWc8x8iqXWQt**<`qk&prqEKTahAb;#{nkm>yeXx?PMhqAw`A zL``*hB)>~tAu7xMYdW7SYFfRG(JuR|SpjY**LEQ;vdOT7t5GM3~!S`lYMR{^Hf^v5EeUu_ulu0%s=p%%# z?1^Tw#?+OIBs_fl?OSHL#x(x!E%OwbE)bC%Gw*5GTeoA)`-hLVzT0YfjlBIO-NJu% z`uMrFbC$j4Pcm*y`0>?Uds+|fYsvZ4@oNdfaF}FIXr3DBanE$BYaFbQ2Wl2L^_xc9ji!+u_O~Tn(_O;alA6)-l#gEefO5NMT-cYm>XQ4Rr|U>(``rVbmdm?@ zRVCG_V))Wx0!wbTb#~l7^sU84?sYE`=zQuV^ZCeP6R99hTETx^ zB+70QR?TT@o}JoKw`=*E3>+6X zL>H}Nw)KRD>Z7b^XYkUWiVW{7jt?-+6Ae$H@f&U%d&CS)2KMsJj!|w2 zKK;tU=^=25yU4ueUAOQ8Cf)A>}3mVSXjy)H$ zAqOTv=0E&IKXs(O&{TQW1(l1~*z&#ABl?YV)9FY!p{R{Zw$^7mj{* z^mvSBk4E~@mJyvXjM-=yB|<6U2eGSAiz7oTLUcKr=UhbaqgI4;%tnC_dbv?f#}yBh zMVN)2GWwN8Da)4OR%1jBYSgEs9E{J#Zvsri6~6)n;6!d9VhrywTGmtXu_!0T&A@*T z%RPweVOfh<(|@t&A?A}BFM4UwTFAKG$2L1m#{HOvYjwd2#A80o5T^!FtI%SHiP$H> zc+5B(>Hp7^og+MS*psodLpm8X&qZY`jxjx>92mNPigw1^Q1b%Q+VBaEH35kMmf?kj tt&`amVaV9}8rlE(8I8FFu(R8kiFM)I#42 zoS8Xiy3VV*_uc#MyYJrb-Rf7)+FBi6c(43(lrB#PC~{N5|Wthbmio3Z2O{y z5XMFbSw7!cGbdpsP-OgixamCscX0VB@hd`7T7f^%z`DJoe#3qX^as#pHb94A+^DlK zUJLxBhJe_r6PQCVz61D_fV(wFlB$7ZGU1lUy94Z7DcV8c`v^(?A}EB#;f*90{GlMH z&0ufT+VMb-?+1QTGuYF{81QI(5cm|rz@1?dubH=NmfcnGe%XY zFOLZ(r2wBmG}sG27^m&Hc7~8KuU)-o*fA!kSW-ml4K%6=Ndhh*;Un-)M~J3Nvk>@- z_>*~z{{BP9PbiOQp3p>FCHTGNkq=5+nI9l};kd$*@Z6NgA_ErALvo zOhlzell7Vcl^#RVG^bU1EK{NRSf!Imn)W`GP9b+`^C6y$b`*H}skU6D8DiC?tF(qB z>#9{cfmG@qQ)%r@IyxfiUQ+uL$^D6Dl};jO63bLtPx6xVDm{uhnN*c8tzb>12{;cwePch}m#Wp~t~0%ws32^bJ495$#R=DI|I9tYRS;330v# zk-kWCZPW6y@IHguy+R#JU6HWJ2Ex?AdxTI>2)RYpOEVipF*qwHr=_LE>P9uIM+oFh z&7v)w*g$L8FdJ$HwNil>X%*m~PH_oMArCvn8h_Fr?V0kf|Mg6QOLg+y=9P#_zb$&KH zwIpPv6)aCHn|LovGlL;v1?v&1JLGAA(0Ifw>hni}4K&P()XUa$5HL(#1{IpwkQU^?CIq7GL& zEwZ~Dt}MF1QCsGmS4$VzYijIOwT{^?>a3x~&Z-het;1ObTq(6zEus~Us*)_q!sY>= z*w$c(4TmW}i3*4A-5A|c}+&(so2H8-63*&ZC@CoY= zaDY~Y_hAlr4gdf!2+^i6i>MdB7dNXKF= z;fRkk5D}{Xi_mh3jZ7nXBDFzB-+08dIBgeM-5hQJ=)-HOZ$ zl1#;}2>r824qPqDWd)59YgT1s0Ay2@8C$>`5k^r`1NOtvLZlh)Xsr~i^NOEUU?Bj# zluQ9{1kwar9^j`C>n%JbWuVD}o=bV6w`kV~BmB@4x{aF#<85%|k$hNj2`M5@pl+Ta zZg0d|_HEI3@a+ zQOwpn;4r`Oe7b;&VtBV(8o;dpD-ytF6`M^FdM#JYtCgTC8v{ zQ$0l+l^_#gEUzGY4vb~t!ib{HVs-ENm27%cdka8=haN<_540A8MLT#qhtOq|-L!ir z^kqWsaqkL{Bg~DUj*X)dcNW^j8Bimjc*H>zY82j~Cu)Zmf#E|7P{Hy0`% zA|?cqtwagqjq{g}%>M4aw^GkB(1X60U)MxT;{L)2DqbEmzIXMVub~I`KE^P<*C?#Z z4-I!M?%}X9Bld`J#dk{Fb{OVI|J|@klw+hzAa)qt3S~5f$fAFUQk*9UQh}@h&I7g( z$5;&-RHR`a)-oShizvCHU=!!1iiLV5Lx{?eor)_Il&XW-j>j@ShZp8WdvVP;0_K8F z7#d<3QG*z;lUlf(P#qkE`o{KMZuCTtfn>zjTkZT1#=al3sjw=H*Pl~QMP;=t?5J8L z7P!Z5R8Y)yJy>c1j}ez6H2^CMR#IMx5mw!iNaIc%*~czeS0(UH@C0>lwp@9O1&sWi zDj`-w`WJcT1-tmx!5UBpUX4_dIR4^QJ{=;Dl@<4PIy{RM9y#=50rb~GcAT)|YZcxO z8L9!DD&QSZvvDkD4fl={dP|fM4uy`(NRJVzH!EK_#LW;~uYR z9H2i4c)}XyRo3qU3S-+Q<7eYW$R7j4IECv0bJhrpX#-t@Og@kE=THs$06 zG(O?jMjnN8S0OwNL=Pu)Eu5H3Y^Am`TgC7&A=kO`;o%Gabm5H)uU|NQ;gos~g+a>C zpxi4}4i4nDqIg3+TS>g(>EBiwZ|IAyEZ$&tVk?JM0poRwmp}}+<9CSf{}`gxz&8ix zo;x0xP%<}WicQ>XFvsp?VrEUuk`PPP%J&-*uC2Xx@Lu@j5QJM&iY~h2UeevZFWH<% zoCXW@4G$aAV{`9{EjCOBE^(A$Qj8r(l3+IYN{~!0k*~=xGm)989GV-A{Exx+A({y5qVN z>Zc%vfe$N6go~JBX0Ikeb2wpxHsg1)!Fc7^w`;yTmKd9Kb(vAV7|YgONlBECT%B)} zkooRh(s#Bxg_bT}1>Sb$cfeiEmXS-2NwG@fa+#^lFR#)+@%Dyy-|yet-=DVYJ4?(Bi>*XoTcH?8St zOO38uw|SjuQB~WjT1(HXJ+Jm2md0+8Qv3g~tLx*`$)apnE024!_dxGp@1CCi-e>#z zALve9*VWp&+T7XPv9g2LcQrL_ZZf&^w)SzB?m}JX(N8xWH$As|b99eo)6$KLIv45X ziF4%ydA$7Nw3%;s&YwBA=ir;>zLqVKzEwZpo7z6uzQ6s2Utj!OV&0Od{&MK_oWeBu zZdsEfm$sUZm+7QchrW_hr1Uh2v41J295g3O%~vXoKk3%>g`;(1+9OffuziME-oF1g z*2|^~@4YP*oU>GZq?@vG>Ewl`*-Iownzh=p;g?-sME^Ouuje0opV!CwgT}uPekJSQ zl^5=kODFvD<;SJ`5@}hklr$mvid*^*qg*OKlr3)vm`^^eleQn0TvD>sm?qtq{+WEA ztdn((t7n_}C%Gqs9fLWk&u=^M^ovjFcb)s6SENMK@6T61Xt_E)R%2ZIu%vB~9&M2{ z8zwyc>HSf;aktD2PDqx{U)gV5TO^HblI%^tZJV&;7uj3nM+RgvFd>#BA2Kd^vu#uJ z##NmY3ftsWt82RaU4f|By>)u(-kyEEFL%G!C(U~1Qs306@_;4Ma= z7r&9TLx=Qx2L^WTH|^gO;hwf^C6{fx4vrW`#0UXr4P52n-+@y zFtpyX{^hl=w;g!=n7Gf|+tw3_KG8LFMAH2J@GCoZ4DNZhU!N?UeB0=qbL6$x&Yk`I zuq9gDUFJ*kuUjRW{~%p49*v%io-}{-)F=J#^ml!h>RMI!cyU|wMD$4X`RG9R{_bb> zd5OKNx>vNMMY@)EEiiWmS9XaepD(&~o~8R?-KN9GyIwQx8H{%Cw{$JrywsECN|F;7 zPnt0+EmtxYUNWEg>47hgcm8|luPuWYKiv5X(^sE7_JAd);L*I*=61F&T5o!x;Fai! z?i1T5ND~i!{E1{plScpDXY!=-ht`D)&C+41)A&9oY06GNdh}T4 zU@Tkz(Bma$=f+1iu7C)y?DBU%m6y7&_h{chkA7dzslGS*R>-M#SwAwM>3QDt{;}25WU@xS+h1l`-psexn}YMV_19VYAJA=h=~VlW>4Vd|{^cdh zv47nq*`(2FQd-d~)5CQg9ZStS&TM<9??CT!y?c6})l0kOdyOAHcu6igF!|C@D);3~ zseJC|`edSE7{mA&HDvT*xt{!^*nNhK9whJo(YI^v{>BJ5s5;6Q=|$u?yl)?ae?3d_ ujg$aiuc6;dR+2XI68tCh!@HA#&)I*x25&O_CjH$K_$EE_C3xf|#QZ<2bYkKF diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.3042,3044,3046,73E0,5EA6,8F38.otf deleted file mode 100644 index c707bcd9a97ce86c4b890bb7e0315bfbc65be332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6180 zcmcIo3tUvk)t}2g5hQ53iV$JsGYSbT3!+7_Q62&-$Wj&`XscOvFR-$^cinpdQG-^D z4E)x&J;ie#LFG|4wu|w3ECw5Wi!j9va6l#sp3A z!0Sj9w!#m_>9<}vK}gICL*s_+F+o+6+NHff0_-#ar_=omtTPZ2)fu$}`0_|CEGId_ zJZO!9uB$)u$PCa@P+aIBb8Us)dAi{6R-93od#_bMog^wH>K&*kF~U1l*nf3?AMm&; ze2*tSjgA6KIy72GrjSmJ)?X)MAhXC*TDy^0$R9P@MD8WS8f_+t!U~O!CZ~ipjUGid zM9tRd7?K!uT%$(|rN0B%~l}77G zg<-iy>#vhB5XJDg)@~$s8Iv{IL{1pXG}=sZO=gXb7G5;X*62~fDDyuwI)>zq!uX;+ zqoa0@%GKyNk{kQFM#q!n*efbM23CZ@rscD%jK%K6D46+T)K37PqvaL2-Za!ivKOzWn zD3+=9Lzkm)-Xbw1d!+!4NLM*EqES-ZQlJGnYhF&i-_;~aO1;(Rt;?}ax6YWBYnyRP zrJ6}znYySFa(P6*E7U}#`v1=X-T+k^MY=HHMRzzA@CpnMc(SArm7pg?-BNQv33)}? z`sIGCZj+iMT4{Hd*_SRXFQ92nu7Hb9pZG9Lm+B?x0S|g4pN|$vet&bo>jo7P z=x|C>W*b=9KPxOlcMb4l;QBlD4ASt)`e6Bj5D5n>P zth8JV(2C}ON2F=NkhD^CE7TQoH-c;2N(OE4wFMigEGpC^)_cKW7`iD`Y7s*&FbYO^ zn%&q4mM(C~F2&X4qGbh;!K>}6LaiIdT=mOUqtb5)M5Qe#X4N!8L{$VjrFx~+6%r{l zfUm@W3^7A{LuwG6_6q6#0Ez4cx<^yG0ssI8A=)g9h&*JqVN4Oxzoikr4GDIyXHk~R_| zUeZ7si2~XGF(^62MzTpR$+${S2daR0K)#NMKs#ZS4DurJLrsaD1c)1YL!b}eF161C zJ!z_51=?qkEO=Vg#|jc7+N|nGKlG)mGq!>?3XGzp8uZIhLZk)WsI3IF2UI&NL4zM! zDVYk^NTeC0+`vyI)*EIJhBMp3Bd}ys?`*HdQEo~=)AF|5u_B=7XeuBNS~GDK|JzdtuE38 z`cS4G^!Pw)9rReqbSN{(G_cqP^*?Xv^^z2{p=VrB6tEeigRw>bG(npLbN;&s@T%U& zh+?!B0*CR9#M22>1S^r*12AtE%obATjEq4VvDK_b9M{1vj!h;?~okiN-^QqBvYx)+0L;zY4=?x&Y6f_oqwWWlvpyHMT z4?|lT#2)vq1Tn(cNZQy4Dsg9_PMiTH{HjG>@M6Ro)J#u2b?l9^@BeV%>DLCytICg- zs1_n7B$BCm3H^=p&mWon)kjVyoED%3ZJ&Qt5;2MU3q7b>`Gn=Qp&ws@7To*j!^mEv zur41I+_kueWpzeuQQ(Q}l!$H_=12QouuAMlPZxvl(7Wa8XbPT1`w*o#PY`+~vJyBq z=t3N0HfYq4hHaS38bDi{8aoO)abBuws8=I|s2tg;xI#(IIvDMUFC%k!U|!T0k&GZ< z0m#Tu5X*=f#6SV5fyV*a!A@wy=$?yB?yhH`XT;VU^?Vt|zUZ@bSQYx~pUJ0+x>^x- zRE_Ej++)`=D8{-TG_``oh|7^2fSCm|X+ZT6X5A4_<4zpe$4*#R1@I2A1ZA(+TycX2 z^!%+dA!bARFInaRy?E+i4yXgGMzTl*e~~Po3ZBQzihDa1>Oz%A4((VB?KKb`2kiJ7 zl`nt@Rf9|=@OH@AI2NOZd&dE-#p(#VN=N!ipbzD1p)QABltJAhSamI9iDb2kN<=UE zJ(APBfc_xh33Hf7UB443^!>l?SE}y&>tiCTv2cTSM6?^U;vS0ZKNp~1RPDrgg}@H< z<;dBD7NR6Z8?D3MNM?@U9Qzxt?g-4_k=%gU6i;5n2=1tnlLA*0IZ?hGZ`PZTEQ7@u z*&xh}`5kTZL5-ek01P_-yA=?hYiIoz&h|i$?d-O5wr6b5+fLcO2iDwh(%;mJH(H%m z)SDO3Si`jq{GbPvzy|l`KCZ|F%1Cc$knI`N97ge0lJtL(9AF44&0) zqcBwa#i}*l((wm(Yg=KYprj4HTVTPj0Jf4yL7SEzi4?Gc$iIygyzh7CMGELa%i%ZN zf!`*+_!Ede3cf=K<8FD0!kz`;r0^ZvW0S)Zg>Z6II7Jsu(DS=ubywQ2JTVbILj>Vv ziZ^uao=6_(cqA@4kvL*gplx_KHZ?5W7G4*7CvZkb?BsCg7y@4z1h6WO{E}QE!@?cH zY+;dlm9l%_I^tE@u3cOI)0bAbD&g%F?+^c(E8$1MF0p9K&b_@ycJ}2TNa$RCU*y9c@t?&$0Oc2D0|A4pi=xq92$+jsh@{8Gu9A=sjciF{$ zZ{a2Uo=m>UpZww+1Kag|=45fKDUnS|{S}|Y4cySQc3yJee((LktpiyJhaWn+=doUM z|LKpu%Zy2XIa`&NGBhn*ZE2sw^sVe0tt@KOggxi)>f%iYxG*pw?z6dhuzI-N6P44e_yrr+*{2se|4{K)DL>4fGcklvBD&PF6iJj#$Eo>&6{u-bD zyP{ma`FF*+d|D-&#%G$s1|DyzTU1q7vaEbUtjLqDlxR-=2}vFa1c z&WIB-S59i>WW(;Yd!?Q>7QdIp9r^q7e_X-z5{p~gyMO=DeS7KdsRwf(fA9EPXI^;E z92XwVYAq}7ThZ=XZ)UyB{8MgbewO$ae|H`m%l$m2gvIcqrlt2S-_Y=_y+sM^mmeF# zgRI^%$a`5as~hBXtg@I_a=mHyv4@_2@P(2+32S&<6CbtcYv1lT+V=2+JDN- z#u<4r?+xEWwhX?lc zWxt-mVw^0-9LL6n6D{xCa*V89|9&=9ZR4^pTrl!>ef9?zj5GOE3rk_2@Ra{$xo3DT zBX&-BMmfuv!zc1j*u;FEXJ>i5@J&|8vft#{Mz*QX@*8HzGcm9J9&R{qVzW#m0k0i46@P`)usDnLf6w@s={I4gC zzq-e=Vav7+oyi+I>$lf+^{(v=?O132@snM>hf@yiez5;LiD9wQ#8-yRmTzQcaA8W- zo;CfedfP6Y`QR@v{r*(WM`<5^efNQVkM`}ezC87l1((cmL?;Nb<5R;lc1jOs{noMJ zNwHIQAh~XAI8`IpkNs@jSN>sv7yQBDieJ8K$#Zb7XTWneo_M;T+U_B%$VT!w`7b!% cp&dS(e|iN@O8oZy`7-$SJ@UnQz5oCK diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.61,63,65,6B.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.61,63,65,6B.otf deleted file mode 100644 index 591d139056b64af649d89ac379dc8e5a15bf1b8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5312 zcmcIo4Qw3M5uQEYo$dJI*ijrH0sCQG$3gb_;y4kCDZ;U1`)uR0e2zl`B3a+9?-t+f zF1zbE7BoddZGjS$sx2*51uY5^P+AZ~fPktL3P~t}0tJE8R;c19LTaIE%Uw7p*Kc;_P@;%3|`5?R@xV&DRznmyoulvd^c}{{is(iK;&|bjvP&mpb522y(F-_A2+D zCouHq;G1^CUQm;M0^SB6A_;d%3cmi)_`uF(m;aZ_%8sIkUO!NCXX!b=vT(G@D6auu zMn3Mv599o|o_LO^>Z$pa#b}k`SaL+(EkFc6afi(};T%vKJ?ixbsg6GO=yKXcMUSqaRnkt6uA~>FIgegKH~TL4=qg&} zd)A|uN<+T4J-V7!`7ie98d~P>LOdmZCH#HIKj_gCg#(Qq?W1a>+SMte;lOns?LSE; zKz86EuRlna2J1b#oSq8~cytAImRERmrSx?9wHLZp@i#Ds77gMMq>^XDi<~i0-65 zsfhTTWh+@rM74x&8oDXlN>a3>ZQIz?-ab1!8`1* zX`xU3zW}J3u+xgzs;L}~xQ(b_xRz|!O`$_#iiAF+*`}&k;d94vY)+rn#Yi+h5Z$qL zs9Us5%bF~jg_>0Klqnl&Yi*Ypm1i=dH!KEVPqYlnwyL#?ep6AVq1l7PWio04dfOB& zqiZR#W1xGaU$ji>hMv`@bVv}vq@Kx$9zC0#(bNP?=&%vj^|m>9nG%CMqFD@bhl0Qk zITq5ghTI4xqhuA$wpv9-v2BDNn$}z-B3cYnzg|h$LN*g= zgeGCPid1IKNDE7`MN*kk5im|&v(R@drVOVrA~}=bPI!8iY{|AfEsKF}?BHWj$Dk+1 zn1#43IJNeyK(yx!rF}e&j5-L6>r?iuY$^gBh?SyQ$Qk=1xz<~$3-;WC^mP;qw!X;Ejm6B+d3|`b&rj8kBmpR#6@gO z^u$JbqvO%o2)I7cJ+fU4MMrvDg@WRNPs$#{R4hvXN@~`~s7f*{;)-%^U&Rzu8IG2r zB-AN2Au^mgIi<7;Lou_e#pUAQ6YI~aK&!*2I0u>v000K2n6VT_y?sX9!d{TAgsB>~ z6}Hq&ST|GcvA*Hc%9(mdCxhn5B$ZN>CL6o|gJ>NTp>@W~#2KyG8 zNxN}pYkjb;Iew17LKeM(*1#K`W}uY-zlOr6@PY=QsX;I9JlR{eo5F|;dd$JP z)k$4gaW8GA7^stHaP5_>wVgKJ9Tmg4Ei{37Osqh4ycUS*qU}-GJhdkcE!&BOhV_Hn-@bZB_StJjA#H&cP!f8526SIZ@(x^ZbLQ*$>_S{P{0Q=waUn7c?1@TwfeP$IFN74$r^%DSEi}Ifibn z39KuF##PHTY&kP>kB!T%6xX(e`PqLNt7JJxx)-tI=ngrf1tQD-F-mzJ15%x?2bX{? z#xd^(X%A`K$9q`{*5;ht3E1R$g=1mL$q=KmRH?i|-Pv_G+ion~Ig*%{?YWvR0_@ZfJt~&+C^Oaxx0KLBF{T3*LEYGn;o7x_G26R$B~^FDt_GIyOE(W z=!}4mV$bHWoHeeU78w8vievxf<0_oGKRG9slZynbGoll)$~ENHpA7UXj-Q+_6Mk?kOYbK3kTp5m z>>W$po!P}X%To&#!8^FSH}G!CZ(ha-S5)au!K-oKDCfpo_%tM2@R&1eU}oOm*|!Xy z9Jv%Q90PWTk)OqP{Tc6eZGYs|+un#Aj64~6A@T^kIps}%niR)GoVVQOoV-Bu6UR1S z!H@SYfv&&_-G|t4MNAiq=v$zRzbM{Yyr+1#cLIe7KmJNUIAgm%{^lTiO~NzbH9qw# zUSl7oz2E|l;zL&7cLEz zo!EQg;fwHj!N9G&CUD1H7ty|3?ys(2MX^u=`ijL+V}5K|{+iG?jy)Y}%1_l&Ii|wr zfNFY|KBb~`p>&0FI*KN7!cgtG#gpjQeGbLxhYzHDB=~wxeW(31E**4F>ppAD+xitv zG1bJ`g`*};b|(LWm-#yiwxeE#vG?6alJFHLz){{zKc+XO2C46pLa6T8!Ow3xelVDC zn%`Mhcq88yI93xZJT^a3mt*GmOXbHSlMbDGV;+3u*eBrT+X~E8_vW&D>s~$lnU*$_@Rpq0m}>?Zhr~Vs&+4dG4jXb*~&b@Z>WM$-{w+y3^jidQJb| za<#eIH{bimlMl~oziN2;aNyU;9S`=dE;JODH5Q_Ufn3=oxu%BdO}Rhrt$XXm0}nmZ zaQ&fxk=S+P#OkKrw{jKVX~_G6`+mCbo_km2+Q0cpp}w%ZP*w01dJFxzipE@1ec_7S zU+O-)>$M~AtbXseqXl0>^<^Ke{2+Hp@L##A-1@@L0{;vaCUfuR26I}VIav5s;qkz2 z`A63UtH~!xm9=>hYTkeBPs{TchnjzI?5*XW-?ZYhy8ORa99vdL{8dis;S05n$}BU` qj#ARsNt>kOwBC0qS_@rEQVmJ}If1I??{del!FRdR*RWD?O8)~5Qt#gY diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E,6975,73E0,5EA6,8F38,6E05.otf deleted file mode 100644 index efc98b643c322fed6f7fb90bade6d4c175a70a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6248 zcmcIo3wTsTmaa}eAt4548?sT7f<;I)={yW>FgTJ2Nt%RoNQXB9o$i}XlkUFly*CNX zBgPK~5dvn22~SZ51e6RifD1Z|Bd{t92*S?i=opb8csZ;0tRn>JJb#)GsK-!6(OeiTUqwghVWfL;Eju6w^4rg}W!3&cgCPbG* z2$?_4QCqHm3@DPE2``H~;0mq!P2H=6BrOE~NTcBL4ERF$4(QWR9&7|b!r%eNp}zt6 zQH=p*p<%Wz9{T44pA>K{3=wk;kh*kunS!o>a4gBN1Ncrt62A2`j-Mfss-&ekzU~M0X~W7;H}e{o?Y{5^1QpoUnY9}MUaqlJCfG+*U_Q;VtmM) z1iYTap%i}5&#>~^8-&Ckjt=d!$A?r)YLoT?4e-+poL>K*;GL0>xK(j8fUk_zy167z zHxZ=q&~*K0xlR#MR9fsH6Xx!Gx^Jj*&b>_Gxkxv6A0ww3*B&eHv{cDY|(YJ%Ak7g*AF0 zX^$JP(eWfD?ubSY(pAR2r_qTd#V|snlgM3$LWrl%FaSJ#-!Ms|b;M>IsnKyH(O9F= zdQxSatI>v=bc{qXzNE=b6!7Cy~TK50!|au;lYLD)dE~ zmy?^HiSMzr$RpMZ)ESl)As|zG&@D% znY3IIgeK4|fyDX!J~!x17lM8<=%uqNimJ+Ef7JE==akSF%W1D`rKeb z1RG9K%nE~-UOEYTjHZ)NAV6R%RSS)-AmoM$ejy+P6*-go1x10-gQgtz`(5>ZLCz?Z zY_w7c(yHd5N1*8;Nn9Yf73z}QjSw2Ql1aV(aHx^WfQ_#cH z>_#DYI@u+=6jzgrRusVwUTaqkYR%B+dR(qMm2pQPD&dfjUDpU1RT1bE8G)^rG6@qUt*PL??CB(h^5?slCqbs0OZ#7FExrmGc_fGAl6;bRogNER5%GY2JrRI*LN6Kg1rmUo5<3YJH?&G%58p1e%>ymz zs$B)-50PwmTGht}8vWL6YR>?)WvC;zf;S5EqNEn=%TOfJ0&lcd2G)bBpVeR?08&cE zfHxv(1}!)6V~Fh*o{|dC41%6htxCYEkVv<2xzIlco_taWGcF~?!~xXJBgE|W zTg$qwf2@}S`b{L$U>pf%;8VS(5YrpBYry8Ml19){)K~;zzWr@BQULiVgt@v%6WBwY z2C(A?tM$-gBV(aFNFD%>bD;j~J-u0zf;Ehc3yK0hV|FmN7@sDPi7@8hivXV*eat9k zYbtP<-&j7KK*g{U8$Af)X2WQbI%cd7(ul2QHS>s7M1}3|!ecGqR)iUeV6z%f>jZSz z$t>`y6712Z9-lEQaAbB3w5Ed=;szr!8j4SihzPjB=!9T4GT^lkT55ntEKxv<4c--+ zr)Z-J+7##;RFPc{eFb3TYG*rn{LhCbkGQb1d;9qtyy5P2)r#PbRHF+d~PGi z(joV_c16e$=0?=|#!!hX3vJ>Es1Z;-@<9}1-k@dr#=Zlm&wT#N9s5t5C2uQ7XQ&<` zCPb2@MhWAM<4@`z{p}ZyCBLNu3Hm0*B3@m^|IG`BKqbfkl@-EI3Z{i$pYZqU<+}K zyFsIdG?d|9<^^kEHFp$j;tMEHv5bx3fpO7ZOf!an$)F=c zK`bL`5CcV|4ju>W4t7GlgE}uZxjPO*OTVwT+W8@jeLrRyFe{ALU$dVo>TCsAQFUr8 zaE;yAK{3}2V5t>6MqKvq0l2f^P8w8Wgu8Bkq;VzouVW|7s|t7rc!Ih&Tdumr0!IE$ zJ0b3d^l$Ra19tJ$!9AcJyz1XYV)%>g@*^SgxU=Hg9tm}^$|Hw-b?wlZi#{h3f#LM!T^Z2`Qxv118jp^8dGFUCE# zr}+T=A;1&vVIFn+qOumiAL1^Kyg)_?D84|e99dFp)5!JI=m$8%l=Z*Dp1Z)?RHtzIkY z%?oI(;o1gqFaS#60|2qW4c#<%XG5Z|IcStWdAgvlkC0pWZL>Fi)3f%ceI56P&SpjZ1-u~gC$WO}{ih3J1?-^b@atQK z-zL8Q(-A`)e235tz2hYcTP8>Dj@+|4AvH2w7fFqar0FBc27X_H{#x6$-r?{WA_OmU zlCh&_I9apog~Zep;z&pXSzlkm$cXc<$ozzRfirDS7!_$6Ow2GEc$G*#AeTs=?jGHE z^&(~Wz-7dzgl}A0|It@gxG3S>6>ks!m;E#J7p>81}4kAt*>b_njLdR@yxh z(pmCh&D+yLbLTgHyro9_NTk!jCl@u&#pElU6t_q}LVwcm+8=p>^~%BTmRvn(ij0cR zv-0ziEaR0V6W<@5W@X4+ean0`r(UJm`6%!?SN;fGG>apb_}zpndDgSh0bf0m5!Lhk zWsd3irLdqmvX&QFNAeZlnAsUV&dSEIu_yT0&r0(7 ziqA^(`2*GL0Y1(gG4dp9{j{3;vIXTocfKOLZix&(Wo=t&jQ&S8vzgpW4%EIe`;_p{ zSqnzAa?;+jc$3%}W=We^;?B#5em{>HM3%U?YwOnCn>W#(G0*3}^y!gvrw)H=Nn{tV z%&_t)+`*=pqjL;wHgoXV=6B1iku1+|2!5qnBKeBcn?l^QXu7pz|E zP3vB?PVNZrUHNjywl&+=ZdteK`Je6WWX4X$E!`d4R;Th|rtY72|Kgdw7WU^;(Jw1m zv1#e#ma;{&EWP~StOab^N2X&(t-LO(KYE&_n)r#An_$v$t|%lVu&)yka?Z)nbag6FFi1 z$toi+s$ut;+9!m|r77~!@QJpQGapah{I5I4_m%~wdFQ*ujZZw=^30NbyLw;VefY&W zdp!rm?k&%4-`Ml$PR}b%zqTCwc=zRvY$zn-)D^)hygdHUsoGKROgbyzcUk*U-hPs8IL0@eE}Fzw*Rj=AT%OA0GTuAo%H4086C;DzOzXU*^V(dGTUZyf zyvr>tz*5ffk0-JrJiz12SUlftp0#vtyZ4DrCCTiAuZ)qitigJgcd=4df0oy?>QY|K z4d$K$&m3BJxNLp$BA(d92TptV*=4)K8{2mrc>Y&gk6YMK6EEeRz*6xnF!?;%$c9FTXI2<72EWjeX72e#`Pt@q9+?obb#_miY)D&c9~E3weQ^ z74YJBSTW0ehv%Bu@(tFHn6bdje1;!$ za>r83zU`~Kx1??E?%e!B3d@LGu<~6Fw#y`BSnK%z9W(vz$JX{IpK4!~+PM*ul|djIAcoVNJ={OWA@e%}Apy8m$0{XfL} B*oFWA diff --git a/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E.otf b/test/subset/data/expected/japanese/SourceHanSans-Regular.drop-hints.desubroutinize.660E.otf deleted file mode 100644 index 27c46765ae8b98dee0b750cd91e1ee23f48580cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5140 zcmcIoeQX@n5ud#~`}}cn9D<>WjPtP4#6kA?Vw@DkQOU)QmK{$0BO{^P(mbrCH;4Z7G5dA0Xn zFMyu~zG^?q`z9c|HiDsAp-_kvMY%3zPTFa0Ks8dT;dG2@xygcRGv&@^4Mg=8hHzum;U{jOBM&~?(6WM(k(F4RosG0& zQr=q1$UKhWi_ROeLCy^i92{HErv;yeqn5>$=-{Trc7ob6gXt zX~)%yjz}13)3!`ob+wFW%e$_%v9oh(YAUKSTQqGJJJ+_0Dc#MBQO(ip{b1`i4Oa}q zSYnNL(=}1y0YZ0#DqLI5XhqeY5N7uO9j6<@&1+(Zq4VJ>7dl|Ok?AyTVS-|dv^ie1EFu{nw5>act$Wr+)aeS5`EXd&B3tLgicQVGwDQ z>i4D|zOZlUrvFkf$oW8Lo@so%GS6IBK3i{v8-e>)WGMJY#5+w0SeQDJ{+XgbjXK8m+@55MtZ?tucjvY zrw@neZkqMs8d{<3^Wj>0U77abI(i_m$%pG{Mc{-FFHr^qfAZl5S`oU@hZ|`r>Le@| zs)eTShPL~#LeZ*L9}ZAM)rb!VX{hQh9}Zo{Q$=poFZ}gtx~aOwhr@KTdccQks5@Na z!?nsQ;Y~hVr_|Ma>cjQa4d;3KED1bO*X_d%)E)V~4>wXvK_q-86*9J(BW) zyy>P*V?SfjTe^CR>V#&x*=Ru@?~1OEZn(KSwqa4BzDi$N(Y|`C8J#vKOfj5D4J7vL z7>tXy3Dr==YN5{+;I%zsM4c>%zNi>L6A*1fs;e9AVwKZ3!1aG&yI>g%@9MAMn)5DmTlgnrCp)g={)*b z+HDuP!nBnaj^>JtmetYa*mbLgxnHwYD1{xF$uuuQ)7w->b=3(~48-w9G@6hCeKPjU z*=0_twTt#@ciPfA$MW!~Y|<$+>rSb*#(f#K(hLWUmi4t|=S?MsMAE_?B=eBR&@Seq zY+Y0=E-a%v=*#1i+_-Tmbmi7~N+eRPVoN-gNVSVyiLrs?jxn(-J~|p79!qRZiR7s0 zO%C@Z#uCY4VErOKe1{lJ4EMDQ4euAwNjqTKn&Sxcf4yiGbS;Ay3r)Mat|ALoeur=@ zEv;wuv?#Fa)ST8XEX^+J4yTKJslfe(F;-2&UGgHhZdwW^^!>zO_NPJl>*PzbW~Pf}IL(%4dV3h=*qW4{=UC;ah<>Sf97Wuk zxRD8&!-(1xq9Z|jpw%GciATS)dr$Gi-VspSz{PRH7Fmr)mliP*H*6gXw{Z}!J)n#L z=U5VmmMF#nUsIMb1e%MzhK%fO*sI~k7G;^ee(n{dH`BhnUEnaV!jYZ>*B(fWL)&d6 z_6hBgpFEAVHu#=%*MyJQH>SVWi%QNcmdPhDM^S2|!-}3ZELog<;n#1z^}(ypymdFrVvZ>u4r z#-uGc$L1?2`#K9rQ_z^>vQh)MvT!9eq>Z@hRxHh#SjpoQ?llBF2~C*ya>+wiNMOq^ zRtdQpiZ7&D26DOUa19uTR+TE^#h+K@TVZ*wteo4en72rrG1g-j*2mzTBr<+X;&FIr z6gwy5N9zZT`R~9y2rBciYz5DX^b3~^hm2=3;KNZohNj=$LHuPXyR(ca_$eiqL z){d!OW%lBn>AAU#;0o^52Ck;uc{xTnqbi+(Z{u~8tH)b(K_olSm_2LZWUlY5TLCj$ zE{7OSB6f%1pZQ+@nci+3jlK2gJF(-jmtwESehF=^==2My-q$uh7H1#i|CcTDr!$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -718,7 +728,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -793,7 +806,15 @@ clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/ansi-print.Po + -rm -f ./$(DEPDIR)/hb-ot-shape-closure.Po + -rm -f ./$(DEPDIR)/hb-shape.Po + -rm -f ./$(DEPDIR)/hb-subset.Po + -rm -f ./$(DEPDIR)/hb-view.Po + -rm -f ./$(DEPDIR)/helper-cairo-ansi.Po + -rm -f ./$(DEPDIR)/helper-cairo.Po + -rm -f ./$(DEPDIR)/options.Po + -rm -f ./$(DEPDIR)/view-cairo.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -839,7 +860,15 @@ install-ps-am: installcheck-am: installcheck-binPROGRAMS maintainer-clean: maintainer-clean-am - -rm -rf ./$(DEPDIR) + -rm -f ./$(DEPDIR)/ansi-print.Po + -rm -f ./$(DEPDIR)/hb-ot-shape-closure.Po + -rm -f ./$(DEPDIR)/hb-shape.Po + -rm -f ./$(DEPDIR)/hb-subset.Po + -rm -f ./$(DEPDIR)/hb-view.Po + -rm -f ./$(DEPDIR)/helper-cairo-ansi.Po + -rm -f ./$(DEPDIR)/helper-cairo.Po + -rm -f ./$(DEPDIR)/options.Po + -rm -f ./$(DEPDIR)/view-cairo.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -860,7 +889,7 @@ uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ diff --git a/util/hb-subset.cc b/util/hb-subset.cc index b7d9eb9..33e584b 100644 --- a/util/hb-subset.cc +++ b/util/hb-subset.cc @@ -91,6 +91,7 @@ struct subset_consumer_t { hb_subset_input_set_drop_layout (input, !subset_options.keep_layout); hb_subset_input_set_drop_hints (input, subset_options.drop_hints); + hb_subset_input_set_retain_gids (input, subset_options.retain_gids); hb_subset_input_set_desubroutinize (input, subset_options.desubroutinize); hb_face_t *face = hb_font_get_face (font); diff --git a/util/options.cc b/util/options.cc index 04ddcf6..c5a4f0f 100644 --- a/util/options.cc +++ b/util/options.cc @@ -432,7 +432,8 @@ shape_options_t::add_options (option_parser_t *parser) " Features can be enabled or disabled, either globally or limited to\n" " specific character ranges. The format for specifying feature settings\n" " follows. All valid CSS font-feature-settings values other than 'normal'\n" - " and 'inherited' are also accepted, though, not documented below.\n" + " and the global values are also accepted, though not documented below.\n" + " CSS string escapes are not supported." "\n" " The range indices refer to the positions between Unicode characters,\n" " unless the --utf8-clusters is provided, in which case range indices\n" @@ -977,6 +978,7 @@ subset_options_t::add_options (option_parser_t *parser) { {"layout", 0, 0, G_OPTION_ARG_NONE, &this->keep_layout, "Keep OpenType Layout tables", nullptr}, {"no-hinting", 0, 0, G_OPTION_ARG_NONE, &this->drop_hints, "Whether to drop hints", nullptr}, + {"retain-gids", 0, 0, G_OPTION_ARG_NONE, &this->retain_gids, "If set don't renumber glyph ids in the subset.", nullptr}, {"desubroutinize", 0, 0, G_OPTION_ARG_NONE, &this->desubroutinize, "Remove CFF/CFF2 use of subroutines", nullptr}, {nullptr} diff --git a/util/options.hh b/util/options.hh index e846258..84139f5 100644 --- a/util/options.hh +++ b/util/options.hh @@ -675,6 +675,7 @@ struct subset_options_t : option_group_t { keep_layout = false; drop_hints = false; + retain_gids = false; desubroutinize = false; add_options (parser); @@ -684,6 +685,7 @@ struct subset_options_t : option_group_t hb_bool_t keep_layout; hb_bool_t drop_hints; + hb_bool_t retain_gids; hb_bool_t desubroutinize; }; -- 2.7.4

major

Library major version component.

Library major version component.

[out]

minor

Library minor version component.

Library minor version component.

[out]

micro

Library micro version component.

Library micro version component.

[out]