laag-harfbuzz 1.7.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +57 -0
- data/LICENSE.txt +36 -0
- data/README.org +34 -0
- data/ext/laag/harfbuzz/extconf.rb +16 -0
- data/laag-harfbuzz.gemspec +20 -0
- data/lib/laag/harfbuzz.rb +29 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.ci/deploy-docs.sh +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.ci/fail.sh +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.ci/run-coveralls.sh +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.ci/trigger-coverity.sh +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.circleci/config.yml +190 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.editorconfig +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/.travis.yml +89 -0
- data/vendor/github.com/harfbuzz/harfbuzz/AUTHORS +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/BUILD.md +50 -0
- data/vendor/github.com/harfbuzz/harfbuzz/CMakeLists.txt +848 -0
- data/vendor/github.com/harfbuzz/harfbuzz/COPYING +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/Makefile.am +85 -0
- data/vendor/github.com/harfbuzz/harfbuzz/NEWS +1832 -0
- data/vendor/github.com/harfbuzz/harfbuzz/README +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/README.md +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/README.python +30 -0
- data/vendor/github.com/harfbuzz/harfbuzz/RELEASING.md +99 -0
- data/vendor/github.com/harfbuzz/harfbuzz/THANKS +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/TODO +42 -0
- data/vendor/github.com/harfbuzz/harfbuzz/appveyor.yml +61 -0
- data/vendor/github.com/harfbuzz/harfbuzz/autogen.sh +48 -0
- data/vendor/github.com/harfbuzz/harfbuzz/configure.ac +542 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/HarfBuzz.png +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/HarfBuzz.svg +277 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/Makefile.am +123 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/harfbuzz-docs.xml +210 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/harfbuzz-overrides.txt +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/harfbuzz-sections.txt +627 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-buffers-language-script-and-direction.xml +77 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-clusters.xml +304 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-fonts-and-faces.xml +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-glyph-information.xml +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-hello-harfbuzz.xml +183 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-install-harfbuzz.xml +70 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-opentype-features.xml +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/usermanual-what-is-harfbuzz.xml +115 -0
- data/vendor/github.com/harfbuzz/harfbuzz/docs/version.xml.in +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/git.mk +400 -0
- data/vendor/github.com/harfbuzz/harfbuzz/harfbuzz.doap +24 -0
- data/vendor/github.com/harfbuzz/harfbuzz/m4/ax_code_coverage.m4 +264 -0
- data/vendor/github.com/harfbuzz/harfbuzz/m4/ax_cxx_compile_stdcxx.m4 +982 -0
- data/vendor/github.com/harfbuzz/harfbuzz/m4/ax_pthread.m4 +485 -0
- data/vendor/github.com/harfbuzz/harfbuzz/m4/pkg.m4 +157 -0
- data/vendor/github.com/harfbuzz/harfbuzz/mingw32.sh +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/mingw64.sh +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/replace-enum-strings.cmake +21 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/Makefile.am +445 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/Makefile.sources +214 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-c-linkage-decls.sh +27 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-externs.sh +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-header-guards.sh +24 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-includes.sh +44 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-libstdc++.sh +44 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-static-inits.sh +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/check-symbols.sh +62 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/dev-run.sh +98 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/dump-indic-data.cc +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/dump-khmer-data.cc +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/dump-myanmar-data.cc +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/dump-use-data.cc +38 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/gen-arabic-table.py +269 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/gen-def.py +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/gen-indic-table.py +260 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/gen-unicode-ranges.py +52 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/gen-use-table.py +484 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/harfbuzz-config.cmake.in +82 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/harfbuzz-gobject.pc.in +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/harfbuzz-icu.pc.in +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/harfbuzz-subset.pc.in +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/harfbuzz.pc.in +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-ankr-table.hh +80 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-common-private.hh +728 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-kerx-table.hh +339 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-morx-table.hh +728 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-private.hh +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout-trak-table.hh +201 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-aat-layout.cc +143 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-atomic-private.hh +189 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-blob.cc +504 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-blob.h +129 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-deserialize-json.hh +643 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-deserialize-json.rl +132 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-deserialize-text.hh +571 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-deserialize-text.rl +126 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-private.hh +388 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer-serialize.cc +486 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer.cc +2010 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-buffer.h +562 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-common.cc +1050 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-common.h +397 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-coretext.cc +1401 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-coretext.h +64 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-debug.hh +444 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-deprecated.h +65 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-directwrite.cc +931 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-directwrite.h +38 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-dsalgs.hh +161 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-face-private.hh +111 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-face.cc +506 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-face.h +121 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-fallback-shape.cc +149 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-font-private.hh +561 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-font.cc +1846 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-font.h +641 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ft.cc +783 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ft.h +132 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-glib.cc +431 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-glib.h +56 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-gobject-enums.cc.tmpl +73 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-gobject-enums.h.tmpl +56 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-gobject-structs.cc +83 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-gobject-structs.h +138 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-gobject.h +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-graphite2.cc +421 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-graphite2.h +52 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-icu.cc +394 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-icu.h +52 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-mutex-private.hh +141 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-object-private.hh +196 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-open-file-private.hh +372 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-open-type-private.hh +1238 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-cmap-table.hh +789 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-color-cbdt-table.hh +471 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-color-colr-table.hh +142 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-color-cpal-table.hh +208 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-color.cc +183 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-font.cc +281 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-font.h +45 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-glyf-table.hh +473 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-hdmx-table.hh +198 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-head-table.hh +154 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-hhea-table.hh +98 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-hmtx-table.hh +328 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-kern-table.hh +394 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-base-table.hh +655 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-common-private.hh +1773 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-gdef-table.hh +459 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-gpos-table.hh +1654 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-gsub-table.hh +1364 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-gsubgpos-private.hh +2374 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-jstf-table.hh +234 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout-private.hh +683 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout.cc +1313 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-layout.h +338 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-map-private.hh +250 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-map.cc +336 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-math-table.hh +722 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-math.cc +253 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-math.h +209 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-maxp-table.hh +148 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-name-table.hh +138 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-os2-table.hh +181 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-os2-unicode-ranges.hh +247 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-post-macroman.hh +294 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-post-table.hh +282 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-arabic-fallback.hh +354 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-arabic-private.hh +50 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-arabic-table.hh +398 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-arabic-win1256.hh +323 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-arabic.cc +721 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-default.cc +46 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-hangul.cc +431 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-hebrew.cc +186 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-indic-machine.hh +1319 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-indic-machine.rl +125 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-indic-private.hh +401 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-indic-table.cc +486 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-indic.cc +1569 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-khmer-machine.hh +294 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-khmer-machine.rl +107 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-khmer-private.hh +124 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-khmer.cc +835 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.hh +413 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-myanmar-machine.rl +129 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-myanmar-private.hh +171 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-myanmar.cc +401 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-private.hh +397 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-thai.cc +383 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-tibetan.cc +63 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-use-machine.hh +502 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-use-machine.rl +176 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-use-private.hh +97 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-use-table.cc +788 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-complex-use.cc +612 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-fallback-private.hh +53 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-fallback.cc +559 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-normalize-private.hh +69 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-normalize.cc +433 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape-private.hh +108 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape.cc +970 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-shape.h +53 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-tag.cc +1094 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-tag.h +59 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var-avar-table.hh +149 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var-fvar-table.hh +209 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var-hvar-table.hh +165 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var-mvar-table.hh +114 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var.cc +159 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot-var.h +105 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ot.h +45 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-private.hh +1073 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-set-digest-private.hh +179 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-set-private.hh +658 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-set.cc +519 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-set.h +165 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shape-plan-private.hh +67 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shape-plan.cc +578 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shape-plan.h +108 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shape.cc +161 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shape.h +62 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shaper-impl-private.hh +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shaper-list.hh +58 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shaper-private.hh +124 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-shaper.cc +111 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-string-array.hh +81 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-glyf.cc +307 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-glyf.hh +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-input.cc +119 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-plan.cc +227 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-plan.hh +85 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset-private.hh +62 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset.cc +339 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-subset.h +83 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn.cc +273 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/COPYING +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/Makefile.am +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/Makefile.sources +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/README +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/ucdn.c +360 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/ucdn.h +453 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-ucdn/ucdn_db.h +5540 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-unicode-private.hh +371 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-unicode.cc +563 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-unicode.h +471 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-uniscribe.cc +1039 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-uniscribe.h +46 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-utf-private.hh +282 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-version.h +66 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-version.h.in +66 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb-warning.cc +39 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/hb.h +51 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/main.cc +201 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/sample.py +78 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/test-buffer-serialize.cc +129 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/test-size-params.cc +94 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/test-unicode-ranges.cc +67 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/test-would-substitute.cc +104 -0
- data/vendor/github.com/harfbuzz/harfbuzz/src/test.cc +134 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/CMakeLists.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/Makefile.am +15 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/.valgrind-suppressions +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/CMakeLists.txt +29 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/Makefile.am +169 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Inconsolata-Regular.ab.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Inconsolata-Regular.abc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Inconsolata-Regular.abc.widerc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Inconsolata-Regular.ac.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Inconsolata-Regular.ac.widerc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontEmpty.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontFull.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontNone.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontPartial1.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontPartial2.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontPartial3.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/MathTestFontPartial4.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/README +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.abc.cmap-format12-only.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.abc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.ac.cmap-format12-only.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.ac.nohints.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.ac.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.components.1fc.nohints.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.components.subset.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/fonts/Roboto-Regular.components.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/hb-subset-test.h +136 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/hb-test.h +314 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-blob.c +349 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-buffer.c +884 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-c.c +64 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-common.c +225 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-cplusplus.cc +30 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-font.c +550 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-object.c +375 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-ot-color.c +319 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-ot-math.c +712 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-ot-tag.c +320 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-set.c +399 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-shape.c +208 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-subset-cmap.c +82 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-subset-glyf.c +183 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-subset-hdmx.c +81 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-subset-hmtx.c +162 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-subset-os2.c +59 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-unicode.c +937 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/api/test-version.c +81 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/CMakeLists.txt +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/Makefile.am +52 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/README +21 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/hb-fuzzer.cc +52 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/hb-fuzzer.hh +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/main.cc +21 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/fuzzing/run-fuzzer-tests.py +32 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/CMakeLists.txt +17 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/Makefile.am +35 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/README.md +41 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/Makefile.am +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/COPYING +95 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/Makefile.am +20 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/Makefile.sources +47 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/0509e80afb379d16560e9e47bdd7d888bebdebc6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/051d92f8bc6ff724511b296c27623f824de256e9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/074a5ae6b19de8f29772fdd5df2d3d833f81f5e6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/07f054357ff8638bac3711b422a1e31180bba863.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/15dfc433a135a658b9f4b1a861b5cdd9658ccbb9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1735326da89f0818cd8c51a0600e9789812c0f94.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/191826b9643e3f124d865d617ae609db6a2ce203.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1a3d8f381387dd29be1e897e4b5100ac8b4829e1.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1a6f1687b7a221f9f2c834b0b360d3c8463b6daf.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1c04a16f32a39c26c851b7fc014d2e8d298ba2b8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1c2c3fc37b2d4c3cb2ef726c6cdaaabd4b7f3eb9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1c2fb74c1b2aa173262734c1f616148f1648cfd6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/1ed7e9064f008f62de6ff0207bb4dd29409597a5.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/205edd09bd3d141cc9580f650109556cc28b22cb.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/217a934cfe15c548b572c203dceb2befdf026462.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/21b7fb9c1eeae260473809fbc1fe330f66a507cd.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/226bc2deab3846f1a682085f70c67d0421014144.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/233c1e252e737ca79e03a9fd56b71aaa4a230f2b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/243798dd281c1c77c065958e1ff467420faa9bde.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/24b8d24d00ae86f49791b746da4c9d3f717a51a8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/270b89df543a7e48e206a2d830c0e10e5265c630.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/298c9e1d955f10f6f72c6915c3c6ff9bf9695cec.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/2de1ab4907ab688c0cfc236b0bf51151db38bf2e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/319f5d7ebffbefc5c5e6569f8cea73444d7a7268.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/341421e629668b1a1242245d39238ca48432d35d.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/3493e92eaded2661cadde752a39f9d58b11f0326.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/3511ff5c1647150595846ac414c595cccac34f18.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/37033cc5cf37bb223d7355153016b6ccece93b28.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/373e67bf41ca264e260a9716162b71a23549e885.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/375d6ae32a3cbe52fbf81a4e5777e3377675d5a3.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/3cae6bfe5b57c07ba81ddbd54c02fe4f3a1e3bf6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/3d0b77a2360aa6faa1385aaa510509ab70dfbeff.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/43979b90b2dd929723cf4fe1715990bcb9c9a56b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/43ef465752be9af900745f72fe29cb853a1401a5.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/45855bc8d46332b39c4ab9e2ee1a26b1f896da6b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/49c9f7485c1392fa09a1b801bc2ffea79275f22e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/4cce528e99f600ed9c25a2b69e32eb94a03b4ae8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/4fac3929fc3332834e93673780ec0fe94342d193.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/5028afb650b1bb718ed2131e872fbcce57828fff.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/53374c7ca3657be37efde7ed02ae34229a56ae1f.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/54674a3111d209fb6be0ed31745314b7a8d2c244.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/558661aa659912f4d30ecd27bd09835171a8e2b0.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/55c88ebbe938680b08f92c3de20713183e0c7481.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/56cfd0e18d07f41c38e9598545a6d369127fc6f9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/573d3a3177c9a8646e94c8a0d7b224334340946a.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/57a9d9f83020155cbb1d2be1f43d82388cbecc88.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/59a585a63b3df608fbeef00956c8c108deec7de6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/5a5daf5eb5a4db77a2baa3ad9c7a6ed6e0655fa8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/5dfad7735c6a67085f1b90d4d497e32907db4c78.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/641bd9db850193064d17575053ae2bf8ec149ddc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/663aef6b019dbf45ffd74089e2b5f2496ceceb18.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/6991b13ce889466be6de3f66e891de2bc0f117ee.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/706c5d7b625f207bc0d874c67237aad6f1e9cd6f.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/757ebd573617a24aa9dfbf0b885c54875c6fe06b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/7a37dc4d5bf018456aea291cee06daf004c0221c.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/7e14e7883ed152baa158b80e207b66114c823a8b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/8099955657a54e9ee38a6ba1d6f950ce58e3cc25.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/813c2f8e5512187fd982417a7fb4286728e6f4a8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/81c368a33816fb20e9f647e8f24e2180f4720263.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/8228d035fcd65d62ec9728fb34f42c63be93a5d3.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/8240789f6d12d4cfc4b5e8e6f246c3701bcf861f.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/82f4f3b57bb55344e72e70231380202a52af5805.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/8454d22037f892e76614e1645d066689a0200e61.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/85414f2552b654585b7a8d13dcc3e8fd9f7970a3.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/856ff9562451293cbeff6f396d4e3877c4f0a436.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/85fe0be440c64ac77699e21c2f1bd933a919167e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/87f85d17d26f1fe9ad28d7365101958edaefb967.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/8a9fea2a7384f2116e5b84a9b31f83be7850ce21.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/94a5d6fb15a27521fba9ea4aee9cb39b2d03322a.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/96490dd2ff81233b335a650e7eb660e0e7b2eeea.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/98b7887cff91f722b92a8ff800120954606354f9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/9d8a94a67932a3ab75a596fc8b5c6d0392ca9e49.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a014549f766436cf55b2ceb40e462038938ee899.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a02a7f0ad42c2922cb37ad1358c9df4eb81f1bca.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a34a7b00f22ffb5fd7eef6933b81c7e71bc2cdfb.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a34a9191d9376bda419836effeef7e75c1386016.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a69118c2c2ada48ff803d9149daa54c9ebdae30e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a6c76d1bafde4a0b1026ebcc932d2e5c6fd02442.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a919b33197965846f21074b24e30250d67277bce.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/a98e908e2ed21b22228ea59ebcc0f05034c86f2e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/af3086380b743099c54a3b11b96766039ea62fcd.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/b151cfcdaa77585d77f17a42158e0873fc8e2633.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/b6acef662e0beb8d5fcf5b61c6b0ca69537b7402.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/b9e2aaa0d75fcef6971ec3a96d806ba4a6b31fe2.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bb0c53752e85c3d28973ebc913287b8987d3dfe8.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bb29ce50df2bdba2d10726427c6b7609bf460e04.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bb9473d2403488714043bcfb946c9f78b86ad627.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bbf4a308c402f0678c3e82844892a4da2ebe598f.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bf39b0e91ef9807f15a9e283a21a14a209fd2cfc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/bf962d3202883a820aed019d9b5c1838c2ff69c6.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/c4e48b0886ef460f532fb49f00047ec92c432ec0.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/cc5f3d2d717fb6bd4dfae1c16d48a2cb8e12233b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/d23d76ea0909c14972796937ba072b5a40c1e257.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/d629e7fedc0b350222d7987345fe61613fa3929a.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/d9b8bc10985f24796826c29f7ccba3d0ae11ec02.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/dd9f0c7c7c36f75a18be0cab1cddf8f3ab0f366b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/df768b9c257e0c9c35786c47cae15c46571d56be.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/e207635780b42f898d58654b65098763e340f5c7.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/e68a88939e0f06e34d2bc911f09b70890289c8fd.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/e88c339237f52d21e01c55f01b9c1b4cc14a0467.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/e90374e5e439e00725b4fe7a8d73db57c5a97f82.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/ee39587d13b2afa5499cc79e45780aa79293bbd4.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/ef2511f215aa3ca847cbfffbf861793b42170875.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/ef86fe710cfea877bbe0dbb6946a1f88d0661031.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/f443753e8ffe8e8aae606cfba158e00334b6efb1.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/f499fbc23865022234775c43503bba2e63978fe1.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/f9b1dd4dcb515e757789a22cb4241107746fd3d0.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/fab39d60d758cb586db5a504f218442cd1395725.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/fcdcffbdf1c4c97c05308d7600e4c283eb47dbca.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/fonts/ffa0f5d2d9025486d8469d8b1fdd983e7632499b.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/arabic-fallback-shaping.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/arabic-feature-order.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/arabic-like-joining.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/arabic-mark-order.tests +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/arabic-stch.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/automatic-fractions.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/cluster.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/color-fonts.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/context-matching.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/cursive-positioning.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/default-ignorables.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/emoji-flag-tags.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/fallback-positioning.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/fuzzed.tests +23 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/hangul-jamo.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/hyphens.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-consonant-with-stacker.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-init.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-joiner-candrabindu.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-joiners.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-old-spec.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-pref-blocking.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-script-extensions.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-special-cases.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/indic-syllable.tests +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/language-tags.tests +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/ligature-id.tests +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/mark-attachment.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/mark-filtering-sets.tests +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/mongolian-variation-selector.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/myanmar-syllable.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/simple.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/spaces.tests +17 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/tibetan-contractions-1.tests +60 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/tibetan-contractions-2.tests +53 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/tibetan-vowels.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/use-marchen.tests +35 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/use-syllable.tests +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/use.tests +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/variations-rvrn.tests +100 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/vertical.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/in-house/tests/zero-width-marks.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/COPYING +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/DISABLED +35 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/Makefile.am +26 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/Makefile.sources +66 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/README +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/extract-tests.py +49 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/AdobeVFPrototype-Subset.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/FDArrayTest257.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/FDArrayTest65535.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/NotoSansBalinese-Regular.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/NotoSansKannada-Regular.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/NotoSerifKannada-Regular.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/Selawik-README.md +60 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/Selawik-variable.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestAVAR.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestCMAP14.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestCMAPMacTurkish.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestCVARGVAROne.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestCVARGVARTwo.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGLYFOne.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGPOSFour.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGPOSOne.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGPOSThree.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGPOSTwo.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGSUBOne.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVAREight.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVARFour.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVARNine.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVAROne.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVARThree.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestGVARTwo.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestHVAROne.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestHVARTwo.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestKERNOne.otf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXEight.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXEighteen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXEleven.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXFour.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXFourteen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXNine.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXOne.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXSeventeen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXSixteen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXThirteen.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXThree.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwelve.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwenty.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwentyfive.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwentyone.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwentysix.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwentythree.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwentytwo.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestMORXTwo.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestShapeAran.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/TestShapeEthi.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/fonts/Zycon.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/AVAR-1.tests +17 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CFF-1.tests +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CFF-2.tests +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CFF2-1.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CMAP-1.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CMAP-2.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CMAP-3.tests +20 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CVAR-1.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/CVAR-2.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GLYF-1.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GPOS-1.tests +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GPOS-2.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GPOS-3.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GPOS-4.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GPOS-5.tests +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GSUB-1.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GSUB-2.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-1.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-2.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-3.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-4.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-5.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-6.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-7.tests +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-8.tests +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/GVAR-9.tests +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/HVAR-1.tests +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/HVAR-2.tests +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/KERN-1.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/KERN-2.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-1.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-10.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-11.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-12.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-13.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-14.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-16.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-17.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-18.tests +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-19.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-2.tests +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-20.tests +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-21.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-22.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-23.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-25.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-26.tests +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-3.tests +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-4.tests +15 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-5.tests +25 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-6.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-7.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-8.tests +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/MORX-9.tests +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHARAN-1.tests +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHBALI-1.tests +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHBALI-2.tests +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHBALI-3.tests +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHKNDA-1.tests +34 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHKNDA-2.tests +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/tests/SHKNDA-3.tests +31 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/data/text-rendering-tests/update.sh +46 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-diff +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-diff-colorize +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-diff-filter-failures +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-diff-stat +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-unicode-decode +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-unicode-encode +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb-unicode-prettyname +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/hb_test_tools.py +571 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/record-test.sh +107 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/run-tests.py +98 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-persian/mehran.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/2grams.txt +601 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/3grams.txt +3415 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/4grams.txt +6316 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/5grams.txt +5029 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/6grams.txt +1542 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/7grams.txt +354 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/8grams.txt +26 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/LICENSE +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/README +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/language-urdu/crulp/ligatures/SOURCES +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/lam-alef.txt +28 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/language-arabic.txt +695 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/language-persian.txt +48 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/language-urdu.txt +188 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/ligature-components.txt +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/ligature-diacritics.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-arabic/misc/diacritics/mark-skipping.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-mongolian/misc/misc.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-mongolian/misc/non-joining.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-mongolian/misc/poem.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-mongolian/misc/variation-selectors.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-nko/misc/misc.txt +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-phags-pa/misc/misc.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-syriac/misc/abbreviation-mark.txt +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-arabic/script-syriac/misc/alaph.txt +98 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-ethiopic/misc/misc.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-han/misc/cjk-compat.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-hiragana/misc/kazuraki-liga-lines.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-hiragana/misc/kazuraki-liga.txt +53 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-linear-b/misc/misc.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-default/script-tifinagh/misc/misc.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-hangul/script-hangul/misc/misc.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-hebrew/script-hebrew/misc/diacritics.txt +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +59 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +131 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-assamese/utrrs/gsub/IndicFontFeatureGSUB.txt +139 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/misc/misc.txt +53 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/misc/reph.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +58 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +119 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-bengali/utrrs/gsub/IndicFontFeatureGSUB.txt +215 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/dottedcircle.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/eyelash.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/joiners.txt +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/misc.txt +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/spec-deviations.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/misc/tricky-reordering.txt +5 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +45 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-DevnagariSpecificAddition.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-GenericPunctuation.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +185 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +185 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-devanagari/utrrs/gsub/IndicFontFeatureGSUB.txt +1367 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +34 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +170 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +170 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gujarati/utrrs/gsub/IndicFontFeatureGSUB.txt +1156 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/misc/misc.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +38 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-GurmukhiSpecific.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-gurmukhi/utrrs/gsub/IndicFontFeatureGSUB.txt +152 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/misc/misc.txt +20 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/misc/right-matras.txt +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +188 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-kannada/utrrs/gsub/IndicFontFeatureGSUB.txt +306 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/misc/cibu.txt +188 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/misc/dot-reph.txt +15 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/misc/misc.txt +65 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-malayalam/utrrs/gsub/IndicFontFeatureGSUB.txt +254 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/misc/bindu.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/misc/misc.txt +28 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalConsonants.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +34 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-OriyaSpecific.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +8 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-oriya/utrrs/gsub/IndicFontFeatureGSUB.txt +170 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/misc/extensive.txt +4390 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/misc/misc.txt +41 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/misc/reph.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/misc/split-matras.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +41 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +17 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +18 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/codepoint/IndicFontFeatureCodepoint-Punctuation.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gpos/IndicFontFeatureGPOS.txt +162 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Conjunct.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Rakaaraansaya.txt +41 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Repaya.txt +42 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Special-Cases.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-TouchingLetters.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB-Yansaya.txt +41 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-sinhala/utrrs/gsub/IndicFontFeatureGSUB.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/misc/misc.txt +43 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +23 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-CurrencySymbols.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Numerics.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-Symbols.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-TamilSymbol.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +64 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/gpos/IndicFontFeatureGPOS-BelowBase.txt +44 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-tamil/utrrs/gsub/IndicFontFeatureGSUB.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/misc/misc.txt +12 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/LICENSE +19 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/README +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/SOURCES +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-AdditionalVowels.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Consonants.txt +38 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-DependentVowels.txt +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Digits.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-IndependentVowels.txt +14 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-Reserved.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/codepoint/IndicFontFeatureCodepoint-VariousSigns.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/gpos/IndicFontFeatureGPOS-AboveBase.txt +385 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/indic/script-telugu/utrrs/gsub/IndicFontFeatureGSUB.txt +287 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/south-east-asian/script-javanese/misc.txt +54 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/south-east-asian/script-khmer/misc/misc.txt +23 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/south-east-asian/script-khmer/misc/other-marks-invalid.txt +4 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-indic/south-east-asian/script-khmer/misc/other-marks.txt +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-myanmar/script-myanmar/misc/misc.txt +7 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-myanmar/script-myanmar/misc/otspec.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-myanmar/script-myanmar/misc/utn11.txt +34 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-thai/script-lao/misc/sara-am.txt +20 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-thai/script-thai/misc/misc.txt +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-thai/script-thai/misc/phinthu.txt +16 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-thai/script-thai/misc/pua-shaping.txt +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-thai/script-thai/misc/sara-am.txt +20 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-tibetan/script-tibetan/misc/contractions.txt +612 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-tibetan/script-tibetan/misc/misc.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-batak/misc.txt +9 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-buginese/misc.txt +70 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-cham/misc.txt +3 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-kaithi/misc.txt +6 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-kharoshti/misc.txt +36 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-tai-tham/misc.txt +2 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/shaping/texts/in-house/shaper-use/script-tai-tham/torture.txt +23 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/CMakeLists.txt +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/Makefile.am +22 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/Makefile.am +24 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/Makefile.sources +10 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.default.61,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.default.61,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.default.61.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.default.62.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.default.63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints.61,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints.61,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints.61.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints.62.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/basics/Roboto-Regular.abc.drop-hints.63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/full-font/Roboto-Regular.default.1FC,21,41,20,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/full-font/Roboto-Regular.default.61,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/full-font/Roboto-Regular.drop-hints.1FC,21,41,20,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/expected/full-font/Roboto-Regular.drop-hints.61,62,63.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/fonts/Roboto-Regular.abc.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/fonts/Roboto-Regular.ttf +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/profiles/default.txt +0 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/profiles/drop-hints.txt +1 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/tests/basics.tests +13 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/data/tests/full-font.tests +11 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/generate-expected-outputs.py +47 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/run-tests.py +133 -0
- data/vendor/github.com/harfbuzz/harfbuzz/test/subset/subset_test_suite.py +87 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/Makefile.am +75 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/Makefile.sources +37 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/ansi-print.cc +427 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/ansi-print.hh +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-fc-list.c +222 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-fc.cc +149 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-fc.h +46 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-ot-shape-closure.cc +119 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-shape.cc +165 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-subset.cc +127 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/hb-view.cc +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/helper-cairo-ansi.cc +102 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/helper-cairo-ansi.hh +40 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/helper-cairo.cc +553 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/helper-cairo.hh +86 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/main-font-text.hh +96 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/options.cc +1026 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/options.hh +690 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/shape-consumer.hh +101 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/view-cairo.cc +133 -0
- data/vendor/github.com/harfbuzz/harfbuzz/util/view-cairo.hh +102 -0
- metadata +939 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © 2017 Google, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This is part of HarfBuzz, a text shaping library.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, without written agreement and without
|
|
7
|
+
* license or royalty fees, to use, copy, modify, and distribute this
|
|
8
|
+
* software and its documentation for any purpose, provided that the
|
|
9
|
+
* above copyright notice and the following two paragraphs appear in
|
|
10
|
+
* all copies of this software.
|
|
11
|
+
*
|
|
12
|
+
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
13
|
+
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
14
|
+
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
15
|
+
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
16
|
+
* DAMAGE.
|
|
17
|
+
*
|
|
18
|
+
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
19
|
+
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
21
|
+
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
22
|
+
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
23
|
+
*
|
|
24
|
+
* Google Author(s): Behdad Esfahbod
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef HB_OT_VAR_MVAR_TABLE_HH
|
|
28
|
+
#define HB_OT_VAR_MVAR_TABLE_HH
|
|
29
|
+
|
|
30
|
+
#include "hb-ot-layout-common-private.hh"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
namespace OT {
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
struct VariationValueRecord
|
|
37
|
+
{
|
|
38
|
+
inline bool sanitize (hb_sanitize_context_t *c) const
|
|
39
|
+
{
|
|
40
|
+
TRACE_SANITIZE (this);
|
|
41
|
+
return_trace (c->check_struct (this));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public:
|
|
45
|
+
Tag valueTag; /* Four-byte tag identifying a font-wide measure. */
|
|
46
|
+
HBUINT32 varIdx; /* Outer/inner index into VariationStore item. */
|
|
47
|
+
|
|
48
|
+
public:
|
|
49
|
+
DEFINE_SIZE_STATIC (8);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
* MVAR -- Metrics Variations Table
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
#define HB_OT_TAG_MVAR HB_TAG('M','V','A','R')
|
|
58
|
+
|
|
59
|
+
struct MVAR
|
|
60
|
+
{
|
|
61
|
+
static const hb_tag_t tableTag = HB_OT_TAG_MVAR;
|
|
62
|
+
|
|
63
|
+
inline bool sanitize (hb_sanitize_context_t *c) const
|
|
64
|
+
{
|
|
65
|
+
TRACE_SANITIZE (this);
|
|
66
|
+
return_trace (version.sanitize (c) &&
|
|
67
|
+
likely (version.major == 1) &&
|
|
68
|
+
c->check_struct (this) &&
|
|
69
|
+
valueRecordSize >= VariationValueRecord::static_size &&
|
|
70
|
+
varStore.sanitize (c, this) &&
|
|
71
|
+
c->check_array (values, valueRecordSize, valueRecordCount));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
inline float get_var (hb_tag_t tag,
|
|
75
|
+
int *coords, unsigned int coord_count) const
|
|
76
|
+
{
|
|
77
|
+
const VariationValueRecord *record;
|
|
78
|
+
record = (VariationValueRecord *) bsearch (&tag, values,
|
|
79
|
+
valueRecordCount, valueRecordSize,
|
|
80
|
+
tag_compare);
|
|
81
|
+
if (!record)
|
|
82
|
+
return 0.;
|
|
83
|
+
|
|
84
|
+
return (this+varStore).get_delta (record->varIdx, coords, coord_count);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
protected:
|
|
88
|
+
static inline int tag_compare (const void *pa, const void *pb)
|
|
89
|
+
{
|
|
90
|
+
const hb_tag_t *a = (const hb_tag_t *) pa;
|
|
91
|
+
const Tag *b = (const Tag *) pb;
|
|
92
|
+
return b->cmp (*a);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
protected:
|
|
96
|
+
FixedVersion<>version; /* Version of the metrics variation table
|
|
97
|
+
* initially set to 0x00010000u */
|
|
98
|
+
HBUINT16 reserved; /* Not used; set to 0. */
|
|
99
|
+
HBUINT16 valueRecordSize;/* The size in bytes of each value record —
|
|
100
|
+
* must be greater than zero. */
|
|
101
|
+
HBUINT16 valueRecordCount;/* The number of value records — may be zero. */
|
|
102
|
+
OffsetTo<VariationStore>
|
|
103
|
+
varStore; /* Offset to item variation store table. */
|
|
104
|
+
HBUINT8 values[VAR]; /* Array of value records. The records must be
|
|
105
|
+
* in binary order of their valueTag field. */
|
|
106
|
+
|
|
107
|
+
public:
|
|
108
|
+
DEFINE_SIZE_ARRAY (12, values);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
} /* namespace OT */
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
#endif /* HB_OT_VAR_MVAR_TABLE_HH */
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © 2017 Google, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This is part of HarfBuzz, a text shaping library.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, without written agreement and without
|
|
7
|
+
* license or royalty fees, to use, copy, modify, and distribute this
|
|
8
|
+
* software and its documentation for any purpose, provided that the
|
|
9
|
+
* above copyright notice and the following two paragraphs appear in
|
|
10
|
+
* all copies of this software.
|
|
11
|
+
*
|
|
12
|
+
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
13
|
+
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
14
|
+
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
15
|
+
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
16
|
+
* DAMAGE.
|
|
17
|
+
*
|
|
18
|
+
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
19
|
+
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
21
|
+
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
22
|
+
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
23
|
+
*
|
|
24
|
+
* Google Author(s): Behdad Esfahbod
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#include "hb-open-type-private.hh"
|
|
28
|
+
|
|
29
|
+
#include "hb-ot-layout-private.hh"
|
|
30
|
+
#include "hb-ot-var-avar-table.hh"
|
|
31
|
+
#include "hb-ot-var-fvar-table.hh"
|
|
32
|
+
#include "hb-ot-var-mvar-table.hh"
|
|
33
|
+
#include "hb-ot-var.h"
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* fvar/avar
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
static inline const OT::fvar&
|
|
40
|
+
_get_fvar (hb_face_t *face)
|
|
41
|
+
{
|
|
42
|
+
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return OT::Null(OT::fvar);
|
|
43
|
+
hb_ot_layout_t * layout = hb_ot_layout_from_face (face);
|
|
44
|
+
return *(layout->fvar.get ());
|
|
45
|
+
}
|
|
46
|
+
static inline const OT::avar&
|
|
47
|
+
_get_avar (hb_face_t *face)
|
|
48
|
+
{
|
|
49
|
+
if (unlikely (!hb_ot_shaper_face_data_ensure (face))) return OT::Null(OT::avar);
|
|
50
|
+
hb_ot_layout_t * layout = hb_ot_layout_from_face (face);
|
|
51
|
+
return *(layout->avar.get ());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* hb_ot_var_has_data:
|
|
56
|
+
* @face: #hb_face_t to test
|
|
57
|
+
*
|
|
58
|
+
* This function allows to verify the presence of OpenType variation data on the face.
|
|
59
|
+
* Alternatively, use hb_ot_var_get_axis_count().
|
|
60
|
+
*
|
|
61
|
+
* Return value: true if face has a `fvar' table and false otherwise
|
|
62
|
+
*
|
|
63
|
+
* Since: 1.4.2
|
|
64
|
+
**/
|
|
65
|
+
hb_bool_t
|
|
66
|
+
hb_ot_var_has_data (hb_face_t *face)
|
|
67
|
+
{
|
|
68
|
+
return &_get_fvar (face) != &OT::Null(OT::fvar);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* hb_ot_var_get_axis_count:
|
|
73
|
+
*
|
|
74
|
+
* Since: 1.4.2
|
|
75
|
+
**/
|
|
76
|
+
unsigned int
|
|
77
|
+
hb_ot_var_get_axis_count (hb_face_t *face)
|
|
78
|
+
{
|
|
79
|
+
const OT::fvar &fvar = _get_fvar (face);
|
|
80
|
+
return fvar.get_axis_count ();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* hb_ot_var_get_axes:
|
|
85
|
+
*
|
|
86
|
+
* Since: 1.4.2
|
|
87
|
+
**/
|
|
88
|
+
unsigned int
|
|
89
|
+
hb_ot_var_get_axes (hb_face_t *face,
|
|
90
|
+
unsigned int start_offset,
|
|
91
|
+
unsigned int *axes_count /* IN/OUT */,
|
|
92
|
+
hb_ot_var_axis_t *axes_array /* OUT */)
|
|
93
|
+
{
|
|
94
|
+
const OT::fvar &fvar = _get_fvar (face);
|
|
95
|
+
return fvar.get_axis_infos (start_offset, axes_count, axes_array);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* hb_ot_var_find_axis:
|
|
100
|
+
*
|
|
101
|
+
* Since: 1.4.2
|
|
102
|
+
**/
|
|
103
|
+
hb_bool_t
|
|
104
|
+
hb_ot_var_find_axis (hb_face_t *face,
|
|
105
|
+
hb_tag_t axis_tag,
|
|
106
|
+
unsigned int *axis_index,
|
|
107
|
+
hb_ot_var_axis_t *axis_info)
|
|
108
|
+
{
|
|
109
|
+
const OT::fvar &fvar = _get_fvar (face);
|
|
110
|
+
return fvar.find_axis (axis_tag, axis_index, axis_info);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* hb_ot_var_normalize_variations:
|
|
116
|
+
*
|
|
117
|
+
* Since: 1.4.2
|
|
118
|
+
**/
|
|
119
|
+
void
|
|
120
|
+
hb_ot_var_normalize_variations (hb_face_t *face,
|
|
121
|
+
const hb_variation_t *variations, /* IN */
|
|
122
|
+
unsigned int variations_length,
|
|
123
|
+
int *coords, /* OUT */
|
|
124
|
+
unsigned int coords_length)
|
|
125
|
+
{
|
|
126
|
+
for (unsigned int i = 0; i < coords_length; i++)
|
|
127
|
+
coords[i] = 0;
|
|
128
|
+
|
|
129
|
+
const OT::fvar &fvar = _get_fvar (face);
|
|
130
|
+
for (unsigned int i = 0; i < variations_length; i++)
|
|
131
|
+
{
|
|
132
|
+
unsigned int axis_index;
|
|
133
|
+
if (hb_ot_var_find_axis (face, variations[i].tag, &axis_index, nullptr) &&
|
|
134
|
+
axis_index < coords_length)
|
|
135
|
+
coords[axis_index] = fvar.normalize_axis_value (axis_index, variations[i].value);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const OT::avar &avar = _get_avar (face);
|
|
139
|
+
avar.map_coords (coords, coords_length);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* hb_ot_var_normalize_coords:
|
|
144
|
+
*
|
|
145
|
+
* Since: 1.4.2
|
|
146
|
+
**/
|
|
147
|
+
void
|
|
148
|
+
hb_ot_var_normalize_coords (hb_face_t *face,
|
|
149
|
+
unsigned int coords_length,
|
|
150
|
+
const float *design_coords, /* IN */
|
|
151
|
+
int *normalized_coords /* OUT */)
|
|
152
|
+
{
|
|
153
|
+
const OT::fvar &fvar = _get_fvar (face);
|
|
154
|
+
for (unsigned int i = 0; i < coords_length; i++)
|
|
155
|
+
normalized_coords[i] = fvar.normalize_axis_value (i, design_coords[i]);
|
|
156
|
+
|
|
157
|
+
const OT::avar &avar = _get_avar (face);
|
|
158
|
+
avar.map_coords (normalized_coords, coords_length);
|
|
159
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © 2017 Google, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This is part of HarfBuzz, a text shaping library.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, without written agreement and without
|
|
7
|
+
* license or royalty fees, to use, copy, modify, and distribute this
|
|
8
|
+
* software and its documentation for any purpose, provided that the
|
|
9
|
+
* above copyright notice and the following two paragraphs appear in
|
|
10
|
+
* all copies of this software.
|
|
11
|
+
*
|
|
12
|
+
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
13
|
+
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
14
|
+
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
15
|
+
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
16
|
+
* DAMAGE.
|
|
17
|
+
*
|
|
18
|
+
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
19
|
+
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
21
|
+
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
22
|
+
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
23
|
+
*
|
|
24
|
+
* Red Hat Author(s): Behdad Esfahbod
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef HB_OT_H_IN
|
|
28
|
+
#error "Include <hb-ot.h> instead."
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#ifndef HB_OT_VAR_H
|
|
32
|
+
#define HB_OT_VAR_H
|
|
33
|
+
|
|
34
|
+
#include "hb.h"
|
|
35
|
+
|
|
36
|
+
HB_BEGIN_DECLS
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
#define HB_OT_TAG_VAR_AXIS_ITALIC HB_TAG('i','t','a','l')
|
|
40
|
+
#define HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE HB_TAG('o','p','s','z')
|
|
41
|
+
#define HB_OT_TAG_VAR_AXIS_SLANT HB_TAG('s','l','n','t')
|
|
42
|
+
#define HB_OT_TAG_VAR_AXIS_WIDTH HB_TAG('w','d','t','h')
|
|
43
|
+
#define HB_OT_TAG_VAR_AXIS_WEIGHT HB_TAG('w','g','h','t')
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
/*
|
|
47
|
+
* fvar / avar
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* hb_ot_var_axis_t:
|
|
52
|
+
*
|
|
53
|
+
* Since: 1.4.2
|
|
54
|
+
*/
|
|
55
|
+
typedef struct hb_ot_var_axis_t {
|
|
56
|
+
hb_tag_t tag;
|
|
57
|
+
unsigned int name_id;
|
|
58
|
+
float min_value;
|
|
59
|
+
float default_value;
|
|
60
|
+
float max_value;
|
|
61
|
+
} hb_ot_var_axis_t;
|
|
62
|
+
|
|
63
|
+
HB_EXTERN hb_bool_t
|
|
64
|
+
hb_ot_var_has_data (hb_face_t *face);
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* HB_OT_VAR_NO_AXIS_INDEX:
|
|
68
|
+
*
|
|
69
|
+
* Since: 1.4.2
|
|
70
|
+
*/
|
|
71
|
+
#define HB_OT_VAR_NO_AXIS_INDEX 0xFFFFFFFFu
|
|
72
|
+
|
|
73
|
+
HB_EXTERN unsigned int
|
|
74
|
+
hb_ot_var_get_axis_count (hb_face_t *face);
|
|
75
|
+
|
|
76
|
+
HB_EXTERN unsigned int
|
|
77
|
+
hb_ot_var_get_axes (hb_face_t *face,
|
|
78
|
+
unsigned int start_offset,
|
|
79
|
+
unsigned int *axes_count /* IN/OUT */,
|
|
80
|
+
hb_ot_var_axis_t *axes_array /* OUT */);
|
|
81
|
+
|
|
82
|
+
HB_EXTERN hb_bool_t
|
|
83
|
+
hb_ot_var_find_axis (hb_face_t *face,
|
|
84
|
+
hb_tag_t axis_tag,
|
|
85
|
+
unsigned int *axis_index,
|
|
86
|
+
hb_ot_var_axis_t *axis_info);
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
HB_EXTERN void
|
|
90
|
+
hb_ot_var_normalize_variations (hb_face_t *face,
|
|
91
|
+
const hb_variation_t *variations, /* IN */
|
|
92
|
+
unsigned int variations_length,
|
|
93
|
+
int *coords, /* OUT */
|
|
94
|
+
unsigned int coords_length);
|
|
95
|
+
|
|
96
|
+
HB_EXTERN void
|
|
97
|
+
hb_ot_var_normalize_coords (hb_face_t *face,
|
|
98
|
+
unsigned int coords_length,
|
|
99
|
+
const float *design_coords, /* IN */
|
|
100
|
+
int *normalized_coords /* OUT */);
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
HB_END_DECLS
|
|
104
|
+
|
|
105
|
+
#endif /* HB_OT_VAR_H */
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © 2009 Red Hat, Inc.
|
|
3
|
+
*
|
|
4
|
+
* This is part of HarfBuzz, a text shaping library.
|
|
5
|
+
*
|
|
6
|
+
* Permission is hereby granted, without written agreement and without
|
|
7
|
+
* license or royalty fees, to use, copy, modify, and distribute this
|
|
8
|
+
* software and its documentation for any purpose, provided that the
|
|
9
|
+
* above copyright notice and the following two paragraphs appear in
|
|
10
|
+
* all copies of this software.
|
|
11
|
+
*
|
|
12
|
+
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
13
|
+
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
14
|
+
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
15
|
+
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
16
|
+
* DAMAGE.
|
|
17
|
+
*
|
|
18
|
+
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
19
|
+
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
20
|
+
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
21
|
+
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
22
|
+
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
23
|
+
*
|
|
24
|
+
* Red Hat Author(s): Behdad Esfahbod
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
#ifndef HB_OT_H
|
|
28
|
+
#define HB_OT_H
|
|
29
|
+
#define HB_OT_H_IN
|
|
30
|
+
|
|
31
|
+
#include "hb.h"
|
|
32
|
+
|
|
33
|
+
#include "hb-ot-font.h"
|
|
34
|
+
#include "hb-ot-layout.h"
|
|
35
|
+
#include "hb-ot-math.h"
|
|
36
|
+
#include "hb-ot-tag.h"
|
|
37
|
+
#include "hb-ot-shape.h"
|
|
38
|
+
#include "hb-ot-var.h"
|
|
39
|
+
|
|
40
|
+
HB_BEGIN_DECLS
|
|
41
|
+
|
|
42
|
+
HB_END_DECLS
|
|
43
|
+
|
|
44
|
+
#undef HB_OT_H_IN
|
|
45
|
+
#endif /* HB_OT_H */
|
|
@@ -0,0 +1,1073 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright © 2007,2008,2009 Red Hat, Inc.
|
|
3
|
+
* Copyright © 2011,2012 Google, Inc.
|
|
4
|
+
*
|
|
5
|
+
* This is part of HarfBuzz, a text shaping library.
|
|
6
|
+
*
|
|
7
|
+
* Permission is hereby granted, without written agreement and without
|
|
8
|
+
* license or royalty fees, to use, copy, modify, and distribute this
|
|
9
|
+
* software and its documentation for any purpose, provided that the
|
|
10
|
+
* above copyright notice and the following two paragraphs appear in
|
|
11
|
+
* all copies of this software.
|
|
12
|
+
*
|
|
13
|
+
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
14
|
+
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
15
|
+
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
16
|
+
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
17
|
+
* DAMAGE.
|
|
18
|
+
*
|
|
19
|
+
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
20
|
+
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
21
|
+
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
22
|
+
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
23
|
+
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|
24
|
+
*
|
|
25
|
+
* Red Hat Author(s): Behdad Esfahbod
|
|
26
|
+
* Google Author(s): Behdad Esfahbod
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
#ifndef HB_PRIVATE_HH
|
|
30
|
+
#define HB_PRIVATE_HH
|
|
31
|
+
|
|
32
|
+
#define _GNU_SOURCE 1
|
|
33
|
+
|
|
34
|
+
#ifdef HAVE_CONFIG_H
|
|
35
|
+
#include "config.h"
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#include "hb.h"
|
|
39
|
+
#define HB_H_IN
|
|
40
|
+
#ifdef HAVE_OT
|
|
41
|
+
#include "hb-ot.h"
|
|
42
|
+
#define HB_OT_H_IN
|
|
43
|
+
#endif
|
|
44
|
+
|
|
45
|
+
#include <math.h>
|
|
46
|
+
#include <stdlib.h>
|
|
47
|
+
#include <stddef.h>
|
|
48
|
+
#include <string.h>
|
|
49
|
+
#include <assert.h>
|
|
50
|
+
#include <errno.h>
|
|
51
|
+
#include <stdio.h>
|
|
52
|
+
#include <stdarg.h>
|
|
53
|
+
|
|
54
|
+
#if defined(_MSC_VER) || defined(__MINGW32__)
|
|
55
|
+
#include <intrin.h>
|
|
56
|
+
#endif
|
|
57
|
+
|
|
58
|
+
#define HB_PASTE1(a,b) a##b
|
|
59
|
+
#define HB_PASTE(a,b) HB_PASTE1(a,b)
|
|
60
|
+
|
|
61
|
+
/* Compile-time custom allocator support. */
|
|
62
|
+
|
|
63
|
+
#if defined(hb_malloc_impl) \
|
|
64
|
+
&& defined(hb_calloc_impl) \
|
|
65
|
+
&& defined(hb_realloc_impl) \
|
|
66
|
+
&& defined(hb_free_impl)
|
|
67
|
+
extern "C" void* hb_malloc_impl(size_t size);
|
|
68
|
+
extern "C" void* hb_calloc_impl(size_t nmemb, size_t size);
|
|
69
|
+
extern "C" void* hb_realloc_impl(void *ptr, size_t size);
|
|
70
|
+
extern "C" void hb_free_impl(void *ptr);
|
|
71
|
+
#define malloc hb_malloc_impl
|
|
72
|
+
#define calloc hb_calloc_impl
|
|
73
|
+
#define realloc hb_realloc_impl
|
|
74
|
+
#define free hb_free_impl
|
|
75
|
+
#endif
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/* Compiler attributes */
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
#if __cplusplus < 201103L
|
|
82
|
+
|
|
83
|
+
#ifndef nullptr
|
|
84
|
+
#define nullptr NULL
|
|
85
|
+
#endif
|
|
86
|
+
|
|
87
|
+
// Static assertions
|
|
88
|
+
#ifndef static_assert
|
|
89
|
+
#define static_assert(e, msg) \
|
|
90
|
+
HB_UNUSED typedef int HB_PASTE(static_assertion_failed_at_line_, __LINE__) [(e) ? 1 : -1]
|
|
91
|
+
#endif // static_assert
|
|
92
|
+
|
|
93
|
+
#endif // __cplusplus < 201103L
|
|
94
|
+
|
|
95
|
+
#if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__)
|
|
96
|
+
#define likely(expr) (__builtin_expect (!!(expr), 1))
|
|
97
|
+
#define unlikely(expr) (__builtin_expect (!!(expr), 0))
|
|
98
|
+
#else
|
|
99
|
+
#define likely(expr) (expr)
|
|
100
|
+
#define unlikely(expr) (expr)
|
|
101
|
+
#endif
|
|
102
|
+
|
|
103
|
+
#if !defined(__GNUC__) && !defined(__clang__)
|
|
104
|
+
#undef __attribute__
|
|
105
|
+
#define __attribute__(x)
|
|
106
|
+
#endif
|
|
107
|
+
|
|
108
|
+
#if __GNUC__ >= 3
|
|
109
|
+
#define HB_PURE_FUNC __attribute__((pure))
|
|
110
|
+
#define HB_CONST_FUNC __attribute__((const))
|
|
111
|
+
#define HB_PRINTF_FUNC(format_idx, arg_idx) __attribute__((__format__ (__printf__, format_idx, arg_idx)))
|
|
112
|
+
#else
|
|
113
|
+
#define HB_PURE_FUNC
|
|
114
|
+
#define HB_CONST_FUNC
|
|
115
|
+
#define HB_PRINTF_FUNC(format_idx, arg_idx)
|
|
116
|
+
#endif
|
|
117
|
+
#if __GNUC__ >= 4
|
|
118
|
+
#define HB_UNUSED __attribute__((unused))
|
|
119
|
+
#elif defined(_MSC_VER) /* https://github.com/harfbuzz/harfbuzz/issues/635 */
|
|
120
|
+
#define HB_UNUSED __pragma(warning(suppress: 4100 4101))
|
|
121
|
+
#else
|
|
122
|
+
#define HB_UNUSED
|
|
123
|
+
#endif
|
|
124
|
+
|
|
125
|
+
#ifndef HB_INTERNAL
|
|
126
|
+
# if !defined(HB_NO_VISIBILITY) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(_MSC_VER) && !defined(__SUNPRO_CC)
|
|
127
|
+
# define HB_INTERNAL __attribute__((__visibility__("hidden")))
|
|
128
|
+
# else
|
|
129
|
+
# define HB_INTERNAL
|
|
130
|
+
# define HB_NO_VISIBILITY 1
|
|
131
|
+
# endif
|
|
132
|
+
#endif
|
|
133
|
+
|
|
134
|
+
#if __GNUC__ >= 3
|
|
135
|
+
#define HB_FUNC __PRETTY_FUNCTION__
|
|
136
|
+
#elif defined(_MSC_VER)
|
|
137
|
+
#define HB_FUNC __FUNCSIG__
|
|
138
|
+
#else
|
|
139
|
+
#define HB_FUNC __func__
|
|
140
|
+
#endif
|
|
141
|
+
|
|
142
|
+
#ifdef __SUNPRO_CC
|
|
143
|
+
/* https://github.com/harfbuzz/harfbuzz/issues/630 */
|
|
144
|
+
#define __restrict
|
|
145
|
+
#endif
|
|
146
|
+
|
|
147
|
+
/*
|
|
148
|
+
* Borrowed from https://bugzilla.mozilla.org/show_bug.cgi?id=1215411
|
|
149
|
+
* HB_FALLTHROUGH is an annotation to suppress compiler warnings about switch
|
|
150
|
+
* cases that fall through without a break or return statement. HB_FALLTHROUGH
|
|
151
|
+
* is only needed on cases that have code:
|
|
152
|
+
*
|
|
153
|
+
* switch (foo) {
|
|
154
|
+
* case 1: // These cases have no code. No fallthrough annotations are needed.
|
|
155
|
+
* case 2:
|
|
156
|
+
* case 3:
|
|
157
|
+
* foo = 4; // This case has code, so a fallthrough annotation is needed:
|
|
158
|
+
* HB_FALLTHROUGH;
|
|
159
|
+
* default:
|
|
160
|
+
* return foo;
|
|
161
|
+
* }
|
|
162
|
+
*/
|
|
163
|
+
#if defined(__clang__) && __cplusplus >= 201103L
|
|
164
|
+
/* clang's fallthrough annotations are only available starting in C++11. */
|
|
165
|
+
# define HB_FALLTHROUGH [[clang::fallthrough]]
|
|
166
|
+
#elif __GNUC__ >= 7
|
|
167
|
+
/* GNU fallthrough attribute is available from GCC7 */
|
|
168
|
+
# define HB_FALLTHROUGH __attribute__((fallthrough))
|
|
169
|
+
#elif defined(_MSC_VER)
|
|
170
|
+
/*
|
|
171
|
+
* MSVC's __fallthrough annotations are checked by /analyze (Code Analysis):
|
|
172
|
+
* https://msdn.microsoft.com/en-us/library/ms235402%28VS.80%29.aspx
|
|
173
|
+
*/
|
|
174
|
+
# include <sal.h>
|
|
175
|
+
# define HB_FALLTHROUGH __fallthrough
|
|
176
|
+
#else
|
|
177
|
+
# define HB_FALLTHROUGH /* FALLTHROUGH */
|
|
178
|
+
#endif
|
|
179
|
+
|
|
180
|
+
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
181
|
+
/* We need Windows Vista for both Uniscribe backend and for
|
|
182
|
+
* MemoryBarrier. We don't support compiling on Windows XP,
|
|
183
|
+
* though we run on it fine. */
|
|
184
|
+
# if defined(_WIN32_WINNT) && _WIN32_WINNT < 0x0600
|
|
185
|
+
# undef _WIN32_WINNT
|
|
186
|
+
# endif
|
|
187
|
+
# ifndef _WIN32_WINNT
|
|
188
|
+
# define _WIN32_WINNT 0x0600
|
|
189
|
+
# endif
|
|
190
|
+
# ifndef WIN32_LEAN_AND_MEAN
|
|
191
|
+
# define WIN32_LEAN_AND_MEAN 1
|
|
192
|
+
# endif
|
|
193
|
+
# ifndef STRICT
|
|
194
|
+
# define STRICT 1
|
|
195
|
+
# endif
|
|
196
|
+
|
|
197
|
+
# if defined(_WIN32_WCE)
|
|
198
|
+
/* Some things not defined on Windows CE. */
|
|
199
|
+
# define vsnprintf _vsnprintf
|
|
200
|
+
# define getenv(Name) nullptr
|
|
201
|
+
# if _WIN32_WCE < 0x800
|
|
202
|
+
# define setlocale(Category, Locale) "C"
|
|
203
|
+
static int errno = 0; /* Use something better? */
|
|
204
|
+
# endif
|
|
205
|
+
# elif defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
|
|
206
|
+
# define getenv(Name) nullptr
|
|
207
|
+
# endif
|
|
208
|
+
# if defined(_MSC_VER) && _MSC_VER < 1900
|
|
209
|
+
# define snprintf _snprintf
|
|
210
|
+
# endif
|
|
211
|
+
#endif
|
|
212
|
+
|
|
213
|
+
#if HAVE_ATEXIT
|
|
214
|
+
/* atexit() is only safe to be called from shared libraries on certain
|
|
215
|
+
* platforms. Whitelist.
|
|
216
|
+
* https://bugs.freedesktop.org/show_bug.cgi?id=82246 */
|
|
217
|
+
# if defined(__linux) && defined(__GLIBC_PREREQ)
|
|
218
|
+
# if __GLIBC_PREREQ(2,3)
|
|
219
|
+
/* From atexit() manpage, it's safe with glibc 2.2.3 on Linux. */
|
|
220
|
+
# define HB_USE_ATEXIT 1
|
|
221
|
+
# endif
|
|
222
|
+
# elif defined(_MSC_VER) || defined(__MINGW32__)
|
|
223
|
+
/* For MSVC:
|
|
224
|
+
* http://msdn.microsoft.com/en-ca/library/tze57ck3.aspx
|
|
225
|
+
* http://msdn.microsoft.com/en-ca/library/zk17ww08.aspx
|
|
226
|
+
* mingw32 headers say atexit is safe to use in shared libraries.
|
|
227
|
+
*/
|
|
228
|
+
# define HB_USE_ATEXIT 1
|
|
229
|
+
# elif defined(__ANDROID__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
|
|
230
|
+
/* This was fixed in Android NKD r8 or r8b:
|
|
231
|
+
* https://code.google.com/p/android/issues/detail?id=6455
|
|
232
|
+
* which introduced GCC 4.6:
|
|
233
|
+
* https://developer.android.com/tools/sdk/ndk/index.html
|
|
234
|
+
*/
|
|
235
|
+
# define HB_USE_ATEXIT 1
|
|
236
|
+
# elif defined(__APPLE__)
|
|
237
|
+
/* For macOS and related platforms, the atexit man page indicates
|
|
238
|
+
* that it will be invoked when the library is unloaded, not only
|
|
239
|
+
* at application exit.
|
|
240
|
+
*/
|
|
241
|
+
# define HB_USE_ATEXIT 1
|
|
242
|
+
# endif
|
|
243
|
+
#endif
|
|
244
|
+
|
|
245
|
+
/* Basics */
|
|
246
|
+
|
|
247
|
+
#undef MIN
|
|
248
|
+
template <typename Type>
|
|
249
|
+
static inline Type MIN (const Type &a, const Type &b) { return a < b ? a : b; }
|
|
250
|
+
|
|
251
|
+
#undef MAX
|
|
252
|
+
template <typename Type>
|
|
253
|
+
static inline Type MAX (const Type &a, const Type &b) { return a > b ? a : b; }
|
|
254
|
+
|
|
255
|
+
static inline unsigned int DIV_CEIL (const unsigned int a, unsigned int b)
|
|
256
|
+
{ return (a + (b - 1)) / b; }
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
#undef ARRAY_LENGTH
|
|
260
|
+
template <typename Type, unsigned int n>
|
|
261
|
+
static inline unsigned int ARRAY_LENGTH (const Type (&)[n]) { return n; }
|
|
262
|
+
/* A const version, but does not detect erratically being called on pointers. */
|
|
263
|
+
#define ARRAY_LENGTH_CONST(__array) ((signed int) (sizeof (__array) / sizeof (__array[0])))
|
|
264
|
+
|
|
265
|
+
#define HB_STMT_START do
|
|
266
|
+
#define HB_STMT_END while (0)
|
|
267
|
+
|
|
268
|
+
template <unsigned int cond> class hb_assert_constant_t;
|
|
269
|
+
template <> class hb_assert_constant_t<1> {};
|
|
270
|
+
|
|
271
|
+
#define ASSERT_STATIC_EXPR_ZERO(_cond) (0 * (unsigned int) sizeof (hb_assert_constant_t<_cond>))
|
|
272
|
+
|
|
273
|
+
/* Lets assert int types. Saves trouble down the road. */
|
|
274
|
+
|
|
275
|
+
static_assert ((sizeof (int8_t) == 1), "");
|
|
276
|
+
static_assert ((sizeof (uint8_t) == 1), "");
|
|
277
|
+
static_assert ((sizeof (int16_t) == 2), "");
|
|
278
|
+
static_assert ((sizeof (uint16_t) == 2), "");
|
|
279
|
+
static_assert ((sizeof (int32_t) == 4), "");
|
|
280
|
+
static_assert ((sizeof (uint32_t) == 4), "");
|
|
281
|
+
static_assert ((sizeof (int64_t) == 8), "");
|
|
282
|
+
static_assert ((sizeof (uint64_t) == 8), "");
|
|
283
|
+
|
|
284
|
+
static_assert ((sizeof (hb_codepoint_t) == 4), "");
|
|
285
|
+
static_assert ((sizeof (hb_position_t) == 4), "");
|
|
286
|
+
static_assert ((sizeof (hb_mask_t) == 4), "");
|
|
287
|
+
static_assert ((sizeof (hb_var_int_t) == 4), "");
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
/* We like our types POD */
|
|
291
|
+
|
|
292
|
+
#define _ASSERT_TYPE_POD1(_line, _type) union _type_##_type##_on_line_##_line##_is_not_POD { _type instance; }
|
|
293
|
+
#define _ASSERT_TYPE_POD0(_line, _type) _ASSERT_TYPE_POD1 (_line, _type)
|
|
294
|
+
#define ASSERT_TYPE_POD(_type) _ASSERT_TYPE_POD0 (__LINE__, _type)
|
|
295
|
+
|
|
296
|
+
#ifdef __GNUC__
|
|
297
|
+
# define _ASSERT_INSTANCE_POD1(_line, _instance) \
|
|
298
|
+
HB_STMT_START { \
|
|
299
|
+
typedef __typeof__(_instance) _type_##_line; \
|
|
300
|
+
_ASSERT_TYPE_POD1 (_line, _type_##_line); \
|
|
301
|
+
} HB_STMT_END
|
|
302
|
+
#else
|
|
303
|
+
# define _ASSERT_INSTANCE_POD1(_line, _instance) typedef int _assertion_on_line_##_line##_not_tested
|
|
304
|
+
#endif
|
|
305
|
+
# define _ASSERT_INSTANCE_POD0(_line, _instance) _ASSERT_INSTANCE_POD1 (_line, _instance)
|
|
306
|
+
# define ASSERT_INSTANCE_POD(_instance) _ASSERT_INSTANCE_POD0 (__LINE__, _instance)
|
|
307
|
+
|
|
308
|
+
/* Check _assertion in a method environment */
|
|
309
|
+
#define _ASSERT_POD1(_line) \
|
|
310
|
+
HB_UNUSED inline void _static_assertion_on_line_##_line (void) const \
|
|
311
|
+
{ _ASSERT_INSTANCE_POD1 (_line, *this); /* Make sure it's POD. */ }
|
|
312
|
+
# define _ASSERT_POD0(_line) _ASSERT_POD1 (_line)
|
|
313
|
+
# define ASSERT_POD() _ASSERT_POD0 (__LINE__)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
/* Misc */
|
|
318
|
+
|
|
319
|
+
/*
|
|
320
|
+
* Void!
|
|
321
|
+
*/
|
|
322
|
+
typedef const struct _hb_void_t *hb_void_t;
|
|
323
|
+
#define HB_VOID ((const _hb_void_t *) nullptr)
|
|
324
|
+
|
|
325
|
+
/* Return the number of 1 bits in v. */
|
|
326
|
+
template <typename T>
|
|
327
|
+
static inline HB_CONST_FUNC unsigned int
|
|
328
|
+
_hb_popcount (T v)
|
|
329
|
+
{
|
|
330
|
+
#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) && defined(__OPTIMIZE__)
|
|
331
|
+
if (sizeof (T) <= sizeof (unsigned int))
|
|
332
|
+
return __builtin_popcount (v);
|
|
333
|
+
|
|
334
|
+
if (sizeof (T) <= sizeof (unsigned long))
|
|
335
|
+
return __builtin_popcountl (v);
|
|
336
|
+
|
|
337
|
+
if (sizeof (T) <= sizeof (unsigned long long))
|
|
338
|
+
return __builtin_popcountll (v);
|
|
339
|
+
#endif
|
|
340
|
+
|
|
341
|
+
if (sizeof (T) <= 4)
|
|
342
|
+
{
|
|
343
|
+
/* "HACKMEM 169" */
|
|
344
|
+
uint32_t y;
|
|
345
|
+
y = (v >> 1) &033333333333;
|
|
346
|
+
y = v - y - ((y >>1) & 033333333333);
|
|
347
|
+
return (((y + (y >> 3)) & 030707070707) % 077);
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
if (sizeof (T) == 8)
|
|
351
|
+
{
|
|
352
|
+
unsigned int shift = 32;
|
|
353
|
+
return _hb_popcount<uint32_t> ((uint32_t) v) + _hb_popcount ((uint32_t) (v >> shift));
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
if (sizeof (T) == 16)
|
|
357
|
+
{
|
|
358
|
+
unsigned int shift = 64;
|
|
359
|
+
return _hb_popcount<uint64_t> ((uint64_t) v) + _hb_popcount ((uint64_t) (v >> shift));
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
assert (0);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/* Returns the number of bits needed to store number */
|
|
366
|
+
template <typename T>
|
|
367
|
+
static inline HB_CONST_FUNC unsigned int
|
|
368
|
+
_hb_bit_storage (T v)
|
|
369
|
+
{
|
|
370
|
+
if (unlikely (!v)) return 0;
|
|
371
|
+
|
|
372
|
+
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
|
|
373
|
+
if (sizeof (T) <= sizeof (unsigned int))
|
|
374
|
+
return sizeof (unsigned int) * 8 - __builtin_clz (v);
|
|
375
|
+
|
|
376
|
+
if (sizeof (T) <= sizeof (unsigned long))
|
|
377
|
+
return sizeof (unsigned long) * 8 - __builtin_clzl (v);
|
|
378
|
+
|
|
379
|
+
if (sizeof (T) <= sizeof (unsigned long long))
|
|
380
|
+
return sizeof (unsigned long long) * 8 - __builtin_clzll (v);
|
|
381
|
+
#endif
|
|
382
|
+
|
|
383
|
+
#if defined(_MSC_VER) || defined(__MINGW32__)
|
|
384
|
+
if (sizeof (T) <= sizeof (unsigned int))
|
|
385
|
+
{
|
|
386
|
+
unsigned long where;
|
|
387
|
+
_BitScanReverse (&where, v);
|
|
388
|
+
return 1 + where;
|
|
389
|
+
}
|
|
390
|
+
# if _WIN64
|
|
391
|
+
if (sizeof (T) <= 8)
|
|
392
|
+
{
|
|
393
|
+
unsigned long where;
|
|
394
|
+
_BitScanReverse64 (&where, v);
|
|
395
|
+
return 1 + where;
|
|
396
|
+
}
|
|
397
|
+
# endif
|
|
398
|
+
#endif
|
|
399
|
+
|
|
400
|
+
if (sizeof (T) <= 4)
|
|
401
|
+
{
|
|
402
|
+
/* "bithacks" */
|
|
403
|
+
const unsigned int b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000};
|
|
404
|
+
const unsigned int S[] = {1, 2, 4, 8, 16};
|
|
405
|
+
unsigned int r = 0;
|
|
406
|
+
for (int i = 4; i >= 0; i--)
|
|
407
|
+
if (v & b[i])
|
|
408
|
+
{
|
|
409
|
+
v >>= S[i];
|
|
410
|
+
r |= S[i];
|
|
411
|
+
}
|
|
412
|
+
return r + 1;
|
|
413
|
+
}
|
|
414
|
+
if (sizeof (T) <= 8)
|
|
415
|
+
{
|
|
416
|
+
/* "bithacks" */
|
|
417
|
+
const uint64_t b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000, 0xFFFFFFFF00000000};
|
|
418
|
+
const unsigned int S[] = {1, 2, 4, 8, 16, 32};
|
|
419
|
+
unsigned int r = 0;
|
|
420
|
+
for (int i = 5; i >= 0; i--)
|
|
421
|
+
if (v & b[i])
|
|
422
|
+
{
|
|
423
|
+
v >>= S[i];
|
|
424
|
+
r |= S[i];
|
|
425
|
+
}
|
|
426
|
+
return r + 1;
|
|
427
|
+
}
|
|
428
|
+
if (sizeof (T) == 16)
|
|
429
|
+
{
|
|
430
|
+
unsigned int shift = 64;
|
|
431
|
+
return (v >> shift) ? _hb_bit_storage<uint64_t> ((uint64_t) v >> shift) + shift :
|
|
432
|
+
_hb_bit_storage<uint64_t> ((uint64_t) v);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
assert (0);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/* Returns the number of zero bits in the least significant side of v */
|
|
439
|
+
template <typename T>
|
|
440
|
+
static inline HB_CONST_FUNC unsigned int
|
|
441
|
+
_hb_ctz (T v)
|
|
442
|
+
{
|
|
443
|
+
if (unlikely (!v)) return 0;
|
|
444
|
+
|
|
445
|
+
#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(__OPTIMIZE__)
|
|
446
|
+
if (sizeof (T) <= sizeof (unsigned int))
|
|
447
|
+
return __builtin_ctz (v);
|
|
448
|
+
|
|
449
|
+
if (sizeof (T) <= sizeof (unsigned long))
|
|
450
|
+
return __builtin_ctzl (v);
|
|
451
|
+
|
|
452
|
+
if (sizeof (T) <= sizeof (unsigned long long))
|
|
453
|
+
return __builtin_ctzll (v);
|
|
454
|
+
#endif
|
|
455
|
+
|
|
456
|
+
#if defined(_MSC_VER) || defined(__MINGW32__)
|
|
457
|
+
if (sizeof (T) <= sizeof (unsigned int))
|
|
458
|
+
{
|
|
459
|
+
unsigned long where;
|
|
460
|
+
_BitScanForward (&where, v);
|
|
461
|
+
return where;
|
|
462
|
+
}
|
|
463
|
+
# if _WIN64
|
|
464
|
+
if (sizeof (T) <= 8)
|
|
465
|
+
{
|
|
466
|
+
unsigned long where;
|
|
467
|
+
_BitScanForward64 (&where, v);
|
|
468
|
+
return where;
|
|
469
|
+
}
|
|
470
|
+
# endif
|
|
471
|
+
#endif
|
|
472
|
+
|
|
473
|
+
if (sizeof (T) <= 4)
|
|
474
|
+
{
|
|
475
|
+
/* "bithacks" */
|
|
476
|
+
unsigned int c = 32;
|
|
477
|
+
v &= - (int32_t) v;
|
|
478
|
+
if (v) c--;
|
|
479
|
+
if (v & 0x0000FFFF) c -= 16;
|
|
480
|
+
if (v & 0x00FF00FF) c -= 8;
|
|
481
|
+
if (v & 0x0F0F0F0F) c -= 4;
|
|
482
|
+
if (v & 0x33333333) c -= 2;
|
|
483
|
+
if (v & 0x55555555) c -= 1;
|
|
484
|
+
return c;
|
|
485
|
+
}
|
|
486
|
+
if (sizeof (T) <= 8)
|
|
487
|
+
{
|
|
488
|
+
/* "bithacks" */
|
|
489
|
+
unsigned int c = 64;
|
|
490
|
+
v &= - (int64_t) (v);
|
|
491
|
+
if (v) c--;
|
|
492
|
+
if (v & 0x00000000FFFFFFFF) c -= 32;
|
|
493
|
+
if (v & 0x0000FFFF0000FFFF) c -= 16;
|
|
494
|
+
if (v & 0x00FF00FF00FF00FF) c -= 8;
|
|
495
|
+
if (v & 0x0F0F0F0F0F0F0F0F) c -= 4;
|
|
496
|
+
if (v & 0x3333333333333333) c -= 2;
|
|
497
|
+
if (v & 0x5555555555555555) c -= 1;
|
|
498
|
+
return c;
|
|
499
|
+
}
|
|
500
|
+
if (sizeof (T) == 16)
|
|
501
|
+
{
|
|
502
|
+
unsigned int shift = 64;
|
|
503
|
+
return (uint64_t) v ? _hb_bit_storage<uint64_t> ((uint64_t) v) :
|
|
504
|
+
_hb_bit_storage<uint64_t> ((uint64_t) v >> shift) + shift;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
assert (0);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
static inline bool
|
|
511
|
+
_hb_unsigned_int_mul_overflows (unsigned int count, unsigned int size)
|
|
512
|
+
{
|
|
513
|
+
return (size > 0) && (count >= ((unsigned int) -1) / size);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
static inline unsigned int
|
|
517
|
+
_hb_ceil_to_4 (unsigned int v)
|
|
518
|
+
{
|
|
519
|
+
return ((v - 1) | 3) + 1;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
|
|
524
|
+
/* arrays and maps */
|
|
525
|
+
|
|
526
|
+
|
|
527
|
+
#define HB_PREALLOCED_ARRAY_INIT {0, 0, nullptr}
|
|
528
|
+
template <typename Type, unsigned int StaticSize=16>
|
|
529
|
+
struct hb_prealloced_array_t
|
|
530
|
+
{
|
|
531
|
+
unsigned int len;
|
|
532
|
+
unsigned int allocated;
|
|
533
|
+
Type *array;
|
|
534
|
+
Type static_array[StaticSize];
|
|
535
|
+
|
|
536
|
+
void init (void)
|
|
537
|
+
{
|
|
538
|
+
len = 0;
|
|
539
|
+
allocated = ARRAY_LENGTH (static_array);
|
|
540
|
+
array = static_array;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
inline Type& operator [] (unsigned int i) { return array[i]; }
|
|
544
|
+
inline const Type& operator [] (unsigned int i) const { return array[i]; }
|
|
545
|
+
|
|
546
|
+
inline Type *push (void)
|
|
547
|
+
{
|
|
548
|
+
if (unlikely (!resize (len + 1)))
|
|
549
|
+
return nullptr;
|
|
550
|
+
|
|
551
|
+
return &array[len - 1];
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
/* Allocate for size but don't adjust len. */
|
|
555
|
+
inline bool alloc(unsigned int size)
|
|
556
|
+
{
|
|
557
|
+
if (likely (size <= allocated))
|
|
558
|
+
return true;
|
|
559
|
+
|
|
560
|
+
/* Reallocate */
|
|
561
|
+
|
|
562
|
+
unsigned int new_allocated = allocated;
|
|
563
|
+
while (size >= new_allocated)
|
|
564
|
+
new_allocated += (new_allocated >> 1) + 8;
|
|
565
|
+
|
|
566
|
+
Type *new_array = nullptr;
|
|
567
|
+
|
|
568
|
+
if (array == static_array) {
|
|
569
|
+
new_array = (Type *) calloc (new_allocated, sizeof (Type));
|
|
570
|
+
if (new_array)
|
|
571
|
+
memcpy (new_array, array, len * sizeof (Type));
|
|
572
|
+
} else {
|
|
573
|
+
bool overflows = (new_allocated < allocated) || _hb_unsigned_int_mul_overflows (new_allocated, sizeof (Type));
|
|
574
|
+
if (likely (!overflows)) {
|
|
575
|
+
new_array = (Type *) realloc (array, new_allocated * sizeof (Type));
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
if (unlikely (!new_array))
|
|
580
|
+
return false;
|
|
581
|
+
|
|
582
|
+
array = new_array;
|
|
583
|
+
allocated = new_allocated;
|
|
584
|
+
|
|
585
|
+
return true;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
inline bool resize (unsigned int size)
|
|
589
|
+
{
|
|
590
|
+
if (!alloc (size))
|
|
591
|
+
return false;
|
|
592
|
+
|
|
593
|
+
len = size;
|
|
594
|
+
return true;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
inline void pop (void)
|
|
598
|
+
{
|
|
599
|
+
len--;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
inline void remove (unsigned int i)
|
|
603
|
+
{
|
|
604
|
+
if (unlikely (i >= len))
|
|
605
|
+
return;
|
|
606
|
+
memmove (static_cast<void *> (&array[i]),
|
|
607
|
+
static_cast<void *> (&array[i + 1]),
|
|
608
|
+
(len - i - 1) * sizeof (Type));
|
|
609
|
+
len--;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
inline void shrink (unsigned int l)
|
|
613
|
+
{
|
|
614
|
+
if (l < len)
|
|
615
|
+
len = l;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
template <typename T>
|
|
619
|
+
inline Type *find (T v) {
|
|
620
|
+
for (unsigned int i = 0; i < len; i++)
|
|
621
|
+
if (array[i] == v)
|
|
622
|
+
return &array[i];
|
|
623
|
+
return nullptr;
|
|
624
|
+
}
|
|
625
|
+
template <typename T>
|
|
626
|
+
inline const Type *find (T v) const {
|
|
627
|
+
for (unsigned int i = 0; i < len; i++)
|
|
628
|
+
if (array[i] == v)
|
|
629
|
+
return &array[i];
|
|
630
|
+
return nullptr;
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
inline void qsort (int (*cmp)(const void*, const void*))
|
|
634
|
+
{
|
|
635
|
+
::qsort (array, len, sizeof (Type), cmp);
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
inline void qsort (void)
|
|
639
|
+
{
|
|
640
|
+
::qsort (array, len, sizeof (Type), Type::cmp);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
inline void qsort (unsigned int start, unsigned int end)
|
|
644
|
+
{
|
|
645
|
+
::qsort (array + start, end - start, sizeof (Type), Type::cmp);
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
template <typename T>
|
|
649
|
+
inline Type *lsearch (const T &x)
|
|
650
|
+
{
|
|
651
|
+
for (unsigned int i = 0; i < len; i++)
|
|
652
|
+
if (0 == this->array[i].cmp (&x))
|
|
653
|
+
return &array[i];
|
|
654
|
+
return nullptr;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
template <typename T>
|
|
658
|
+
inline Type *bsearch (const T &x)
|
|
659
|
+
{
|
|
660
|
+
unsigned int i;
|
|
661
|
+
return bfind (x, &i) ? &array[i] : nullptr;
|
|
662
|
+
}
|
|
663
|
+
template <typename T>
|
|
664
|
+
inline const Type *bsearch (const T &x) const
|
|
665
|
+
{
|
|
666
|
+
unsigned int i;
|
|
667
|
+
return bfind (x, &i) ? &array[i] : nullptr;
|
|
668
|
+
}
|
|
669
|
+
template <typename T>
|
|
670
|
+
inline bool bfind (const T &x, unsigned int *i) const
|
|
671
|
+
{
|
|
672
|
+
int min = 0, max = (int) this->len - 1;
|
|
673
|
+
while (min <= max)
|
|
674
|
+
{
|
|
675
|
+
int mid = (min + max) / 2;
|
|
676
|
+
int c = this->array[mid].cmp (&x);
|
|
677
|
+
if (c < 0)
|
|
678
|
+
max = mid - 1;
|
|
679
|
+
else if (c > 0)
|
|
680
|
+
min = mid + 1;
|
|
681
|
+
else
|
|
682
|
+
{
|
|
683
|
+
*i = mid;
|
|
684
|
+
return true;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
if (max < 0 || (max < (int) this->len && this->array[max].cmp (&x) > 0))
|
|
688
|
+
max++;
|
|
689
|
+
*i = max;
|
|
690
|
+
return false;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
inline void finish (void)
|
|
694
|
+
{
|
|
695
|
+
if (array != static_array)
|
|
696
|
+
free (array);
|
|
697
|
+
array = nullptr;
|
|
698
|
+
allocated = len = 0;
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
template <typename Type>
|
|
703
|
+
struct hb_auto_array_t : hb_prealloced_array_t <Type>
|
|
704
|
+
{
|
|
705
|
+
hb_auto_array_t (void) { hb_prealloced_array_t<Type>::init (); }
|
|
706
|
+
~hb_auto_array_t (void) { hb_prealloced_array_t<Type>::finish (); }
|
|
707
|
+
};
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
#define HB_LOCKABLE_SET_INIT {HB_PREALLOCED_ARRAY_INIT}
|
|
711
|
+
template <typename item_t, typename lock_t>
|
|
712
|
+
struct hb_lockable_set_t
|
|
713
|
+
{
|
|
714
|
+
hb_prealloced_array_t <item_t, 1> items;
|
|
715
|
+
|
|
716
|
+
inline void init (void) { items.init (); }
|
|
717
|
+
|
|
718
|
+
template <typename T>
|
|
719
|
+
inline item_t *replace_or_insert (T v, lock_t &l, bool replace)
|
|
720
|
+
{
|
|
721
|
+
l.lock ();
|
|
722
|
+
item_t *item = items.find (v);
|
|
723
|
+
if (item) {
|
|
724
|
+
if (replace) {
|
|
725
|
+
item_t old = *item;
|
|
726
|
+
*item = v;
|
|
727
|
+
l.unlock ();
|
|
728
|
+
old.finish ();
|
|
729
|
+
}
|
|
730
|
+
else {
|
|
731
|
+
item = nullptr;
|
|
732
|
+
l.unlock ();
|
|
733
|
+
}
|
|
734
|
+
} else {
|
|
735
|
+
item = items.push ();
|
|
736
|
+
if (likely (item))
|
|
737
|
+
*item = v;
|
|
738
|
+
l.unlock ();
|
|
739
|
+
}
|
|
740
|
+
return item;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
template <typename T>
|
|
744
|
+
inline void remove (T v, lock_t &l)
|
|
745
|
+
{
|
|
746
|
+
l.lock ();
|
|
747
|
+
item_t *item = items.find (v);
|
|
748
|
+
if (item) {
|
|
749
|
+
item_t old = *item;
|
|
750
|
+
*item = items[items.len - 1];
|
|
751
|
+
items.pop ();
|
|
752
|
+
l.unlock ();
|
|
753
|
+
old.finish ();
|
|
754
|
+
} else {
|
|
755
|
+
l.unlock ();
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
template <typename T>
|
|
760
|
+
inline bool find (T v, item_t *i, lock_t &l)
|
|
761
|
+
{
|
|
762
|
+
l.lock ();
|
|
763
|
+
item_t *item = items.find (v);
|
|
764
|
+
if (item)
|
|
765
|
+
*i = *item;
|
|
766
|
+
l.unlock ();
|
|
767
|
+
return !!item;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
template <typename T>
|
|
771
|
+
inline item_t *find_or_insert (T v, lock_t &l)
|
|
772
|
+
{
|
|
773
|
+
l.lock ();
|
|
774
|
+
item_t *item = items.find (v);
|
|
775
|
+
if (!item) {
|
|
776
|
+
item = items.push ();
|
|
777
|
+
if (likely (item))
|
|
778
|
+
*item = v;
|
|
779
|
+
}
|
|
780
|
+
l.unlock ();
|
|
781
|
+
return item;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
inline void finish (lock_t &l)
|
|
785
|
+
{
|
|
786
|
+
if (!items.len) {
|
|
787
|
+
/* No need for locking. */
|
|
788
|
+
items.finish ();
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
791
|
+
l.lock ();
|
|
792
|
+
while (items.len) {
|
|
793
|
+
item_t old = items[items.len - 1];
|
|
794
|
+
items.pop ();
|
|
795
|
+
l.unlock ();
|
|
796
|
+
old.finish ();
|
|
797
|
+
l.lock ();
|
|
798
|
+
}
|
|
799
|
+
items.finish ();
|
|
800
|
+
l.unlock ();
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
};
|
|
804
|
+
|
|
805
|
+
|
|
806
|
+
/* ASCII tag/character handling */
|
|
807
|
+
|
|
808
|
+
static inline bool ISALPHA (unsigned char c)
|
|
809
|
+
{ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); }
|
|
810
|
+
static inline bool ISALNUM (unsigned char c)
|
|
811
|
+
{ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9'); }
|
|
812
|
+
static inline bool ISSPACE (unsigned char c)
|
|
813
|
+
{ return c == ' ' || c =='\f'|| c =='\n'|| c =='\r'|| c =='\t'|| c =='\v'; }
|
|
814
|
+
static inline unsigned char TOUPPER (unsigned char c)
|
|
815
|
+
{ return (c >= 'a' && c <= 'z') ? c - 'a' + 'A' : c; }
|
|
816
|
+
static inline unsigned char TOLOWER (unsigned char c)
|
|
817
|
+
{ return (c >= 'A' && c <= 'Z') ? c - 'A' + 'a' : c; }
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
/* HB_NDEBUG disables some sanity checks that are very safe to disable and
|
|
821
|
+
* should be disabled in production systems. If NDEBUG is defined, enable
|
|
822
|
+
* HB_NDEBUG; but if it's desirable that normal assert()s (which are very
|
|
823
|
+
* light-weight) to be enabled, then HB_DEBUG can be defined to disable
|
|
824
|
+
* the costlier checks. */
|
|
825
|
+
#ifdef NDEBUG
|
|
826
|
+
#define HB_NDEBUG
|
|
827
|
+
#endif
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
/* Misc */
|
|
831
|
+
|
|
832
|
+
template <typename T> class hb_assert_unsigned_t;
|
|
833
|
+
template <> class hb_assert_unsigned_t<unsigned char> {};
|
|
834
|
+
template <> class hb_assert_unsigned_t<unsigned short> {};
|
|
835
|
+
template <> class hb_assert_unsigned_t<unsigned int> {};
|
|
836
|
+
template <> class hb_assert_unsigned_t<unsigned long> {};
|
|
837
|
+
|
|
838
|
+
template <typename T> static inline bool
|
|
839
|
+
hb_in_range (T u, T lo, T hi)
|
|
840
|
+
{
|
|
841
|
+
/* The sizeof() is here to force template instantiation.
|
|
842
|
+
* I'm sure there are better ways to do this but can't think of
|
|
843
|
+
* one right now. Declaring a variable won't work as HB_UNUSED
|
|
844
|
+
* is unusable on some platforms and unused types are less likely
|
|
845
|
+
* to generate a warning than unused variables. */
|
|
846
|
+
static_assert ((sizeof (hb_assert_unsigned_t<T>) >= 0), "");
|
|
847
|
+
|
|
848
|
+
/* The casts below are important as if T is smaller than int,
|
|
849
|
+
* the subtract results will become a signed int! */
|
|
850
|
+
return (T)(u - lo) <= (T)(hi - lo);
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
template <typename T> static inline bool
|
|
854
|
+
hb_in_ranges (T u, T lo1, T hi1, T lo2, T hi2)
|
|
855
|
+
{
|
|
856
|
+
return hb_in_range (u, lo1, hi1) || hb_in_range (u, lo2, hi2);
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
template <typename T> static inline bool
|
|
860
|
+
hb_in_ranges (T u, T lo1, T hi1, T lo2, T hi2, T lo3, T hi3)
|
|
861
|
+
{
|
|
862
|
+
return hb_in_range (u, lo1, hi1) || hb_in_range (u, lo2, hi2) || hb_in_range (u, lo3, hi3);
|
|
863
|
+
}
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
/* Enable bitwise ops on enums marked as flags_t */
|
|
867
|
+
/* To my surprise, looks like the function resolver is happy to silently cast
|
|
868
|
+
* one enum to another... So this doesn't provide the type-checking that I
|
|
869
|
+
* originally had in mind... :(.
|
|
870
|
+
*
|
|
871
|
+
* For MSVC warnings, see: https://github.com/harfbuzz/harfbuzz/pull/163
|
|
872
|
+
*/
|
|
873
|
+
#ifdef _MSC_VER
|
|
874
|
+
# pragma warning(disable:4200)
|
|
875
|
+
# pragma warning(disable:4800)
|
|
876
|
+
#endif
|
|
877
|
+
#define HB_MARK_AS_FLAG_T(T) \
|
|
878
|
+
extern "C++" { \
|
|
879
|
+
static inline T operator | (T l, T r) { return T ((unsigned) l | (unsigned) r); } \
|
|
880
|
+
static inline T operator & (T l, T r) { return T ((unsigned) l & (unsigned) r); } \
|
|
881
|
+
static inline T operator ^ (T l, T r) { return T ((unsigned) l ^ (unsigned) r); } \
|
|
882
|
+
static inline T operator ~ (T r) { return T (~(unsigned int) r); } \
|
|
883
|
+
static inline T& operator |= (T &l, T r) { l = l | r; return l; } \
|
|
884
|
+
static inline T& operator &= (T& l, T r) { l = l & r; return l; } \
|
|
885
|
+
static inline T& operator ^= (T& l, T r) { l = l ^ r; return l; } \
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
/* Useful for set-operations on small enums.
|
|
890
|
+
* For example, for testing "x ∈ {x1, x2, x3}" use:
|
|
891
|
+
* (FLAG_UNSAFE(x) & (FLAG(x1) | FLAG(x2) | FLAG(x3)))
|
|
892
|
+
*/
|
|
893
|
+
#define FLAG(x) (ASSERT_STATIC_EXPR_ZERO ((unsigned int)(x) < 32) + (1U << (unsigned int)(x)))
|
|
894
|
+
#define FLAG_UNSAFE(x) ((unsigned int)(x) < 32 ? (1U << (unsigned int)(x)) : 0)
|
|
895
|
+
#define FLAG_RANGE(x,y) (ASSERT_STATIC_EXPR_ZERO ((x) < (y)) + FLAG(y+1) - FLAG(x))
|
|
896
|
+
|
|
897
|
+
|
|
898
|
+
template <typename T, typename T2> static inline void
|
|
899
|
+
hb_stable_sort (T *array, unsigned int len, int(*compar)(const T *, const T *), T2 *array2)
|
|
900
|
+
{
|
|
901
|
+
for (unsigned int i = 1; i < len; i++)
|
|
902
|
+
{
|
|
903
|
+
unsigned int j = i;
|
|
904
|
+
while (j && compar (&array[j - 1], &array[i]) > 0)
|
|
905
|
+
j--;
|
|
906
|
+
if (i == j)
|
|
907
|
+
continue;
|
|
908
|
+
/* Move item i to occupy place for item j, shift what's in between. */
|
|
909
|
+
{
|
|
910
|
+
T t = array[i];
|
|
911
|
+
memmove (&array[j + 1], &array[j], (i - j) * sizeof (T));
|
|
912
|
+
array[j] = t;
|
|
913
|
+
}
|
|
914
|
+
if (array2)
|
|
915
|
+
{
|
|
916
|
+
T2 t = array2[i];
|
|
917
|
+
memmove (&array2[j + 1], &array2[j], (i - j) * sizeof (T2));
|
|
918
|
+
array2[j] = t;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
template <typename T> static inline void
|
|
924
|
+
hb_stable_sort (T *array, unsigned int len, int(*compar)(const T *, const T *))
|
|
925
|
+
{
|
|
926
|
+
hb_stable_sort (array, len, compar, (int *) nullptr);
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
static inline hb_bool_t
|
|
930
|
+
hb_codepoint_parse (const char *s, unsigned int len, int base, hb_codepoint_t *out)
|
|
931
|
+
{
|
|
932
|
+
/* Pain because we don't know whether s is nul-terminated. */
|
|
933
|
+
char buf[64];
|
|
934
|
+
len = MIN (ARRAY_LENGTH (buf) - 1, len);
|
|
935
|
+
strncpy (buf, s, len);
|
|
936
|
+
buf[len] = '\0';
|
|
937
|
+
|
|
938
|
+
char *end;
|
|
939
|
+
errno = 0;
|
|
940
|
+
unsigned long v = strtoul (buf, &end, base);
|
|
941
|
+
if (errno) return false;
|
|
942
|
+
if (*end) return false;
|
|
943
|
+
*out = v;
|
|
944
|
+
return true;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
|
|
948
|
+
/* Vectorization */
|
|
949
|
+
|
|
950
|
+
struct HbOpOr
|
|
951
|
+
{
|
|
952
|
+
static const bool passthru_left = true;
|
|
953
|
+
static const bool passthru_right = true;
|
|
954
|
+
template <typename T> static void process (T &o, const T &a, const T &b) { o = a | b; }
|
|
955
|
+
};
|
|
956
|
+
struct HbOpAnd
|
|
957
|
+
{
|
|
958
|
+
static const bool passthru_left = false;
|
|
959
|
+
static const bool passthru_right = false;
|
|
960
|
+
template <typename T> static void process (T &o, const T &a, const T &b) { o = a & b; }
|
|
961
|
+
};
|
|
962
|
+
struct HbOpMinus
|
|
963
|
+
{
|
|
964
|
+
static const bool passthru_left = true;
|
|
965
|
+
static const bool passthru_right = false;
|
|
966
|
+
template <typename T> static void process (T &o, const T &a, const T &b) { o = a & ~b; }
|
|
967
|
+
};
|
|
968
|
+
struct HbOpXor
|
|
969
|
+
{
|
|
970
|
+
static const bool passthru_left = true;
|
|
971
|
+
static const bool passthru_right = true;
|
|
972
|
+
template <typename T> static void process (T &o, const T &a, const T &b) { o = a ^ b; }
|
|
973
|
+
};
|
|
974
|
+
|
|
975
|
+
/* Type behaving similar to vectorized vars defined using __attribute__((vector_size(...))). */
|
|
976
|
+
template <typename elt_t, unsigned int byte_size>
|
|
977
|
+
struct hb_vector_size_t
|
|
978
|
+
{
|
|
979
|
+
elt_t& operator [] (unsigned int i) { return v[i]; }
|
|
980
|
+
const elt_t& operator [] (unsigned int i) const { return v[i]; }
|
|
981
|
+
|
|
982
|
+
template <class Op>
|
|
983
|
+
inline hb_vector_size_t process (const hb_vector_size_t &o) const
|
|
984
|
+
{
|
|
985
|
+
hb_vector_size_t r;
|
|
986
|
+
for (unsigned int i = 0; i < ARRAY_LENGTH (v); i++)
|
|
987
|
+
Op::process (r.v[i], v[i], o.v[i]);
|
|
988
|
+
return r;
|
|
989
|
+
}
|
|
990
|
+
inline hb_vector_size_t operator | (const hb_vector_size_t &o) const
|
|
991
|
+
{ return process<HbOpOr> (o); }
|
|
992
|
+
inline hb_vector_size_t operator & (const hb_vector_size_t &o) const
|
|
993
|
+
{ return process<HbOpAnd> (o); }
|
|
994
|
+
inline hb_vector_size_t operator ^ (const hb_vector_size_t &o) const
|
|
995
|
+
{ return process<HbOpXor> (o); }
|
|
996
|
+
inline hb_vector_size_t operator ~ () const
|
|
997
|
+
{
|
|
998
|
+
hb_vector_size_t r;
|
|
999
|
+
for (unsigned int i = 0; i < ARRAY_LENGTH (v); i++)
|
|
1000
|
+
r.v[i] = ~v[i];
|
|
1001
|
+
return r;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
private:
|
|
1005
|
+
static_assert (byte_size / sizeof (elt_t) * sizeof (elt_t) == byte_size, "");
|
|
1006
|
+
elt_t v[byte_size / sizeof (elt_t)];
|
|
1007
|
+
};
|
|
1008
|
+
|
|
1009
|
+
/* The `vector_size' attribute was introduced in gcc 3.1. */
|
|
1010
|
+
#if defined( __GNUC__ ) && ( __GNUC__ >= 4 )
|
|
1011
|
+
#define HAVE_VECTOR_SIZE 1
|
|
1012
|
+
#endif
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
/* Global runtime options. */
|
|
1016
|
+
|
|
1017
|
+
struct hb_options_t
|
|
1018
|
+
{
|
|
1019
|
+
unsigned int initialized : 1;
|
|
1020
|
+
unsigned int uniscribe_bug_compatible : 1;
|
|
1021
|
+
};
|
|
1022
|
+
|
|
1023
|
+
union hb_options_union_t {
|
|
1024
|
+
unsigned int i;
|
|
1025
|
+
hb_options_t opts;
|
|
1026
|
+
};
|
|
1027
|
+
static_assert ((sizeof (int) == sizeof (hb_options_union_t)), "");
|
|
1028
|
+
|
|
1029
|
+
HB_INTERNAL void
|
|
1030
|
+
_hb_options_init (void);
|
|
1031
|
+
|
|
1032
|
+
extern HB_INTERNAL hb_options_union_t _hb_options;
|
|
1033
|
+
|
|
1034
|
+
static inline hb_options_t
|
|
1035
|
+
hb_options (void)
|
|
1036
|
+
{
|
|
1037
|
+
if (unlikely (!_hb_options.i))
|
|
1038
|
+
_hb_options_init ();
|
|
1039
|
+
|
|
1040
|
+
return _hb_options.opts;
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
/* Size signifying variable-sized array */
|
|
1044
|
+
#define VAR 1
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
/* String type. */
|
|
1048
|
+
|
|
1049
|
+
struct hb_string_t
|
|
1050
|
+
{
|
|
1051
|
+
inline hb_string_t (void) : bytes (nullptr), len (0) {}
|
|
1052
|
+
inline hb_string_t (const char *bytes_, unsigned int len_) : bytes (bytes_), len (len_) {}
|
|
1053
|
+
|
|
1054
|
+
inline int cmp (const hb_string_t &a) const
|
|
1055
|
+
{
|
|
1056
|
+
if (len != a.len)
|
|
1057
|
+
return (int) a.len - (int) len;
|
|
1058
|
+
|
|
1059
|
+
return memcmp (a.bytes, bytes, len);
|
|
1060
|
+
}
|
|
1061
|
+
static inline int cmp (const void *pa, const void *pb)
|
|
1062
|
+
{
|
|
1063
|
+
hb_string_t *a = (hb_string_t *) pa;
|
|
1064
|
+
hb_string_t *b = (hb_string_t *) pb;
|
|
1065
|
+
return b->cmp (*a);
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
const char *bytes;
|
|
1069
|
+
unsigned int len;
|
|
1070
|
+
};
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
#endif /* HB_PRIVATE_HH */
|